基于ARM的远程数据采集系统研究与实现

时间:2022-06-10 07:57:49

基于ARM的远程数据采集系统研究与实现

摘要:该文介绍了基于ARM的远程数据采集系统的一般通信模型,给出了基于计算机网络的多层分布式采集数据采集系统的实现步骤。管道负责记录检测点的采集数据,管道通过RS485或USB方式连接智能控制模块传输数据,智能控制模块通过以太网方式连接各站点。站点通过GPRS与总管理控制系统互连,以面向连接方式进行数据传输。总管理控制系统将采集到的水流量数据存放到专门数据库服务器中,用户通过浏览器查询到采集流量数据。

关键词:ARM;USB接口;数据采集;数据库系统

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)05-1086-04

Research and Implementation of ARM-Based Remote Data Acquisition System

LI Cheng-jing

(Office of Educational Administration, The City Vocational College of Jiangsu, Nanjing 210036, China)

Abstract: This paper introduced the general communication model of ARM-based remote data acquisition system, presented the realization steps of multilayer distributed water rate data acquisition system based on computer network. The pipeline is responsible for recording the data of the detection points; it is connected to the intelligent control module through RS485 or USB to transmit data; the intelligent control module is connected to each site through the Ethernet. The sites and the general management control system are interconnected through GPRS, using connection-oriented mode for data transmission. The general management control system saves the collected water flow data in the special database server; the users can query to the water flow data through the browser.

Key words: ARM; USB Interface; data acquisition; database system

远程数据采集系统是利用网络通信技术采集、记录和显示生产现场的各种物理参量,以供生产管理人员和现场操作者参考的系统。如在一些生产环境恶劣、危险性大、对人体有某些危害的场合,希望操作者能与被测控对象隔离,进行远程数据测量和生产过程自动化管理[1]。

传统的远程数据采集系统解决了数据自动上传的问题,在一定程度上提高了工作效率,近年来出现了不少这样的实用系统,近几年随着ARM嵌入式系统的性价比不断提高,该文作者将数据采集器由原来的单片机升级为ARM控制芯片,在如下几个方面进行了升级[2]。

1) 丰富采集器接口

在传统的采集器提供的输入输出接口的基础上,增加了USB接口方式。USB即通用串行总线的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,得到了各大硬件厂商和软件方案提供商的推崇,使用非常广泛[3]。

2) 升级开发平台

ARM芯片可以运行在专用的μC/OS-II实时操作系统之上,开发工具更加丰富,提供了诸如可视化调试界面,专用仿真平台和快捷的平台部署。

3)优化数据传输

传统采集采集系统数据, 数据集中传输到总控端,数据瞬间流量大,在极端条件下会造成网络堵塞,极大降低系统的使用速度,影响系统的使用效率。ARM芯片支持更大的地址寻址空间,增加数据缓冲区,将原来的数据直接传输升级为数据先缓冲再传输模式,将网络时延带来的影响降到最低[4]。

4)增加网络传输方式

站点和总控管理系统除了采用Internet相连外,扩展采用了GPRS 的无线通信方式。GPRS 永远在线、按流量计费、网络覆盖范围广和传送速率高等优点, 既保证了数据的完整性, 又提高了实时性, 同时在经济开销上更加合理[5]。

1 系统结构

基于ARM的多层远程数据采集系统利用Internet网络或GPRS收集各个站点中的采集数据,并将这些数据保存到中央数据库服务器中供管理人员和用户查询。管道负责采集数据,若干个管道与智能控制器相连,智能控制器连接到站点上,管道和智能控制器之间通过RS232或USB进行通信,智能控制器与站点通过以太网连接。所有站点和总控机一起连接到Internet上,以TCP方式或商用GPRS进行数据传输。总控机可以通过发送命令字采集具体站点具体管道中的特定数据。总控机将采集到的数据存放到后台数据库服务器中,用户和管理人员可以通过浏览器查询到各种数据。系统结构如图1所示。

图1 系统结构图

2 背景知识

2.1 ARM9

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。

2.2 ARM实时操作系统

μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。

2.3 ADO对象

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。

3 系统设计

系统主要由若干管道(数据采集器)、智能控制模块、站点(普通PC机)、总控机(服务器)和数据库服务器组成。管道和智能控制模块通过RS232或USB相连,通过串口或USB方式进行通信。站点和总控制机以及总控机与数据库服务器之间通过Internet进行面向连接的通信,借助于商用互联网或GPRS网络进行。管道(数据采集器)的结构如图2所示。

图2 管道结构图

3.1 USB接口设计

管道主控ARM芯片通过PDIUSBD12 USB标准组件实现USB接口电路,减小了开发的时间、风险以及费用,是实现ARM嵌入式系统扩展USB的最有效的解决方案之一。PDIUSBD12与S3C44B0X ARM7处理器的电路图见图3。

图3 USB接口硬件电路图

3.2 数据缓冲

为了降低外部接口时延对管道数据上传的影响,系统将采集的到的数据首先存储于Flash中,再根据指令将数据转送到USB或RS232外部接口。

FLASH的数据总线宽度必须在系统启动前确定。该文所采用的FLASH数据总线为16。由于CPU是32位的,FLASH是16位的,故硬件连接时CPU地址线的最低位必须舍弃,从倒数第2根连上FLASH的最低位,其他引脚依次即可。

3.3 数据库设计

从各管道上传到管理端的程序需要进行存储,对于数据量大的应用场景可以选择Oracle等大型数据库管理系统,对于数据量不大的情况可以选择MS SQL Server或Mysql来存储和管理数据。选择好数据库管理系统后,进行数据库的设计。数据库的设计包括数据库设计和数据库应用系统设计两方面的内容。数据库设计是设计数据库结构特性,即为特定应用环境构造出最优的数据模型;数据库应用系统设计是设计数据库的行迹结构特性并建立能满足各种用户对数据库应用需求的功能模型。

4 控制管理系统实现

管道负责记录检测点的数据采集,管道通过RS485、USB方式或无线方式连接智能控制模块传输数据,智能控制模块通过以太网方式连接各站点。站点通过GPRS与总管理控制系统互连,以面向连接方式进行数据传输。总管理控制系统将采集到的水流量数据存放到专门数据库服务器中,用户通过浏览器查询到采集流量数据。以远程抄表系统为例给出控制管理系统的部分功能列表和实现。系统结构如图4所示。控制管理程序用VS2005开发,管道主控程序利用Keil C开发。

图4 远程数据采集系统功能图

4.1 获取数据集

public DataSet GetDataSet(string SqlString)

{using (OracleConnection connection = new OracleConnection(strConn))//新建连接对接

{connection.Open();//打开连接

using (OracleCommand cmd = new OracleCommand(SqlString, connection))//新建命令对象

{using (OracleDataAdapter da = new OracleDataAdapter(cmd))//新建数据控制器对象

{DataSet ds = new DataSet();//新建数据库

try{da.Fill(ds, "ds");//填充数据集

cmd.Parameters.Clear();//清除命令参数

}

catch (System.Data.OracleClient.OracleException ex)//捕捉异常

{throw new Exception(ex.Message);//抛出异常 }

return ds;//返回记录集 }}}}

4.2 用户管理

if (Common.IFExists("UserID", "SystemUser", 0, txtUserID.Text) == true)//判断该用户是否存在

{ERPUser MyBuMen = new ERPUser();//新建用户类

MyUser.UserName = this.txtUserName.Text;//用户名

MyUser.UserID = this. txtUserID.Text;//用户编号

MyUser.Department = this.TextBox5.Text;//用户部门

MyUser.JiaoSe = this.TextBox6.Text;//用户角色

MyUser.Add();//记录增加

else{MessageBox.Show(this, "该登录账号已经存在,请更改其他登录账号!");}

4.3 管道向站点发送数据

uchar pjy,inti; /*定义校验码变量p和循环变量i*/

do{/*发送buf数组中的数据到站点*/

pjy =0; /*校验码清零*/

for(inti =0; inti

{SBUF=buf[inti]; /*将buf[i]放置到发送缓冲区*/ pjy +=buf[inti]; /*替换校验码*/

while(TI!=1); /*等待本次完成*/

TI=0;}

SBUF=pjy; /*发送校验码pjy */

while(TI==0);TI=0; /*等待pjy发完*/

while(RI==0);RI=0; /*等待回复*/

}while(SBUF!=0); /*如果回复非0,校验正确*/

5 结束语

本文详细介绍了基于ARM的多层分布式远程采集数据采集系统设计和实现过程。系统实现涉及多个方面,与其它系统相比,系统采用ARM微处理器实现了与多种传感器的接口,实现了更好的兼容性与灵活性。下一步,将在现有系统的基础上,进一步提高系统的易用性和可操作性。

参考文献:

[1] 王娜.基于WiFi的无线远程视频监控系统[J].安防科技,2010(1):16-18.

[2] 淦克亮.基于ARM嵌入式的图像采集与显示系统设计[J].工业控制计算机,2011(12):10-12.

[3] 高美娟,李凯,田景文.基于ARM的网络远程家居视频监控系统[J].微计算机信息,2008:86-88.

[4] 马江涛.单片机温度控制系统的设计及实现[J].计算机测量与控制,2004,12(12):1219-1221,1229.

[5] 陈晓风.ADCO809模数转换器的测试与研究[J].福建师范大学学报:自然科学版,2001,17(4):37-38.

[6] 刘永林,程耀瑜.基于ARM的图像采集系统的硬件设计与实现[J].电子测试,2011(6):12-15.

上一篇:浅析计算机的日常维护与故障维修 下一篇:一级倒立摆系统的鲁棒方差控制