单片机UART串口通讯波形实测

为了对串口通讯的过程有所了解,采用Saleae 的逻辑分析仪对STC15F204EA采用定时中断模拟的串口信号进行了实时抓取,以确认这种通讯方法的稳定性。
单片机UART串口通讯波形实测_第1张图片
STC15F204EA上没有硬件UART口,只能通过定时中断来仿真,在通用IO口上模拟串行通信。
试验时STC15F204的参数设置如下:
单片机UART串口通讯波形实测_第2张图片
采用定时器0工作于1T模式0(16位自动装载),系统主时钟频率设置在11.0592MHz。串行通信参数设置:BAUD:115200,8位数据,1个停止位,无奇偶校验,发送顺序为低位先发送。
信号抓取的设置如下:
单片机UART串口通讯波形实测_第3张图片
按照起止式异步通讯协议,数据包括一个起始位,n个数据位,一个奇偶校验位,m个停止位。格式如下图所示。当不选择奇偶校验时,该位不存在。
单片机UART串口通讯波形实测_第4张图片

以下为实际测试的结果:

                              字符0x0,0xFF循环的波形,有点标识的是有效数据采样点,在起始位和停止位均不标识。

定时信息:从起始位低电平起,连续8个高电平,然后一个停止位高电平。完成后开始下一个循环。

 
连续的数据波形:0xFF,0x00,....,0x80的波形。可以看出,如果要发送0b0000 0001, 按时间顺序则是,低(起始位),高(1),低(0),低(0),低(0),低(0),低(0),低(0),低(0)。但是后面的7个连续的低电平连接在一起,就形成了一个较长低电平。
 从0xFF,0x00 ~ 0x04的波形,可以看出,先发送低位,然后是高位。

从0x04-0x80的波形

每个字符的发送时间为87.9us。

  单片机UART串口通讯波形实测_第5张图片

停止位长度9.042us,起始位长度也是9.042us。

   
全部抓取0x55时的波形如下:
单片机UART串口通讯波形实测_第6张图片

单个高电平宽度8.75us。

中间插入延时1.029ms的延时循环。

以下是对波特率的理解:
波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示,其单位是波特(Baud)。
当波特率变化时,单个位的周期发生变化测试如下:
2400:t=1/2400(s)=0.4167ms

9600:t=1/9600=0.1041ms

38400:

57600:


通过以上的波形可以看出,只要准确的设置定时中断的时间,就可以准确的模拟UART数据的通讯过程。

你可能感兴趣的:(UART波形)