串口通讯时序详解

接口/总线/驱动

1116人已加入

描述

1、串口通讯时序:

串口通讯

如上图所示,串口时序由起始位、数据位、校验位、停止位组成。

起始位 :占用1Bit,低电平有效

数据位 :可以是5bit、6Bit、7Bit、8Bit,其中最常用是8Bit

校验位 :奇校验、偶校验、无校验,占用1bit,无校验位时不占用。

偶校验(even parity):校验原则是,数据位和校验位中1的个数为偶数

奇校验(odd parity):校验原则是,数据位和校验位中1的个数为奇数

无校验:即时序图中没有校验位

停止位 :占用1Bit、1.5Bit、2Bit,高电平有效

2、串口通讯速率

常用的串口通讯速率:2400bps、4800bps、9600bps、19200bps、38400bps、115200bps。现在最常用的应该是115200bps的速率,不快不慢正合适。

当然有些应用场合数据量较大,使用低波特率数据传输占用时间太长,应该适当提高波特率,例如我司有一款产品设置波特率接近1Mbps,单片机使用这么高的速率必须开启硬件流控,甚至停止位也要大于1Bit。

3、最基本的串口数据传输

最基本的串口传输只需要两根信号线,即TXD和RXD,通讯双方交叉相接,TXD发送数据,RXD接收数据。

传输数据时双方必须保证通讯波特率、数据位、检验位,停止位保持一致,才能正确通讯。这种串口传输方式有一定的不可靠性,可能会导致数据丢失,例如,MCU1向MCU2发送数据,此时MCU2正在忙于其他任务,无暇顾及串口接收,MCU1发送的数据把MCU2的FIFO填满后,剩下的字节MCU2会直接抛弃。

串口通讯

4、带流控的串口数据传输

此种方式使用4根线传输数据,即,TXD、RXD、CTS、RTX。和基本数据传输方式相比增加了CTS和RTS两个管脚,CTS和RTS也是交叉相接。

RTS :Require To Send缩写,请求发送,此管脚为输出管脚,用于指示自己可以接收数据,输出低电平表示可以接收数据,输出高电平指示不能接收数据。

CTS :Clear To Send缩写,允许发送,此管脚为输入管脚,用于判断发送方是否能够接收数据,读取到低电平表示对方能够接收数据,读取到高电平表示对方不能接收数据。

这种传输方式能够保证数据传输不会丢数据,保证数据的完整性。例如,MCU1向MCU2发送数据,此时MCU2正在忙于其他任务,无暇顾及串口接收,MCU1发送的数据把MCU2的FIFO填满后,MCU2会把自己的RTS拉高,指示自己不能接收数据,此时MCU1发现自己的CTS变高了,MCU1的数据发送会进入等待状态,直到MCU1的CTS变低。

当MCU2把自己的串口FIFO中的数据读取出来后,MCU2的RTS会自动变低,这时候MCU1可以继续发送数据。这种带硬件流控的传输方式,保证了数据的完成性。

串口通讯

5、万能的串口

串口简单易用,几乎任何接口都能转成串口使用,尤其是把一些复杂接口转换成简单的串口,能够大大降低研发成本。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分