​【迅为电子】RK3568驱动指南|第十七篇 串口-第197章 串口通信协议

news2024/9/16 17:24:29

瑞芯微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,校验位设置为无,流量控制设置为无。流控是一种管理串行通信中数据传输速率的技术,它确保发送发和接收方之间的数据流平衡,以避免数据丢失或溢出。  .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 ts 集成 supermap

文章目录 1. 依赖安装2. 模块声明3. css 全局引入4. 地图加载 1. 依赖安装 npm install supermapgis/iclient-leafletnpm install leaflet2. 模块声明 env.d.ts declare module leaflet {const L: any;export default L; }declare module supermapgis/iclient-leaflet3. css …

高数3.5 极值与最值

1. 极值 1.1. 定义 1.2. 推论 1.3. 求极值的步骤 1.3.1 方法1 1.3.1.1 例题

BCLinux8.*构建部署nmap 7.95

定义SPEC文件 首先从nmap的github上下载SPEC定义文件,然后进行修改,如下: # To build a static RPM, add # --define "static 1" # to the rpmbuild command line. To build without Ncat, add # --define "buildnc…

FastHTML:使用 Python 彻底改变 Web 开发

什么是 FastHTML?🌐 FastHTML 是一个现代 Python Web 应用程序框架,其真正目的是让 Python 开发人员轻松进行 Web 开发。它大大减少了对 JavaScript 和 CSS 构建交互式和可扩展 Web 应用程序的依赖。FastHTML 通过使用 Python 对象来表示 HTM…

centos虚拟机IP地址频繁变化的原因及解决策略

文章目录 centos虚拟机IP地址频繁变化的原因及解决策略虚拟机IP地址变化的原因解决虚拟机IP地址变化的策略1. 使用静态IP地址Windows系统:Linux系统: 2. 配置DHCP保留3. 使用虚拟化平台的网络功能4. 检查和更新网络驱动程序5. 优化网络配置脚本6. 监控和…

BIO,NIO,AIO编程实战

写在前面 关于IO分类以及IO模型等理论知识,可以参考io之io分类和io模型这篇文章。本文主要来实现Java中相关IO模型实现程序。 1:BIO blocking io,是Java io中对阻塞IO模型的具体实现。 因为不管是server端还是client端,都需要…

JavaSE的【反射】和【动态代理】

作为JavaSE的两个个基础知识,【反射】和【动态代理】被广泛运用到spring、spring boot、mybatis......等等各种地方,等到后面的学习中反复提到这个知识点就会开始懵逼,而且这两个知识点其实也是紧密相连的,很多文章和课程里也并没…

零基础STM32单片机编程入门(三十七) MPU6050陀螺仪传感器详解及实战源码

文章目录 一.概要二.MPU6050芯片介绍1.MEMS传感器原理2.MPU6050芯片简介3.芯片引脚定义4.XYZ轴方向5.芯片内部框图6.芯片常用寄存器 三.MPU6050模块原理图及与模块接口定义使用四.STM32单片机驱动MPU6050读取加速度角速度值实验五.CubeMX工程源代码下载六.小结 一.概要 MPU605…

嵌入式面经篇六——寄存器与存储器

文章目录 前言一、寄存器与存储器1、ARM 的 31 个通用寄存器 R0~R15 中,程序计数器 PC 为 R15、程序链接寄存器 LR 为 R14、堆栈指针寄存器 SP 为 R13。2、寄存器掉电会丢失数据吗?3、NOR Flash 与 NAND Flash 的区别?4、SRAM、DRAM、SDRAM的…

使用Python创建省份城市地图选择器

在这篇博客中,我们将探讨如何使用Python创建一个简单而实用的省份城市地图选择器。这个项目不仅能帮助我们学习Python的基础知识,还能让我们了解如何处理JSON数据和集成网页浏览器到桌面应用程序中。 C:\pythoncode\new\geographicgooglemap.py 全部代码…

Camtasia 2024破解版安装教程+汉化补丁激活2024 破解版激活码

最近,我在网上冲浪的时候,发现了一款录屏软件——Camtasia 2024。它不仅功能丰富,而且操作简单,简直是我的录屏利器!今天,我就来给大家分享一下这款软件的最新功能,让你们也感受一下它的魔力&am…

【LeetCode:3137. K 周期字符串需要的最少操作次数 | 哈希表 + 子串计数】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

政务网站(.gov)专用SSL/HTTPS证书

政府网站在选择SSL证书时不仅需要遵循网络安全法规以及密评整改,更要提升公众信任度。国产服务商提供的专业版SSL证书,全方位符合政务部门对SSL证书的要求 1 算法要求 政务服务网站需要落实等保制度、密评制度,在密码应用上可选择国密算法S…

从0到1教你搭建Android自动化python+appium环境(超详细~)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、需要软件 1. JDK:JAVA安装后配置JDK环境 2. SDK:SDK下载后配置adb环境 3. Python:pyhton语言 4. Pycharm:python脚本编译工具 5. Appium-python-clien…

如何巧妙构建“LDAPS”服务器利用JNDI注入

前段时间看到群友问了这样一个问题: ldap:和rmi:关键字被拦截了,是否还可以进行JNDI注入。方法很简单,就是使用ldaps,但后来发现很多人并不知道怎么搭建LDAPS服务器,正好CoNote里有这个功能,写篇简单的文章…

【大模型】LLM工作原理简述

LLM,即large-language-model,大语言模型。 我们可以观察LLM大模型比如豆包在回复的时候,是不是一个一个字,行业里称之为流式输出的方式给你呈现内容的。为什么会这样呢?这是因为,大模型确实是在一个字一个…

Libero编译怪事(1)计数达不到目标值

最近在开发Libero工程,芯片是AGLN250V2。 其中一段计数的程序,声明了一个integer参数。当该参数大于某一值时,执行状态跳转。 编译烧写后,程序一直无法实现跳转。 以为是由于integer是有符号的,可能出现负值&#x…

IDEA中查看接口的所有实现类和具体实现类

1.IDEA中接口的所有实现类查看 1.CTRLH(hierarchy 结构) 我们选中要查看的接口 按住快捷键ctrlh 在界面右侧可以看到该接口的所有可能实现类 2.右击diagrams->show diagram 选中要查看的接口 右击选择diagrams->show diagram 即可以以图表的方式查看接口和所有实现类…

英智金融行业AI Agent,在金融领域全场景下的业务创新与应用实践

随着全球经济的数字化转型,金融行业也在迅速演变。传统的金融服务已经无法完全满足现代客户对快速、个性化和高效服务的需求。与此同时,市场竞争的加剧、监管环境的变化以及客户期望的提升,促使金融机构不断寻求新的技术来优化运营效率、提升…

设计模式---简单工厂模式

简单工厂模式(Simple Factory Pattern) 是一种创建型设计模式,它定义了一个工厂类,通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方,简化客户端的代码,使得…