以太网技术越来越成熟,特别是基于tcp/ip通信协议的web技术得到了广泛应用。我们可以用微控制器加以太网接口芯片,取代pc机进行现场控制,组成嵌入式web serv-er系统。现场传感器自动跟踪各监测点的信息,把检测到的数据存储在非易失性存储器中,并及时发布到互联网上;相关的工作人员就可以通过web技术对设备进行远程控制、管理和维护,从浏览器上直接监控现场设备的运行,这样就大大提高了生产效率和管理水平。
为了实现web服务器的功能,嵌入式操作系统和一个可实现的tcp/ip协议栈是必需的,因此对嵌入式处理器提出了更高的要求。与传统的8/16位单片机相比,arm核处理器在运算速度、功耗和存储容量方面都有很大的优势,而且arm核处理器可以很方便地实现嵌入式tcp/ip协议栈,所以arm核处理器成为嵌入式web服务器设备的首选处理器。系统的设计模型如图1所示。
1 系统硬件设计
arm核处理器lpc2210基于支持实时仿真和嵌入跟踪的32/16位arm7tdmi—s cpu。片内有16 kbsram,通过外部存储器接口配置成4组,每组的容量达16 mb。lpc2210采用144脚封装,功耗极低,具有多个32位定时器、8路10位adc、pwm输出,最多可提供76个gpio以及多达9个外部中断引脚;采用3级流水线技术,极大地提高了指令执行效率,通过可编程的片内锁相环(pll)可实现最大60 mhz的cpu操作频率。
lpc2210的emc组合符合arm公司的pl090标准,总线宽度可设置为8位、16位或32位,通常16位总线宽度的存储器具有较高的性价比。
以philips公司的arm核处理器lpc2210为核心来实现嵌入式web服务器;网络接口芯片采用realtek公司的ne2000兼容芯片rtl8019as,它内置了10base—t收发器,通过hr901170a器件接入以太网。硬件结构如图2所示。
在图1中,lpc2210扩展了2 mb的nor flash(芯片型号为sst39vfl60)和8.mb psram(芯片型号为mt45w4mwl6)。为了方便调试及最终代码的固化应用,使用lpc2210外部存储器接口banko和bankl的地址空间,通过片选信号选通nce_f和nce_r,来将地址空间bank0和bankl分别分配给psram和flash。通常将代码固化到flash,分配flash为bank0,psram为bankl,因为bank0可以用来引导程序的运行。
lpc2210的大容量片上存储器为tcp/ip协议栈的实现和数据处理提供了足够的存储空间;利用lpc2210spi接口扩展mmc/sd卡作为外部非易失性存储器,可以将adc现场采集的数据、ip地址、网卡物理地址以及更新网页保存在里面,需要时还可随时更换mmc/sd卡。lpc2210具有arm和thumb指令集,采用流水线处理技术,能在指令执行期间预处理下一条指令,极大地提高了指令执行效率,为需要快速传输数据的网络应用提供了有效的支持。
2 系统软件设计
ecos(embedded configurable operating system,嵌入式可配置操作系统)是一种针对16位、32位和64位处理器的可移植嵌入式实时操作系统。由于其源代码公开,因而越来越多的设计人员开始关注ecos操作系统。ecos最大的特点是模块化、内核可配置。最小版本的ecos只有几百字节,非常适合小型嵌入式系统的开发。与嵌入式linux相比,ecos有配置灵活和节省资源的优势。它的其他优点是使用多任务抢占机制、具有最小的中断延迟、支持嵌入式系统所需的所有同步原语,并拥有灵活的调度策略和中断处理机制。因而ecos具有良好的实时性,与μclinux和μc/os等操作系统相比,它更适用于处理实时信号的设备,如移动通信、wlan等通信设备的开发。
3 ecos的移植
图3所示为ecos的移植流程。ecos的移植通过3个子模块来完成,即体系结构抽象层(architeeture hal)、变体抽象层(variant hal)和平台抽象层(platform hal)。对一个新的体系结构来说,系统结构抽象层的建立相对来说比较困难。目前,ecos已经支持各种主流cpu,也就是说,ecos源码中包含了cpu的体系结构层和变体抽象层,所以移植工作主要集中在平台抽象层。
redboot移植是平台抽象层移植的最好开始。redboot是位于硬件抽象层之上的命令行接口,并且包含gdb调试工具及其调试stub。一旦硬件抽象层移植到目标板中,redboot能将程序加载到目标板中,并且能在目标板上调试代码。
4 tcp/ip协议栈——lwip的实现
lwip是瑞士计算机科学院adam dunkles等人开发的用于嵌入式系统的开放源代码tcp/ip协议栈。它既可以移植到操作系统上,也可以在无操作系统的情况下运行。lwip实现的重点是,在保持tcp协议主要功能的基础上,减少对ram的占用;一般只需要几十字节的ram和40 kb左右的rom就可以运行,这使得lwip适合在中低端的嵌入式系统中应用。
lwip主要可以分为图4所示的几个层次。主要功能模块有:操作系统模拟层、网络接口函数、实现tcp/ip协议的各部分模块 (ip、udp、tcp、ic—mp、arp)、缓冲和存储管理子系统、校验和函数。
lwip api是一组应用程序接口,通过该接口程序员就可以使用lwip所有的功能。另外,lwip也为开发者提供了更加高级的bsd socket apl,使其可以使用通用的socket函数来编写网络通信软件。操作系统模拟层可以使lwip能够使用操作系统提供的一些高级管理功能,例如信号量管理、消息队列管理、创建线程等。
4.1 ip处理
lwip仅能实现ip层大部分基本功能。它虽然能够发送、接收以及转发信息包,但不能接收和发送ip分片包,也不能处理携带ip参数选项的信息包。不过对大多数的应用来说,这不会成为问题。
①接收信息包。对于到达的ip信息包,可由网络设备驱动调用ip_input()函数开始处理,并在这里完成对ip版本字段及包头长度的初始完整性检查,同时还要计算和验证包头校验和。
②发送信息包。外发的信息包由ip_output()函数处理,该函数使用ip_route()函数查找适当的网络接口来传送信息包。当外发的网络接口确定后,信息包传给以外发网络接口为参数的ip_output_if()函数。
③转发信息包。如果没有网络接口的地址与到达信息包的目标地址相同,信息包应被转发。这项工作由ip_ forward()函数完成。
④icmp处理。icmp处理相当简单。ip_input()函数收到的icmp信息包被移交给icmp_input()函数,后者对icmp包头解码,然后进行适当的动作。
4.2 udp处理
udp是被用来在不同进程问分解信息包的简单协议。每个udp会话的状态保存在一个pcb结构体中。udp pcb保存在一个链表中,当一个udp数据包到达时对这个链表进行匹配检索。
4.3 tcp处理
tcp属于传输层协议,它为应用层提供了可靠的字节流服务。对它的描述要比对其他协议的描述复杂的多,其代码占了lwip代码总量的50%。基本的tcp处理过程被分割为6个功能函数来实现,tcp_input()、tep_ process()及tcp_receive()函数与tcp输入有关,tcp_write()、tcp_enqueue()及tcp_output()则用于tcp输出。tcp的处理过程如图5所示。
4.4 应用程序接口设计
lwip api专为lwip设计,所以它可以充分利用lwip的内部结构实现其设计目标。lwip api与bsdapi类似,但操作相对低级。api不需要在应用程序和协议栈之间复制数据,因为应用程序可以巧妙地直接处理内部缓冲区。另外,bsd socket api易于理解,并且很多应用程序为它而写,所以lwip保留一个bsd socket兼容层是很有用的。
鉴于tcp/ip协议栈的处理模式,apl分成两部分实现。如图6所示,一部分作为应用程序的连接库实现,另一部分在tcp/ip进程内实现。这两部分之间采用由操作系统模拟层提供的进程间通信机制(ipc)进行通信。当前的实现采用以下3种ipc方式:共享内存、消息传递和信号量。虽然这些ipc方式被操作系统支持,但它们并不需要操作系统底层支持,实际上是操作系统模拟层在模拟它们。
结 语
基于实时内核ecos,在嵌入式系统中实现了lwip协议栈的移植与优化。移植优化后的lwip栈做为一个网络模块运行,代码占用40 kb的rom,实现了ethernet/ip/tcp网络功能,并提供了模块api,与系统实现无缝连接。基于lwip的网络应用任务与其他非网络应用任务在egos实时内核管理下协调运行。进一步增强了协议栈的网络安全性与稳定性,并开发相应的的网络应用程序。“ecos/lwip协议栈”架构有望应用在信息家电和网络化的仪器、仪表方面。
TCL通讯Alcatel 3V智能手机选用意法半导体NFC技术
丰田混合动力车型有哪些_性价比如何
人工智能是一种改善数据处理的好方法
荣耀畅玩6A怎么样 值不值得买
如何用C语言程序盗取QQ密码
基于ARM和eCos的嵌入式WEB服务器设计
什么是真正无线立体声?TWS耳塞式耳机的工作原理
MongoDB引入字段级数据库加密安全功能
PCB板上镀金与镀银的区别是什么?结论你绝对想不到
反激变换器的设计步骤,了解一下!
如何提高单次充电的容量和续航里程
未来数智化供应链将如何实现系统性变革
MTC-PD65W1C-CTA1快充电源-使用MTC-650V Cascode D-GaN
电感的选型要注意哪些问题
嘉协达与Inktank共推变革性Ceph储存平台
云计算服务类型之一IaaS介绍
台湾亚洲电材集团江苏东台公司奠基仪式10/17隆重举行
蚂蚁集团被四部门监管约谈意味着什么 蚂蚁回应约谈:严格遵从监管要求
利用FPGA构建边缘AI推理的解决方案
盘点GSM网络漏洞导致的网络诈骗常用手段