串口通信协议
2021/9/3 23:06:02
本文主要是介绍串口通信协议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
异步串行通信,会把有效数据拆分成若干个8个bit的片段,每个片段首位加上开始和结束bit以及校验bit组成数据帧,然后依次传送每个数据帧。优点是数据帧很短,对通信双方的时钟要求没那么高,通信双方使用两个不同的时钟,只要两个时钟的误差足够小即可。
同步串行通信,不会拆分有效数据,它在一大坨有效数据的两端加上开始和结束bit以及CRC校验的bit,一次性传送出去。由于单次发送的数据帧特别长,在漫长的传送过程中,通信双方的时钟误差不能造成解析错误,所以对时钟的要求特别高,一般通信双方使用同一个时钟。
异步串行通信保证帧内每个字符的间隔一致,帧间的间隔随意。
异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑'1'状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位,停止位一直为逻辑'1'状态。停止位是一个字符数据的结束标志。
在异步通信中,字符数据一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。
同步通信时,通信双方共用一个时钟,这是同步通信区分于异步通信的最显著的特点。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,以致占用了时间。所以在数据块传送时,为提高通信速度,常去掉这些标志,而采用同步通信。同步通信中,数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端的同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到一块数据传送完毕。同步传送时,字符之间没有间隙,也不要起始位和停止位,仅在数据开始时用同步字符SYNC来指示。
同步位系统比异步位系统要实用高效。这个比较好理解,计算机对帧的处理比对字符要少的多,在传送相同大小的数据量的时候,计算机要对大量的字符进行开始与结束操作,帧则要少的多。同时同步位系统的下的网络效率也更高,因为每个字符都至少包含两位的开始结束信息,这个在数据量大的时候开销是很客观的。
这篇关于串口通信协议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14动态路由项目实战:从入门到上手
- 2024-11-14函数组件项目实战:从入门到简单应用
- 2024-11-14获取参数项目实战:新手教程与案例分析
- 2024-11-14可视化开发项目实战:新手入门教程
- 2024-11-14可视化图表项目实战:从入门到实践
- 2024-11-14路由懒加载项目实战:新手入门教程
- 2024-11-14路由嵌套项目实战:新手入门教程
- 2024-11-14全栈低代码开发项目实战:新手入门指南
- 2024-11-14全栈项目实战:新手入门教程
- 2024-11-14useRequest教程:新手快速入门指南