参考链接:一文搞懂UART通信协议 - 知乎
uart接口,主要应用与低速的小数据量的数据传输场景,因为使用场景非常多,常规mcu芯片通常把它称为“串口之王”。uart的发送方和接收方通过波特率来传输数据,双方的波特率误差范围是在10%以内就可以。(波特率-每秒传输的最大位数)。
当uart出现在芯片中时,从验证角度看,需要梳理以下几个方面。
1. uart在系统map里寄存器地址范围,数量。寄存器手册。
2.uart的工作模式有哪些?每个工作模式使用什么样的数据协议。数据协议依照不同的工作模式会有差别。
工作模式有很多,例如异步模式,流模式,缓存通讯,dma,处理器通讯,同步,智能卡模式,半双工,红外模式,lin模式。
数据帧的组成有:起始位 1bit(低电平),数据位 8/9 bits, 停止位 0.5/1/1.5/2 bits(高电平)。 同时奇偶校验位在停止位的前一位(不一定有,看寄存器配置),数据帧依据工作模式的不同是可以被设计的。
IDLE帧:一串连续的1,证明总线空闲。(高电平),idle帧包括了停止位。
断开帧: 一串连续的0,证明uart与外部没有连接上。(低电平有效)
3.怎么通过寄存器配置uart的波特率以及怎么计算当前的波特率。 时钟频率不同的两个uart设备可以连接,但是波特率必须相同,约定的数据包格式必须相同。
4. 错误检查机制有哪些,哪些需要以中断的方式让cpu知道,然后进行处理。
噪声错误,帧错误,奇偶校验错误,数据溢出错误等。
5.uart的使用场景有哪些。
单工:只能从一边到另一边的通信,一开始就定义好哪一边是发送端,哪一边是接收端,不可逆,通道是单向的;
半双工:允许数据在两个方向上传输数据,但是在某一时刻,只允许数据在一个方向上传输;
全双工:允许数据同时在两个方向上传输。
同步模式:需要额外加时钟。
异步模式:不需要时钟。
6.支持低功耗模式嘛?
红外模式下有low power模式,数据传输的速率可以调节变慢。
7.cpu的睡眠唤醒,由uart唤醒。
8.uart 和lin怎么配合使用。
首先要保证uart和lin的波特率设定是一致的。设定好之后,uart的协议可以兼容lin协议,使数据流流动起来。
验证思路小结
1.uart的每种工作模式要验证。每种工作模式下的细节功能也要验证到。
2.多种uart存在在一个芯片里,可以使用对接的方式,验证数据通路。
3.针对于单个uart可以外接vip来充分验证uart除连通以外的功能,比如波特率抖动范围符合预期的验证。