单总线UART通信原理及机制

UART单总线通信原理与可靠性机制解析
一 工作原理

        UART单总线通信双方仅用一根通信引脚连接,该通信脚既用于数据发送,又用于数据接收。

 ​

注意事项:

1TX_HTX_S 为串行数据输出;RX_HRX_S 为串行数据接收

2)主机、从机硬件上需要做好电阻匹配,确保通信时达到有效高、低电平。

3TX_HTX_S 引脚必须支持“串行输出”和“输入高阻”两种状态的快速切换,在串口发送数据时为“串行输出”,发送完成后立即切换成“输入高阻”释放总线。

 UART单总线与双总线通信对比

 

二 通信帧格式

1)同步字:开始2 Byte同步字可防止休眠、唤醒后串口丢失数据后 2 Byte用于多包级联发送时,确保多包之间有足够的时间供MCU处理数据

20x23:表示一个通信包发送的起始位;0x27:表示一个通信包发送错误,再次重传的起始位

30x2E:表示一个通信包的结束

4)流水号:标识一个通信包的序号,同时用于区分来自主机/从机的通信帧

5)命令、长度、数据:代表通信帧的主要数据内容

5)校验位:用于校验一个通信帧内容是否正确

 三 可靠性机制

1、时间片同步

 

1)时间片间隔默认为T112ms);

2)主机TX_H发送完B包,从机RX_S收到后,从机调节自身时间片,T2300us-5ms)后发送C数据包;

3C数据包发送完成后,从机时间片恢复到T312ms),至此以后从机时间片与主机时间片保持同步。

注意事项:

1)时间片同步机制用于尽量避免主机/从机随机进行数据发送而导致通信冲突。

212ms时间片来源,传输250字节所需实践,(250*10/400k=6.25ms),数据传输约占7ms,剩余时间用于等待ACK

2、主动重传

1)单总线通信时,主/从机在数据发送过程中会接收到自身发送的数据;

2)若接收到本身发送的数据包校验失败,则认为数据发送失败;

3)数据发送失败后,延时T1时间,再次发送原数据帧;

4)主动重传只进行一次重传

3、时间片冲突及主动重传

 

1)如上图,TX_H发送数据包A时,TX_S也发送了数据包C,在T1时间内TX_H, TX_S产生了时间片冲突;

2)在单总线的硬件设计上,主机数据优先级高,即主机的数据包可以被完整的接收;

3)从机在C数据包发送完成,由于无法完整接收到自身数据包,则在T212ms)时间后主动发送重传包DC的重传数据包)。

4、ACK机制及超时重传

1)当主机/从机接收到对方的请求数据帧时,在该时间片内回应ACK,如图1

2)若在12ms时间片内,没有接收到对方的ACK,则进行数据帧超时重传,如图2

3)数据帧超时重传机制最多重传3次。

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值