通过先进的高性能UART提高串行I/O的连接性能
扫描二维码
随时随地手机看文章
市场融合正在推动对开发新接口的需求,但这也在影响已有接口类型的性能和特性。在目前已有的接口类型中,最常见的是广泛用作标准串行连接的通用异步收发器(UART)。UART可以用做主处理器(如微控制器或嵌入式处理器)和外设之间的通讯接口。在从工业控制到智能手机的大量应用中,这些独立的解决方案变得越来越有吸引力。
UART是在特定模块(如蓝牙、GPS、RFID、多端口以太网服务器)和主处理器或芯片组之间进行通讯的首选接口。因为无论从应用端还是从软件驱动端来看,UART都是一个软件开销最小和复杂性最低的高效接口。尽管UART的发展趋势是更多地集成在处理器或者芯片组中,但这里也存在一个折衷,那些关键芯片需要平衡芯片的面积/成本和性能以及外设选择之间的关系,这意味着处理器和芯片缺乏端口的情况将继续存在。因此,一些特定系统将受益于不同外形尺寸的独立UART。
包括工艺、芯片组、连接技术和外围设备在内的数个市场的发展推动了对新一代高性能UART的需求。连接技术和外围设备的发展趋势决定了市场对具有灵活主机接口的高速UART的需求,这些UART工作在低电压下,功耗很低,可以提供较高的数据速率以满足蓝牙EDR等新连接标准的要求。
新一代系统采用高端处理器,可以在较短时间里处理大量的任务。这些处理器的工作电压分别是3.3V、2.5V或1.8V。因此,甚至如UART这样的基本接口都必须精心设计,以进一步降低CPU开销。为构造高性能的UART,必须考虑以下特性指标:主机接口的性能、UART的FIFO的深度、波特率、电源电压和功耗。低分辨率时钟预定标器、自动支持RS485和先进的封装技术等其它性能也能给某些特定设计带来显著好处。
主机接口和处理时间
UART可以通过并行或串行总线与主机连接。通常许多独立的UART提供两种类型的8位异步存储接口,兼容大多数的摩托罗拉(Motorola)和英特尔(Intel)总线接口。有些UART同时具有两个接口,如恩智浦半导体(NXP Semiconductors)的SC28Lxx和1.8V SC16C85x UART系列。通过配制引脚,这个独立的UART可以被设置成支持Motorola或者Intel的总线接口。在许多手持设备中,一种被称为VLIO (可变延迟I/O)的新型接口也得到了采用,此外新一代1.8V UART将被设计成可以与总线无缝连接(图1)。
图1:具有VLIO(可变延迟I/O)接口的1.8V UART的移动应用示例。
并行总线接口的优点是具有很高的吞吐量,而速度可高达100 Mbps,但缺点是需要大约15根线与处理器连接。为克服这个缺点,或者说是消除对并行总线的依赖性,可以选择如SPI或I2C的标准串行总线与主机相连。当今流行的解决方案是NXP SC16IS7xx系列,这些产品通过I2C或SPI端口实现与主机的无缝连接,并将与主机连接的15根线减少到5根(I2C)和7根(SPI),如图2所示。这个串行UART还有其它一些优点,例如它能为设计工程师提供现成的I2C或SPI到RS232/RS485/IrDa的协议转换器,但缺点是串行总线的速度被限制在400 Kbps(I2C)和15 Mbps (SPI)内。
图2:带有串行接口(I2C/SPI)的NXP SC16IS752高速UART的应用示例。
一旦选定了主机接口,最佳的主机处理时间取决于以下几个要素:UART的 FIFO深度和FIFO计数器、中断触发等级的数量、硬件和软件流程控制。
FIFO深度和FIFO计数器
UART的 FIFO深度直接影响通过UART传输数据所需的CPU开销。FIFO的深度越深,在每个中断就可以有更多数据传输,从而减少CPU的中断。一个标准的FIFO深度范围从16 到 6? 字节。但越来越多的设计要求具有更深FIFO的UART,而可提供具有高达128字节FIFO深度的独立方案的厂商也越来越多。如今市场上具有最深FIFO的UART是NXP公司的SC28L202 和SC28L201,它们的FIFO深度高达256字节。
下面例子说明了更深FIFO的优点。假设UART的传输速率设置为115.2Kbps,并且字符格式为1个开始位、8个数据位和一个停止位,即有10位字符和115.2 Kbps波特率,那么UART接收一个完整的字符需要86.8 ?s时间。如果UART接收器的FIFO是16字节,那么它需要大约1.39ms(16×86.8 ?s)去填满一个接收器FIFO。这时,UART将对主机产生一个接收数据就绪中断,并且主机必须立刻去读取这个接收器FIFO中的数据,否则如果这个UART收到另外的字符,这个接收器FIFO中的数据将会溢出。有了上面的设置,在整个接收过程中,主机将每隔1.39 ms就获得一个来自UART的中断。但如果这个UART的接收器FIFO的容量是128字节,那么UART中断的间隔时间将为原先的8倍(128/16=8),达到11.12 ms,主机处理UART任务的频率也将从每1.39 ms一次降到每11.12 ms一次。主机处理器可以用节省下来的时间去处理其它任务。
在今天的许多应用中,系统需要去读取UART上的线状态寄存器(LSR),以首先确认在接收FIFO上是否有数据。这要求CPU每次从接收FIFO读取一个字符都要轮询LSR,这将显著增加CPU的处理时间。只有少数的独立的UART,比如NXP SC28L202 和 SC16C85x,拥有FIFO计数器,允许CPU在得到这些数据之前就找出在FIFO上的字符数量。这种方法使CPU不必每次都去读取LSR,而是直接从接收FIFO读取数据,从而进一步优化系统。
可编程的中断触发等级
在一些应用中,主机需要在固定时间内接收和响应固定长度的数据包。通过使用UART的中断触发等级,设计工程师可以对UART编程,使其在收到特定数量的字符以后,或者输出特定数量的字符之后,发出一个中断信号。目前的集成UART方案有许多预定义的触发等级,比如1、4、8或者16。这种模式的缺点是,在接收到一个不是1、4、8 或者16字节的数据包以后,设计工程师难以对UART编程以产生中断信号。NXP公司 SC16C850L/852L UART能够提供127个中断触发等级,可以灵活地对UART编程,设计工程师可以在1到 127之间任意设置中断触发等级。
硬件和软件流程控制提供两个通讯UART之间的自动握手机制,将CPU从防止数据在UART FIFO中溢出的任务中解放出来。许多集成的UART并不具备这个功能,在处理器带宽有限、没有时间实现硬件或者软件流程控制的场合,该功能非常关键。越来越多的独立UART具备这个功能,这让设计工程师可以进一步降低CPU的工作量。
如今对高速UART的需求越来越大。目前的连接解决方案,如蓝牙,要求UART在低电压下可以提供高达3Mbps的速度。有了新一代的独立UART,系统可以快速处理和高速传输数据,同时在所有的UART信道里保持数据完整性。目前,大量的独立UART可以在3.3V电压下提供高达5 Mbps的数据速率,而新一代UART,比如NXP SC16C85x 系列,可以在1.8V的电压下提供类似的波特率(图3)。这些类型的UART在关键芯片组的性能和面市时间方面提供了重要的附加价值,同时克服了目前被广泛用在集成解决方案中的1 Mbps UART的局限性。除了速度高之外,许多独立UART还提供对接收机和发射机的运行速度进行独立编程的能力,这使独立UART在高速集群系统和桥接等应用中特别有吸引力。
UART的电源电压、功率和封装
随着处理器和芯片组向低电源电压方向发展,UART也需要支持这些新电压,因此新一代UART已被开发为可工作在3.3V、2.5V和1.8V电压下。为进一步降低功耗,新型的独立UART提供低功耗模式功能,允许在空闲状态下将功耗减少到微安级。
除了低功耗要求外,越来越多采用独立UART的系统还希望UART具有尽可能小的外形尺寸。今天市场上最小的独立UART由NXP公司推出,这些产品采用TFBGA封装,面积为3.5×3.5 mm。
低分辨率时钟预比例器和RS485功能
UART需要时钟源来产生波特率。这个时钟源可以由一个需要外接晶振的片上振荡器产生,或者由一个外部振荡器产生。为保证在使用固定频率时钟源时波特率可以被编程,大部分独立UART使用一个整数除法器,允许UART用整数N(比如1、2、3…)除以时钟源。整数除法器的局限是低整数值的波特率范围较窄。一些较先进的高速UART(如NXP SC16C850L)采用有理数除法器,允许UART用分数除以时钟源,从而提供更宽的波特率范围。波特率根据BR=F/(N + m/16)来计算,式中的N为从1到65k范围内的整数,m为从1到16范围内的整数。使用有理数的好处是能扩大可编程的波特率范围,使获得更高性能和提高传输精度成为可能。
当两个计算机系统以非常高的数据速率进行长距离通讯时,单端方法是不行的,因此RS485和它的微分信号被用来减少网络中的噪音。RS485适用于多点通信系统,但针对大多数集成UART,设计工程师需要编写复杂的软件去支持RS485功能。
许多新一代的独立UART被设计支持RS485,以减少运行在处理器上的软件的复杂性。这些UART有一个内置的功能,无需处理器介入就能自动侦测到RS485的地址。这个功能显著减少了CPU的处理时间,因为它消除了UART对CPU的不断中断请求。因为独立UART支持自动的RS485地址侦测,所以主机处理器可以使UART自动侦测到自己的地址,并一旦完成侦测后就通知处理器。另外,RS485线驱动器方向也可以通过RTS(请求到发送)引脚自动控制,这是一个可以自动侦测高达32个(2线总线)和6?个(4线总线)从设备地址的9位模式(也称多点模式)。
本文小结
处理器和芯片组的最近发展推动了与它们接口的外设的性能升级。最流行和最普遍的外设是UART。如今的发展趋势展示,独立UART已经发展成为高性能解决方案的一部分,将它们用在系统可以显著降低CPU和相关芯片组的负荷。最新的独立UART为设计工程师提供了高速、低功耗接口,以有效地支持了蓝牙EDR等连接方案。新一代UART所具有的更多特性给设计者提供了增值的解决方案,这些方案在缩短面市时间的同时,还进一步优化了系统性能并提高了系统的灵活性。