当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于ARM的城市供水站分布式监控系统

 城市供水系统担任着为整个社会提供安全的生活工业用水以及合理调度用水环节、保障用水合理性的重要职责,是整个社会正常运行的命脉。而各个供水站又是整个供水系统中最为核心的工作部分。因此,城市供水站监控系统就显得特别重要[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)模式进行通信,其通信是点对点的,在网络中几乎可以实现无差错的数据传输,可靠性较高,速度快。由于与网络相关的路由和网关等技术的发展,使得多路通信的实现变得简单方便。[!--empirenews.page--]
    下位机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所示。

    [!--empirenews.page--]上位机作为服务器端,对设定的端口一直进行监控,因此运用多线程进行循环监听,直到相应的操作使其停止。
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等一系列关键对象,在数据库中建立表格对当前日期、时间以及传感器数据进行实时的自动存储。
    为保证程序的运行状况,运用多线程实现对规定数据的储存操作。
    本系统实现了对下位供水站数据的精确和高速的采集,并能将下位数据在嵌入式下位机系统中进行显示,实现在现场对数据进行观测和处理,同时又可以将现场的数据传输到上位机中,将不同下位机中的数据传输到上位机中进行汇总和相应的操作,实现了远程的监控和管理。此系统对其他的数据采集和监控系统来说也具有很好的参考价值。
参考文献
[1] 杨震.综合管理与控制系统在城市供水调度系统中的应用[J].产业与科技论坛,2008,7(6):113-114.
[2] 程言奎,李英.基于ARM9的高速数据采集系统的实现[J].现代电子技术,2008,31(11):140-142.
[3] 何宗键.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.
[4] 叶俊华,许雪梅,黄帅,等.基于ARM和WinCE的数据采集系统设计[J].计算机工程与科学,2009,31(6),136-141.
[5] GRATTAN N, BRAIN M. Windows CE 3.0 Application Programming[M]. Microsoft Technologies series,2001.
[6] FLETCHER N H, ROSSING T D. The physics of musical instruments[M]. 2nd ed. Berlin: Springer-Verlag,1998.
[7] 史蒂文斯.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2003.
[8] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.
[9] 沈炜,徐慧.Visual C++数据库编程技术与实例[M].北京:人民邮电出版社,2005.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭