嵌入式应用中的互连技术应用
CAN和LIN总线起源于汽车产业(图3)。但是当CAN已经被广泛用于自动控制、系统控制和机器人中时,LIN仍然仅将其应用范围锁定在汽车领域。在大量微控制器上提供的CAN接口构成了实现多种协议和现场总线的基础。此外,CAN还采用了一种不同于大多数嵌入式网络的寻址方式。

大部分网络协议对接收器进行标识,有时候也标识出发送器。CAN则对数据包的数据进行标识。它的接口通常具有多个用来检验输入数据包标识符的滤波器。滤波器可以屏蔽某些位,这使得它们能够识别数据类别并忽略其余部分。而且,CAN是为数不多的实现了优先级策略的系统之一,优先级策略也属于标识符处理过程的一部分(因此最高的标识符值具有优先权)。
其它低速(低于1Mbps)互连包括美信公司的专用1-Wire协议(图4)。该异步协议仅需利用一个片上二极管和电容器就可以给联网器件提供最小量的功率。这种寄生方法适用于简单的传感器和通常与1-Wire配合使用的控制芯片。虽然该方法并不是专门针对1-Wire协议的,但在这类产品中应用得最普遍。

更高速的互连通常以较早的低速技术为基础。FlexRay总线就是由CAN发展起来的,这两种总线都可以用于汽车领域。相对于CAN总线,FlexRay的速度更快(10Mbps)、更复杂并且更具鲁棒性,但是在大部分新型汽车中,以上两种总线和LIN总线都是同时存在的。
FlexRay是面向时间关键应用而设计的,这类应用(例如汽车线控制动)需要考虑安全性、可靠性、冗余性和容错性等因素。FlexRay可以与时钟级同步,并对传输周期进行划分以实现多个设备间数据交换的细粒度控制。虽然FlexRay也许能够以类似CAN的连接方式应用于其它环境,但是其它高速互连更适用于非汽车类嵌入式应用。
高速互连
除了FlexRay以外,经检验接口传输的数据量往往比一个数据包所能容纳的更少。与所采用的处理器的速度相比,网络流量往往太小。在很多情况下,必须在保持更高性能的同时能够尽量减少互连线的数量。此时,USB、PCI Express和SRIO等技术开始发挥作用。
在嵌入式领域中USB不断获得青睐。USB最初成功应用于键盘、鼠标、打印机等PC外围设备的互连,而现在它被普遍用于连接特定嵌入式应用中的模数转换器(ADC)、发动机和数码相机。单个USB主接口能以高达480Mbps的速度支持126个设备。
通常,USB与一台主机和一组外围设备协同工作。尽管如此,USB所作的可能仍然只是处理杂事,同时利用SMSC公司的USB2524 MultiSwitch和DisplayLink公司基于USB的显示适配器支持多主机功能。
随着廉价、易于编程、USB使能微控制器的出现,USB变得越来越普遍。一台USB主机(通常是另一个微控制器)能够与微控制器进行通信以访问来自一系列远程接口(从ADC到发动机控制)的服务和外围设备数据。事实上,微控制器的单个USB主接口可提供所有这些功能,还能够支持对USB存储器的访问和以太网通信。
当然,可能还需要传输速率更高的产品。基于PCI Express和SRIO等最新串行连接标准的产品已经开始设计,高端系统通常采用4到32个通道,其中每个通道是一个全双工、四线接口。而低端系统通常采用单个通道。它们现在的最高输出速率为5Gbps。
这两者之间的主要区别是PCI Express继承了PCI的存储结构,而SRIO能够轻而易举地处理小型数据包。另一个重要区别是PCI Express是基于主机的,而SRIO是一个类似以太网的通用网络。他们都具有的优点是采用了芯片到芯片直接连接(已在上述许多低端技术中采用)。
SRIO往往只能用于类似TI TMS320C6?54 DSP和飞思卡尔的双核MPC8572 PowerQUICC III等芯片。DSP通常具备1x接口而CPU包含4x链接。目前SRIO已经可以用于低端32位或16位微控制器。
PCI Express会出现同样的情况,但是根据目前对PCI的支持,在不久的将来PCI Express更有可能向低端芯片领域发展。嵌入式领域中的另外一个驱动因素将是各种标准,例如PCMCIA的ExpressCard、PIC Express和COM Express。这些标准正不断推进对更多1x PCI Express外围器件的需求,从而使得这些器件更适合微控制器平台。
当然,我们不应该忽略这个问题。以太网是事实上的网络标准,10Mbps以太网甚至可以用于8位微控制器,例如Microchip的PIC18F97J60和Rabbit Semiconductor的Rabbit 4000。以太网通常需要外部磁场,并且系统一般与外部交换机相连。根据环境的不同,这一特性可能成为优势也可能成为劣势。
在工业自动化应用中,尽管通常针对的是机外(outside-the-box)连接,以太网标准同样具有一定优势。如果发生兼容性和吞吐量的问题,那么从10Base-T往上升级是一个相对较简单的方法,这在很大程度上是因为较高端的微控制器具有内置的100Mbps和1Gbps以太网接口。
支持和阻碍以太网发展的一个关键点是协议栈的复杂性。如果低端控制就已经足够满足而且网络通信被隔离开来,那么TCP/IP协议栈通常可用低端接口或者仅用一个IP协议栈来取代。
设计系统
给开发人员提供一个端口、一个UART或者一个FPGA产品,他们就可以在其网络接口上实现位响应(bit-bang)。开发人员也可以实现很多本文中提到的接口,但是必须小心谨慎。因为有些架构存在许可证问题,而这些问题可能是不确定的。例如,一些架构可能仅限制使用一个术语或者标志,而其它架构则允许设计工程师创建除主设备以外的设备(反之亦然)。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论