嵌入式应用中的互连技术应用
连接外围器件似乎是设计工程师必须面对的处理过程。在很多情况下,串行网络具有足够的性能来完成该工作并最小化器件间的连接。这对于器件间距离大于数厘米的情况非常重要。
目前已有多种方案可用。而许多其它的方案可以从现场总线、具有专利的接口和专用串行接口中选择。它们之间常常会有直接竞争关系,但是大部分方案都有其利基市场。
通常,一个串行互连包含的电线数目不会超过6根,其中可能包括电源线和地线(不过情况可能会有变化)。例如,像美信公司1-Wire这样的器件需要连接地线。这也是一个互连的多种参考设计在计算电线数目时没有将电源线计算在内的原因。
目前存在很多不同的架构和协议,对于单主机和多主机网络而言也存在这种情况。以太网、PCI Express和Serial RapidIO(SRIO)等诸多架构都需要一个交换结构。
当处理串行网络的集成接口时,性能和简易性往往都是问题。8位或性能更强微控制器必须支持I2C、串行外设接口(SPI)、控制器区域网络(CAN)、本地互连网络(LIN)和1-Wire接口。而多功能串行端口通常可支持上述接口以及类似RS-485的标准串行接口(虽然RS-485和CAN一般都需要采用外部收发芯片)。
大部分其它接口采用标准微控制器输出,并允许器件之间的直接连接。由NXP公司推出的I2C通信链路是可提供这类支持(图1)的一种双线解决方案。它不包含任何错误检查功能,但支持多主机操作。
图1:一个I2C主器件提供时钟和初始地址。根据主器件R/W位的值决定是由主器件还是从器件传送数据,基于每字节来识别数据传送。最高有效位(MSB)位是最先被传送的位。
数据包包括一个用来指示主器件或从器件是否发送数据的地址和方向位。此外,I2C属于PMBus、SMBus和智能平台管理接口(IPMI)等功率管理和系统管理标准的一部分,以上标准可利用I2C的多主机模式。而且I2C没有版税问题。
I2C的主要对手是SPI(图2)。作为一种主/从器件的互连接口,SPI通常用于将外围芯片连接到主处理器上,其芯片选择架构的硬件和软件实现十分简单。SPI可提供比I2C更快的传输速率,但需要以采用更多电线为代价。在硬件端,仅需一个移位寄存器和一些逻辑门就可以实现。此外,SPI还可提供一个相对于I2C的基址寄存器寻址方式而言非常低级的接口。
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与一台主机和一组外
- 总线技术的应用浅析(12-16)
- CAN总线技术的应用与发展(12-12)
- 嵌入式Linux通信中构件技术应用研究(08-06)
- 嵌入式系统的网络互连技术应用分析(04-18)
- 基于单片机的图像处理器6538的接口技术应用(01-02)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)