嵌入式系统的联网演变
在以往,嵌入式系统一直是由系统控制的,一般不与外界连接。微控制器在一个相当封闭的系统中工作,负责轮询外设、采集数据、完成简单的处理,控制开关和LED指示灯,并不会对系统安全构成任何问题。不过,这种情况直到最近几年已经改变了。
现今的嵌入式系统往往需要连接到局域网 (如以太网),这样就有数十、甚至上百个控制器连接在一起。例如,控制器局域网 (CAN) 或 ZigBee 无线网络就有上百个微控制器相互作用。而且,随着嵌入式网络变得越来越复杂,要求更大的网络带宽和更远的传输距离,嵌入式以太网已逐渐涉足于工业控制、自动化、医疗和安全产品等市场。这些内部网络也因此而通过互联网与外界连接起来了 (参见图1)。
图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 至 512Kbyte 的闪存和 32 至128 Kbyte 的SRAM,而且所有 SAM7X 器件在引脚、外设和编码上都是兼容的。
如何快速地传输数据?
在大多数 32 位控制器中,处理器本身在外设与内部/外置的内存之间传输数据时每次只会传输一个字节 (byte)。如果要传输的数据量不大,这没有什么问题。但若数据传输速率超过1 Mbps,即使是快速的处理器也无法应付。在 1Mbps 速率下,数据传输会占用28% 的处理器资源;当速率达到2Mbps 时,数据传输便会占用50% 以上的处理器资源;如果速率达到 4Mbps,那么处理器就不能处理其他事务了。
试想,如果全速 USB2.0 的数据速率为 12Mbps、CAN的为1Mbps、以太网的为100 Mbps、SPI 和 USART外设的也能达到25Mbps,那么任何需要在大范围互连的嵌入式控制系统,都必须解决数据传输的问题。爱特梅尔公司的 DMA 规划方案 (scheme) 能解决这些问题,该方案采用了一个外设的 DMA 控制器 (PDC),直接将每个 SAM7X 外设连接到片上内存,而且还配有一个专用于以太网 MAC 的更先进 DMA 控制器。
由于 PDC 独立于处理器而运行,所以不会出现中断情况,而且能大幅度降低数据传输所需的时钟周期数。每个 SAM7X 的外设都有两个专用 PDC 通道,分别用于接收和发送数据。每个 PDC 通道的用户接口都集成在各外设的内存中。外设可通过收发信号来触发 PDC 传输。当第一个设置好的数据块传输完毕后,对应的外设便会产生一个传输结束中断。接着,第二个数据块便自动开始传输,而 ARM 处理器此时可并行处理第一个数据块。这样,就摆脱了为更新处理器上的 DMA 内存指针所需的实时中断限制,这对于维持外设上的高速数据传输是非常关键的。
由 于 SAM7X 体系架构加入了这个 DMA 规划方案,因此可以同时充当网关和控制器,甚至在高数据速率下也能如此。即使速率达到 2Mbps,爱特梅尔公司的处理器仍然有 99% 的可用处理资源;也就是说,它能在高效传输数据的同时,完成正常的系统控制功能和数据处理工作。一般来说,在相同的数据速率下,传统的 ARM7 处理器必须付出一半以上的处理器资源来传输数据,这会明显影响系统性能 (参见表1)。
嵌入式互连的发展趋势
随着越来越多的设备互连在一起,连接电缆的长度和网络带宽需求都呈指数级增长。象CAN 这种最大带宽为 1Mbps 的网络正逐渐达到极限,并开始被 100Mbps 以太网所取代,而这正是将嵌入式系统无缝连接到互联网等最流行的广域网中的大好良机。事实上,以太网和互联网使用的都是相同的底层通信协议,即 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 的速率。
结论
现今的嵌入式控制系统正朝着嵌入式网络的方向演变,并常常要与广域网联网。在针对这类设计选择微控制器时,设计人员需要同时考虑器件的互连能力、数据传输能力以及安全性,而且又不会牺牲实时处理应用所要求的监管和控制功能。 |