
图5 A/D采集流程图
嵌入式监测系统的ARM端应用程序软件的核心是人机交互用户图形界面,它是用户和系统交互的窗口。
本文将Qt/Embedded应用于以ARM+Linux为平台的嵌入式监测系统人机界面的开发。构建Qt /Embedded交叉编译环境需要构建3个QT开发环境[3]。其中一个QT/X11是环境;一个是QT/Embedded(x86)环境;最后一个才是QT/Embedded(ARM)交叉编译环境,在QT/Embedded(x86)环境下调试通过的程序需要在此环境下重新编译后才能移植到目标机上运行。
QtDesigner是Qt/Embedded下的集成开发工具,它支持信号和槽机制,使部件间能够进行有效的通信,省略了许多重复性的工作,可以大大缩减程序的开发周期[4]。在命令行下,根据设计器保存的界面文件(.ui文件)使用uic命令生成.h头文件和.cpp源文件。
uic -o mainfile.h mainfile.ui
uic –o mainfile.cpp –impl mainfile.h mainfile.ui
根据实际需要修改头文件和源文件,使其实现具体功能,各种初始数值和配置都在相应类的构造函数中初始化,如实现界面类之间的调用关系等。下图6为使用QtDesigner设计的风电机组监测系统主界面图。

图6 监测系统主界面
4数据传输
ARM与上位机的数据的实时传输采用基于TCP/IP的socket网络传输[5]。本文设计的通讯系统的软件在结构上采用客户端/服务器模式,它具有编程简单、容易控制、使用方便灵活等特点。
服务器端与客户端程序设计流程如图7

图7 Socket网络传输
数据流程图
1 打开Socket 描述符、建立绑定
sockfd=socket(AF_INET,SOCK_STREAM, 0); //建立Socket
bind(sockfd, (struct sockaddr *)&my_addr,sizeof(struct sockaddr); //绑定端口
2 建立连接
connect(sockfd,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr) ;
//发起连接
在服务器程序中, 当Socket 与某一端口绑定以后, 就需要*该端口
listen(sockfd,8); //*连接
当客户请求与服务器*的端口连接时, 该连接请求等待服务器接收它。随后服务器程序调用accept( ) 函数为该请求建立一个连接。
3 数据的发送和接收
send(sockfd, buff ,1024,0); //向服务器发送数据
recv(client_fd,buff,1024,0); //接收服务器发送的数据
4 关闭Socket
结束语
本文介绍了一种采用ARM的设计实现适用于振动信号采集及分析的设备监测系统,使用S3C2410作为主控芯片,设计了低通滤波电路和A/D电路,并采用人机控制界面,采用Socket网络编程实时将采集信号传输到计算机,传输数据不易丢失,不失真,起到了良好的设备状态监测作用。