uart通信原理及结构
uart通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。
具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。
简单来说UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。
uart通信原理
UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信方式具有传输线少,成本底等优点,缺点是速度慢。串行通信分为两种类型:同步通信方式和异步通信方式。但一般多用异步通信方式,主要因为接受和发送的时钟是可以独立的这样有利于增加发送与接收的灵活性。异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。
每一个字符的传输靠起始位来同步,字符的前面一位是起始位,用下降沿通知收方开始传输,紧接着起始位之后的是数据位,传输时低位在前高位在后,字符本身由5~8位数据位组成。数据位后面是奇偶校验位,最后是停止位,停止位是用高电平来标记一个字符的结束,并为下一个字符的传输做准备。停止位后面是不同长度的空闲位。停止位和空闲位都规定为高电平,这样可以保证起始位有一个下降沿。UART的帧格式如图2.1所示。
UART的帧格式包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、5~8位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。
在串口的异步通信中,数据以字节为单位的字节帧进行传送。发送端和接收端必须按照相同的字节帧格式和波特率进行通信。其中字节帧格式规定了起始位、数据位、寄偶效验位、停止位。起始位是字节帧的开始。使数据线处于逻辑0状态 ,用于向接收端表明开始发送数据帧,起到使发送和接收设备实现同步。停止位是字节帧的终止,使数据线处于逻辑1状态。用于向接收端表明数据帧发送完毕。波特率采用标准速度9600bit/s。
这种格式是由起始位和停止位来实现字符的同步。UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等
UART的结构
UART的设计采用模块化的设计思想,主要分为 3个模块:数据发送模块、数据接收模块及波特率发生器控制模块。发送模块实现数据由并行输入到串行输出,接收模块实现数据由串行输入到并行输出,波特率发生器模块控制产生UART时钟频率。
从图中可以看出UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分组成且控制逻辑一般是由MP即微处理器模块实现,图中的对象器件一般指和CPU进行通信的外围串行通信设备类打印机等。
连线采用最简单的3线制连接模式,即只需要两根信号线和一根地线来完成数据收发。而FPGA 只需要选择两个普通I/O引脚分别与接口芯片MAX3232对应引脚T2IN、R2OUT相连即可完成将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/ CMOS 电平的转换。一个MAX3232芯片可以支持两个串口的电平变换,我们选择其中的一组接口,图中的4个电阻可以省去。在电路中加入了0Ω的跳线电阻,是为了在这组接口出故障时可以方便地跳线,使用另一组接口。
UART模块设计
接收模块接收模块的实现方法
接收的数据帧是可编程的。它包括了1个起始位、5~8个数据位、1个可选奇偶校验位和1~2个停止位,这些都可以通过线控制寄存器(UCONn)来设置。接收器还可以检测到溢出错误、奇偶校验错误、帧错误和中止状况,每种情况下都会将一个错误标志置位。
A.溢出错误表示新的数据已经覆盖了旧的数据,因为旧的数据没有及时读走;
B.奇偶检验错误表示接收器队接收到的数据进行奇偶校验,奇偶检验结果错误;
C.帧错误表示接收到的数据没有有效的停止位;
D.中止状况表示RxDn的输入被保持为0状态超过了一个帧传输的时间;
E.在FIFO模式下接收FIFO不为空,但接收器已经在3个字时间内没有接收到任 何数据,就认为发生了接收超时状况。
接收模块的端口信号
此模块是本设计的重点,完成对并行数据的串行输出。接收器的端口信号如下图3.3所示。
非常好我支持^.^
(84) 43.8%
不好我反对
(108) 56.2%
相关阅读:
- [电子说] fpga的开发流程有哪些步骤?fpga和嵌入式系统的区别在哪里? 2023-10-24
- [电子说] STM32H7芯片系列中定时器同步启动并输出PWM波形的实现方法 2023-10-24
- [电子说] STM32H7时钟I/O响应频率和定时器最高频率的测试方法 2023-10-24
- [人工智能] 研华推出EPC-B3000系列嵌入式工控机,搭载先进X86架构CPU,助力边缘人工智能应用 2023-10-24
- [嵌入式威廉希尔官方网站 ] 探讨嵌入式系统的软硬件框架 2023-10-24
- [电子说] 专题一:为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品 2023-10-23
- [电子说] 专题二:为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品之规格对比 2023-10-23
- [电子说] GPU是否有替代方案? 2023-10-23
( 发表人:龚婷 )