串行通信协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串行通信协议相关的知识,希望对你有一定的参考价值。


异步串行通信,会把有效数据拆分成若干个8个bit的片段,每个片段首位加上开始和结束bit以及校验bit组成数据帧,然后依次传送每个数据帧。优点是数据帧很短,对通信双方的时钟要求没那么高,通信双方使用两个不同的时钟,只要两个时钟的误差足够小即可。

同步串行通信,不会拆分有效数据,它在一大坨有效数据的两端加上开始和结束bit以及CRC校验的bit,一次性传送出去。由于单次发送的数据帧特别长,在漫长的传送过程中,通信双方的时钟误差不能造成解析错误,所以对时钟的要求特别高,一般通信双方使用同一个时钟。

异步串行通信保证帧内每个字符的间隔一致,帧间的间隔随意。
异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑\'1\'状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位,停止位一直为逻辑\'1\'状态。停止位是一个字符数据的结束标志。
在异步通信中,字符数据一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。

同步通信时,通信双方共用一个时钟,这是同步通信区分于异步通信的最显著的特点。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,以致占用了时间。所以在数据块传送时,为提高通信速度,常去掉这些标志,而采用同步通信。同步通信中,数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端的同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到一块数据传送完毕。同步传送时,字符之间没有间隙,也不要起始位和停止位,仅在数据开始时用同步字符SYNC来指示。

同步位系统比异步位系统要实用高效。这个比较好理解,计算机对帧的处理比对字符要少的多,在传送相同大小的数据量的时候,计算机要对大量的字符进行开始与结束操作,帧则要少的多。同时同步位系统的下的网络效率也更高,因为每个字符都至少包含两位的开始结束信息,这个在数据量大的时候开销是很客观的。

以上是关于串行通信协议的主要内容,如果未能解决你的问题,请参考以下文章

硬件设计基础----通信协议UART

硬件设计基础----通信协议UART

二进制串行通信协议 - 得到意外响应

串行通信协议I2CSPIUART

并行与串行的区别及并行通信的系统同步方式

modbus协议之串行链路