智能网络设备开发中的硬件设计
录找一个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的26、27地址线来驱动。这样,数据有效是依赖输出使能而不是片选使能。从而,就可以绕过与Flash设备相关的几个慢速访问周期。
除了理解不同的类型和内存需求,找到正确的内存大小依赖于内存允许的访问时间。内存速度直接影响传输率性能,而传输率直接影响到处理器能处理多少数据。内存慢导致取指令慢,接着就降低了整个产品效率。理解这些产品需求中的依赖性对建造一个嵌入式产品是必不可少的。要理解内存速度的需求,需要对NET+ARM了解得更详细一些。NET+ARM的系统周期在它的总线主控制者之间共享。也就是说,系统时钟周期在ARM7内核和内部10通道的DMA控制器之间分享。在这样的设计中,ARM内核每得到一个时钟周期,DMA也同样得到一个时钟周期,在将总线交回下一个控制者之间,总线主控制者被允许可以突发至4个长字。
下一个较关键的性能是时钟速度。NET+ARM通常使用33MHz的时钟。这样就给它的处理时间差据周期的单位数,将结果乘上30ns,再将所得结果乘2,就得到了整个系统时钟周期的时间。请注意每一个总线控制者都可以突发至4个字长或16个字节。整个系统周期基本上是ARM、DMA1、ARM、DMA2,依次类推。我们看一下DMA通道1(以太网接收通道),可以简单地将每个系统周期移动16个字节转换成每秒多少兆字节。
除了Flash,附加的NVRAM有时会被忽略。许多RTOS广商推荐使用一些如EEPROM的小型NVRAM设备来存储配置信息。为了增强易用性,NetSilicon推荐用EEPROM来保存如MAC地址、序列号、IP地址一类的设备配置。当产品的IP地址或配置设定被改动时,程序可以简单地将新的值写到EEPROM中,而不需要保存配置信息的Flash的该扇区重新擦写。由于需要的EEPROM的容量通常较小,使用的NVRAM设备也是小设备。在NetSilicon公司的NET+ARM开发包中,有针对MAC地址、IP配置、序列号的程序。利用这些工具可以大大地节省时间和开发精力。
板级部件之间的通信
《智能网络设备开发中的硬件设计(第3页)》