基于ARM的嵌入式监测系统设计

发布时间:2010-3-24 22:19    发布者:李宽
关键词: arm , 监测系统 , 嵌入式 , 设计
ARM具备体积小、接口丰富、高度集成性和扩展性强等优点,加之随着Linux在服务器领域和桌面系统获得的成功,Linux 以其良好的移植性能、优秀的网络功能、对各种文件系统完备的支持、具有软件代码小、高度自动化、响应速度快、特别适合于要求实时和多任务的体系等特点 [1]在嵌入式系统中获得了越来越广泛的应用。这使得基于ARM的嵌入式监测系统具有成本低、功耗低、实时性能好及智能程度高等优点,在工业监测与控制领域具有较为广阔的应用前景[2]。本文设计了基于ARM的嵌入式监测系统。

1 系统总体设计

一个嵌入式监测系统,其基本目的控制硬件设备采集信号,并对信号进行一定的分析,其过程是获取设备的运行状态的模拟量信号,并且能够将这些模拟量转化为数字量输出。在此基础上,设计了基于 ARM嵌入式监测系统。ARM微处理器的上选择基于ARM920T内核的S3C2410A芯片。

1.jpg
图1系统结构框图

整个系统监测方案如图1所示,整个采集过程是由ARM微处理器控制的,ARM监测系统主要由以下三部分组成:

(1)信号采集:传感器采集反映设备运行状态的现场信号。被采集的模拟信号通过传感器拾取,再经过滤波、放大信号调理,然后模拟信号则经过A/D(模/数)转换器转换成计算机可识别数字量,通过ARM微处理器控制放大器的增益和滤波器的截止频率。

(2)人机界面:采用图形界面控制数据采集,并在界面上进行数据分析,将数据处理结果在显示屏上以良好直观的界面动态显示,便于现场工作人员判断故障。

(3)数据传输:数据传输是将数据上传至上位机(计算机),以进行进一步的分析处理。

2 系统硬件结构

振动传感器传来的振动信号在进入后端处理系统之前也需要对信号进行一定的调理,以满足后端信号处理的要求,为了简化设计,节省设计时间,信号的前端信号调理模块使用设计好的模块,包括恒流源、传感检测、信号放大、低通滤波,程控放大器放大倍数的设定通过S3C2410A设定。图2显示了系统硬件框图。

2.jpg
图2  系统硬件框图

2.1程控抗混叠低通滤波器设计

传感器采集的的模拟信号中往往混有一些其它信号如噪声信号,因此在A/D转换之前对信号进行滤波是很有必要的,同时选择合适的滤波器还可以起到抗混叠的功能。本系统设计采用MAX263低通滤波器,MAX263是有源开关电容滤波器,其中心频率,Q值和工作模式可通过引脚编程设置,其硬件连接电路如图3.

3.jpg
图3  低通滤波电路

选择滤波器工作模式1,将M0,M1设置低电平,Q值设置为1,查表得NQ=64,则Q6~Q0引脚值为100000。MAX263的引脚与 S3C2410芯片直接相连以实现程控滤波器,F0~F4分别连接GPB5~GPB9。在ARM上即可控制对应引脚实现对MAX263截止频率的设定。

2.2  A/D转换电路

A/D转换器作用是把一个模拟信号转换为数字信号。风电机组的状态信号是一个连续的值。利用传感器可以检测到一个连续的电压值,但在ARM和计算机上不能够直接处理模拟信号数据。A/D转换器就是把传感器检测到的电压模拟信号转换为系统可识别的数字信号的器件。根据系统的条件及精度的要求下,采用12位的 A/D转换器已经能够满足本系统的要求。在经过A/D的转换后。就把连续的模拟信号转变成了不连续的离散的数值,以便于数据分析。A/D转换芯片采用TI 公司的TLC2543。TLC2543是12位开关电容逐次逼近模数转换器,其电路连接如图4。

4.jpg
图4  TLC2543与S3C2410的连接图

数据采集时,首先向AD转换器发送要采集的通道号,AD转换器读取对应通道的数据,并将数据传递给S3C2410A,实现数据的采集,其流程如图5。

5.jpg
图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.jpg
图6 监测系统主界面

4 数据传输

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

服务器端与客户端程序设计流程如图7。

7.jpg
图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网络编程实时将采集信号传输到计算机,传输数据不易丢失,不失真,起到了良好的设备状态监测作用。

参考文献:
[1]赵玉章,郭文强,韩莉英.小型嵌入式监测系统的研制[J].计算机工程与应用 2007,43(4):109-112
[2] 李 赟,贺富强. 基于ARM微处理器的设备状态监测方案[J].机械与电子,2006(3):51-53
[3]倪继利编著.Qt及Linux操作系统窗口设计 [M].北京:电子工业出版社.2006:212-214
[4]孙天泽,袁文菊编著. 嵌入式设计及Linux驱动开发指南—基于ARM9处理器[M].第二版.北京:电子工业出版社.2005:368-373
[5]张思民编著.嵌入式系统设计与应用[M].北京:清华大学出版社.2008:128-133

作者简介:
刘胜玉(1983-) 男 硕士研究生 研究方向为嵌入式系统,故障诊断。Email:liushy1984@qq.com
张志新(1967-) 男 讲师 硕士生导师 主要研究方向为嵌入式系统设计,故障诊断,信号处理

作者联系方式:
刘胜玉  Email: liushy1984@qq.com
        电话15940904974
        大连理工大学机械学院振动工程研究所
本文地址:https://www.eechina.com/thread-9855-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表