以往,嵌入式系统一直是由系统控制的,一般不与外界连接。微控制器在一个相当封闭的系统中工作,负责轮询外设、采集数据、完成简单的处理,控制开关和LED指示灯,并不会对系统安全构成任何问题。不过,这种情况直到最近几年已经改变了。
现今的嵌入式系统往往需要连接到局域网(如以太网),这样就有数十、甚至上百个控制器连接在一起。例如,控制器局域网(CAN)或ZigBee无线网络就有上百个微控制器相互作用。而且,随着嵌入式网络变得越来越复杂,要求更大的网络带宽和更远的传输距离,嵌入式以太网已逐渐涉足于工业控制、自动化、医疗和安全产品等市场。这些内部网络也因此而通过互联网与外界连接起来了(见图1)。
嵌入式系统的联网规模日趋庞大,以致系统必须增强微控制器之间的互连性;加大程序和数据内存的容量来支持相应的通信协议,并且提高传输数据和执行协议所需的性能和处理带宽,以及提供可靠的安全性。
另一个影响嵌入式系统的因素是快速普及的通用串行总线(USB),尤其是在PC和PC外设领域,USB已经相当普及。USB是一种内置了丰富驱动程序的随插即用式总线接口,能缩短开发周期和设备安装的时间。
微控制器架构必项具备高带宽、
高互连性、高可预见性
嵌入式系统逐渐成为嵌入式网络的发展趋势,从根本上改变了其架构特点,而架构是我们在选择一个微控制器时必须考虑的。微控制器必须能与多种网络协议接口;传输并验证大量数据;以及具有安全性。此外,它必须可以提供足够的内存和处理能力,以容纳众多的协议堆栈。而且,微控制器还必须在耗费很少电能的前提下完成上述这些任务。8位和16位的微处理器就达不到这些要求了。有见及此,许多设计人员都开始采用32位处理器。然而,32位的嵌入式系统仍然需要如8位和16位处理器般具备确定过程序(deterministic)处理能力和监管功能。此外,由于这类系统对成本非常敏感,所以在价格上还得与8位和16位微控制器相当,并提供价格同样廉宜的常用配套开发工具。
目前,多家公司已致力于解决这些问题,采用了基于ARM技术的32位微处理器。这种处理器不但性能高、成本低,而且更具有大容量的闪存和SRAM内存。然而,要适应嵌入式系统市场不断增长的互连需求和支持这类应用的实时性要求,仅有这种处理器还是不足够的。要满足现今互连应用环境的需求,嵌入式微控制器需要能够支持多种通信协议、高速数据传输、系统安全,以及确定过程序实时操作。
爱特梅尔公司的SAM7微控制器系列均基于ARM技术,并配备了USB接口,其最新推出的SAM7X微控制器系列(图2)正是为这个市场而开发的。SAM7X微控制器的性能达50 MIPS,具有高度的互连性,配备了片上以太网协议和CAN通信协议,采用安全键存储技术,并支持多种外部接口,包括USB、USART、串行外围接口(SPI)、同步串行接口(SSC/I2S)和双线接口(TWI)。该微控制器系列采用一个外设的DMA控制器,能单独地实现高速数据的传输,而无需占用ARM7处理器资源。此外,该系列还包括了其它一些外设,包括一个10位ADC、一个PWM和一个功率管理控制器。
SAM7X微控制器具有8位和16位控制器常备的全部实时系统控制功能(32位器件一般很少提供这些功能),包括上电复位电路(power-on-reset)、欠压检测器(brownout detector)、实时时钟、监控定时器。SAM7X更可配置128 Kbyte~512 Kbyte的闪存和32 Kbyte~128 Kbyte的SRAM,而且所有SAM7X器件在引脚、外设和编码上都是兼容的。
如何快速地传输数据?
在大多数32位控制器中,处理器本身在外设与内部/外置的内存之间传输数据时每次只会传输一个字节(byte)。如果要传输的数据量不大,这没有什么问题。但若数据传输速率超过1Mbps,即使是快速的处理器也无法应付。在1Mbps速率下,数据传输会占用28% 的处理器资源;当速率达到2Mbps时,数据传输便会占用50%以上的处理器资源;如果速率达到4Mbps,那么处理器就不能处理其它事务了。
试想,如果全速USB2.0的数据速率为12Mbps、CAN的为1Mbps、以太网的为100Mbps、SPI和USART外设的也能达到25Mbps,那么不问而知,任何需要在大范围互连的嵌入式控制系统,都必须解决数据传输的问题。爱特梅尔公司的DMA规划方案(scheme)能帮助解决这些问题,该方案采用了一个外设的DMA控制器(PDC),直接将每个SAM7X外设连接到片上内存,而且还配有一个专用于以太网MAC的更先进DMA控制器。
由于PDC独立于处理器而运行,所以不会出现中断情况,而且能大幅度降低数据传输所需的时钟周期数。每个SAM7X的外设都有两个专用PDC通道,分别用于接收和发送数据。每个PDC通道的用户接口都集成在各外设的内存中。外设可通过收发信号来触发PDC传输。当第一个设置好的数据块传输完毕后,对应的外设便会产生一个传输结束中断。接着,第二个数据块便自动开始传输,而 ARM 处理器此时可并行处理第一个数据块。这样,就摆脱了为更新处理器上之DMA内存指针所需的实时中断限制,这对于维持外设上的高速数据传输是非常关键的。
由于SAM7X体系架构加入了这个DMA规划方案,因此可以同时充当网关和控制器,甚至在高数据速率下也能如此。即使速率达到2Mbps,爱特梅尔公司的处理器仍然有99%的可用处理资源;也就是说,它能在高效传输数据的同时,完成正常的系统控制功能和数据处理工作。一般来说,在相同的数据速率下,传统的ARM7处理器必须付出一半以上的处理器资源来传输数据,这会明显影响系统性能(表)。
嵌入式互连的发展趋势
随着越来越多的设备互连在一起,连接电缆的长度和网络带宽需求都呈指数级增长。象CAN这种最大带宽为1Mbps的网络正逐渐达到极限,并开始被100Mbp以太网所取代,而这正是将嵌入式系统无缝连接到互联网等最流行的广域网中的大好良机。事实上,以太网和互联网使用的都是相同的底层通信协议,即TCP/IP。由于将一个远程传感器通过互联网连接到某一台PC时无需转换协议,因此可以简化整个网络的结构,并大大增强设备的互操作性。当然,采用互联网等公共通信网络对安全性的要求也有所增加。
然而,在相当的一段时间内,CAN仍然会是嵌入式网络的要素;ZigBee可能会在低速率控制应用领域中大展拳脚。对于与PC的通信,USB则俨然成为了标准。
USB 2.0接口
USB是一种用于把外设变为随插即用设备并连接到PC上的接口标准。在全速模式下,其速率可达12Mbps。爱特梅尔的SAM7微处理器配备了完全兼容USB 2.0的全速USB接口,可将嵌入式系统直接连接到一台PC上,从而通过这台PC对系统进行维护和现场升级。
10/100以太网MAC
随着以太网协议渗透到嵌入式领域,嵌入式系统网络必须能与以太网接口。SAM7X采用与10/100-Mbps IEEE 802.3兼容的以太网媒体访问控制器(EMAC),具有一个能确保达到最大100Mbps数据吞吐速率的专用DMA控制器;可编程的数据包收发间隔(inter-packet gap),并支持虚拟局域网标记帧(virtual-LAN tagged frame)和自动暂停帧(automatic-pause frame)的生成及终止功能。该EMAC通过片上系统缓冲器实现了无损耗的流量控制,因而无需外接那些为减少端口拥塞和传输损耗的存储器或流量控制器件。此外,它还支持高达10240字节的巨型帧(jumbo frame)。
CAN接口
爱特梅尔公司的SAM7X微处理器包括一个可与符合ISO 1 1898和ISO 11519-2标准的CAN实现无缝连接的接口。CAN接口是一个采用多主串行通信协议的接口,可在1Mbps的速率下有效地实现安全的实时控制。CAN是一种广播通信网络,采用以信息(message)为主的传输协议。这些信息通过一个独特的信息标识来识别。该信息标识不但定义了信息的内容,而且还编排其优先级别。SAM7X CAN接口能处理所有类型的帧(数据帧、远程帧、出错帧和过载帧),在8MHz频率下能达到每秒1Mbps的速率。
结语
现今的嵌入式控制系统正朝着嵌入式网络的方向演变,并常常要与广域网联网。在针对这类设计选择微控制器时,设计人员需要同时考虑器件的互连能力、数据传输能力以及安全性,而且又不会牺牲实时处理应用所要求的监管和控制功能。