引言
嵌入式系统设计带来了与传统系统设计全然不同的挑占。其中包括从处理器和存储器的选择到产品环境的考虑。在理解产品设计的许多复杂方面和影响后,呵以直接提高产品设计成功的几率,对于设计者,仅仅了解需要什么部件来完成一个设计是不够的,还要考虑部件之间如何交互、何种要素会带来影响和设计的产品将在何种环境中运行等问题。
本文试图用合适的视角来盾待这些问题,为设计工程师们提供指导和帮助,从所有的层面上帮助它们为今后的设计项目做更好的准备。
1 理解产品要求和设计局限
在创造一个智能的网络化设备时,第一步是要理解这个嵌入式产品本身内含的规格要求,大同小异不仅仅是产品的功能要求。基本的元素,如处理器类型,会对吞吐量、可裁剪性和开发周期的长短产生广泛的影响。这一点一定在事先就了然于胸。同样重要的成本,因为多数嵌入式产品对成本是敏感的。因此
对于串口、USB、I2C接口的设计决定也会对性价比产生影响。找到带集成接口的处理器并不难,比如带以太网口、串口、USB及其它接口。在合适的价位找到这样的处理器,并且还能提供产品的可裁剪性,就不那么容易了。
还有2个重要的事项有时会被忽略,就是电源要求和温度涠。如果产品是电池供电,要考虑系统所有部件的电流消耗;如果产品本身要求满足工业级温度要求,那么这个盒子中的所有部件都要是工业级的。最后一点,由于本文的焦点在硬件,需要记住,产品可裁剪性取决于软件。
除了辨别一个产品的功能要求外,对于该产品功能环境的理解也同样重要。这个产品将在何处度过它的整个生命周期,那里的环境是否有特殊性?这样的问题,设计者可以利用环境的先天优势,同时为最坏的情形做打算。如考虑暴露情况、环境污梁情况、温度极限和更多的将影响性能和潜在的生命周期的情况。
人机交互同样是重要因素。如程序改动的频繁度、产品可能维护计划等。一定要关注技术环境。比如,如果一个智能网络设备接到一个局域网上,相关的信息流量会如何影响周围的设备?如果该产品是一个串口到以太网的网关,只负责从串口得到数据然后将它转换成以太网包,反之亦然,那么不仅要考虑最大的数据延时允许网包,还要考虑有多少数据要传送。虽然延时对许多应用不是一个主要考虑因素(如当一个产品只是不时地收集数据,定期地被取走),但在一些应用中,延时是以太网拓扑中的限制因素。在需要对紧急情况作出立即反应的地址,如工厂地面上的阀门控制、通信和反应,一定要真正实时地完成。
2 通信、部件和协议
在基于以太网网络中有2个常用术语是10BaseT和100BaseT。为了高效地设计一个产品,理解这些术语的含义是很必要的。10BadeT和100BaseT是线速度。线速度和能占用的持续速度是不同的。通常意义上讲,10BaseT线速度是10Mbit/s,100BaseT线速度是100Mbit/s。作为一个共享的资源,所有局域网上的设备都要能互相通信。因此,设备没有能力百分之百地拥有全部的带宽。如果真的存在这种情况,其它设备就不能进行任何通信了。由此可知,在100BaseT的连接中,设备可以用100BaseT的解码机制进行通信,而不是维持100Mbit/s的速度。总吞吐量可以被视作理论吞吐量,而净吞吐量可以视为实际的流量。
许多应用在设计时遵循所谓的“30%规则”。简单讲,在有其它设备共享网络的环境中,一个设备应被设计为能使用30%的带宽。在一个100BaseT的网络中,这意味着30Mbit/s。很明显,智能化设备网络意味着设计一个嵌入式产品应用到一个已存在的网络中。在这里,设计得必须面对此设计要素,即必须估计在这个水平上,将不得不在什么条件下进行工作。
网络的布线费用通
常是网络中比较贵的部分。由于这个费用,许多其它介质和协议,尤其是无线,正在被研究用于承载通信。802.11和蓝牙是2个无线的协议。网络设备本身的价格在不断地下落。由于这个原因,许多应用着眼于现存的线路来保持以太网布线。这在楼宇控制应用系统中是很常见的。因为数公里长的485或422的线路已经存在,这些线路通常保留。因为要和楼宇控制外设进行通信。因此,应用系统作为网关,用软件来桥接遗留的串口协议和以太网之间的通信。
如今,在许多建筑的物理布线中通常包含标准的、屏蔽或非蔽的双绞线。不管屏蔽的还是非屏蔽的,双绞线在抗电磁干扰上是很有效的。基本的差别在于(不比较成本)屏蔽的双绞线能提供更好的噪音保护。除了从设施中现有部件产生的噪音外,比如电力线、变压器和发电机等,线路自身的数据传输也会产生噪音。这一情况使得安装和调试一个新硬件成为一种挑战。在最坏情况下的可能影响,包括从传输灯亮时网络的不稳定,到高速传输数据时的数据错误。
&nb
需要强调的是,以太网拓扑与其它网络拓扑相比是非常不一样的。拓扑选择将影响布线的费用。以太网不是基于多跳的网络,比如10Base-2的雏菊链网。以太网拓扑组成的是星状的配置。星上的每一个设备在物理上要么连在一个集线器上,要么连在一个交换机上。在以太网上,一个设备与另一个设备的通信起处于发送设备端,然后到它连接的集成器或交换机。
以太网有2种基于类型:平面式和多层结构式。在一个平面式的以太网,连接在一个集线路上的所有设备可以看到这个集线器接角到的所有数据包。这还包括相互连接在一起的集线器上的所有设备。在多层结构式以太网中,由于集线路之间由交换机连接,只有连接在一个集一器上的设备可以看到那些包,此外,交换机还能决定哪些设备可以看到包,而哪些不能。
值得注意的是,不管是平面式还是多层结构式,以太网一个共同的好处是不会受故障设备所牵连;而在雏菊链网络中,一旦1个网络设备贪婪工作,其它网上设备的通信就无法进行了。在以太网的多层结构网中,数据冲突被最小化了。但它的最大不足就是线路总量和安装总费用增加了。
3 存储器的考虑
对一个系统来讲,选择RAM是设计的一个很重要的方面,它会影响到产品的使用环境以及产品的全面的功能需求。应用本身往往会确定使用何种存储器。其它因素和成本、实性、产品稳定性也会影响RAM的选择。静态RAM以使用方便和速度快而著称。例如,SRAM的脉冲,通常由1个2-1-1-1的周期组成,意味着它要用2个时钟周期来取第1个长字,然后每1个时钟周期取1个。在设计中,SRAM也易于实现。受限制的因素包括低密度的封装以及较高的价格。
EDORAM和DRAM在老一点的设计中径常见到。但由于这些类型的RAM曼慢被淘汰,现在很少能见到了。而且,EDORAM很难找到适合嵌入式设计的通用密度(1、2或8MB)。
SDRAM是今天的智能网络设备中最常见的RAM。SDRAM可用性很好,与SRAM相比,每兆字节的成本比也不错。处理器易于和SDRAM交互,而且SDRAM也能提高效率。SDRAM的脉冲周期如果为3-1-1-1,但SDRAM第1个指令获取之后,每下一个获取必须与时钟的上升沿步。DRAM在信号产生上有很地址和列地址之分。行地址和列地址在DRAM类型中都要给出来定位一个存储器地址。DRAM还有刷新周期,SDRAM有列地址延迟的值,以及需要存储器控制器控制的其它信号。在处理器中集成一个SRAM、DRAM和SDRAM的控制器在做嵌入式设计时绝对会让你受益非浅。
许多处理器需要一个负责内存遇像
保存和程序执行的外部存储器子系统。对于映像存储,许多设备使用FLASH。Flash有2个大的供应商AMD和Intel。Flash本身与RAM来讲是相对较慢的,因此,多数应用中,程序在Flash中的执行效率不高——特别是在实时应用中。在大多数的设计中,16位的Flash用来降低成本,而通过在RAM中执行映像文件,这种结构被采用后可以不影响产品的运行。另一种非易失内存为电可擦除可编程只读存储器。EEPROM在许多应用中被用于为设备保存配置信息。这些参数通常至少包括MAC地址和IP地址。其它参数可包括子网掩码、序列号、网关、波特率或其它板级参数。EEPROM可以作为一个简单静态RAM类型设备来被设置和访问。虽然EEPROM通常很慢,但它一般不会影响到嵌入式设备,因为它的主要用途是在启动时提供参数。为了高效地选取Flash适应产品,Flash的密度要决定好。决定一个系统中Flash的大小,实际上就决定了设备的材料消耗费(BOM)。在Flash的问题上界限要很好地划定:太少,则限制了软件角度上的可裁剪性;太多,则为产
4 增加价值的特性
许多工程开始就有一些限定的要求——使一个产品更快地投放市场和保持一个合理的成本。当产品经受住市场的考验时,产品修正需要从现存的硬件得到支持。这包括了在保证了附加软件的设计中,能增加价值的特性。
录找一个TCP/IP层内存需求罗小的操作系统,有助于将材料成本保持在一个较低的价位,因为它对内存的需求减少了。比如,使用NetSilicon的NET+OS集成的硬件和软件解决方案,操作系统和栈基本上只占用240 KB的内存。加上Web服务器和FTP服务器,整个系统只需310KB就可以启动了。
当有嵌入式Web服务器的时候,对于Web页面的构建需要仔细考虑。普通的页面设计,用来控制和监视,350KB以内的Flash仍能满足使用。但当动态的GIF文件、复杂的徽标和JPEG文件被引进时,内存的需求会急剧增加。许多设计带FTP、HTTP和Email功能,加上客户的应用,0.5MB甚至更少的Flash仍然放得下。放1MB的Flash在板子上可以在板子不用重新设计布线的情况下增加有意义的特性。
RAM用来执行指令和数据储存。因此,最小的RAM也要是Flash的大小加上数据内存和以太缓冲区的大小。有其它能影响RAM大小的考虑,比如,产品要不要在线升级。在有的机制中,比如NetSilicon公司的Net+Works方案提供的FTP可升级特性,RAM的大小需要是程序映像大小的2倍。比如,刚提到的FTP实现需要的一个保存新程序的缓冲区。这个缓冲区会通过网络接收1个新的映像文件,然后将它保存在RAM的1个区里。升级例程然后会将新映像烧到Flash中。因此,在这个例子中,内存需求的增加包括可执行代码的大小、另外增加的用于暂时保存升级程序的缓冲区以及为数据和网络缓冲区增加的空间。
最后,堆的大小一定要考虑,堆的大小会有很多职能,如对每一个SOCKET连接分配内存。具体的例子,如NET+OS中,每一个Socket连接需要大约400字节。在这种情况下,通常用将执行文件大小加倍的方案来确定RAM的大小。
5 执行、访问和速度
在Flash中执行,对许多低端应用来说并不坏。如一个简单的串口到以太网的网关设备,在Flash中运行通常不需要性能上的补偿。有一些处理器,如NET+ARM,可以利用内部产生的与Flash相关的信号来获得效率。例如,对于一个16位的AMD Fash设备,Flash的片选可以接地,从而在100%的时间内,它都是活动的。当电源可以承担这样的消耗,此特性可以提高Flash的效率。写使能和输出使能信号可以直接从处理器得到。例如,NET+ARM处理器有5个可用的片选。一个普通的写使能和输出使能存在于内存外设中。片选0通常用于Flash。我们不将NET+ARM的片选0接到Flash上,也就是不用NET+ARM的片选0的输出使能和写使能。与此对应,将Flash上的片选使能接地,而同时写使能和输出使能用NET+ARM的2
6、27地址线来驱动。这样,数据有效是依赖输出使能而不是片选使能。从而,就可以绕过与Flash设备相关的几个慢速访问周期。除了理解不同的类型和内存需求,找到正确的内存大小依赖于内存允许的访问时间。内存速度直接影响传输率性能,而传输率直接影响到处理器能处理多少数据。内存慢导致取指令慢,接着就降低了整个产品效率。理解这些产品需求中的依赖性对建造一个嵌入式产品是必不可少的。要理解内存速度的需求,需要对NET+ARM了解得更详细一些。NET+ARM的系统周期在它的总线主控制者之间共享。也就是说,系统时钟周期在ARM7内核和内部10通道的DMA控制器之间分享。在这样的设计中,ARM内核每得到一个时钟周期,DMA也同样得到一个时钟周期,在将总线交回下一个控制者之间,总线主控制者被允许可以突发至4个长字。
下一个较关键的性能是时钟速度。NET+ARM通常使用33MHZ的时钟。这样就给它的处理时间差据周期的单位数,将结果乘上30ns,再将所得结果乘
除了Flash,附加的NVRAM有时会被忽略。许多RTOS广商推荐使用一些如EEPROM的小型NVRAM设备来存储配置信息。为了增强易用性,NetSilicon推荐用EEPROM来保存如MAC地址、序列号、IP地址一类的设备配置。当产品的IP地址或配置设定被改动时,程序可以简单地将新的值写到EEPROM中,而不需要保存配置信息的Flash的该扇区重新擦写。由于需要的EEPROM的容量通常较小,使用的NVRAM设备也是小设备。在NetSilicon公司的NET+ARM开发包中,有针对MAC地址、IP配置、序列号的程序。利用这些工具可以大大地节省时间和开发精力。
板级部件之间的通信有一个通用的机制是内存映射。处理器通常有一个系统总线,由地址和数据总线组成,它们都会被用来与外设进行通信。内存,如Flash和SDRAM,一般会驻留在处理器的系统总线上。其它的外围部件,如FPGA、LCD显示、编码器、其它类型的设备等,也会需要添加到这个总线上。
这一类型的实现通常有2个原因:效率和易用性。与许多其它类型的接口比较,系统总线上的效率是非常重要的。需要慎重考虑的是,究竟是何种其它外设是通过系统总线进行通信的。如果有许多高带宽的部件要进行通信,那么总线争用就会出现。从易用性角度出发,所有系统总线上的设备基本上类似于内存。使用智能的内存处理器,可以使得应用的硬件之间的通信容易得如同访问一内存区。
缓存的概念,就是检查每一次内存访问,看它是否在缓冲区中。如果不是,一个常规的内存访问会进行。如果该地址出现在在缓冲区中,指令或数据会直接在缓存中存取,而不需要尝试总线来进行外部的访问。这样一来,DMA控制器就可以继续使用总线而ARM内核直接从缓存控制器中取得指令。
6 其它网络因素
以太网通信所需的包含MAC、PHY、1个电压转换器和1个连接器。选择一个集成了MAC的处理器是非常有益处的,因为许多设计部件减少了。
在有外部MAC的情况下,有时附加的内存是需要的。通过集成MAC,系统的成本也会跟着降低。MAC的主要任务包括处理以太网上的冲突情况。当侦测到一个冲突时,MAC会将包放入发送单元,一直到将包发送出去为止。
许多应用为了与其它外设进行通信,既需要内部接口,也需要外部接口。内部接口通常是部件之间通信板级接口。许多情况下,处理器的系统总线会用来为外设做内存映射,比如USB、LCD、FPGA、MPEG编码器等。GPIO(通用I/O)可以用来构造像串行EEPROM的接口设备。除了外部设备(如硬盘或相机)的接口,还可以用来做部件通信相关设备(如MODEM、CODEC)接
口。对于很多类型的产品和部件,串行接口是常见的。串行拓扑,如RS232、422、485,在与外部设备通信时经常用到。用到485的有2个主要市场:工业自动化和楼宇控制。而现在以太网成了很多应用的常见连接方式,就像过去串行、并行连接一样。无线以太网又增添了远程的应用和功能,使得以太网可以延伸到那些不可能布线或布线成本太高的地点。802.11和蓝牙技术正在被不断地改进。
7 重启
重启也是设计中的关键因素。理解什么类型的重启可用,它们将对系统产生保种影响,以帮助设计者利用特定的情况。在NET+ARM芯片中,有5种重启可以使用:加电重启、通过RESET引脚的硬重启、看门狗重启、ENI重启和软件重启。
ENI重启允许NET+ARM被一个外部处理器重启。这是在NET+ARM作为一个协处理器负责网络通信的情况下使用的。加电重启、硬重
有2点本文没有讨论,分别是电源的稳定性和设备失效后的恢复。当系统中只有一闪存设备时(在成本敏感的设计中往往如此),如果电源失效,闪存就会瘫痪。这种情况如果发生,就得被迫用另外的方式来访问处理器。在NET+ARM的设计中,可选的方式包括JTAG连接,它允许编程者获得处理器的控制来纠正闪存中映像。
8 结论
最有效的系统设计一定要看到未来的发展并有所计划。近年来的半导体发展就反映了这个趋势。1μm的半导体处理技术被分别由0.8、0.5、0.35、0.25和0.18μm处理技术代替。每一次处理尺寸的缩小,就带来相关价格的降低和实现性能的提高。例如,早期的NET+ARM设计使用NET+12,现在就可以被NET+40或NET+50所代替。
如果设计得当,了解产品发展的未来路线和得到NetSilicon公司为客户所做的硬件设计检查,使用NET+ARM做设计时如果保证了这三点因素,客户就可以选择不同的NET+ARM产品而使用相同的板子。另外,额外的内存和部件的布局设计也可以增加,确保整个系统的设计更通用、能坚持更长的使用时间。通过了解产品需求、理解产品环境、精心选择部件、利用集成的方案、在为今天的需求设计产品时能为明天的改进计划出相应的路线,聪明的设计者可以最大限度地发挥产品的功效。这些因素会帮助你的设计和产品获得成功。