UART串口通信

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,同步至SelectDB 1个月
简介: UART串口通信

简介

无论是单片机还是嵌入式 Linux 开发,串口设备都是最常用到的外设。可以通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。还有很多的模块,比如蓝牙、GPS、 GPRS 等都是使用的串口来与主控进行通信的。

串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个地顺序传输,通信线路简单。与之对应的叫做并行接口,由于种种原因,现在并不常用(比方说需要更多的传输线,增加了成本)。

除了有 UART 外,还有一种成为 USART 的通信协议。 也就是同步/异步串行收发器,顾名思义,既可以进行同步通信,也可以进行异步通信。 所以相比 UART 多了一个同步的功能,在硬件上体现出来的就是多了一条时钟线。 一般 USART 是可以作为UART使用的,也就是不使用其同步的功能。现在的USART并不是很常用,所以仅介绍UART。

1.物理连接

在物理层,只需要三根线即可完成通信。分别是TXDRXDGND。两个设备之间的连接也十分简单,即:A设备的TXD连接B设备的RXD,A设备的RXD连接B设备的TXD,然后A设备和B设备共地即可。如下图所示:

2.通信过程

串口通信的首发线是分离的,所以对于通信线来说,只需要发送或者接收。通信格式如下图所示。发送端按照下图的时序发送数据,即可在接收端接收,然后做相应处理。

  • 空闲位:数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示没有数据线空闲, 没有数据传输。
  • 起始位:当要传输数据的时候先传输一个逻辑“0”,也就是将数据线拉低,表示开始数据传输。
  • 数据位:数据位就是实际要传输的数据,数据位数可选择 5~8 位,我们一般都是按照字节 传输数据的,一个字节 8 位,因此数据位通常是 8位的。低位在前,先传输,高位最后传输。
  • 奇偶校验位: 这是对数据中“1”的位数进行奇偶校验用的,可以不使用奇偶校验功能。通常使用的是奇校验或者偶校验这样做可以提高数据传输的准确性。
  • 停止位:数据传输完成标志位,停止位的位数可以选择 1 位、 1.5 位或 2 位高电平,一般都 选择 1 位停止位。

一般最常见的参数配置是:8位数据位,1位停止位,其他位都没有,然后就是波特率设置

波特率是个很重要的参数,波特率就是UART数据传输的速率,也就是每秒传输的数据位数,一般选择 9600、115200 等。

3.电平标准

一般UART的电平标准有TTLRS232,TTL和RS232的具体电平标准如下图所示:

这种通信标准一般是通过硬件来实现的。

4.总结

串口通信是嵌入式开发中非常常用的一种通信方式,从最简单的51单片机到STM32,再到更高端的嵌入式主控芯片,都大量配备了这种通信方式,一般如果通信出现问题,记得检查波特率的配置是否准确。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
Rust 数据可视化 C++
WASM性能分析-插桩方案
本文结合了代码插桩和性能火焰图的技术,以 WebAssembly 为例介绍了性能分析的方法和相关实现。
429 13
|
6月前
|
存储 SQL 缓存
StarRocks 存算分离在京东物流的落地实践
本文分享了京东物流在StarRocks存算分离架构上的实践与成果。通过将UData平台从存算一体升级为存算分离,显著提升了查询性能和资源利用率,同时大幅降低了存储成本(90%)和计算资源成本(30%)。文章详细介绍了存算分离的背景、部署方案、性能表现及优化措施,包括联邦查询、实时写入、Compaction调优等关键技术点。未来,京东物流将持续推动存算分离的应用拓展,并探索更多降本增效策略,如Stream Load任务合并与主动缓存管理。
|
人工智能 JSON 数据格式
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
【9月更文挑战第6天】RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
3057 9
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
2593 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
人工智能 Java 测试技术
开源上新|FunASR英文离线文件转写软件包发布
开源上新|FunASR英文离线文件转写软件包发布
|
SQL 关系型数据库 API
SqlAlchemy 2.0 中文文档(七十二)(1)
SqlAlchemy 2.0 中文文档(七十二)
211 0
|
机器学习/深度学习 存储 算法
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现(下)
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
|
数据采集 定位技术 Python
Python爬虫IP代理技巧,让你不再为IP封禁烦恼了! 
本文介绍了Python爬虫应对IP封禁的策略,包括使用代理IP隐藏真实IP、选择稳定且数量充足的代理IP服务商、建立代理IP池增加爬虫效率、设置合理抓取频率以及运用验证码识别技术。这些方法能提升爬虫的稳定性和效率,降低被封禁风险。