嵌入式控制系统正在迅速向基于CAN、802.14.5、以太网和其它网络协议的嵌入式控制网络转变。这些嵌入式网络常常通过企业内联网、外联网或互联网等与其它网络连接。随着连接性的增加,嵌入式微处理器 (MCU) 的结构将面临安全和带宽的问题。
嵌入式系统朝着嵌入式网络的趋势发展从根本上改变了其结构
(architecture),而结构却是人们在选择一个微控制器时必须考虑的。微控制器必须具有多种网络协议接口;能传输并验证大量数据;具有安全性,以及足够的内存和处理能力,以容纳众多的协议堆栈;在许多情况下,还必须在耗费很少电能的前提下完成这些任务。而且,还必须具有确定过程序 (deterministic) 实时性能。
8位和16位处理器显然在内存资源和处理能力上达不到这个要求。32位的结构虽然具有这类应用所需要的处理能力和内存资源,但它们很少具有实时网络工业控制应用所要求的确定过程序实时性能和监控管理功能。新的结构必须具备32位的性能和足够的带宽,以满足当今高速度数据传输的需求,还需要具备数据保安功能,以及确定性实时性能,而且价格应与8位结构相当。
全新的32位MCU和带宽
目前,好几家微控制器公司包括Atmel、 ST和Philips等都在积极解决这些问题。它们采用基于ARM技术的32位微控制器,加入性能高、成本低、并具有大容量的闪存和SRAM内存,并使产品的价格与8位“嵌入”产品相当。这些公司也开始推出ARM 7 MCU;这种MCU 除具有标准的双线接口 (TWI)、主/从串行外设接口 (SPI) 和异步串口控制器 (USART) 外,还内置控制器局域网 (CAN)、 以太网和/或USB接口。然而,联网绝不仅仅是增加接口和协议那样简单,还必须进一步提高核心处理器的能力,必须能够应对可能经过它的海量数据。基本的ARM 7 和 ARM 9处理器核没有直接内存访问控制器(DMA);CPU要直接地且一次一个字节地处理所有的数据。大量的或频繁的数据传输将侵吞本来应花费在嵌入应用程序上的处理周期。例如,在50 MHz的工作频率下,处理2兆位 (Mbps) 的数据传输要耗费ARM 7的55%资源,而要处理4Mbps的数据传输,整个处理器的资源都将被占用;CPU没有时间来执行实时控制应用程序。4Mbps以上的数据传输甚至是不可能的。
因此,除非提高处理器本身传输数据的基本能力,否则仅仅在32位处理器上添加一个10/100以太网内存访问控制器 (MAC) 或 CAN 或USB 接口并不能解决问题。当想到高速 SPI 串行外围接口和 USART 外设的数据速率可能达到 25Mbps,很明显任何大范围互连的嵌入式控制系统都必须解决数据传输的问题。
外设DMA是解决问题的关键
基于ARM技术的MCU可以扩充DMA来将其数据吞吐能力提高到可接受的水平。Atmel公司率先将外设DMA控制器 (PDC) 集成在其基于ARM 7的SAM 7和基于ARM 9的SAM 9 微控制器中。PDC在外设和内存间传输数据,只需耗费很少的处理器资源。该结构体系下的大多数外设有两个专用PDC通道,各用于接收和发送数据。每个PDC 通道的用户接口都集成在各外设的内存中,并有一个32位内存指针寄存器,一个16位传输计数寄存器,一个用于下一个存储的32位内存指针寄存器和一个用于下一个传输的传输计数寄存器。采用PDC可以持续传输来自多个外设的多个数据块。
PDC 使处理器摆脱了数据传输的重负,消除了中断开支,并有效地减少了CPU为外设进行高速数据传输所须耗费的处理时钟周期。例如,配备PDC后的ARM 7 能达到25 Mbps的数据传输能力,足以支持高速SPI 或 USART传输,而且仅耗费 6% 的处理器资源。这样,剩余的 94% 处理器资源仍然可用于嵌入式控制应用
加密和数据保安
外设 DMA 控制器在数据安全上也扮演关键的角色。如果嵌入式系统分布在不同的地域,而在某一地方通过公网 (如 Internet) 控制,这时系统就处于开放的网络环境中,对安全的要求也就大大增加了。任谁都不希望别人入侵自己楼宇的安防系统或HVAC系统;或关断电力网;或在很短的通知时间后便对大坝开闸放水。因此,我们必须对嵌入式系统的访问加以控制,数据必须采用高级加密算法加密,如高级数据加密标准 (AES),数据加密标准 (DES) 和三重 DES 加密 (TDES)。AES算法是一种对称块密码,能用128位的密码键来加密和解密128位的数据块。DES 标准采用一个64位加密/解密密钥来处理64位数据块。三重 DES 则采用3个 DES 密钥,称之为密钥束。在三密钥加密算法中,加密分三步完成;数据先用Key1加密;然后用Key2加密;最后再用Key3重新加密,解密时则按相反顺序进行。
软硬件加密的比较
加密的计算密集度很高,通常需要由专门的外部处理器来协助完成。但这样的外部处理器有一个严重的安全问题:在连接主处理器和这个外部安全协处理器的系统总线上以普通文本格式传递数据,因而会暴露机密的信息。当然,我们也可以对这个局部链路进行加密,但这样的话,外部处理器的原本作用 ─ 让主处理器解脱繁重的加密计算任务 ─ 就会失去。
此外,嵌入式控制系统的成本和空间也可能不允许使用第二个处理器。ARM 9 处理器核具有足够的处理能力来以软件方式处理加密/解密流,但ARM 9对应用来说可能太昂贵或能耗太大了。另一方面,ARM 7又不具备以软件方式处理高速加密/解密流的能力。ARM 7在全速下 (50 MHz) 只能执行4.3 Mbps速率的AES加密流,无法跟上25 Mbps的高速SPI 或 USART 数据传输,更遑论100Mbps 的以太网传输。在处理4 Mbps速率数据时,所有的处理器资源都被耗尽;微控制器将无法执行任何控制功能,而成为一个专门的加密协同处理器。
由于软件加密存在带宽限制,在 ARM 7 上实现数据安全的惟一可行的方法就是在该微控制器上嵌入一个加密协同处理器,让这个协处理器独立于 ARM 的CPU来处理加密运算。在 ARM7 架构上增加一个加密引擎,将使 AES 加密的吞吐能力增加4倍,提高到20 Mbps;对于DES加密和三重DES加密,也能分别达到12.8 Mbps和11.2 Mbps。
使用外设 DMA 提高加密吞吐能力
无论是在 ARM 7 上以硬件方式或在 ARM 9 上以软件方式实现加密,加密/控制功能都涉及内存和I/O间大量的数据交换,这些数据交换活动将耗费额外的处理器工作时间,影响应用程序的处理。在这个问题上,外设 DMA 控制器又有其用武之地。在 Atmel公司的SAM 7X 上同时采用加密/解密协同处理器和 PDC,就可将 AES 加密吞吐能力提高到80 Mbps,足以满足宽带数据传输的要求。添加 PDC 可使 DES 吞吐能力几乎增加3倍,达到32.8 Mbps;而使TDES吞吐能力翻一番,达到20 Mbps。
在 SAM9X MCU 上添加一个多层总线阵列,可以进一步增加数据带宽。该总线矩阵可将5个先进高速总线 (AHB) 控制 (包括处理器指令和数据总线、PDC、两个用于USB主机,以及 LCD 控制器的专用 DMA),连接到片上外设及内置或外部存储器上,以支持不同内存、外设和I/O间的并行数据传输。
此外,别忘了无论这些系统联网与否,它们都是“实时”系统,指令和数据必须在精确的时钟周期到达确定的位置。它们必须能检测各种内部失效,并从失效状态恢复,否则整个系统将完全失效。在这种情况下,必须采用各种监管功能 (如欠压检测功能、上电复位功能、监视定时器以及实时时钟) 监视系统,并在出现问题时关闭系统。这些功能是8位和16位MCU 的标准功能,但在32位MCU中却很罕见,尤其是基于ARM 9的MCU。因此,除了集成网络协议,增加数据带宽和提供数据安全加密外,系统处理器还必须具有实时系统所需要的这些功能。可行方法是在ARM 7微控制器上采用高速闪存来存储代码、而省去缓存。至于在ARM 9中,如果MCU内存架构充分发挥了ARM926EJ-S 核固有的紧密耦合内存 (TCM) 潜力,确定过程序 (deterministic) 处理能力和高端操作系统 (WINCE或 LINUX) 可以共存。例如,SAM9X 内存架构支持实现零等待处理 (zero-latency processing) 的单独内存块,并可与透明指令和高速缓存并行。
结 语
今天,嵌入式控制系统正在迅速转变为嵌入式控制网络,这些嵌入式网络常常通过互联网与其它网络连接,这种发展趋势改变了许多嵌入式应用的控制器选择标准。微控制器必须具有强大的联网能力,并且要基于现有的工业标准,如USB、 CAN 和以太网。MCU 架构必须能传输大量数据,而且不影响处理器的性能。对于暴露在公网环境下的嵌入式系统,其MCU 必须具有先进的加密技术和安全密钥存储技术;而这些技术的引入将进一步增大带宽要求。MCU 架构正在逐步解决这些问题。