admin 管理员组文章数量: 888134
MCU
MCU-串口通信协议
一、 介绍
串行通信就像单车道,所有数据得一个一个通行,并行就像多车道,一次可以通行多辆车。
MCU常用到的串口通信模块主要有两种:UART和USART。
UART:全称是Universal Asynchronous Receiver/Transmitte,即通用异步收发器。
USART:全称是Universal Synchronous/Asynchronous Receiver/Transmitter,即通用同步/异步收发器。
区别:
UART只支持异步收发,USART支持同步和异步收发。
串口通讯协议可以分成两层来理解,物理层和协议层。
物理层:约定双方连接的硬件接口,电平标准。
协议层:约定双方传输数据帧的格式,怎么打包,怎么解包。
二、 物理层
比较常见的有四种电气标准:TTL、RS232、RS422和RS485。
TTL | RS232 | RS422 | RS485 | |
---|---|---|---|---|
信号类型 | 电平信号 | 电平信号 | 差分信号 | 差分信号 |
电压范围 | 03.3V或05.0V | -15V~+15V | -0.25V~+6V | -7V~+12V |
传输距离 | 1m | 10m | 1200m | 1200m |
传输模式 | 全双工,点对点 | 全双工,点对点 | 全双工,点对点 | 半双工,多对多 |
最大传输速率 | 100Kb/s | 100Kb/s | 10Mb/s | 10Mb/s |
单工:只允许单向通信
半双工:同一时刻只允许单向通信,也就是在发送时无法接收数据
全双工:同一时刻允许双向通信,也就是在发送时也可以接收数据
三、协议层
不管物理层用哪种标准,只要使用异步收发,通讯的数据帧格式都是相同的,由以下四部分组成:起始位、数据位、校验位和停止位。
-
起始位
数据帧的起始信号由1个逻辑 0 的数据位表示。
-
数据位
在数据帧的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为 5、6、7 或8位长。
-
校验位
在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity)。
奇校验要求有效数据和校验位中
1
的个数为奇数,比如一个8位长的有效数据为:01101001
,此时总共有 4 个1
,为达到奇校验效果,校验位为1
,最后传输的数据将是8位的有效数据加上1位的校验位总共9位。偶校验与奇校验要求刚好相反,要求帧数据和校验位中
1
的个数为偶数,比如数据帧:11001010
,此时数据帧1
的个数为4个,所以偶校验位为0
。0 校验是不管有效数据中的内容是什么,校验位总为
0
,1校验是校验位总为1
。 -
停止位
数据帧的停止信号可由 0.5、1、1.5 或2个逻辑1的数据位表示,只要双方约定一致即可。
通信耗时计算:
假设波特率为9600,8位数据位,无校验位,1位停止位。那么传输100个字节的数据需要多长时间?
已知一个字节由8的比特组成,传输一个字节只需要一个数据帧=1个起始位+8个数据位+0个校验位+1个停止位=10bit
波特率为9600,即传输一个bit需要1/9600
s
总时间 =1/9600 * 10 * 100
= 0.10417s
本文标签: MCU
版权声明:本文标题:MCU 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1700289850h381935.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论