APP下载

单网络节点在WinCE系统下的程序设计

2013-01-13中国船舶重工集团公司第七一研究所

电子世界 2013年11期
关键词:驱动程序采集器调用

中国船舶重工集团公司第七一〇研究所 覃 昉

单网络节点在WinCE系统下的程序设计

中国船舶重工集团公司第七一〇研究所 覃 昉

介绍了在WinCE系统环境下,通过编程实现ARM平台与其他设备的通信。针对需要的WinCE系统内核定制,研究了WinCE系统下网口通信的实现,探讨了WinCE系统下SD的数据存取和四通道AD采集的驱动和应用。

网络节点;wince;数据通信

1.单网络节点系统

所谓节点简单而言就是指的具有收发数据功能的电脑或其他设备。一个好的节点既需要选择好的硬件的支持,也需要选择适合的软件控制[1],本文选择S3C6410的Arm11芯片作为节点CPU,选择Windows CE 6.0作为运行在ARM上的嵌入式操作系统,通过网口,串口,SD卡完成相应的数据通信功能。本文研究的节点硬件结构框图如图1所示。

2.WinCE下网口数据传输程序设计

2.1 网口服务器程序设计

在利用套接字进行网络通信的实际应用中,一般采用的是服务器/客户端[2]的模式,在本文的设计中,既研究了以PC机作为服务器端,以ARM作为客户端,又研究了以ARM作为服务器端,以PC机作为客户端。本文服务器设计的基本流程为:利用函数socket()创建一个套接字,然后利用函数bind()将该套接字与本地(PC机)的IP地址和端口号绑定,接着利用函数listen()使该套接字处于监听状态,然后当等待到客户端的连接信号后,利用函数accept()与客户端连接,最后利用函数send()和函数recv()进行通信工作。当结束通信后,再利用函数closesocket()将套接字关闭。

2.2 本文的服务器端程序设计思想

本文的服务器端程序设计思想如图2所示。

3.WinCE下AD数据采集程序设计

3.1 ARM板AD采集器驱动程序设计

流接口驱动就是通过调用动态连接库的方式来加载硬件的功能,它由设备管理器直接调用。WinCE系统下的流接口驱动编写,有着固定的接口入口点,其接口点是一系列的类似于XXX_Open()结构的函数集。由这些函数集来调用系统的文件API函数和相应的组件。本文设计的是AD采集器的流接口驱动,接口入口点(即函数集)和用途如下所描述:

(1)函数ADC_Init(),该函数用于初始化AD采集器设备,为系统的设备管理器所调用。

(2)函数ADC_Denit(),该函数用于卸载AD采集器设备,为系统的设备管理器所调用。

(3)函数ADC_Open(),该函数用于打开AD采集器设备,被系统的文件API函数CreateFile()调用。

(4)函数ADC_Close(),该函数用于关闭AD采集器设备,被系统的文件API函数CloseHandle()调用。

(5)函数ADC_Read(),该函数用于从AD采集器读取数据,被系统的文件API函数ReadFile()调用。

(6)函数ADC_Write(),该函数用于向AD采集器写入数据,被系统的文件API函数WriteFile()调用。

(7)函数ADC_IOControl(),该函数用于对AD采集器进行I/O操作,被系统的文件API函数DeviceIOControl()调用。

需要提出来的是本文研究的AD采集器不涉及到电源管理和设备指针的操作。而需要用到这两个方面操作的流接口设备驱动程序,还需要添加函数XXX_Seek(),函数XXX_PowerDown()和函数XXX_ PowerUp()。其作用分别是对XXX设备进行移动数据指针,休眠和恢复电源。

图1 节点系统结构框图

图2 服务器程序设计流程图

图3 ARM端AD采集数据调试结果截图

3.2 WinCE下四通道AD采集应用程序设计

本研究采用的ARM提供了四个外部的AD通道,可以利用这些通道实现四路对模拟数据的采集功能。通过EVC++编写应用软件调用AD流接口驱动程序,实现对模拟信号的采集,将采集的数据通过网口发送到PC机端。该设计采用多线程方式,使AD采集,数据处理,网口通信模块化,并采用双buff采集和发送的交互方式,保证了数据的不丢失性。网口通信模块直接运用前面设计的网口通信流程,数据处理模块主要是对采集得到的数字信号数据由分线程向外部buff传输,便于通信模块的使用。AD采集模块在线程内调用驱动程序,实现AD采集器的读取数据功能。

3.3 四通道AD数据采集实验实现及调试

利用以上的设计思路,本文实现了WinCE系统下AD数据采集的系统设计,其调试过程和实验结果如下:

首先将编写好的驱动程序加载到Win-CE6.0系统的内核中,重新编译系统,启动新编译成功的WinCE系统,可以在Windows文件夹下看到已经加载进去的驱动程序生成的动态链接库。

然后将编写好的对采集数据进行波形处理的网络程序在PC端启动,再将编写好的四通道采集程序下载到ARM板中并启动,设置好采样率和采样通道,输入通道选择0,采样频率设置为400000hz(该AD采集器最大采样频率为500khz)。调好信号源,选择正弦波,将信号电压幅度设为1.5v,最低电压为0v,信号频率为3000hz,输出信号线连接到ARM板的AD第0号通道接口,启动信号输入,在ARM端得到如图3的调试截图。

这是本文设计的运行在ARM板上的AD采集应用程序,可以通过启动,停止,关闭按钮来启动AD采集,暂停AD采集,关闭AD采集器的功能,还可以通过输入通道号码来选择采样的通道,输入采样率来选择采样频率。而上方控件显示的是一次采集的字节数目,在这里是2048字节,与程序实际设计的一致。通过AD采集器的正确工作,不仅说明了应用程序设计的正确性,同时也体现了AD采集器驱动程序设计的正确性。

4.结束语

本文通过研究WinCE下的网口通信,串口通信,SD卡数据存取和AD数据采集程序设计,系统地提供了Wince嵌入式系统下数据通信的一般编程方法。本论文实现了水下通信网络单节点内部数据的交互,主要包含以下内容:完成了ARM板通过网口与DSP通信的程序设计;完成了ARM板通过串口同时与PC机和姿态方位仪的数据通信的程序设计;完成了ARM板对SD卡的操作,实现了将DSP通过网口传输来的数据自动的储存在SD卡中,并能读取SD卡中的数据;完成了ARM11流接口AD驱动程序的设计和AD采集应用程序的设计。

[1]刘娟.嵌入式移动通信技术的研究与应用[D].四川大学,2006.

[2]徐爱华,全书海.Socket网络通信及其在电梯监控系统中的应用[J].武汉理工大学学报(信息与管理工程版),2006,28(11).

[3]刘庆亮,刘建成.WinCE下多线程串口通信在导航系统中的应用[J].软件导刊,2010,09(3).

[4]邓中,肖冠兰.Windows CE 6.0下LCD驱动程序程序移植[J].计算机与现代化,2011(1).

覃昉(1969—),广西南宁人,毕业于华中师范大学,现供职于中国船舶重工集团公司第七一O研究所,研究方向:水中兵器项目开发、生产和管理。

猜你喜欢

驱动程序采集器调用
COVID-19大便标本采集器的设计及应用
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
计算机硬件设备驱动程序分析
基于ZigBee的大型公共建筑能耗采集器设计
基于LabVIEW的多数据采集器自动监控软件设计与开发
基于系统调用的恶意软件检测技术研究
基于MPC8280的CPU单元与内部总线驱动程序设计
多接口温湿度数据采集器的设计
利用RFC技术实现SAP系统接口通信