UART串口通讯协议

一、UART定义

        UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种通用的串行异步全双工数据收发传输器(总线)。

  1. 异步:在串口通信过程中没有对应的统一时钟线,只有发送TX接收RX和地线GND.

  2. 全双工:指的是在串口通信过程中,主机和从机可以同时接收和发送数据。

  3. 串行:只数据的发送与接收均通过一根线逐位进行传输。

二、UART协议

       由于串口协议没有统一的时间线,所以为了能统一发送和接收一帧数据相邻位间的时间间隔,需要在传输前约定好双方采用统一的波特率(即每秒传输的位数(bit)),从而使发送和接受双方以相同的时间间隔来发送和接受下一位的数据。

串口数据包的基本组成

我们可以看到数据线TX与RX在空闲状态置高电平,一帧数据由一位起始位、8位数据位、一位校验位和一位停止位组成。

起始位:由1个逻辑 0 的数据位表示

结束位:由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示

有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为 5、 6、 7 或 8 9位长

校验位:可选,为的是数据的抗干扰性。

校验方法分为:

1-奇校验(odd)、   2-偶校验(even)

3-0 校验(space)、 4-0校验(mark)

5-无校验(noparity)

三、example

下图是uart协议传输一个”A”(8-bit,hex码为0x41)字符通过示波器的uart解码而得到的波形示意图

 

### UART串口通信协议介绍 UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发传输器,是一种用于异步通信的硬件电路。通过这种机制,设备能够以串行形式发送接收数据[^2]。 #### 数据传输特性 UART定义了一套完整的数据传输格式与规则体系,确保不同设备间的数据交换顺畅无阻。其核心在于利用一组特定的控制信号以及数据线路支持双向串行通信模式。具体而言: - **起始位**:标志着一帧数据开始; - **停止位**:表示当前帧结束; - **校验位(可选)**:用来验证接收到的信息准确性; - **数据位**:实际要传送的有效负载部分; 这些参数共同决定了如何解释每一比特流的内容及其边界条件[^1]。 #### 物理层标准 常见的物理接口标准涵盖了多种规格,比如RS-232、RS-422 RS-485等。每种都有各自的特点,在不同的应用场景下发挥着重要作用。例如,某些可能更适合长距离传输而另一些则更注重高速率性能表现。 #### 应用场景局限性 尽管广泛应用于各种嵌入式系统之间简单的命令交互或是调试用途上,但UART也存在一定的局限之处。一方面是因为它的传输速率相较于其他现代技术来说并不算高;另一方面则是由于缺乏同步时钟保护措施使得易受外界电磁干扰影响稳定性[^3]。 ```c // C语言中的简单UART初始化函数示例 void uart_init(unsigned int baud_rate){ // 假设这里是对寄存器的操作来设置波特率其他配置项 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值