Uart
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。
Uart工作原理
发送接收
发送逻辑对从发送FIFO 读取的数据执行“并→串”转换。控制逻辑输出起始位在先的串行位流,并且根据控制寄存器中已编程的配置,后面紧跟着数据位(注意:最低位 LSB 先输出)、奇偶校验位和停止位。
在检测到一个有效的起始脉冲后,接收逻辑对接收到的位流执行“串→并”转换。此外还会对溢出错误、奇偶校验错误、帧错误和线中止(line-break)错误进行检测,并将检测到的状态附加到被写入接收FIFO 的数据中。
波特率产生
波特率除数(baud-rate divisor)是一个22 位数,它由16 位整数和6 位小数组成。波特率发生器使用这两个值组成的数字来决定位周期。通过带有小数波特率的除法器,在足够高的系统时钟速率下,UART 可以产生所有标准的波特率,而误差很小。
数据收发
发送时,数据被写入发送FIFO。如果UART 被使能,则会按照预先设置好的参数(波特率、数据位、停止位、校验位等)开始发送数据,一直到发送FIFO 中没有数据。一旦向发送FIFO 写数据(如果FIFO 未空),UART 的忙标志位BUSY 就有效,并且在发送数据期间一直保持有效。BUSY 位仅在发送FIFO 为空,且已从移位寄存器发送最后一个字符,包括停止位时才变无效。即 UART 不再使能,它也可以指示忙状态。BUSY 位的相关库函数是UARTBusy( )
在UART 接收器空闲时,如果数据输入变成“低电平”,即接收到了起始位,则接收计数器开始运行,并且数据在Baud16 的第8 个周期被采样。如果Rx 在Baud16 的第8 周期仍然为低电平,则起始位有效,否则会被认为是错误的起始位并将其忽略。
如果起始位有效,则根据数据字符被编程的长度,在 Baud16 的每第 16 个周期(即一个位周期之后)对连续的数据位进行采样。如果奇偶校验模式使能,则还会检测奇偶校验位。
最后,如果Rx 为高电平,则有效的停止位被确认,否则发生帧错误。当接收到一个完整的字符时,将数据存放在接收FIFO 中。
RS232
个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
RS232缺点
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
RS232 与USB的特点和比较
RS-232与USB都是串行通信,但无论是底层信号、电平定义、机械连接方式,还是数据格式、通信协议等,两者完全不同。 RS-232是一个流行的接口。在MS-DOS中,四个串行接口称为COM1、COM2、COM3和COM4,而绝大部分windows应用程序最多可以有4个外设,但是如果用户要扩充更多外设时,就必须要用插入式串行卡或者外部开关盒实现。 RS-232点对点连接,一个串口只能连接一个外设。
而USB是一种多点、高速的连接方式,采用集线器能实现更多的连接。USB接口的基本部分是串行接口引擎SIE,SIE从USB收发器中接收数据位,转化为有效字节传送给SIE接口;反之,SIE接口也可以接收字节转化为串行位送到总线。由于PC机串口的最高速率仅为115.2kbps,会形成一个速度瓶颈。RS-232系统包括2个串行信号路径,其方向相反,分别用于传输命令和数据,而命令和状态必须与数据交织在一起;而USB支持分离的命令和数据通道并允许独立的状态报告。 USB是一种方便、灵活、简单、高速的总线结构,与传统的RS-232接口相比,主要有以下特点:
(1) USB采用单一形式的连接头和连接电缆,实现了单一的数据通用接口。USB统一的4针插头,取代了PC机箱后种类繁多的串/并插头,实现了将计算机常规I/O设备、多媒体设备(部分)、通信设备(电话、网络)以及家用电器统一为一种接口的愿望。
(2) USB采用的是一种易于扩展的树状结构,通过使用USB Hub扩展,可连接多达127个外设。USB免除所有系统资源的要求,避免了安装硬件时发生端口冲突的问题,为其它设备空出硬件资源。
(3) USB外设能自动进行设置,支持即插即用与热插拔。
(4) 灵活供电。USB电缆具有传送电源的功能,支持节约能源模式,耗电低。USB总线可以提供电压+5v、最大电流500mA的电源,供低功耗的设备作电源使用,不需要额外的电源。
(5) USB可以支持四种传输模式:控制传输、同步传输、中断传输、批量传输,可以适用于很多类型的外设。
(6)通信速度快。USB支持三种总线速度,低速1.5Mbps、全速12Mbps和高速480Mbps。
(7)数据传送的可靠性。USB采用差分传输方式,且具有检错和纠错功能,保证了数据的正确传输。
(8)低成本。USB简化了外设的连接和配置的方法,有效地减少了系统的总体成本,是一种廉价的简单实用的解决方案,具有较高的性能价格比。
RS-232应用范围广泛、价格便宜、编程容易并且可以比其它接口使用更长的导线,随着USB端口的越来越普遍,将会出现更多的把USB转换成RS-232或其它接口的转换装置。但是RS-232和类似的接口仍将在诸如监视和控制系统这样的应用中得到普遍的应用。对习惯使用RS-232的开发者和产品可以考虑设计USB/RS-232转换器,通过USB总线传输RS-232数据,即PC端的应用软件依然是针对RS-232串行端口编程的,外设也是以RS-232为数据通信通道,但从PC到外设之间的物理连接却是USB总线,其上的数据通信也是USB数据格式。采用这种方式的好处在于:一方面保护原有的软件开发投入,已开发成功的针对RS-232外设的应用软件可以不加修改地继续使用;另一方面充分利用了USB总线的优点,通过USB接口可连接更多的RS-232设备,不仅可获得更高的传输速度,实现真正的即插即用,同时解决了USB接口不能远距离传输的缺点(USB通讯距离在5米内。
Uart这里指的是TTL电平的串口;RS232指的是RS232电平的串口。
TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
Uart串口的RXD、TXD等一般直接与处理器芯片的引脚相连,而RS232串口的RXD、TXD等一般需要经过电平转换(通常由Max232等芯片进行电平转换)才能接到处理器芯片的引脚上,否则这么高的电压很可能会把芯片烧坏。
我们平时所用的电脑的串口就是RS232的,当我们在做电路工作时,应该注意下外设的串口是Uart类型的还是RS232类型的,如果不匹配,应当找个转换线(通常这根转换线内有块类似于Max232的芯片做电平转换工作的),可不能盲目地将两串口相连。
另外再补充其他一点,在自己做串口线时,一般按照下面的规则制作:
PC 对应 外设(例如某开发板)
GND ------- GND
RXD ------- TXD
TXD ------- RXD
CTS ------- RTS
RTS ------- CTS
通常是按照以上交叉一次就可以了,但如果开发板上的串口的RXD是与板上的CPU的TXD相连的,其他也类似的话,即说明已交叉了一次了,那么我们在制作串口线时就不需要按照以上的对应关系做了,而是RXD对应RXD,TXD对应TXD,其他也一样。
评论
查看更多