扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
2.1系统硬件结构设计
基于EPA协议的蓝牙数据采集器的系统结构如图2所示。它包括微处理器、蓝牙模块、数模(D/A)转换模块、模数(A/D)转换模块、液晶显示模块、Flash存储器以及以太网控制器模块,其中:蓝牙模块、数模(D/A)转换模块、模数(A/D)转换模块以及液晶显示模块通过其接口电路分别与微处理器的串行通信接口连接。蓝牙模块采用的串口波特率是57600bps;微处理器的工作主频率是11.0592MHz、从频率是32.768kHz;蓝牙模块的工作电压是3.3V,这需要一个5V到3.3V的电压转换电路;图2中芯片没有标明电源引线的都需提供5V电压。
2.2工作原理
①打开蓝牙数据采集器的电源开关时,系统进行自检。
②系统自检通过后,蓝牙数据采集器对蓝牙进行初始化,并在其覆盖范围内搜寻另外带有蓝牙芯片的现场设备。
③若发现上述设备,各自的链路管理器就会发现对方,就可以在需要时鉴权和认证后建立通信关系。
④在需要进行现场数据采集时,将A/D转换模块的输入端口通过外围接口电路与被采集对象相连。A/D转换模块获得启动命令后,采集现场数据并交给微处理器进行处理,处理后的数据通过蓝牙模块发送给相关控制设备,也可以将处理后的数据传给嵌入式Wek·服务器。
⑤同时,系统还配有一路D/A转换输出,在需要模拟量输出时,可将D/A转换器的输出端口通过外围接口电路与被控对象相连,程序将控制指令发给D/A转换模块,D/A转换模块接收到控制指令后转化为模拟量传送给现场设备,使现场设备按照控制指令进行工作。
2.3软件总体设计
基于EPA协议的蓝牙数据采集系统软件结构示意图如图3所示。
3 嵌入式web服务器的实现
3.1嵌入式web服务器体系结构
该系统的嵌入式Web服务器体系结构如图4所示。嵌入式Web服务器在本系统中处于用户和应用系统的中间。嵌入式Web服务器必须提供若干机制实现对现场设备的监视和控制,为浏览器提供和发送Web页并处理浏览器提交的数据[引。嵌入式Welh服务器设计难点之一是利用Rabbit2000来实现通过浏览器进行远程访问的能力,本系统采用cGI和SSI技术来实现;难点之二是嵌入式通信程序开发。本系统以Rabbit2000微处理器作为控制芯片,利用z—world公司提供的支持TcP/IP协议的通信子程序库,在Dynamicc集成开发环境下可以实现快速开发。
3.2前台FORM表单的编制和界面设计
用户提交的各种命令请求主要是采取F()RM表单形式提交给cGI程序的[引。Fc)RM是HTML,(超文本标记语言)的一种标识,可以用任何一种文本编辑器来编辑,存为.html文件可以被w’WW浏览器识别。数据输入尽量采用下拉框输入,界面友好。
3.3HTTP协议处理流程
HTTP协议处理的设计是嵌入式Web服务器系统的核心部分。CGI是一个用于定义Web服务器与外部程序之间通信方式的标准,可以用作一个扩展Web服务器功能的接口,通过CGI可以实现与访问Web网页的用户交互。
从本质上讲CGI就是一个服务机制。当用户通过Web浏览器向HTTP服务器发出一条具有GET或POST命令格式的请求,服务的具体步骤如下:
①前台客户机利用浏览器使用TCP/IP协议,与服务器建立连接,发送URL请求;
②服务器调用存入Rabbit2000芯片里的CGI程序,使用客户机传递的参数作为CGI程序的参数;
③CGI以能被识别的格式返回处理结果给HTTP服务器;
④HTTP服务器将数据返回客户端处理,并通过浏览器显示CGI执行的结果。
图5显示了上述浏览器和服务器通过CGI程序实现交互的全过程。
服务器端附件(SSI)是一种简单的动态Web页面生成技术。SSI定义了一组可以嵌于HTML文本中的标记,在送往客户端浏览器前,Web服务器先作预处理。可以把SSI想象成嵌于HTML页面的特殊程序。
下面举一个蓝牙数据采集系统进行蓝牙芯片初始化的例子,其中SSI的命令字为exec,参数为showinitial,通过HttpSpechttp_flashspee[]里的{HTTPSPEC_ FUNCTION, “ showinitial”,0. show_initial,0,NULL,NULL}语句与主程序里面CGI函数中的int show_initial(Http-State*state)建立关系,并返回此函数结果在HTML文本里面显示。
<1NPUTTYPE=”SUB-MIT”VALUE=”初始化”></TD>
</TR></TABLE>
</FORM></TD>
3.4后台DynamicC程序实现
EPA协议中采用了UDP协议来传送报文,不需要证实,满足工业现场的实时要求。使用DynamicC编译环境实现UDP报文传输通信程序主框架代码如下:
htp_init();
init_dateform();//设置静态数据
init_dynamicwebdata();//初始化动态Web数据
tcp_reserveport(80);//标志80端口为服务器端
while(1){
tcp_tick(NULL);
http_handler();//处理HTTP
costate{
waitfor(udp_peek(&sock,&udi));
tcp_tick(NULL);
Handle_Udp(&sock,&udi);
}
}
在Web服务器程序中编写用户的自定义函数,用来处理从用户端浏览器发送过来的CGI请求。在DynamicC中通过结构HTTPSPEC_FILE将动态网页与静态网页结合起来,通过结构HTTPSPEC_FUNCTION将用户自定义函数和每一个CGI请求联系起来。这样,当一个CGI请求被触发且送到Web服务器上时,服务器程序就将寻找相应的函数进行处理,并返回结果。
{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},界面显示效果部分代码如下:
var=sspec_addvariable(“getdata2”,&getdata[1],PTRl6,"%s",SERVER_HTTP);
var=sspec_addfv(form,var);
sspec_setfvname(form,var,“蓝牙地址”);
sspec_setfvdesc(form,var,“蓝牙本地地址”);
sspec_setfvlen(form,var,12);
结语
文章重点探讨了基于嵌入式Web服务器的EPA蓝牙数据采集系统的设计方法与实现中的一些关键问题。此系统的测试充分表明,利用嵌入式技术在嵌入式系统中开发基于EPA协议的蓝牙数据采集系统的嵌入式Web服务器是切实可行的。工控系统基于嵌入式Web服务器的远程监控维护方式将有效降低监控运行维护成本、提高监控运行维护效率,因而具有很大的应用前景和推广价值。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者