基于嵌入式Web的FPGA远程控制系统的设计与实现
2015-03-03刘黎明王用玺
刘黎明,王用玺
(1.商丘师范学院 物理与电气信息学院,河南 商丘476000;2.河南城乡规划设计总院有限公司 智能化研究所, 河南 郑州 450000)
基于嵌入式Web的FPGA远程控制系统的设计与实现
刘黎明1,王用玺2
(1.商丘师范学院 物理与电气信息学院,河南 商丘476000;2.河南城乡规划设计总院有限公司 智能化研究所, 河南 郑州 450000)
针对传统基于C/S模式的Web远程控制系统在性能、功耗及实时性上的弊端,提出了一种基于嵌入式Web的FPGA远程控制系统的SOPC设计方案,该方案硬件设计采用Altera EP4CE115F系列FPGA芯片和Nios II软核处理器,软件部分通过μC/OS-II实时操作系统实现嵌入式Web远程控制的功能.实验表明,该系统达到了控制的预期效果,对后续复杂远程控制的研究提供了一定的参考价值.
FPGA;SOPC;μC/OS-II;嵌入式web
0 引 言
随着网络技术的不断发展,互联网已经渗透到人们工作和生活的各个角落.嵌入式系统因其功耗低、结构紧凑、稳定可靠等优点,已经作为计算机领域的一个重要研究方向,广泛应用于社会生活的各个方面.由于人们对现代社会信息交互的迫切性,利用互联网技术通过嵌入式系统对设备进行实时性监控、检测、远程控制等将成为未来发展的趋势.
为了实现远程控制,嵌入式Web服务器必须具备先进的网络结构和硬件设施,具有一定的技术先进性、成熟可靠性、兼容性、扩展升级的功能.而现有的嵌入式Web服务器系统仍存在一些问题,文献[1]采用MSP430F149微控制器实现嵌入式Web服务器温度检测控制,基于16位单片机由于其运行速度、存储容量、功耗和资源不足等问题已经越来越不能满足复杂系统的需求. 文献[2]和文献[3]是基于ARM和S3C2440A实现嵌入式Web服务器的远程控制设计,虽然在实用性、易用性和速度上有了很大程度的提高,适合一般的应用,但是具有开发周期长,扩展升级性和灵活性不强的缺点,当结构相对复杂时,RAM和ROM会不足,而且不能直接对硬件进行修改,处理能力和实时性不能满足今后升级的要求[2,3].
采用片上可编程器件FPGA来实现网络通信目前已有报道[4-6],本设计采用Altera公司生产的EP4CE115F系列FPGA芯片和Nios II软核处理器[7,8]及SOPC技术构建嵌入式网络硬件平台以实现远程通信控制的目的.
1 嵌入式Web服务器技术
基于嵌入式Web的远程控制系统主要由两部分组成:嵌入式Web服务器、现场需控制的设备.服务器通过交换机或调制解调器与Intemet互联网连接,用户端只需在已联网的计算机上通过网页浏览器访问该远程服务器的IP地址,即可使用浏览器对远端的嵌入式设备进行检测和控制[9].
典型的嵌入式Web服务器有httpd、thttpd和Boa等,其中httpd功能最为简单,不支持CGI.Boa是一个select I/O多路复用的http服务器,源代码开放、性能高.它和传统服务器的主要区别是:它是单进程的,在接到请求时并不fork出一个新的进程来响应,不能将自己拷贝很多份来处理多连接;它在内部处理所有正在进行的http连接请求;只对单独的CGI程序、自动文件的产生、自动文件的解压等请求fork出新进程;它最大的优点就是代码简单、速度快,适合于嵌入式应用.本系统选择实现一个支持CGI的、能实现动态Web技术的Boa Web服务器.
2 系统设计
本系统硬件平台设计采用Altera公司的QuartusII软件+SOPC Builder,结合Nios II IDE集成开发环境,能够迅速有效的构建系统的硬件平台和软件平台,提高系统设计的效率.本系统的硬件框图如图1所示.
图1 系统硬件框图
2.1 硬件设计
本系统采用Nios CPU组件负责对系统进行统一的管理控制.定时器组件用于产生时钟来控制LED显示数字的变化.LCD组件用于控制LCD液晶显示屏.LED组件用于控制红色和绿色的LED灯.由于工程需要上电自启动所以需要EPCS组件和cfi_flash组件.cfi_flash组件需要连接在Avalon三态桥上才能正常工作,因此还需添加Avalon三态桥.另外考虑到软件程序需要一个空间来运行,所以添加SDRAM组件.JTAG_UART组件负责PC与Nios系统的通讯.88E1111 PHY组件来为网卡提供驱动.由于本工程还可以通过电平开关来对实验板的IP地址进行设置,因此还需要添加电平开关.系统整体结构如图2所示.
图2 WEB控制器SOPC系统结构图
2.2 软件设计
根据系统要求,软件设计主要包括嵌入式μC/OS-II实时操作系统[10]的移植、NicheStack TCP/IP网络协议栈的实现、应用级代码编写等部分.软件结构框图如图3所示.
NiosIIProcessorSoftwareDeviceDriverHALAPIMicroC/OS-IINichestackTCP/IPSoftwareCompomentApplicationSpecificSystemIntializationWebserverApplication
图3 系统软件结构框图
2.2.1 μC/OS-II在NIOS II中的移植
依据嵌入式Web系统在实时性和并发性等方面的要求,系统必须能够移植多任务实时操作系统才能满足系统在多任务环境下的调度,而μC/OS-II作为一个多任务的实时操作系统可以看作是多个任务进行调度的调度器,提供与多任务操作系统有关的信号量、邮箱等服务,μC/OS-II在Nios II上的移植集中在多任务切换的实现上,有处理器相关,只能用汇编语言来实现[11],不过由于Nios II IDE集成开发环境对μC/OS-II具有良好的支持性,所以能够很好的结合硬件完成移植工作.
μC/OS-II在Nios II处理器上移植μC/OS-II,需修改3个与Nios II体系结构相关的文件: OS_CPU.H文件,OS_CPU_C.C文件和OSCPUA.S文件.
(1)基本的配置和定义OS_CPU.H头文件.
OS_CPU.H头文件定义了程序中使用数据的类型、堆栈的增长方向、堆栈的宽度、任务切换宏和临界访问处理.基本的配置和定义全部集中在OS_CPU.H头文件中.
(2)编写4个预处理器相关的函数
在汇编文件OS_CPU_A32.S中需要移植的函数为OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR().
(3)OS_CPU_C.C
需要在OS_CPU_C.C文件中改写与操作系统有关的6个C语言函数即:OSTaskStkInit()、OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwHookStatHook()、 OSTaskTickHook().其中必须修改的函数是,其余5个都是用户接口函数及钩子函数,可以不加代码.
2.2.2 NicheStack移植
在系统的软件设计中,Altera已经在 Nios II IDE集成了NicheStack TCP/IP协议栈,在使用中可以根据需求通过在Nios II IDE下的图形化界面配置相应的选项就可移植到Nios II上,从而实现NicheStack的移植.
2.2.3 软件流程设计
工程运行时首先初始化NicheStack TCP/IP和网络设备,接着获得IP地址,随后建立操作Socket接口,等待客户端PC的请求,并判断此请求是需要接受还是需要发送,根据不同的请求做不同的操作.若是接受请求,则接受由客户端发送的IP包,解析IP包送至TCP层,之后解析TCP包到应用层,最后处理信息.如果是发送请求,则进行TCP打包,IP打包,最后传送数据.整个系统运行流程如图4所示.
图4 网络服务器流程图
3 实验测试
在整个硬件系统和软件系统配置好的情况下,首先,在PC终端通过ping命令验证系统可以进行正常的通信.其次,在系统正常通信的情况下运行网页服务器应用程序,FPGA作为服务器,此时LCD显示出本地的IP地址,在客户端PC机的网页浏览器中输入LCD上显示的IP地址并打开.然后在浏览器上出现的实时监控的网页页面 ,在网页中通过所设计页面的控件开关可访问FPGA硬件上不同的外设.本次测试通过网页控制按钮对硬件LED亮灭状态进行控制,同时可以通过对网页数据的更改来控制硬件LCD输出信息和设定七段数码管显示的数值.图5(a)、(b)为网页服务器运行页面截图.
图5 系统运行结果
4 结 语
本文在NIOS II嵌入式软核处理器的基础上, 采用μC/OS- II 实时操作系统,移植NicheStackTCP/IP协议栈, 在TCP/IP 协议的基础上实现了HTTP协议, 设计并实现了基于嵌入式Web的FPGA远程控制系统.系统具有占用系统资源少, 结构简单, 可扩充, 可升级,成本低和性能稳定等优点, 为基于嵌入式WEB的智能仪表、网络测控和远程监控系统提供了一个优秀的通信平台.
[1] 赖于树, 李迅波, 杜平安.基于嵌入式WEB服务器的多通道温湿度监测仪[J].仪表技术与传感器,2006( 05) : 16-18.
[2] 何鹏举. 基于Web服务的无线网络节点传感器研究[J].传感技术学报,2009,22(11): 1634-1638.
[3] 王莉,周伟.基于ARM的嵌入式Web服务器设计[J].计算机工程与应用,2012,48(14): 90-94.
[4] 杨林楠,李红刚,张丽莲,彭琳.基于FPGA的高速多路数据采集系统的设计[J]. 计算机工程,2007,33(07): 246-248.
[5] 彭坚,何渝. 基于FPGA的交通信息采集系统的设计与应用[J].计算机应用与软件,2011,28(01):82-84.
[6] 糜峰,肖铁军.基于NiosⅡ的嵌入式Web服务器设计与实现[J].测控技术,2010,2( 12):70-73.
[7] Kang Q M,HE H, Wang H R. Study on Embedded Web Server and Realization[J].International Symposium on Pervasive Computing and Applications, 2006:675-678.
[8] Altera Corporation. Nios II[M].Processor Reference Handbook, 2011.
[9] 张晓亮.基于SOPC以太网技术的研究与实现[D].大连:大连理工大学,2007.
[10] Labrose J J. 邵贝贝,等译. 嵌入式实时操作系统μC/OS-II[M].北京:北京航空航天大学出版社, 2003.
[11] 李正军.基于NiosII软核CPU的TCP/IP协议实现[D].西安:西安电子科技大学,2006.
【责任编辑:王军】
Design and implementation of FPGA remote control system based on embeded web server technology
LIU Liming1, WANG Yongxi2
(1.School of Physics and Electrical Informationof Shangqiu Normal UniVersity, Shangqiu 476000, China;2. Henan Institute of Urban and Rural Planning and Design Institute Limited Intelligent, Zhengzhou 450000, China)
To resolve the disadvantages of traditional web remote control system based on C/S model in performance、power consumption and real-time, a design scheme for embedded web remote control system based on FPGA is proposed in the way of SOPC. The system embeds Altera EP4CE115F series FPGA chip and the Nios II soft-core processor in its hardware design and introduces μC/OS-II real-time operating system in the software design. The experiments show that the system has reached the expected effect of the control, it provides a certain reference value for follow-up studies of complex remote control.
FPGA;SOPC;μC/OS-II;embedded web
2014-11-26;
2013-12-17
刘黎明(1982-),男,河南夏邑人, 商丘师范学院助教,硕士,主要从事嵌入式系统应用,复杂系统仿真的研究.
TP393
A
1672-3600(2015)03-0056-04