目前市场的发展趋势是将这些局域网通过内网或外网,尤其是互联网与外界相连。随着嵌入式系统越来越高的联网要求,微控制器必须具备更多的性能:更强的互联性,增加程序和数据的存储空间以支持相应的通信协议,提高系统传输数据、执行通信协议和提供严格的安全能力的性能和处理带宽。在需要通过内网或互联网监控CAN或ZigBee网络的应用环境中,嵌入式微控制器必须能够支持10/100M以太网、CAN、ZigBee网络等网络协议,并且必须具有先进的安全加密算法。
影响嵌入式系统的另一个因素是通用串行总线(USB)的迅速普及,尤其是在PC及其外设领域。与提供基本通信链路的传统通用异步收发器(UART)接口不同,USB是一种即插即用的总线接口,具有丰富的驱动程序,可以缩短开发周期和设备安装时间。不仅设计师喜欢这个界面,终端用户也乐于使用,因为他们不必为新购买的外设加载新的设备驱动程序。考虑到笔记本电脑用于复印机、自助售货机、ATM、工厂自动化设备、家庭安防系统等完成系统设置和上门服务。,可以预计USB将在嵌入式系统中占据重要地位。新的笔记本电脑只配备了USB接口,因此它们所服务的系统也必须具有USB接口,否则这些系统将不得不采用旧的PC或USB适配器。
此外,随着嵌入式系统越来越多地受到外部网络的监控,特别是当系统可以通过互联网或无线网络访问时,对安全性的要求也必然更高。谁也不能容忍外人恶意破坏系统,关闭火灾报警系统,或者随便打开输油管道的阀门,所以安全就成了嵌入式系统非常重要的一部分。
嵌入式系统向嵌入式网络的发展从根本上改变了其结构,但人们在选择微控制器时必须考虑结构。微控制器必须具有多种网络协议接口,能够传输和验证大量数据,并具有足够的安全性、存储和处理能力,以容纳众多的协议栈;而且,在很多情况下,这些任务必须以很少的能量消耗来完成。显然,8位和16位处理器在内存资源和处理能力方面都无法满足这些要求。但是,它们需要8位和16位处理器的确定性性能和监督功能,而这对于32位处理器来说是很少见的。另外,成本敏感型系统的价格要和8位、16位微控制器差不多,配套开发工具的价格也要可以接受。
这种处理器不足以满足嵌入式市场日益增长的互连需求和支持此类应用的实时性要求。为了满足当今的互连应用环境,嵌入式微控制器需要能够支持多种通信协议、高速数据传输、系统安全和确定性实时处理。Atmel的SAM7微控制器系列基于ARM技术,具有USB接口,其最新的SAM7X微控制器正在向上述领域发展。该微控制器的工作频率为50 MIPS,并配备了片上以太网和CAN通信协议、硬件实现的AES/3DES加密技术、安全密钥存储技术以及包括USB、USART、串行外设接口(SPI)、同步串行接口(SSC)、双线接口SSC/I2S和双线接口(TWI)在内的各种外部接口。该微控制器利用一个外设DMA控制器独立实现高速数据传输,不占用ARM7处理器资源,具有8位和16位处理器通常的实时系统控制功能(32位系统中很少有),包括欠压检测器、上电复位电路、实时时钟和监控定时器。SAM7X微控制器还包括一些外设:10位模数转换器、脉宽调制和电源管理控制器。SAM7X的存储密度从128到256千位闪存和32到64千位SRAM不等。这些功能确实能够满足嵌入式网络环境的需求。
随着越来越多的设备相互连接,连接电缆的长度和网络带宽都大大增加。最大带宽1Mbps的CAN网络已经逐渐达到极限,开始被100Mbps以太网取代。事实上,以太网和互联网使用相同的通信协议,即TCP/IP。因为当通过互联网将遥感器连接到PC时不需要转换协议,所以整个网络将被简化,并且设备的互操作性将被增强。互联网等公共通信网络的安全要求也大大提高。但是,CAN不会在一夜之间消失,而是会在嵌入式网络世界中继续存在一段时间。ZigBee有可能在低数据传输速率控制应用中发挥重要作用;至于PC连接,USB将成为标准。
通用接口(USB)是一种接口标准,用于将外围设备作为即插即用设备连接到PC。所以USB取代了PC上的串口(UART),传输速率比后者更高,全速模式下可以达到12Mbps。
随着以太网协议向嵌入式领域的渗透,嵌入式系统网络必须能够与以太网接口。SAM7X采用10/100-Mbps兼容IEEE 802.3的以太网介质访问控制器,可配置全双工或半双工模式,拥有专用的DMA控制器,可保证100Mbps的数据吞吐率;可编程数据包发送和接收间隔,并支持VLAN标签帧和自动暂停帧的产生和终止。双模接口使SAM7X能够通过媒体独立接口或简化的媒体独立接口(RMII)无缝访问高速以太网应用中的各种物理层(PHYS)。MII可以在物理层扩展系统的选择,而RMII可以在微控制器上节省一些I/O。SAM7X MCU可以直接与POS-PHY第2层/SPI-3兼容设备连接,包括与标准网络处理器的连接。通过片上系统缓冲器的无损流量控制可以节省外部存储器或流量控制设备。此外,支持最大10240字节的巨型帧。SAM7X的地址检查器可以识别四个特定的48位地址,并包含一个64位哈希寄存器,用于匹配多播和单播地址。它可以识别所有广播地址,复制所有数据帧,并可用于匹配外部地址。其统计寄存器模块包含各种寄存器,用于记录与收发操作相关的各种事件。这些寄存器和存储在接收缓冲器列表中的状态字可以由软件读取,以产生符合IEEE 802.3标准的网络管理统计数据。
在大多数32位控制器中,当在外设与内部和外部存储器之间传输数据时,处理器本身每次只传输一个字节。如果要传输的数据量很小,这没有问题。但如果数据传输速率达到1Mbps,再快的处理器也会瘫痪。在1Mbps的速率下,数据传输占用28%的处理器资源;当速率达到2Mbps时,数据传输占用超过50%的处理器资源;当速度达到4Mbps时,处理器无法处理其他事务。如果考虑到全速USB2.0的数据速率是12Mbps,CAN的数据速率是1Mbps,以太网的数据速率是100 Mbps,SAM7 SPI和USART外设的数据速率也可以达到25Mbps,那么很明显任何需要大范围互联的嵌入式控制系统都必须解决数据传输的问题。在涉及大量数据传输的应用中,微控制器能否既是网关又是控制器?
Atmel的DMA解决方案产品有一个外设DMA控制器(PDC),可以将每个SAM7X外设直接连接到片上存储器,并配备了更先进的以太网MAC专用DMA。由于PDC完全独立于处理器运行,因此它没有中断成本,并且可以大大减少数据传输所需的时钟周期数。每个SAM7X外设都有两个专用的PDC通道,分别用于接收和发送数据。每个PDC通道的用户界面都集成在每个外设的存储器中,并有一个32位存储器指针寄存器。16位传输计数寄存器;用于下一次存储的32位存储器指针寄存器和用于下一次传输的传输计数寄存器。外设通过发送和接收信号触发PDC传输。当第一个被编程的数据块传输时,相应的外设会产生一个传输结束中断,第二个数据块会自动开始传输,而ARM处理器可以并行处理第一个数据块。通过这种方式,可以消除处理器上更新DMA存储器指针所导致的实时中断限制,这对于维持外设上的高速数据传输至关重要。
在这种方案下,下一次数据传输的存储位置和要传输的剩余数据块可以在任何时候被读取。PDC有一些特殊的状态寄存器,显示每个传输通道是否有效。通过一些控制位,可以安全地读取指针和计数器寄存器,而不会出现两个读数不同的情况。向状态寄存器中可见的外设发送PDC状态标志。当外设接收到一个外部字符时,它将向PDC发送一个就绪信号,PDC将请求访问系统总线。当请求被批准时,PDC开始读取外设的接收和保持寄存器,然后触发存储器写操作。每次传输后,相关的PDC存储器指针地址将增加,剩余的传输次数将减少。当存储块满时,下一个存储块的传输会自动开始;或者将向外围设备发送信号以停止传输。至于向外设发送数据,传输过程正好相反。如果同一类型(接收或发送)的请求同时出现在同一个外围设备上,则请求的优先级由外围设备的编号决定;当请求没有同时出现时,将按照它们出现的顺序进行处理。首先处理来自接收方的请求,然后处理来自发送方的请求。