基于ARM的城市供水站分布式监控系统

发布者:TranquilSmile最新更新时间:2010-07-20 来源: 微型机与应用关键字:分布式监控  嵌入式  ADO 手机看文章 扫描二维码
随时随地手机看文章

    城市供水系统担任着为整个社会提供安全的生活工业用水以及合理调度用水环节、保障用水合理性的重要职责,是整个社会正常运行的命脉。而各个供水站又是整个供水系统中最为核心的工作部分。因此,城市供水站监控系统就显得特别重要[1]。

    当前城市供水站监控系统多以单片机为核心,将外部传感器数据进行A/D转换后接入单片机,其精度可达12位,数据经过处理后用点阵显示屏显示。单片机为8位中央处理器,这对于要求较高的领域显得稍有不足。下位机与上位机之间多采用串口进行通信。串行485接口采用差分方式传输,传输距离最大可达1 200 m,但此距离速率只能达到100 Kb/s,且485在任何时刻只允许一个下位机向上位机传递数据,使得这种通信方式受到了一定限制。

    嵌入式处理器和以太网技术的飞速发展为这些问题提供了解决的途径。

    嵌入式处理器处理速度快、精度高、扩展接口丰富,且具有良好的人机交互性。以太网通信技术则以其实时性强、通信速度快、兼容性强、网络布线方便的优点,越来越受到人们的青睐。本文以ARM嵌入式处理器为核心,搭载WinCE嵌入式系统,结合TCP/IP协议,设计出基于ARM和TCP/IP的城市供水站高速数据采集系统。并对下位机数据采集程序、上位机程序以及系统通信的实现进行了详细的叙述[2-3]。

1 系统的总体架构及硬件设计

1.1 系统的总体架构

    数据采集与监控系统的下位机以ARM9系列的三星S3C2440A嵌入式处理器为核心,处理器的主频400 MHz,最高达533 MHz,处理速度快,内置8路10位A/D转换器,最高转换频率为2.5 MHz,数据采集速度和精度都很高。在ARM9的基础之上搭载WinCE嵌入式操作系统,该操作系统具有与Windows XP相似的界面和操作,操作起来更加简便快捷;支持多系列的微型处理器,包括ARM系列,使下位机在硬件和软件方面得到了完美的融合。下位机接收传感器采集的数据,然后通过TCP/IP协议与上位机进行通信,上位机得到下位机传来的数据后进行数据存储、显示、报警操作。上位机进行远程监控并完成对各个下位机信息的汇总和分析处理等功能,系统结构如图1所示。

1.2 系统的硬件设计

    城市供水站分布式监控系统要测量的物理量主要有各个供水站电机的电流、电压、温度等参数,以及供水站的流量、进出口压力、水温等水质的参数。要根据各种物理量以及其所处的具体工作环境选取合适的传感器[4]。

    由图2可见,下位机硬件以ARM9为核心,其内置的A/D转换接口用来接收外部传感器的数据,搭载的TFT显示屏作为下位机的显示,同时其各个扩展接口可以提供其他的资源及为以后扩展所用。

    传感器采集的外部数据经过放大、滤波等消除干扰的操作后接入ARM内部A/D转换器,在嵌入式系统中进行处理,并在下位机显示屏上进行显示和相应地人机操作。下位机扩展在板64 MB SDRAM内存和在板128 MB Nand Flash存储并支持32 GB的外部SD扩展槽,满足本机运行以及存储要求。扩展的RJ-45接口作为与上位机进行通信的接口。IIC总线以及其他接口作为扩展和其他功能用。

    TCP/IP协议使用客户端/服务器(C/S)模式进行通信,其通信是点对点的,在网络中几乎可以实现无差错的数据传输,可靠性较高,速度快。由于与网络相关的路由和网关等技术的发展,使得多路通信的实现变得简单方便。

    下位机ARM扩展了网络RJ-45网络接口,使上下位机之间实现TCP/IP通信变得更加简单。

    每个供水站的下位机在将数据处理完毕之后,通过RJ-45网络接口与上位机相连,多处下位机通过路由器接入网络,然后再与上位机进行通信。其结构图如图1。

2 供水站分布式监控系统的软件设计

    供水站分布式监控系统的软件设计包括下位机地址映射、下位机数据处理及显示、数据通信以及上位机程序的实现。

2.1 下位机地址映射与实现

    下位机搭载WinCE操作系统,ARM数据采集是通过GPIO来操作相应的寄存器,WinCE系统则将GPIO的实地址映射到虚拟地址空间,通过对虚拟地址空间的操作来完成对GPIO及其他片内资源的控制。要在WinCE中操作ARM中的GPIO,就必须按照BSP中的基地址找到相应的虚拟地址。这就需要对其进行地址映射。图3为地址映射原理图。

    地址映射的方法有2种:一是流驱动方法,即在流驱动中将物理地址进行相应地映射,将流驱动添加到底层映像中来实现。另一种方法是在外部WinCE程序中将物理地址与虚拟地址进行相应地映射,只需对外部程序进行操作,对内核没有影响,由于下位机数据采集部分并不复杂,所以采用第二种方法进行实现。

    要实现地址映射,首先将所用到底层驱动中的寄存器作为一个类定义到WinCE嵌入式程序中去。然后把物理地址与虚拟地址用VirtualAlloc和VirtualCopy函数进行映射操作。VirtualAlloc函数用于在当前进程的虚拟地址空间中保留或者提交空间,在保留时以64 KB为单位,提交时以4 KB为单位。VirtualCopy函数则用来绑定物理地址到静态映射虚拟地址。VirtuaAlloc+VirtualCopy就可以将内核到当前进程进行映射,让当前程序找到对应的虚拟地址[5-6]。

    把映射后的地址作为一个新类进行定义,就可对寄存器进行操作,如图3。

2.2 下位机数据处理及显示

    下位机采集数据后采用数字模块进行显示,当数据超出上下限的时候,下位机中的蜂鸣器就会进行报警,通知现场操作人员。

    数字显示模块采用重绘的形式,预先定义好相应的数字显示值,在接收到数据后对数字显示模块进行相应地重绘。数字显示模块作为一个插件加入到WinCE程序中,在主函数中调用模块中的显示函数来实现数字的显示。

    下位机报警功能采用ARM扩展的蜂鸣器实现,蜂鸣器由PWM进行控制。在S3C2440A中GPB0为控制PWM的寄存器,通过地址映射的方法对相应的寄存器进行操作。

    首先设置端口GPB0为TOUT0功能,然后设置预分频和分割值,计数器的输入时钟(CCLK)频率为:PCLK/(预分频+1)/分割值。预分频值和分割值分别由TCFG0、TCFG1来确定。接着设定初始值TCMPB3和TCNTB,由于计数器的输入时钟为PCLK/16/8;而rTCNTB0=(PCLK>>7)/freq;并且计数计到最大值的一半时发生翻转。因为计数的基值是由rTCMPB0设定为最大计数值的50%。最后是定时控制器的设定rTCON,TOUT0就产生频率是rTCNTB0,占空比是50%的方波,蜂鸣器就可以被驱动。当数据超限时就调用此函数进行蜂鸣器报警。

2.3 TCP/IP通信的实现

    上下位机之间采用客户机/服务器(C/S)形式,下位机作为客户机上位机作为服务器进行通信,TCP/IP通信通过套接字(socket)来实现[7-8]。

    下位机利用套接字socket的connect函数向上位机(server)发送连接请求,当连接成功之后,用send函数向上位机发送相应的数据,通信完成后关闭套接字。

    上位机通信部分则与下位机相互对应,用套接字socket的bind函数将套接字绑定到本地地址和端口上,并将套接字设置为监听模式,用listen函数来准备接收client的请求,当用accept函数接收到连接请求后,调用recv函数来接收相应的数据,其流程如图4所示。

    上位机作为服务器端,对设定的端口一直进行监控,因此运用多线程进行循环监听,直到相应的操作使其停止。

2.4 上位机显示报警及数据存储实现

    上位机是整个系统监视的核心,数据显示为了直观,采用动态曲线显示;并进行声音报警,采用数据库将数据进行存储,上位机系统显示界面如图5。

    上位机动态曲线显示利用画刷、曲线等函数进行绘制,当数据接收进来后绘制相应的曲线,并且随着数据的增多曲线进行移动,使显示的曲线一直为当前一段时间的数据。报警的实现比较简单,只需在数据超限的时候调用Beep    蜂鸣函数即可。

    上位机的另一个主要的功能就是对数据进行存储,以便在以后调用。数据存储利用ADO对数据库进行访问。

    ADO是一个用于存取数据源的COM组件,是微软最新的对象层次上的数据操作技术,它为操作OLE DB数据源提供了一套高层次自动化接口。从功能上来说,ADO又是一种OLE DB客户程序,它不依赖于特定的OLE DB服务器反而支持所有的OLE DB服务提供者。通过这些OLE DB服务提供者,ADO支持客户/服务器模式和基于Web的数据操作,尤其支持通过客户/服务器模式或者基于Web模式访问微软的SQL Server数据库服务器[9]。

    用ADO的Connection、Command、Recordset等一系列关键对象,在数据库中建立表格对当前日期、时间以及传感器数据进行实时的自动存储。

    为保证程序的运行状况,运用多线程实现对规定数据的储存操作。

    本系统实现了对下位供水站数据的精确和高速的采集,并能将下位数据在嵌入式下位机系统中进行显示,实现在现场对数据进行观测和处理,同时又可以将现场的数据传输到上位机中,将不同下位机中的数据传输到上位机中进行汇总和相应的操作,实现了远程的监控和管理。此系统对其他的数据采集和监控系统来说也具有很好的参考价值。

关键字:分布式监控  嵌入式  ADO 引用地址:基于ARM的城市供水站分布式监控系统

上一篇:基于AMR语音编解码算法的VoIP系统
下一篇:恩智浦MCU:100%基于ARM内核

推荐阅读最新更新时间:2024-03-16 12:29

主攻高阶嵌入式应用 ARC处理器导入双指令/超纯量架构
行动装置与智能化车载、家庭、工业等领域蓬勃发展,尤其近来人机接口(HMI)日趋发达,涉及的影像、音频、语音、触控等讯号处理需求与日俱增。有鉴于此,新思(Synopsys)六月下旬推出采双指令(Dual Issue)、超纯量(Superscalar)架构的新一代ARC HS处理器方案,大幅提升数字讯号处理(DSP)、精简指令集计算(RISC)效能,因应无线基频(Wireless Baseband)、语音、音频与嵌入式DSP应用等水涨船高的效能需求。 Synopsys资深产品营销经理Michael Thompson表示,嵌入式处理器受制于功耗,各式应用下的频率鲜少超过2GHz;然过去15年,固态硬盘(SSD)、语音助理等各领域相关应用
[半导体设计/制造]
ARM9系列嵌入式处理器S3C2410系统中LCD驱动开发
  本文以三星公司ARM9内核芯片S3C2410的LCD接口为基础,介绍了在Linux平台上开发嵌入式LCD驱动程序的一般方法。   本文硬件采用三星公司的S3C2410芯片的开发板,软件采用Linux 2.4.19平台,编译器为arm-linux-gcc的交叉编译器,使用640×480分辨率的TFT彩色LCD,通过对其Linux驱动程序进行改写和调试,成功地实现了对该种屏的驱动和显示。   嵌入式驱动的概念   设备驱动程序是操作系统内核和机器硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,
[单片机]
uClinux在Nios II嵌入式平台上的移植研究
1. Nios II嵌入式处理器       Nios II是运行在FPGA上的五级流水线、单指令的RISC处理器,它专门针对Altera的可编程逻辑器件及片上可编程的设计思想做了相应的优化。作为一种可配置的精减的RISC处理器,它可以与用户自定义逻辑结合构成SOPC系统,并下载到Altera的可编程器件中。32位的Nios II软核,结合外部闪存以及大容量存储器,可以构成一个功能强大的32位嵌入式处理器系统。此外,利用Altera提供的IDE(Integrated development environment)开发工具 可以方便的在调试模式下调试处理器,提高开发的速度。       作者使用Cyclone II版Nio
[嵌入式]
嵌入式linux开发 (十三) FLASH(3) s3c2440外扩NAND FLASH
- JZ2440 S3C2440 ARM920T -内置 Steppingstone (4K-Byte SRAM) 无rom -外扩 MX29LV160DBTI:2MB,并口 NOR FLASH K9F2G08U0C: 256MB,NAND FLASH soc The S3C2440A is developed with ARM920T core, 0.13um CMOS standard cells and a memory complier. The ARM920T implements MMU, AMBA BUS, and Harvard cache architecture with sep
[单片机]
图像采集综合评估的嵌入式指纹识别系统(一)
  由于具有其持久性和唯一性,指纹被广泛应用在个人身份识别系统。指纹识别在全世界范围内的广泛应用,不仅为防范犯罪,同时也作为处理个人事务和信息安全的一个关键技术。   在指纹识别技术领域,欧美国家在研究和开发中处于领先地位。美国ZK Software在1992年就发布了ZKFinger 1.0版,2008年发布了ZKTime7.0、ADMS解决方案、指纹锁、集成具有美国联邦政府推出的FIPS201认证的Lumidign和Secugen指纹仪;法国Segam公司,是安全解决方案的市场领导者之一,有遍布5大洲超过85个分公司和分支机构,其生产的集成系统部署在100多个国家和地区。亚洲在指纹识别技术上较为先进的公司有:韩国现代、朝鲜的培
[电源管理]
图像采集综合评估的<font color='red'>嵌入式</font>指纹识别系统(一)
基于嵌入式的故障诊断专家系统驱动程序设计
电子设备的故障诊断系统大多采用由传感器、工业PC、工业以太网、远程专家组成的诊断模式。现有诊断现场仪器众多、连接复杂,使得系统可靠性和稳定性难以得到保证。另一方面,要求诊断人员具备专业知识,其中包括各类传感器的固定、连接与信号处理,难以实现“现场无人,远程诊断”目标。因此有必要从现有的硬件和软件组成模式的角度出发,探索一种新的诊断系统组成模式。本文设计了基于嵌入式的故障诊断专家系统,使得对电子设备的检测及维修变得更为方便有效。   本文根据实际需要选取Windows CE.Net作为本系统的操作系统平台。在Windows CE嵌入式系统的平台开发中,设备驱动程序的开发是其很重要的一部分,它们用于驱动嵌入式系统硬件平台上的各
[安防电子]
基于<font color='red'>嵌入式</font>的故障诊断专家系统驱动程序设计
基于GPS定位的嵌入式汽车监控器设计
随着人们生活水平的提高,汽车逐渐进入了普通家庭,中国各大城市的汽车保有量逐年增加。同时,汽车被盗、被抢也成为一个较为严重的社会问题。虽然各类汽车防盗/报警器在汽车上的应用在一定程度上解决了汽车的安全问题,但随着盗贼手段的提高,大多的报警器容易迅速被破坏。汽车报警的方式多为灯光闪烁和喇叭鸣响,车主不一定能得到报警,周边的居民却被严重干扰。此外,盗贼破坏报警器,盗走汽车后,外观稍加改动,汽车就如石沉大海,无法追踪了。为了解决这些问题,本设计利用GPS监控的方式跟踪汽车位置,在被盗情况下可利用GSM短信模块随时向车主或公安部门发送汽车的GPS定位,加快破案速度。   图1 系统功能图 系统功能 本监控器不同于普通的汽车
[嵌入式]
基于S3C44B0X的嵌入式Socket通信设计
随着微电子技术的不断创新和发展,嵌入式系统已经广泛渗透到科学研究、工程设计、国防军事、自动化控制领域以及人们日常生活的方方面面。由嵌入式微控制器组成的系统其最明显的优势就是可以嵌入到任何微型或小型仪器和设备中。 嵌入式系统是指将应用程序、操作系统与计算机硬件集成在一起的系统。它以应用为中心、以计算机技术为基础,而且软硬件可以裁剪,因而是能满足应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统1。嵌入式系统与通信、网络技术的结合可以极大地增强网络的智能化与灵活性,拓展通信功能,从而实现各种通信系统之间的互联互通。本文给出一种适合于中/低端应用的通信平台设计方案,它可支持Ethernet网络之间的数据传输,并且具有R
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved