基于Proteus的嵌入式以太网Web服务虚拟实验的设计与实现

2016-09-23 04:08郑伊乔郑全录郭永锋夏辉丽
科技与创新 2016年15期
关键词:虚拟实验室计算机网络单片机

郑伊乔+郑全录+郭永锋+夏辉丽

摘 要:目前,单片机、计算机网络实验大多采用的是实物仪器,如果设计方案有误或需要调整,则会浪费较多的时间和经济成本。在此利用Proteus+WinAVR+WinPcap等仿真软件设计了嵌入式以太网Web服务实验。实践结果表明,基于Proteus的虚拟实验实现了PC机IE浏览器访问嵌入式以太网Web服务。通过该实验不仅可以掌握单片机、网卡、Web服务等知识,还可以节省大量的硬件制作、调试时间,节省硬件的经费投入,从而为实践教学提供了一种新的现代化手段,有助于培养学生的创新能力。

关键词:单片机;计算机网络;Web服务;虚拟实验室

中图分类号:TP368.1 文献标识码:A DOI:10.15913/j.cnki.kjycx.2016.15.060

嵌入式系统一般包括硬件制作、软件调试和系统联调。如果设计方案有误或需要调试,则需要花费较多的时间和较高的经济成本。本文不需要使用额外的硬件,借助现有的软件建立了基于Proteus的网络虚拟实验,以研制电机控制在线远程监测系统。该系统包括单片机模块、监控终端模块、电机模块和以太网通信模块等。下面,主要介绍了单片机以太网通信模块在Proteus 环境下虚拟实验的设计和实现过程。

1 虚拟实验设计架构

目前,很多客户/服务器(B/S)项目都是采用PC计算机进行Web网络远程数据传送和控制的,但也有很多项目仅需要Web的一部分功能。为了降低成本,人们提出了无线、红外、蓝牙等技术,但这些技术都存在监控距离短的缺点。采用嵌入式微处理器,并为其加上TCP/IP网络协议功能已经成为了网络发展新阶段的标志。例如,对大学园区内远程电机、照明、空调等电力设备的监控。

该项目主要是基于AVR128+RTL8019设计的嵌入式Web服务,利用IE浏览器,单击所设计Web页中的超链接,可以实现用户密码设置、电机的启动与停止、电器运行状态的监控,并将采集到的信息反馈到IE网页等。本文的任务是使用计算机网络硬件平台(或一台计算机)、一套仿真软件构建一个IE浏览Web服务环境,以虚代实,以软代硬,就相当于一个设备齐全的实验室。

Proteus软件是著名的EDA工具软件,它支持8051、AVR、ARM等处理器和周边设备,支持AVR、Keil等多种第三方编译器。同时,其内置多种元器件(数字的、模拟的、交流的和直流的),比如门电路、存储器、运算器、放大器、数模转换器、二极管、三极管,电阻、电容和光电器件等,多种辅助仪器仪表,比如虚拟终端、示波器电压表和电流表等。

Atmega128是适用于嵌入式产品的8位RISC指令单片机,具有128 KB可编程FLASH(程序)、4 KB的数据E2PROM和动态SRAM。但其配套的AVR Studio开发环境仅支持汇编语言,未提供C/C++编译器。不过,它支持第三方提供的C/C++编译器,比如本文使用的是WinAVR GCC编译器。使用C语言大大提高了开发效率,而且程序的可读性好,便于移植。

实时操作系统是嵌入式应用软件的基础,用户的其他操作都是建立在实时操作系统上的。Nut/OS是针对Ethernet以太网开发的多任务开源操作系统,它将应用程序分割成若干个独立的线程,提供了大多数应用所需的API函数,比如文件管理、串行通信和网络驱动等。RTL8019AS以太网控制器是与Nut/OS配套使用的以太网控制芯片,它集成了IEEE802.3协议标准的介质访问控制子层(MAC)和物理层。

Winpcap用于捕获网络数据包,也就是说在虚拟实验时,计算机上有2个网卡,一个是主机自身的物理网卡,另一个就是前面介绍的RTL8019AS以太网控制器虚拟的网卡。该虚拟网卡的数据收发需要使用Winpcap软件捕获才能显示在IE浏览器中。

2 软件设计及调试

该设计是基于Ethernut的HTTP应用案例文件夹设计的,利用IE浏览器,单击所设计Web页中的超链接,就可以实现用户密码设置、电机的启动与停止、对电器运行状态的监控,并将采集到的信息反馈到IE网页上。

2.1 HTTP服务程序设计

对于动态状态页面的返回,可以根据前面程序中3个链接所指向的URL所带的链接表单参数作相应的处理。

为了防止非法用户操作电机,增强系统的安全性,在链接前面添加了admin,在程序中通过调用NUT/OS的API函数NutRegisAuth来保护admin路径下的文件,调用语句为:NutRegisterAuth(”admin”,admin_password)。单击链接请求时,浏览器会弹出对话框,要求输入用户账号和密码。

在主程序中,将cgi请求mcu_control.cgi注册给函数mcu_control。该函数的参数为文件流对象stream和请求对象req,通过调用Nut/OS的API函数NutHttpGetParameterName和NutHttpGetParameterValaue分别获得URL中“?”后面所带的参数名和参数值,即Para_name=NutHttpGetParameterName(req,0)。

2.2 系统调试

搭建Proteus+AVR Studio+WinAVR+WinPcap开发环境后就可以绘制系统原理图,编写项目C程序,最后编译生成目标Hex可执行文件。为单片机绑定所生成的Hex文件,绑定RTL8019AS以太网控制器的网卡号和MAC地址,就可以运行Web服务程序了,然后启动IE浏览器,输入以太网IP地址,就可以看到浏览器的运行效果。

3 结束语

这个实验实际是一个单片机综合实验。在这个实验中,一方面,学生需要掌握单片机内部、外部的资源情况,实现对网络控制器的控制;另一方面,还需掌握外部器件,比如虚拟终端、锁存器、外部RAM、RJ45网卡接口等的使用情况。通过电路原理图的设计、编程、调试和运行验证,可以加深学生从概念到产品设计全过程的认知。实验表明,利用软件仿真缩短了设计周期,降低了成本。该设计可应用于电力设备监控、农田墒情监控、便携式智能仪表和物联网等领域,具有较大的应用价值。

参考文献

[1]彭伟.单片机C语言程序设计实训100例[M].北京:北京航空航天大学出版社,2010.

[2]段建红,乔文长,刘强,等.基于proteus的单片机以太网接口模块设计[J].数字技术与应用,2012(6).

[3]刘珂琴,潘雪涛,张美凤.网络虚拟实验室的设计与实现[J].现代电子技术,2011,34(24).

〔编辑:白洁〕

猜你喜欢
虚拟实验室计算机网络单片机
基于应用型人才培养的《计算机网络》课程教学改革研究
浅析计算机网络安全的影响因素与防范措施
人工智能在计算机网络技术中的应用
计算机网络可靠性优化设计方法
虚拟实验室在食品专业仪器分析实验教学中的应用
电子技术仿真设计系统探究
基于VR的农业虚拟实验室设计和研究
合理使用虚拟教学手段,促进高等教育的教学质量
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法