标签: 波形 RS RS485 电平 串口 发送数据 波特率 485 TTL
常见的USB转串口线分为USB-RS232和USB-RS485两种,区别主要是逻辑电平是相反的。
一、串行数据的格式
异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。
起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。线路路空闲或者数据传输结束,对于正逻辑的TTL电平,线路总是1。对于负逻辑(如RS-232电平)则相反。
例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。 (先传第一个字节55,再传第二个字节aa,每个字节都是从低位向高位逐位传输)
图1 TTL电平的串行数据帧格式(55aah)
图2 RS-232电平的串行数据帧格式(55aah)
再如:
图3
1.该图是TTL电平同相位的逻辑
2.波特率设置时 38400
3.串口发送的是 0x55
4.串口设置为8N1
二、根据波形图计算波特率
如图4是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200us/格。
图4 波特率计算示意图
可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:
10bit / 1.05ms X 1000 ≈ 9600 bit/s
如果上图中的时间轴是100us/格,同样可以计算出波特率应是19200bit/s。
当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。
三、根据波形图判断RS-485收发数据的正确与否
RS-485是一种半双工的串行通讯方式(RS-422为全双工),485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。
RS-485发送数据时的正确时序如图5所示。
图5 RS-485的正确发送数据时序
在图5中,发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。
图6 和图7 分别是控制信号太短和控制信号太长的情况。
图6 RS-485控制信号太短时的时序
图7 RS-485控制信号太短时的时序
在图6中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图7中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。
掌握了上述波形分析方法,任何异步串行数据的接收和发送问题,基本都可以得到解决。
- 点赞
- 收藏
- 分享
-
- 文章举报
标签: 波形, RS, RS485, 电平, 串口, 发送数据, 波特率, 485, TTL 来源: https://blog.csdn.net/qin123g/article/details/103968715
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。