0%

9-1USART串口协议

通信接口

•通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统
•通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

名称引脚双工时钟电平设备
USARTTX(数据发送脚)、RX(数据接收脚)全双工异步单端点对点
I2CSCL(时钟)、SDA(数据)半双工同步单端多设备
SPISCLK(时钟)、MOSI(主机输出数据脚)、MISO(主机输入数据脚)、CS(片选:指定通信对象)全双工同步单端多设备
CANCAN_H、CAN_L(差分数据脚,2个脚共同表示一个差分数据)半双工异步差分多设备
USBDP、DM(差分数据脚)半双工异步差分点对点
全双工:通信双方可以同时进行双向通信,一般来说,全双工都有2根通信线
半双工:可以双向通信,但在一个时刻,只能一方在发送,另一方在接受,一般来说,半双工有一根数据线,(CAN和USB的差分线是组合的一根数据线)
单工:只能由一个设备到另一个设备

I2C和SPI有单独的时钟线,所以它们是同步的,接收方可以在时钟信号的指引下采样。
其他的没有时钟线,需要双方约定一个采样频率,还需要加上帧头帧尾进行对齐,也就是异步通信

单端信号的引脚高低电平都是对地的电压差,因此单端信号通信双方必须共地。
差分信号:是靠2个差分引脚的电压差来传输信号,可以不需要GND,差分信号传输速度和距离都很高,性能好

串口通信

•串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
•单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力

硬件电路

简单双向串口通信有两根通信线(发送端TX和接收端RX)
TX与RX要交叉连接
当只需单向的数据传输时,可以只接一根通信线
当电平标准不一致时,需要加电平转换芯片

硬件电路

电平标准

•电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
•TTL电平:+3.3V或+5V表示1,0V表示0
•RS232电平:-3-15V表示1,+3+15V表示0
•RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)

串口参数及时序

•波特率:串口通信的速率(每秒传输码元的速率,在二进制下,等于比特率,单位是bit/s)
•起始位:标志一个数据帧的开始,固定为低电平(固定为低电平是因为要打破空闲状态的高电平)
•数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
•校验位:用于数据验证,根据数据位计算得来
•停止位:用于数据帧间隔,固定为高电平(为下一个起始位做准备)
串口参数及时序
数据位,低位先行。
例如要发送一个数据0x0F,二进制就是0000 1111
要从低位先反过来发送,即先发送1111,再发送0000

校验位包括奇校验和偶校验。
奇校验:包括校验位在内,会出现奇数个1
偶校验:包括校验位在哪,出现偶数个1

例如,发送0000 1111,总共是4个1,4个0。
目前是4个1,是偶数个,如果使用奇校验,校验位是1,就是0000 1111 1,算上校验位是5个1,是奇数。

奇偶校验的检出率比较低,比如有2位数据同时出错,奇偶特性不变,就校验不出了。更高检出率,需要使用CRC校验。