13.1 通信时序解析

随着我们对通信技术的深入学习,大家要逐渐在头脑中建立起时序这种概念。所谓“时序”从字面意义上来理解,一是“时间问题”,二是“顺序问题”。

先说“顺序问题”,这个相对简单一些。我们在学 UART 串口通信的时候,先 1 位起始位,再 8 位数据位,最后 1 位停止位,这个先后顺序不能错。我们在学 1602 液晶的时候,比如写指令,RS=L,R/W=L,D0~D7=指令码,这三者的顺序是无所谓的,但是最终的 E=高脉冲,必须是在这三条程序之后,这个顺序一旦错误,写的数据也可会出错。

“时间问题”内容相对复杂。比如 UART 通信,每一位的时间宽度是 1/baud。我们初中就学过一个概念,世界上没有绝对的准确。那么每一位的时间宽度 1/baud 要求精确到什么范围内呢?

前边教程我提到过,单片机读取 UART 的 RXD 引脚数据的时候,一位数据,单片机平均分成了 16 份,取其中的 7、8、9 三次读到的结果,这三次中有 2 次是高电平那这一位就是 1,有 2 次是低电平,那这一次就是 0。如果我们的波特率稍微有些偏差,只要累计下来到最后一位停止位,这 7、8、9 还在范围内即可。如图 13-1 所示。
图 13-1  UART 信号采集时序图
图 13-1  UART 信号采集时序图

我们用三个箭头来表示 7、8、9 这三次的采集位置,大家可以注意到,当采集到 D7 的时候,已经有一次采集偏出去了,但是我们采集到的数据还是不会错,因为有 2 次采集正确。至于这个偏差允许多大,大家自己可以详细算一下。实际上 UART 通信的波特率是允许一定范围内误差存在的,但是不能过大,否则就会采集错误。大家在计算波特率的时候,发现没有整除,有小数部分的时候,就要特别小心了,因为小数部分是一概被舍掉的,于是计算误差就产生了。我们用 11.0592M 晶振计算的过程中,11059200/12/32/9600 得到的是一个整数,如果用 12M 晶振计算 12000000/12/32/9600 就会得到一个小数,大家可以算一下误差多少,是否在误差范围内。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
今天小编要给大家介绍一款专业好用的串口通信桌面监控程序软件——串口监视工具。软件可以侦测、拦截、逆向分析串口通信协议,监视电脑串口活动,显示波特率和状态,并能保存日志记录,让您对应用程序操作串行端口的过程和细节,让您及时的模拟被侦听程序或设备的数据、控制流,提高工作效率。串口监视工具使用方便,速度快,质量高,对于用户来说是一款很不错的软件,小编这里推荐大家使用这款软件! 串口监视工具功能 串口调试: 和多数串口调试工具一样具有串口的收发功能. 本身特点: 自动检测串口(包括各种虚拟串口). 参数设置详细,能发送16进制,各种文件数据. 显示串口握手线信号, 显示各种硬件错误. 作用: 调试串口应用程序. 串口测试: 发送,接收大量伪随机码对串口设备/串口线路的质量进行测试. 能自动同步,可以测试单向的线路质量,代替昂贵的测试仪表. 随机码包括标准的 2^15-1,2^11-1,2^9-1和16bit人工码.自动/手动插入误码(1/10000,1/1000,单个). 自动记录各种测试结果. 作用: 测试串口设备/串口线路(测试时不要选软件流控). 串口监视: 不占用串口资源,监视串口通信的整个流程---从打开到关闭 监视串口的各种参数设置: 波特率,数据位,校验位,停止位,握手方式,超时数值,串口事件等等. 监视串口的收发数据,各种硬件信号,硬件错误. 作用: 监视程序对串口的访问流程. 串口过滤: 不占用串口资源,对流经串口的数据进行过滤. 在发送/接收数据流中改变字符. 在发送/接收数据流中进行字符代替. 在发送/接收数据流中删除字符. 作用: 模拟数据传输中出现的各种误码,丢失字符,调试串口的通信协议. 串口监视工具截图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值