|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于EWS的EPA蓝牙数据采集系统设计
# C* s/ J( T- c7 G! c) @+ t" v8 {$ r" _6 S4 f" m, K- s, i
引 言' a+ i% V Z( {6 B
EPA(Ethernet for Plant Automation)基于以太网(IEEE802.3)、无线局域网(IEEE802.11)和蓝牙(IEEE802.15)等信息网络COTS(Commercial-Off-The-Shelf)通信技术以及TCP(UDP)/IP协议,是一种适用于工业自动化控制系统装置与仪器仪表间,以及工业自动化仪器仪表间数据通信的工业控制网络技术。
* p# G3 U5 v# n7 h9 D7 T; n2 P 蓝牙技术是一种线缆替代短距离无线通信技术,工业现场某些工业设备需要安装在恶劣的工业环境中,采用蓝牙技术可以避免工业现场布线遇到的问题。嵌入式Web服务器的出现满足了工业控制网络低成本远程控制的需要。本文将两者结合起来设计和开发了满足EPA工业控制网络需求的蓝牙数据采集器,以嵌入式Web服务器EWS(Embedded Web Server)技术为基础,结合Rabbit2000的网络通信功能,利用现有的网络技术(如HTTP、CGI、SSI等),将蓝牙无线方式采集到的现场数据传送到服务器端,服务器以网页的形式,提供给远程用户使用。1 基于嵌入式Web服务器的蓝牙数据采集系统设计
3 i8 w$ l A1 x: N0 {+ } 基于嵌入式Web服务器的蓝牙数据采集系统模型如图l所示。蓝牙数据采集器是基于EPA协议的。远程监控用户通过企业内部网络连接到嵌入式Web服务器上,控制蓝牙芯片完成数据采集,并将采集到的数据返回嵌入式Web服务器,显示在远程管理终端的Web浏览器上。8 @ s$ w' @& w/ Q/ Z6 k
9 ^% h. [3 S) W: r) \0 i2.1系统硬件结构设计
$ H1 P( ?9 F) \2 f; t8 ]$ @7 H 基于EPA协议的蓝牙数据采集器的系统结构如图2所示。它包括微处理器、蓝牙模块、数模(D/A)转换模块、模数(A/D)转换模块、液晶显示模块、Flash存储器以及以太网控制器模块,其中:蓝牙模块、数模(D/A)转换模块、模数(A/D)转换模块以及液晶显示模块通过其接口电路分别与微处理器的串行通信接口连接。蓝牙模块采用的串口波特率是57600bps;微处理器的工作主频率是11.0592MHz、从频率是32.768kHz;蓝牙模块的工作电压是3.3V,这需要一个5V到3.3V的电压转换电路;图2中芯片没有标4 [; t; S7 o( e# T
明电源引线的都需提供5V电压。6 K2 g9 r$ l9 u2 `
, M1 u3 D) ~3 Z* }1 h+ A2.2工作原理
5 y- x. n0 \6 A ①打开蓝牙数据采集器的电源开关时,系统进行自检。
3 V, ^( K, {) n6 B$ ^9 d& x ②系统自检通过后,蓝牙数据采集器对蓝牙进行初始化,并在其覆盖范围内搜寻另外带有蓝牙芯片的现场设备。# p. Q% x/ M- ^ n( ~( y! G& u$ _
③若发现上述设备,各自的链路管理器就会发现对方,就可以在需要时鉴权和认证后建立通信关系。) U% D; G: j3 S4 a
④在需要进行现场数据采集时,将A/D转换模块的输入端口通过外围接口电路与被采集对象相连。A/D转换模块获得启动命令后,采集现场数据并交给微处理器进行处理,处理后的数据通过蓝牙模块发送给相关控制设备,也可以将处理后的数据传给嵌入式Wek·服务器。
, I7 A0 a8 ?! n; ^1 h' g& t ⑤同时,系统还配有一路D/A转换输出,在需要模拟量输出时,可将D/A转换器的输出端口通过外围接口电路与被控对象相连,程序将控制指令发给D/A转换模块,D/A转换模块接收到控制指令后转化为模拟量传送给现场设备,使现场设备按照控制指令进行工作。3 \% I0 y4 e7 Q. [6 M# Q
2.3软件总体设计
8 u9 p* V) N# o; l' ]% _ 基于EPA协议的蓝牙数据采集系统软件结构示意图如图3所示。
o/ H2 k$ Y j
8 o4 n, E& {* c7 |% |3 嵌入式web服务器的实现' G. k- n3 V$ b; q) d7 J+ B, O% W# W( Y
3.1嵌入式web服务器体系结构1 X5 v& {% O2 F
该系统的嵌入式Web服务器体系结构如图4所示。嵌入式Web服务器在本系统中处于用户和应用系统的中间。嵌入式Web服务器必须提供若干机制实现对现场设备的监视和控制,为浏览器提供和发送Web页并处理浏览器提交的数据[引。嵌入式Welh服务器设计难点之一是利用Rabbit2000来实现通过浏览器进行远程访问的能力,本系统采用cGI和SSI技术来实现;难点之二是嵌入式通信程序开发。本系统以Rabbit2000微处理器作为控制芯片,利用z—world公司提供的支持TcP/IP协议的通信子程序库,在Dynamic c集成开发环境下可以实现快速开发。+ D, X! `( I4 T
3.2前台FORM表单的编制和界面设计" L1 V1 U* p) y& n x& M4 _' o
用户提交的各种命令请求主要是采取F()RM表单形式提交给cGI程序的[引。Fc)RM是HTML,(超文本标记语言)的一种标识,可以用任何一种文本编辑器来编辑,存为.html文件可以被w’WW浏览器识别。数据输入尽量采用下拉框输入,界面友好。
& ^' H5 k$ k b& m! `% u# g3.3 HTTP协议处理流程4 T3 b+ c5 y+ U6 ~
HTTP协议处理的设计是嵌入式Web服务器系统的核心部分。CGI是一个用于定义Web服务器与外部程序之间通信方式的标准,可以用作一个扩展Web服务器功能的接口,通过CGI可以实现与访问Web网页的用户交互。! R5 `) E9 q/ O- P* ?
从本质上讲CGI就是一个服务机制。当用户通过Web浏览器向HTTP服务器发出一条具有GET或POST命令格式的请求,服务的具体步骤如下:
6 p4 k: d2 f' ]. m ①前台客户机利用浏览器使用TCP/IP协议,与服务器建立连接,发送URL请求;- j: p( V$ Z- h+ C+ C/ t* t* K
②服务器调用存入Rabbit2000芯片里的CGI程序,使用客户机传递的参数作为CGI程序的参数;/ m. t( Q8 Z2 z9 [
③CGI以能被识别的格式返回处理结果给HTTP服务器;
+ A: }: k) p# C3 |0 C8 H/ W ④HTTP服务器将数据返回客户端处理,并通过浏览器显示CGI执行的结果。2 M4 G4 }" g5 D6 o: A( _! o
图5显示了上述浏览器和服务器通过CGI程序实现交互的全过程。" a: z; k9 B# U$ j
6 c' j! A& M3 t; r% V4 z: ^
服务器端附件(SSI)是一种简单的动态Web页面生成技术。SSI定义了一组可以嵌于HTML文本中的标记,在送往客户端浏览器前,Web服务器先作预处理。可以把SSI想象成嵌于HTML页面的特殊程序。
* P8 k( K7 z! ? 下面举一个蓝牙数据采集系统进行蓝牙芯片初始化的例子,其中SSI的命令字为exec,参数为showinitial,通过HttpSpec http_flashspee[]里的{ HTTPSPEC _ FUNCTION, “ showinitial”,0. show_initial,0,NULL,NULL}语句与主程序里面CGI函数中的int show_initial(Http-State*state)建立关系,并返回此函数结果在HTML文本里面显示。
8 ~6 k- e* t5 S7 ^+ w; y ?3 s; X) |% \2 `9 D. g4 V9 f/ }3 ^
; E g5 V6 K, h H[table]% P- f G$ G& j1 q& ^
[tr][td]<1NPUT TYPE=”SUB-MIT”VALUE=”初始化”></TD>0 L" w' A& i7 H/ @+ a, h
5 e- S, l; c2 T3 Y& q8 \5 j. S</TR></TABLE>9 x0 ?1 { q) f5 A! k4 z6 ?
</FORM></TD>
* g# ~1 q) n) B1 c7 w3.4 后台DynamicC程序实现
" N8 G0 @* E/ I# m& m* c% A EPA协议中采用了UDP协议来传送报文,不需要证实,满足工业现场的实时要求。使用DynamicC编译环境实现UDP报文传输通信程序主框架代码如下:
2 w; r- b' n9 G$ s) ahtp_init();
$ Z/ H0 l7 J- E: i9 w1 cinit_dateform(); //设置静态数据?
9 B) ~, m6 ~* Zinit_dynamicwebdata();//初始化动态Web数据) b% @' g" @$ |/ z/ A5 ?; y& w( n' `
tcp_reserveport(80); //标志80端口为服务器端& z6 Y$ @) l# B5 U0 L5 C6 G3 b
while(1){
$ U" |4 D a) Wtcp_tick(NULL);; a+ J, h$ j1 n2 s: V4 s/ T
http_handler(); //处理HTTP
( |1 j3 f' i, O8 k5 R8 {* {costate{/ R) W7 Q9 n) ~9 J' U
waitfor(udp_peek(&sock, &udi));
' l: O x: G) W* d" A. Ktcp_tick(NULL);
6 N' w! c6 g+ k. n3 D3 y# o/ ^Handle_Udp(&sock,&udi);$ @% R, P, l: f2 X2 t$ b7 [9 w
}
! m6 V) A) M0 {: g}
0 u/ f- T+ r2 w0 n 在Web服务器程序中编写用户的自定义函数,用来处理从用户端浏览器发送过来的CGI请求。在DynamicC中通过结构HTTPSPEC_FILE将动态网页与静态网页结合起来,通过结构HTTPSPEC_FUNCTION将用户自定义函数和每一个CGI请求联系起来。这样,当一个CGI请求被触发且送到Web服务器上时,服务器程序就将寻找相应的函数进行处理,并返回结果。& I9 I0 e2 R9 ]3 N n; M" G' Z
{HTTPSPEC_FILE, “/index.html”,index_html,NULL,0,NULL,NULL},{HTTPSPEC_FUNCTION, “/initial.cgi”,0,initial,0,NULL,NULL),{HTTPSPEC_FUNCTION, “/setuplink.egi”,0,setuplink,0,NULL,NULL},界面显示效果部分代码如下:
9 p) ?3 h! H, I2 \var=sspec_addvariable (“getdata2”,&getdata[1],PTRl6,"%s",SERVER_HTTP);- u; ~$ ~& `5 d) g3 e5 B
var=sspec_addfv(form,var);
4 ~3 C/ y" F1 ?: g! |. Osspec_setfvname(form,var,“蓝牙地址”);9 d' x; W, K1 n# D
sspec_setfvdesc(form,var,“蓝牙本地地址”);* I8 p2 J$ `8 c( `6 F* u- ~
sspec_setfvlen(form,var,12);
; ~ M& k3 w3 N4 l# I4 g+ Y! y( S8 _4 u+ p t/ b. m
结 语
% g, i+ @9 w/ {3 W: C 文章重点探讨了基于嵌入式Web服务器的EPA蓝牙数据采集系统的设计方法与实现中的一些关键问题。此系统的测试充分表明,利用嵌入式技术在嵌入式系统中开发基于EPA协议的蓝牙数据采集系统的嵌入式Web服务器是切实可行的。工控系统基于嵌入式Web服务器的远程监控维护方式将有效降低监控运行维护成本、提高监控运行维护效率,因而具有很大的应用前景和推广价值。
2 n. x8 O. X' g* B0 {7 H5 v |
|