嵌入式硬件篇---USB&UART串口


文章目录


前言

本文简单介绍了UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发传输器 ,是一种常用的串行通信接口 。USB(通用串行总线)和串口(如 UART)是两种不同的通信接口,它们在通信原理、特点和应用场景等方面存在差异,但可以通过 USB 转串口芯片实现二者之间的通信。


一、UART 通信原理

1.发送原理

发送原理:UART 发送端将并行数据转换为串行数据进行发送 。在发送时,先将数据按一定格式进行编码,通常会在数据前加上起始位(低电平) ,表示数据传输的开始,接着是数据位,一般为 5 - 8 位,然后可能有奇偶校验位,用于检验数据传输的正确性,最后是停止位(高电平),表示一个数据帧的结束。发送端按照设定的波特率(数据传输速率),逐位将数据发送出去,通过数据线将信号传输到接收端。例如,要发送字符 'A'(ASCII 码为 0x41,二进制为 01000001),如果设置为 8 位数据位、1 位起始位、1 位奇偶校验位(奇校验)和 1 位停止位,那么实际发送的序列就是 0(起始位)、01000001(数据位)、1(奇校验位,因为数据位中 1 的个数为 3,是奇数,所以校验位为 1)、1(停止位)。

2.接收原理

接收原理:UART 接收端在检测到起始位后,开始按照波特率采样数据线,逐位接收数据。接收完数据位后,根据奇偶校验位进行校验,如果校验正确,就去除起始位、校验位和停止位,将剩余的数据位转换为并行数据,供接收设备使用。如果校验错误,则可能会采取重发请求或其他错误处理措施。

二、单片机UART接收十六进制数的处理方式

1.数据解析

数据解析:单片机接收到十六进制数后,首先要根据通信协议确定数据的格式和含义。如果是表示字符的十六进制数,可将其转换为对应的 ASCII 码字符,然后通过串口调试助手或其他显示设备显示出来。例如,接收到 0x41,可转换为字符 'A' 并显示。如果是表示数值的十六进制数,可将其转换为十进制数进行运算或显示。比如,0x1F 转换为十进制是 31。

2.数据存储

数据存储:根据实际需求,将接收到的十六进制数存储到单片机的内存中。可以定义数组或变量来存储这些数据,以便后续处理。例如,定义一个整型数组 buffer[100],将接收到的十六进制数依次存储到数组中。

3.执行相应操作

执行相应操作:根据具体的应用场景,对接收到的十六进制数进行处理。如在控制设备中,接收到特定的十六进制指令码,可控制相应的硬件模块进行动作。例如,接收到 0x01 表示打开某个继电器,接收到 0x02 表示关闭某个继电器,单片机就可以通过控制相应的引脚电平来实现继电器的开合控制。

三、USB通信原理

USB 通信原理:USB 通信基于主从架构,主机(如计算机)控制数据的传输,设备(如 USB 转串口模块)响应主机的请求。USB 采用差分信号传输数据 ,通过四根线(VCC、GND、D+、D-)进行电源供应和数据传输。数据以数据包的形式传输,包含地址、控制信息、数据和校验等字段。

四、USB 转串口通信

1.硬件连接

硬件连接:使用 USB 转串口模块实现 USB 与串口设备的连接。模块一端通过 USB 接口与主机(如计算机)连接,另一端通过串口引脚(TX、RX、GND 等)与串口设备(如单片机、串口传感器等)连接。这样,主机就可以通过 USB 接口与串口设备进行通信。

2.驱动程序

驱动程序:主机需要安装相应的 USB 转串口驱动程序,使操作系统能够识别 USB 转串口模块 ,并将其映射为一个虚拟串口 。驱动程序负责在 USB 协议和串口协议之间进行转换,实现数据的正确传输。

3.数据传输过程

数据传输过程:当主机要向串口设备发送数据时,先将数据按照 USB 协议封装成数据包 ,通过 USB 总线发送到 USB 转串口模块。模块接收到数据包后,由其内部的芯片将数据从 USB 格式转换为串口格式,然后通过串口引脚发送到串口设备。反之,串口设备发送的数据通过串口引脚传输到 USB 转串口模块,模块将数据从串口格式转换为 USB 格式,再通过 USB 总线发送到主机。

五、通信特点与应用场景

1.USB通信特点与应用场景

USB 通信特点与应用场景:USB 具有高速、即插即用、支持热插拔、可连接多个设备 等特点,适用于连接各种外部设备,如打印机、摄像头、移动存储设备等,广泛应用于计算机与外部设备的通信。

2.串口通过特点与应用场景

串口通信特点与应用场景:串口通信具有简单、成本低、抗干扰能力强等特点,适用于近距离、低速的数据传输,常用于单片机与传感器、模块之间的通信,以及一些工业控制领域中设备之间的简单数据交互。

3.USB转串口应用场景

USB 转串口应用场景:在实际应用中,当需要将串口设备连接到具有 USB 接口的主机上时,就会用到 USB 转串口技术。例如,将具有串口接口的调试工具、传感器模块等设备连接到计算机上进行数据采集和调试;在一些嵌入式系统开发中,通过 USB 转串口实现计算机与开发板之间的通信,方便下载程序和查看调试信息。


相关推荐
CHHC18801 小时前
STM32 + keil5 跑马灯
stm32·单片机·嵌入式硬件
Hungry_111 小时前
SPI通信协议
单片机·嵌入式硬件·spi·嵌入式软件
长安——归故李2 小时前
51单片机彩灯控制与数码管结合
汇编·单片机·嵌入式硬件·青少年编程·c#·51单片机·硬件工程
天天爱吃肉82182 小时前
Zcanpro搭配USBCANFD-200U在新能源汽车研发测试中的应用指南(周立功/致远电子)
单片机·嵌入式硬件·汽车·学习方法
Czzzzlq3 小时前
STM32基础教程——输入捕获模式测量PWM频率
stm32·单片机·嵌入式硬件
易保山5 小时前
MIT6.S081 - Lab6 Copy-on-Write(写时复制)
linux·操作系统·c
ZaaaaacK5 小时前
STM32技能综合巩固
stm32·单片机·嵌入式硬件
yuanbenshidiaos6 小时前
stm32面试
stm32·嵌入式硬件·面试
charlie1145141916 小时前
STM32F103C8T6单片机的起始点:使用GPIO输出点亮我们的第一个小灯(标准库篇)
stm32·单片机·嵌入式硬件
DOMINICHZL7 小时前
国产MCU替代STM32全解析:主流方案对比与实战指南
stm32·单片机·嵌入式硬件·gd32