嵌入式硬件篇---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 转串口实现计算机与开发板之间的通信,方便下载程序和查看调试信息。


相关推荐
智者知已应修善业2 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
智商偏低8 小时前
单片机之helloworld
单片机·嵌入式硬件
青牛科技-Allen9 小时前
GC3910S:一款高性能双通道直流电机驱动芯片
stm32·单片机·嵌入式硬件·机器人·医疗器械·水泵、
白鱼不小白11 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D12 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术15 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt15 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘15 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
几个几个n18 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件
Despacito0o21 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库