网络单片机PIC18F97J60的开发与应用 (2)

2009-01-18 10:32:52   作者:山东大学 师恩培 韩桂丽   来源:单片机与嵌入式系统   

关键字:网络单片机 互联网 C语言

2.4 Stack Manager
      Microchip TCP/IP协议栈由多个模块组成。在使用模块之前,用户必须查阅并了解它的用途和API。函数的语法、参数、返回值、前提条件等具体问题可以在编程时针对具体的问题单独查阅。
      使用Microchip TCP/IP协议栈的任何应用程序都必须执行一定的步骤,以确保在适当的时间调用相应的模块(例如IP、TCP、UDP和ICMP)。无论主应用程序逻辑如何,管理协议栈模块的任务都始终相同。
      为了减轻主应用程序管理各个模块的负担,Micro—chip TCP/IP协议栈使用了一个特殊的应用程序层模块,称为“StackTask”或“Stack Manager”。Stack Manager以协同式任务处理方式来实现。被赋予处理时间后,它将轮询MAC层是否存在有效的数据包。若接收到一个包,它将对其进行解码并路由到相应的模块做下一步的处理。
      Stack Manager。不是Mirochip TCP/IP协议栈的一部分,它与协议栈一起提供给用户。这样主应用程序除了自己的工作以外,不需要管理协议栈模块。执行StackManager任务之前,必须通过调用StackInit()函数来对其进行初始化。这个函数按正确的顺序初始化Stack Man—ager变量和各个模块。一旦调用Stacklnit(),主程序就必须定期调用StackTask()函数,以确保及时处理所有进入的包,以及所有的超时和错误条件。

2.5 MicrOChip HTTP服务器
      Microehip HTTP服务器以协同式任务处理方式实现,它与Microchip TCP/IP协议栈以及用户的主应用程序共存。这个服务器自身在源文件“HTTP.c”中实现,使用一个用户应用程序实现2个回调函数。
      这里提供的HTTP服务器不会实现所有的HTTP功能,它是面向嵌入式系统的最小型服务器。用户可以按需要方便地添加新功能。HTTP服务器主要功能包括:支持位于内部程序存储器或外部串行EEPROM中的网页、简单文件系统(MPFS)、动态网页内容生成和基于PC的程序,以及从给定目录创建MPFS映像等。
      对于Microchip协议栈及其HTTP服务器,特定格式是MPFS。如果MPFS映像要存储在外部EEPROM中,则可能需要在应用程序中包含编程方法。HTTP服务器使用文件“index.htm'’作为它的缺省网页。这要求所有应用程序都将名为“index.htm"的文件作为它们MPFS映像的一部分。
3 系统开发过程
3.1 动态HTTP页面生成

      本应用系统实例中服务器端网页的设计涉及2项网页开发技术:AJAX和CGI。篇幅所限,网页编程代码略。AJAX全称为“Asynchronoous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。与传统的Web应用不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其他一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,因此就能看到响应更快的应用。同时,很多的处理工作可以在发出请求的客户端机器上完成,所以web服务器的处理时间也缩短了。
      CGI(Common Gate Interface,通用网关接口)是Web服务器与客户端HTML页面的接口。通俗地讲,CGI就像是一座桥,把网页和Web服务器中的执行程序连接起来,把HTML接收的指令传递给服务器,同时把服务器执行的结果返还给HTML页。CGI可以实现处理表格、据库查询、送电子邮件等许多操作,常见的cGI就是计数器。CGI使网页不再是静态的,而变成是交互式的。
3.2 集成环境设计
      MPLAB IDEv8.OO提供了一个编程环境,由于使用C语言编程,故下载并安装了免费的C编译器MPLAB—C18一Student Edition—v3_16.exe。MPLAB集成环境是Micro—chip公司为其所有的开发工具研发的,使用前需要选择MPLAB ICD2。ICD2可以充当调试器和烧写器,debug—ger和programmer在菜单中都可以进行选择。在debug—ger模式下,Program按钮表示把目标文件和监控程序一起烧写入待调试的MCU中。
      MPLAB ICD2通过USB线连接主机,但不能使用默认的驱动。手动在MPLAB IDE软件中找到ICD2_USB驱动。这个路径包含1CD2W2K.INF、ICD2W2K.SYS、ICD2W2K L.SYS等文件。
      运行MPLAB.exe后,选择PICl8F97J60及MPLABICD2,则系统可下载配合该芯片使用的硬件操作系统。完成下载后,系统会检查ICD2的连接情况。
      建立工程项目包括下载安装Microchip TCP/IP协议栈、修改编译选项等。要将TCP/IP协议栈集成在主应用程序中,较容易实现且节省存储空间的方法是调用堆栈文件。但是当集成很多的应用程序时,使用该专用协议栈可能会产生特殊问题。本系统应用只是进行数据采集等简单应用,因此不必考虑此问题,只需要修改主应用程序MainDemo.c。这是Demo Application的核心文件,用来调用标准的Microehip TCP/IP堆栈文件。
      主应用程序MainDemo.c是服务器端程序执行的入口。它首先配置硬件,然后调用TCP/IP堆栈,运行检测程序,并等待客户端的请求。通过编译主程序生成.0结尾的目标文件,连接生成.hex和.cof文件。最后,结合Microchip公司的编程工具ICD2将映像烧写到单片机。
      Microchip HTTP服务器使用简单文件系统(Micro—chip文件系统或MPFS)来存储网页。MPFS映像可以存储在片上程序存储器或外部串行EEPROM中,它采用特殊的格式在给定的存储介质上存储多个文件。
      Microchip提供了MPFS.exe程序将网页转换为MPFS映像。在创建MPFS映像之前,用户必须先创建所有的网页和相关文件,并保存在同一个目录中。如果文件扩展名是“htm”,则Image Builder将去掉所有回车和换行字符来减小MPFS映像的大小。需要注意的是,生成的映像文件大小不要超过32 KB。接着需要把MpfsHan—Img.bin映像使用堆栈所提供的ftp服务上传到EEP-
ROM。也可以利用超级终端,通过串口将MPFS映像传送到EEPROM。
      此外,还要通过串口对单片机进行IP地址的设定,这样就完成了整个系统架构的设计。打开主PC机浏览器,输入远程单片机的IP地址,可以看到主控制监测页面,通过网页即可实现对远程单片机监测装置的控制,以及对温度、流量等信息的监测等。

[1] [2]
相关阅读
基于SX单片机实现WebServer和网络协议栈 2012-02-25
编辑:王丕涛
本文引用地址: http://www.eeworld.com.cn/mcu/2009/0118/article_1019.html
[发表评论]
[加入收藏]
[告诉好友]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
最热点击
专栏
向农,EEWORLD副总编。被英特尔董事长贝瑞特称为“中国可与之对话的两名记者之一”

【详细】

总编随笔
汤宏琳,人皆称为“汤汤”,电子工程世界高级编辑。随着EEWORLD一起成长。

【详细】

汤汤手记
今年,是中国集成电路产业丰收的一年,相比较往年都有大幅提升。

【详细】

凯哥博客
论坛精华
精选博文