本文研究的课题就是利用Web浏览器监制USS协议变频器。要实现这些功能,就要在硬件上开发一个小型的Web服务器,需要在硬件平台上完成TCP/IP的裁剪和移植。Web服务器完成对网络数据的处理,根据用户提交的命令来对USS变频器进行相应的控制。在浏览器端,如果用户监控网页的网址,就会向服务器发送HTTP请求,服务器把监控网页的HTML代码发送到浏览器端。服务器里有相应的程序来接收和发送USS报文,实现对西门子变频器的控制。
基于TCP/IP协议的以太网已成为工业标准,随着以太网的发展,以及嵌入式Web服务器发展为网络中的越来越小的网络节点,为嵌人式web在工业中的应用提供了机会。
1 系统的软硬件平台
1.1 EasyARM8962教学实验平台
EasyARM8962教学实验平台采用了LuminaryMicro公司生产的Stellaris系列微控制器LM3S8962处理器,具有JTAG调试等功能。该芯片内部具有:UART,SSI,I2C,以及256 KB FLASH和64 KBSRAM。该处理器内部集成了网络控制器,具有强大的网络功能。硬件系统结构如图1所示。
1.2 μC/OS-Ⅱ的移植与嵌入式TCP/IP协议栈
μC/OS-Ⅱ是近年来发展迅速的开放源码实时操作系统,具有可移植性好、可裁减、可固化的优点。将μC/OS-Ⅱ引入嵌入式网络系统,既可以实现系统的实时性要求,又可以提高系统的可靠性。周立功公司提供的移植代码为使用μC/OS-Ⅱ做好了铺垫工作,与处理器类型有关的文件OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。本文采用最新版本的μC/OS-ⅡV2.52。
本设计采用周立功公司的ZLG/IP协议栈。ZLG/IP协议栈代码量小,是面向嵌人式系统开发的基于μC/OS-Ⅱ的小型TCP/IP协议栈,它支持TCP,UCP,IP,ICMP,ARP。
基于ZLG/IP“用户可配置和裁剪”的特点,为了进一步提高代码的运行速度,根据实际项目应用需要可对ZLG/IP协议栈进行裁剪。对ZLG/IP协议栈的配置是通过修改软件栈下的cfg_net.h来实现的。在此文件里设置使用的MAC地址、子网掩码、IP地址和本地网关。设置的子网掩码应与客户机的相同、IP地址要设置成与客户机同一网段内,网关地址可以设置为客户机的IP地址。
2 USS协议及MM440变频器的设置
要利用USS协议实现对西门子MM440变频器的远程控制,必须对其进行相应的设置。对本设计而言,具体设置如下:
P0700[0]=5(设定命令给定源为COM链路的USS报文命令);
P1000[0]=5(设置频率给定源为COM链路的USS报文);
P2009[0]=0(USS标称化);
P2010[0]=6(设定USS、通信的波特率为9 600 b/s);
P2011[0]=0(设定变频器的惟一地址,取值范围为0~31,这里给定地址为0);
P2012[0]=2(定义USS报文的PZD部分中16位字的数量,即USS PZD长度);
P2013[0]=127(定义USS报文的PKW部分中16位字的数量,即USS PKW长度。127是最有用的设定,此设定下PKW应答长度视所需的信息量而变);
P0971=1(在设定为1时,从RAM向E2PROM传送参数值)。
3 HTTP协议和嵌入式Web服务器的实现
3.1 HTTP协议
HTTP协议是基于请求/响应模式的。一个客户机与服务器建立连接后,发送一个请求给服务器。服务器接到请求后,给予相应的响应信息。在Internet上,HTTP通信通常发生在TCP/IP连接之上,缺省端口是TCP80。
Web浏览器利用HTTP协议和服务器进行通信。浏览器向服务器发送请求之后,服务器会将所请求的网页发送到浏览器,服务器也可以根据HTTP请求所提交的信息运行相关程序。要从Web服务器获得网页,必须输入Web服务器的IP地址,例如:
http://210.31.192.70
浏览器定位IP地址然后打开TCP连接的服务器端口80,之后利用HTTP协议发送由GET行组成的请求:GET/HTTP/1.0。GET方法是获取Web文档的一种HTTP方法。如果服务器响应HTTP/1.0 200OK表示连接成功,然后Web网页就可以发送。GET方法把参数数据队列加到提交表单的ACTION属性所指的URL(统一资源定位符)中,值和表单内各个字段一一对应,在URL中可以看到。GET请求的数据会附在URL之后,以“?”分割URL和传输数据,参数之间以“&”相连。如果数据是英文字母/数字,原样发送,如果是空格,转换为“+”。虑到本系统提交的信息的特点,使用GET方法来设计Web服务器。
3.2 Web服务器的设计与实现
在μCO/S-II操作系统中,根据尽量减少任务数以提高CPU利用率的原则,本设计建立了四个任务。这四个任务是:taskstart(启动任务)、taskC(接收TCP信号量任务)、taskE(TCP数据处理任务)、taskF(接收和发送USS报文任务)。四个任务之间的关系,各自的优先级设置及任务间的通信机制如图2所示。
Web服务器应用任务完成TCP通信,在此任务中网页信息以HTML格式存储于一个全局变量的Web[]数组中,这些信息通过HTTP协议沿TCP连接发送到浏览器,以HTML文本格式定义的全局变量Web[]数组如下: