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

为了对串口通讯的过程有所了解,采用Saleae 的逻辑分析仪对STC15F204EA采用定时中断模拟的串口信号进行了实时抓取,以确认这种通讯方法的稳定性。

STC15F204EA上没有硬件UART口,只能通过定时中断来仿真,在通用IO口上模拟串行通信。
试验时STC15F204的参数设置如下:

采用定时器0工作于1T模式0(16位自动装载),系统主时钟频率设置在11.0592MHz。串行通信参数设置:BAUD:115200,8位数据,1个停止位,无奇偶校验,发送顺序为低位先发送。
信号抓取的设置如下:

按照起止式异步通讯协议,数据包括一个起始位,n个数据位,一个奇偶校验位,m个停止位。格式如下图所示。当不选择奇偶校验时,该位不存在。


以下为实际测试的结果:

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

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

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

从0x04-0x80的波形

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

  

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

   
全部抓取0x55时的波形如下:

单个高电平宽度8.75us。

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

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

9600:t=1/9600=0.1041ms

38400:

57600:


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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值