- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
嵌入式应用中的互连技术应用
连接外围器件似乎是设计工程师必须面对的处理过程。在很多情况下,串行网络具有足够的性能来完成该工作并最小化器件间的连接。这对于器件间距离大于数厘米的情况非常重要。
目前已有多种方案可用。而许多其它的方案可以从现场总线、具有专利的接口和专用串行接口中选择。它们之间常常会有直接竞争关系,但是大部分方案都有其利基市场。
通常,一个串行互连包含的电线数目不会超过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与一台主机和一组外围设备协同工作。尽管如此,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)。开发人员也可以实现很多本文中提到的接口,但是必须小心谨慎。因为有些架构存在许可证问题,而这些问题可能是不确定的。例如,一些架构可能仅限制使用一个术语或者标志,而其它架构则允许设计工程师创建除主设备以外的设备(反之亦然)。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...