UART综述
UART即通用异步接收器和发送器(Universal Asynchronous Receiver and Transmitter),是一种用于连接两个计算系统的简单、低成本的串行接口,对高速率串行通信具有更高的可靠性,需要的线缆数目要少于并行传输,同时支持远距离的串行通信。
图1显示了两个使用UART进行串行通信的系统。UART支持多系统间的串行通信,它的发送器功能是将并行数据发送至传送FIFO暂存,而后串行发出。因此UART可减轻处理器的工作负担,将并行数据传输无缝转换为串行方式,实现对每个通道的串行通信的管理并检查串行数据通信的错误。
图1 UART工作示意(略)
图2显示了数据终端设备(DTE)和数据通信设备(DCE)之间的典型UART数据传输。其中发送数据(TxD)和接收数据(RxD)均为数据信号,其他信号(RTX、CTS、DTR、DSR)则用于握手和控制,以避免数据丢失。
图2 UART数据传输示意(略)
飞利浦UART方案
综述
飞利浦的UART系列包括工业UART系列和16C UART系列。工业UART系列包括SCC26、SCC68、SC26C、SC28C、SC28L。其中SC28L201/202是两款高速、低功耗的单/双UART,具有实时数据错误检测、智能中断仲裁及256字节的FIFO;SC16CxxxB是先进的高速产品,电压范围更广,其波特率为5Mbps,具有高速总线周期。
飞利浦的UART产品可以提供的特性包括:产品线宽广,1~8通道器件适用于不同应用;工业级温度;低功耗,适用于使用电池的系统;扩展的中断系统和自动RS485功能,降低了软件和处理器开销;硬件和软件数据流控制,可以防止数据丢失,摩托罗拉或英特尔接口可选,兼容性好,设计周期短。
此外,独立的飞利浦UART还支持自动回传、用于在系统中调试的回传功能以及可用于无线点到点数据通信的IrDA接口。
飞利浦UART应用广泛,随处可见:基站、导航系统等电信或网络通信系统;电脑、打印机等计算系统;MP3、自动售货机等消费类产品及汽车控制箱、煤气表等工业或汽车产品中都能看到它的身影。
飞利浦UART正在不断地进行优化,以满足各种新设计的要求。目前它可以为IrDA、蓝牙、GPRS和GPS等各种不同的无线设备提供通信能力,其解决方案包括支持额外的通道、深的FIFO、快速总线周期、高波特率、先进的中断系统与RS232和RS485通信。通过使用飞利浦UART,CPU可以更多地关注于其他任务。图3给出了典型的UART系统与RS485串行接口的通信示意。
图3 UART系统与RS485串行接口的通信示意(略)
下面将以单通道UART芯片SC28L201与双通道UART芯片SC28L202为例,详细阐释飞利浦UART产品的特性、优势及应用范围。
高性能单通道UART芯片SC28L201属于工业UART系列,而SC28L202则是双通道UART芯片。两种芯片都为全双工独立UART,拥有256字节的FIFO供接收器和发送器。
其特性包括:
13个可编程I/O端口,3V和5V工作电压,允许5V输入
为摩托罗拉或英特尔总线接口设计的引脚选择
波特率最高可达3.125Mbps,自动的RTS/CTS和Xon/Xoff数据流控制
掉电模式(< 10 A)与Xon/Xoff字符识别
16位可编程计数器/计时器
智能中断仲裁系统(I2A)
专为RS485应用提供的自动唤醒(9位)模式
线路中断检测和状态变化检测
接收器超时模式和接收器的看门狗定时器
实时传输错误校验
中断请求和确认引脚
工业级的温度范围和48针TSSOP封装
SC28L201/202的优势在于:
1)通过智能中断仲裁(I2A)特性可将与中断服务相关的CPU开销降至最低,从而提高了系统性能,使得处理器得到解放。其中,智能中断仲裁(I2A)是一种用于判断中断请求是否应当发往主机的过程,它的作用是仲裁多个中断请求,识别最高优先级的中断请求并将中断向量内容报告给主机。其优势在于能将CPU中断开销降至最低,使得处理器有更多的时间来处理其他功能,同时提供了通道数、中断源、以及FIFO充满程度。
2)实时数据错误校验特性,用于实时验证正确的数据是否抵达目的地,确保了数据的高度完整性。减轻处理器在按字节检验方面的负担,减少为处理器检验而发回数据块带来的延时。如图4所示。
图4 实时数据错误校验特性示意(略)
图中蓝线显示的是数据在进行存储和发送,而后它与半位时间延迟接收到的数据相对比。红线显示的是远端UART传输的接收数据。其中,任何一个错误都将产生一个中断。
3)支持处理器在每个中断发送一个大的数据包,可在接收器FIFO时提供短信息告警,以确保数据的吞吐量,更可以预防数据丢失和避免数据的重新传输。
上述两器件的应用范围,包括:电信/网络(如:路由器、服务器、VoIP系统)、消费类电子设备和安全设备、工业控制设备和医疗设备、便携设备(如:移动电话、PDA、GPRS、游戏机)、多路工业远程终端(如:显示器、传感器、仪表)、POS系统(如:售货机屏幕、银行终端、加油站)及远程访问路由器(如:控制台、终端、诊断机、调制解调器)等。
桥接芯片
桥接芯片是管理不同总线接口之间通信的新一代接口解决方案,目的在于克服主机接口到外设之间的限制,它的优点包括使设计更加灵活、可保持原有的产品设计方案、缩短产品进入市场的时间并能将原有系统和新系统连接起来。
飞利浦的桥接芯片产品包括:SC16IS7xx、SC18IS60x和SC18IM70x。这些产品在设计时都考虑了低功耗、低电压、高数据吞吐量、高数据完整性等特性。其中,SC16IS7xx是以SPI或I2C为主连接到UART的产品,它拥有最小限度主机连接、支持RS485、包含IrDA支持无线连接;
SC18IS60x是以SPI为主连接到I2C总线的控制器,全双工高速SPI主接口带快速I2C设备接口,可编程GPIO且可用TSSOP封装;而SC18IM70x是以UART为主连接到I2C总线的控制器,支持RS232带快速I2C设备接口。
SPI总线和I2C总线
SPI总线是4线路全双工同步串行数据连接,连接到SPI总线的设备分为主设备及从设备,主设备发起数据传输,通过芯片选择(CS)针控制从设备,互连的设备间共享同一个VCC和GND。SPI总线适用于手持和其他移动平台系统为代表的数据流传输应用。
I2C总线是飞利浦在80年底开发的内部集成电路总线。它使用两线路(SCL为串行时钟,SDA为串行数据)进行简单的主-从通信,具有支持多主设备的总线带仲裁功能,其中的每个IC设备都通过其自身地址进行识别,它对于字节传输的数量没有严格限制,具体的开始条件为--当SCL处于“高电平”(HIGH)状态时,
SDA线路上有从高(HIGH)到低(LOW)的电平跳变。
SPI和I2C总线的区别在于:SPI更快,最高可达15Mbps,采用全双工的工作方式,无需“等待确认”,但需要更多连线,扩展也要求有额外的芯片选择引脚;而I2C线路更少,更容易连接设备,成本更低,但属于半双工,速率更低(400kHz),在设备地址识别和等待确认方面的时间开销更大。
SC16IS7xx
下面将以SC16IS7xx为例,阐桥接解决方案的特性、优势及应用范围。SC16IS7xx是I2C或SPI主接口连接到UART(RS232/RS485)/IrDA/GPIO设备的桥接解决方案。
SC16IS7xx的主要特性包括:
全双工UART、可选I2C或SPI主总线接口;
连接到VDD的I2C/SPI针适用于I2C总线接口,连接到GND的适用于SPI总线接口;
2.5V或3.3V操作,允许5V输入;
低功耗:睡眠模式< 30 A,操作 < 6mA;
UART波特率最高5Mbps;
64字节FIFO;
独立的使能/取消发送器和接收器;
自动硬件和软件数据流控制;
自动RS485支持,RS485自动检测;
硬件和软件复位,POR(上电复位,Power-On Reset);
IrDA SIR速率最高1.152Mbps,I2C速率最高400Kbps,SPI速率最高15Mbps;
8个可编程GPIO;
时钟频率在2.5V时最高为48MHz,3.3V时最高为80MHz;
工业级温度,可用HVQFN、TSSOP封装。
SC16IS7xx的优点包括:可以大大减少到主机的连线;兼容工业标准UART;支持I2C或SPI总线主机接口;自动UART数据流控制,可预防数据丢失;8个可编程I/O针,用于调制解调器控制、键盘和LED灯;可降低连接多个设备的成本及系统中的硬件和软件资源开销。
SC16IS7xx的应用领域包括:同步到异步的接口;SPI / I2C到RS232或RS485的通信;
IrDA无线通信;需要更多UART信道或要求更高性能UART的SPI / I2C系统。典型应用范例包括:移动电话、网络诊断终端;工业面板接口;移动访问服务器;蓝牙和GPRS接口;
无线IrDA数据端口及游戏机等。
中电网在线座谈网址:
http://seminar.chinaecnet.com/051208/jchf.asp
问答选编
问:桥接器是否可以桥接UART和USB总线?
答:桥接器不能桥接USB总线。
问:有没有UART到USB的器件,型号是什么?
答:目前我们还没有。
问:使用桥接芯片设计总线连接时,可以随意扩展的设 备,需要注意哪些问题呢?
答:首先是根据系统中MCU的接口资源来选择外扩方 案,同时考虑软件开发的因素。另外,选择I2C扩 展时,总线上所有器件的容限不能超过400pF
。
问:能支持的最大FIFO深度是多少?
答:128 bytes 。
问:UART和桥接通信的保密性能如何?
答:UART是标准协议,任何人都可以读它。
问:有在I2C和UART之间进行转换的IC吗?
答:有,型号是SC16IS75x 。
问:UART可以集成在SoC芯片中,为什么要采用单独 的UART,这样不是增加了成本和电路板面积吗?
答:1.有些应用需要的串口较多,现有的MCU无法提 供。2.外扩的UART是将是一个更加灵活的方案, 客户不用因为外围串口的变化而改变MCU。3.外
扩的UART提供增强的功能,使工程师开发起来更 方便,系统性能更好(如软件流控制、本地回环测 试、485地址自动识别等),所以单独的UART有着
其广泛的应用。
问:要实现高速UART,PCB布局要注意哪些因素?
答:将Rx和Tx尽量靠近,并且需要5V电压运行UART 器件。
问:UART是否带有线路驱动器?如没有,对线路驱动器 有什么要政治要求?
答:不带线路驱动器。对线路驱动器没有特殊的要求。 如果客户采用较高的速率,则要选择支持高速率的 线路驱动器。
问:UART中出现的误码和哪些因素有关?与电源和传 输速率有关吗?
答:与下列因素有关:(1)双方的传输速率和格式要一 致;(2)晶体的精确度(影响波特率)(3)电源干扰 和传输介质导入的干扰。所以跟电源和传输速率
都有一定的关系。
问:如何对UART0的波特率进行设置?
答:通过软件设定。
问:对UART的编程使用什么方法?
答:UART的编程很简单,有许多现有的资源可以利用, 我们也可以提供相关的代码。这也是为什么UART 为什么持续发展了这么多年的原因,因为开发容
易,技术成熟稳定。
问:使用两通道或多通道UART时,如何保证通道间的 绝缘或隔离?一般要达到多少dB?
答:基本上这些通道都是独立的,它在传输时不会影响 到其他通道。
问:UART和RS232有何不同?是否能直接连接?
答:其实UART和RS232是同一个Protocol,可以直接连 接,但RS232的控制器通常会有一个接收芯片来做 搭配。
问:UART的Tx的 TTL电平最多可以传多远?Rx呢?
答:一般在600mm以内可以保证准确,最远的传输距 离跟传输速率及传输环境有关。对于长距离传输, 一般是用RS23或RS485来传输。
问:器件的功率消耗多大?
答:一般情况都低于0.5W。
问:用UART0能发送16位的数据吗?如何进行?
答:UART一次能送出8位的数据,要发送16位的数据 就需要发送两次。UART还做不到一次发送16位 的数据。
问:是否可以将某台设备的I2C总线通过桥转为RS232 或RS485连接到其他设备,再转换成I2C总线实现 多设备间的统一总线控制?
答:不要这么复杂,用Philips的I2C 开关即可。
|