通信协议:UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。 ### 通信协议:UART #### 一、UART概述 **UART**(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种用于异步通信的通用串行数据总线,广泛应用于嵌入式系统中。其主要功能是实现全双工的数据传输和接收,能够在主机与辅助设备之间建立通信连接。 #### 二、UART的特点 1. **双向通信**:UART支持双向数据传输,可以同时发送和接收数据。 2. **全双工传输**:在通信过程中,发送端和接收端可以同时工作,提高了数据传输效率。 3. **异步通信**:与同步通信不同,异步通信不需要额外的时钟信号来同步发送端和接收端,而是通过起始位和停止位来实现数据包的边界定义。 #### 三、UART的工作原理 - **发送过程**:UART的发送逻辑对从发送FIFO读取的数据执行“并行到串行”转换,输出起始位、数据位、奇偶校验位和停止位组成的串行位流。 - **接收过程**:接收逻辑对接收到的位流执行“串行到并行”转换,并检查溢出错误、奇偶校验错误、帧错误和线中止错误。 #### 四、UART的接口 UART通常包含以下接口: - **TX ( Transmit )**:数据发送接口。 - **RX ( Receive )**:数据接收接口。 - 在两个设备间,TX与RX需要交叉连接,即A设备的TX连接到B设备的RX,反之亦然,以确保数据能够正确地从一个设备传输到另一个设备。 #### 五、波特率产生 波特率是衡量UART数据传输速度的重要指标,通常通过波特率除数来计算。波特率除数是一个由16位整数和6位小数组成的22位数值,用以决定位周期的长度。通过调整波特率除数,UART可以支持各种不同的标准波特率,从而实现与不同设备之间的兼容性。 #### 六、数据收发流程 - **发送流程**: - 数据写入发送FIFO。 - 按照预设参数开始发送数据。 - 发送完成后,发送FIFO中的数据清空,忙标志位变为无效。 - **接收流程**: - 当检测到起始位时,接收计数器开始运行。 - 根据编程的数据长度,在每个位周期之后对连续的数据位进行采样。 - 如果奇偶校验模式使能,则还会检测奇偶校验位。 - 接收到完整字符后,将其存放在接收FIFO中。 #### 七、中断控制 UART支持多种中断事件,包括但不限于: - FIFO溢出错误 - 线中止错误 - 奇偶校验错误 - 帧错误 - 接收超时 - 发送完成 所有中断事件在发送到中断控制器之前会进行“或运算”,这意味着UART在同一时刻只能向中断控制器发送一个中断请求。通过查询中断状态函数UARTIntStatus(),可以在同一个中断服务函数中处理多个中断事件。 #### 八、FIFO操作 - **FIFO**(First In First Out,先进先出)是一种常见的队列操作方式,用于缓存数据。UART中包含两个16字节的FIFO:一个用于发送,另一个用于接收。 - FIFO可以根据需要配置为在不同的深度触发中断,例如1/8、1/4、1/2、3/4或7/8深度。 - 发送FIFO的基本工作过程是:只要发送FIFO中有数据,就会立即启动发送过程。由于发送本身是一个相对缓慢的过程,因此在发送的同时其他需要发送的数据还可以继续填充到发送FIFO中,直到FIFO被填满。 #### 九、总结 UART作为一种重要的异步通信协议,在嵌入式系统中扮演着关键角色。通过理解其工作原理、接口配置以及数据收发流程,可以帮助开发人员更高效地设计和实现基于UART的通信解决方案。无论是简单的点对点通信还是复杂的多设备网络,UART都能够提供可靠的通信基础。
剩余13页未读,继续阅读
- 粉丝: 12
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助