瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。
【公众号】迅为电子
【粉丝群】258811263(加群获取驱动文档+例程)
【视频观看】嵌入式学习之Linux驱动(第十七篇 串口_全新升级)_基于RK3568
【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板
第197章 串口通信协议
在我们已经了解了串口的基本概念之后,接下来我们将深入探讨串口通信协议。串口通信协议是确保数据在串口上稳定传输的关键,它涵盖了数据的格式,传输的规则,以及通信的流程。
起始位:表示数据传输的开始,数据线上空闲状态是1,从高电平(空闲状态)拉低表示开始传输数据。
数据位:指每个字节中的数据位数,通常为7或8位。
校验位:用于验证传输数据的准确性,其类型包括奇校验、偶校验、0校验、和1校验。
- 奇校验(odd parity): 如果数据中有奇数个1,校验位为1,否则为0。
- 偶校验(even parity): 如果数据中有偶数个1,校验位为1,否则为0。
- 0校验(space parity): 校验位恒为0,如果为1表示错误。
- 1校验(mark parity): 校验位恒为1,如果为0表示错误。
停止位:指在每个数据字节传输结束后发送的位数,通常为1或2位。
197.2 时序波形分析
在上一章节中,我们详细介绍了串口通信的数据结构,包括起始位、数据位、奇偶校验位和停止位的组成。现在,让我们深入下一个章节,对串口的时序波形进行分析和探讨。通过分析串口的时序波形,我们能够更全面地理解数据传输的实际过程和各个信号线的时序关系,进一步揭示串口通信的工作原理和技术细节。
使用逻辑分析仪捕捉到串口波形,如下图所示:
让我们解析一下波形图:当数据线空闲时是高电平,而在数据传输时则会被拉低,图中的第一个脉冲对应于起始位。紧随其后的是8位数据位,它们按照最低有效位(LSB)优先的顺序传输。例如,数据位“00110001”转换成十六进制是0x31,换算成十进制是49。在ASCII码中,49对应的字符是’1’,因此传输的数据是1。数据传输完成之后,总线被拉高。现在的问题是,这个高电平是校验位还是停止位呢?要准确判断,可以继续观察第二帧数据。如果在第二帧数据的传输过程中,总线再次被拉低并开始新的数据传输,那么前一帧数据末尾的高电平应为停止位,而非校验位。
197.2 调试串口的设置
在上一小节我们学习了串口通信协议,现在我们将学习如何设置开发板调试串口,调试串口设置如下图所示,串口终端软件使用的是MobaXterm。
在上图中,我们打开了COM3串口调试,设置波特率为115200,这是因为RK3568源码中配置的串口波特率是115200。数据位设置为8,停止位设置为1,校验位设置为无,流量控制设置为无。流控是一种管理串行通信中数据传输速率的技术,它确保发送发和接收方之间的数据流平衡,以避免数据丢失或溢出。 .