• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 作文 > 正文

    嵌入式水位雨量数据采集系统设计与实现(余德华,刘泽文,张国学)

    时间:2021-01-14 08:06:13 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

     

    摘要: 水位雨量采集系统为防汛测报提供及时的水雨情信息,随着应用需求的增加,原有的以8位单片机为核心的控制系统(RTU)满足多任务、多信道方面已经显得有点力不从心,采用嵌入式系统可以实现除了现有的卫星、电话、GSM/GPRS等通信方式外,还可以实现基于网络的数据传输方式,实现对水位、雨量进行实时在线监测,从而实现测报系统的网络化。介绍了嵌入式系统的基本原理,分析了ARM微处理器的体系结构、指令系统、操作系统、开发软件等嵌入式开发技术,给出了基于ARM的嵌入式系统的解决方案,并对水位雨量采集、存贮、传输和数据安全措施进行了分析设计。

    关 键 词: ARM;嵌入式;数据采集

    中图分类号: P332:TP274 文献标识码: A

    1 问题的提出

    1.1 嵌入式系统应用背景

    嵌入式系统是可精简的专用计算机系统,它是以应用为中心,以计算机技术为基础,软件硬件可剪裁,适用于开发对功能、可靠性、成本、体积、功耗要求严格的应用系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。用于实现对其它设备的控制、监视和管理等功能。随着Internet网的广泛普及应用和各种多媒体设备以及无线网络的发展,嵌入系统的应用越来越广泛。它涉及面广,技术难度较大,目前在国内属于比较前沿的技术。

    1.2 水位雨量采集系统存在问题

    水位雨量采集系统的主要功能是对水文站、水位站的水位、雨量进行数据采集,并向水情中心传送信息。目前国内使用的系统设备多以8位单片机为核心的数据终端,外接水位、雨量传感器,配以FLUSH、EEPROM等作为存贮媒介,实现了对水位、雨量信息进行采集、存贮、传输。随着自动测报技术的发展,采集的信息内容更多,信息量更大。例如:ADCP实时在线流量监测,泥沙、水质在线监测等,还有使用网络传输等。使用目前的设备难以胜任,主要存在如下问题:

    (1)单片机的运算速度和内存容量有限,有限的资源已成为其发展的障碍;

    (2)大数据量信息的现场处理困难;

    (3)难以实现网络传输。

    1.3 嵌入式系统的优势和技术难点

    针对上述存在的问题,嵌入式系统在水文信息系统中有很大的优势:

    (1)系统稳定可靠、功耗低、存贮容量大;

    (2)运算速度快,可以快速处理较复杂的算法和协议;

    (3)可以接入Internet网,利用公用网进行数据传输,完全实现数据的在线监测。

    实现嵌入式系统的技术难点主要是根据水位雨量采集的要求,设计硬件电路及外围接口电路,在软件上要移植嵌入式操作系统及利用操作系统提供的API函数实现操作系统功能调用,编写硬件驱动程序,移植GUI软件,实现友好的人机界面。另外,实现TCP/IP协议,接入Internet网也是一个重要的难点。实现嵌入式的水位雨量采集系统的途径主要是选择嵌入式微处理器和嵌入式操作系统,首先搭建硬件平台,在硬件平台上移植操作系统,然后实现TCP/IP等协议,最后开发应用软件。

    2 嵌入式水位雨量采集系统分析与设计

    水位雨量采集系统集数据采集、存贮、传输于一体,随着计算机和通信技术的发展,嵌入式系统开发技术已经成熟,把嵌入式系统应用到水位雨量采集上是完全可行的。

    2.1 系统需求分析

    2.1.1 水位雨量采集系统基本原理

    水位雨量采集系统由遥测站和中心站组成,它的基本组成如图1所示。

    遥测站主要是数据采集和发送站,中心站则是数据接收和处理站,它还具有发送指令的功能。

    水位雨量采集系统按数据传输方式大体可分为3种运行体制:即自报式、应答式、混合式。

    2.1.2 水位雨量采集系统的要求

    要实现水位、雨量自动监测,系统应满足下列要求:

    (1)采用定时自报、事件自报、加报和召测兼容的工作方式。

    (2)能自动采集、存贮水位、雨量等参数。采样、存贮间隔可编程。

    (3)能自动按定时自报方式向中心站发送水情信息,定时间隔可编程。

    (4)具有“加报”功能。当水位、雨量超过设定值时自动向中心站发送水位雨量数据,水位雨量设定值可编程。

    (5)具有多种信道接口,能通过不同信道自动传输水情数据,当主信道故障时,自动切换到备用信道发送。

    (6)中心站能对所辖站点进行参数设置、读取数据。

    (7)水位、雨量数据能按时间存贮和按变率存贮两种方式存贮。

    图1 数据采集系统的基本组成(略)

    2.2 总体方案设计

    (1)处理器的选择。ARM具有体积小、功耗低、存储容量大,运行速度快等特点,测站数据采集终端采用具有ARM内核的CPU,它能克服原来单片机系统的缺点,能满足现代水文监测的要求,提高系统的稳定性和可靠性。处理器采用三星公司的S3C44B0X微处理器(简称44B0X),它不仅具有ARM内核,而且还提供了全面的通用片上外设,大大减少了系统中除处理器以外的元器件配置,从而使系统成本大为降低。

    (2)接口设计。雨量计接口:开关信号输入,可接翻斗式雨量计;水位计接口:RS232C、RS485、SDI-12;流量/泥沙/水质传感器接口:RS232C RS485;通信接口:RS232C可接卫星终端、电话调制解调器、GSM、GPRS。

    2.3 硬件系统设计

    根据应用要求对嵌入式系统进行裁剪,设计基于ARM的硬件框图如图2所示。

    系统由ARM内核的CPU、存储器Flash、随机存储器RAM、LCD液晶显示器和触摸屏等组成,水位接口采用SDI-12接口连接水位编码器,雨量是开关量信号,采用I/O口与之连接,通信模块接入RS232口,网络接口通过隔离变压器与外部交换机连接。

    2.3.1 系统存储器设计

    存储器采用Flash存储器,线性Flash用于固化程序,非线性Nand-Flash用于存贮数据,随时存储器SDRAM作为系统的内存。

    (1)线性Flash。线性Flash与44B0X的硬件,接口中主要有地址线、数据线和控制线。

    (2)非线性Nand-Flash。非线性Nand-Flash与线性Flash有不同的特点,其内部采用非线性宏单元模式,容量较大,改写速度快,U盘就采用Nand-Flash存储器做的。它由块—页构成,每块由32页组成,读与写都以页为单位进行操作,擦除是基于块进行操作的。

    (3)SDRAM存储器。S3C44B0X具有与SDRAM控制信号线一一对应的接口信号,因此S3C44B0X扩展SDRAM存储器是十分方便的。

    图2 嵌入式水位雨量采集系统硬件框图(略)

    2.3.2 显示与键盘设计

    LCD的接口,44B0X内部含有一个LCD驱动控制器,能自动产生LCD驱动控制所需的控制信号,因此44B0X能与STN型的彩色LCD屏直接连接,不需要外加控制器。在这种方式下,LCD显示缓冲区映射在系统的存储空间上,程序只需要将像素点的内容写入存储器对应地址就可以实现对应LCD屏上像素点颜色的显示。本系统采用松下L78C64的液晶屏作为水位、雨量显示和参数设置用。

    键盘作为系统的输入接口,完成各种参数设置、控制数据显示等。键盘采用触摸屏与LCD相对应,对触摸屏的控制有专门的芯片ADS7843,它完成电极电压的切换,采集接触点处的电压值,并进行A/D转换,CPU读取A/D转换的数值并计出触摸点的位置。

    2.3.3 以太网接口设计

    以太网控制器的接口,在本系统中采用RTL8019网络控制器。RTL8019有3种工作方式:第1种为跳线方式,RTL8019的I/O和中断由跳线决定;第2种为即插即用方式,由软件进行自动配置plug and play;第3种为免跳线方式,RTL8019的I/O和中断由外接的93c46里的内容决定。在嵌入式应用中一般采用第1种跳线方式。

    2.3.4 串行接口设计

    串行接口,44B0X有两个串口,通过MAX232电压转换电路实现标准的串口电路。

    2.3.5 电源和看门狗的设计

    整个系统需要多种电压,必须进行电压转换,由12V输入,转换成5、3.3、2.5V。RTL8019是5V供电,44B0X的I/O接口供电是3.3V,ARM内核是2.5V供电。

    看门狗电路,外部看门狗电路是嵌入式系统必不可少的部分,可在程序异常、干扰出现情况下使系统重新复位,保证系统的正常长期运行。

    2.4 软件系统设计

    2.4.1 软件系统结构

    嵌入式操作系统主要有μC/OS-Ⅱ,Linux和Windows CE,其中Windows CE是商业软件,存在版权问题,Linux系统很大很复杂,内核不断升级,还不具备实时性,μC/OS-Ⅱ是实时多任务操作系统内核,源代码公开,稳定可靠。它可以移植到不同的CPU体系结构中,它只是一个内核,实现了任务调度,各个任务之间通过信号量、邮箱、消息队列进行数据通信。因此本系统选用μC/OS-Ⅱ作为操作系统内核,但它没有网络功能和文件系统,在此内核基础上设计实现TCP/IP的部分协议和FAT16文件系统,就可组成嵌入式系统的软件环境。

    数据传输采用UDP协议发送水位、雨量数据,接收参数设置和查询命令等,其数据通信量不大,在UDP协议上加上自已定义应答信号处理协议,可以正确传输数据。系统中有了FAT16文件系统,雨量、水位数据就能以文件的形式存贮,便于查看和读写。

    系统中除μC/OS-Ⅱ外还有几个应用模块,主要是:LCD显示模块、触摸屏模块、TCP/IP模块、SDI-12模块、雨量接口模块、FAT16模块、GPRS modem控制和PPP协议模块等。各个模块与μC/OS-Ⅱ相互配合,协调工作,软件系统结构如图3所示。

    图3软件系统结构(略)

    2.4.2 通讯协议和数据格式

    在TCP/IP协议中,TCP和UDP是传输层中的协议,TCP是面向连接的可靠的传输协议,但是协议之间的握手要耗费很多系统资源。UDP是无连接的传输协议,但并不意味着用UDP传输数据不可靠,UDP协议灵活,快速,主要用于DNS、SNMP和TFTP中,本系统中采用UDP传输数据,在UDP协议上增加自定义的通讯协议,完全可以做到正确有效地传输数据,自定义的通讯协议的发送格式为命令代码+数据,接收格式为应答码+数据。系统发送完命令后,等待对方的回答信息,根据回答信息判断命令功能是否完成,没有完成则重发命令,重发次数根据需要设定。

    2.4.3 程序流程

    初始化硬件设置,包括I/O、主频、串口等设置,以及对网络控制器RTL8019、TCP/IP协议、文件系统FAT16、μC/OS-Ⅱ初始化。然后建立系统中的各个任务,最后启动μC/OS-Ⅱ。主程序的流程如下:初始化硬件设置(I/O、主频、串口等);网络控制器初始化;TCP/IP初始化;FAT16初始化;设置时间;初始化μC/OS-Ⅱ;建立各个任务;启动μC/OS-Ⅱ。

    3 系统关键技术实现

    在实现嵌入式水位雨量采集系统中,关建技术主要是嵌入式系统的软硬件环境的建立和水位、雨量采集处理,软硬件环境主要包括硬件平台的构建、μC/OS-Ⅱ实时操作系统的移植、TCP/IP协议和FAT16文件系统的实现。只有通过实践掌握了这些技术后,才能全面实现嵌入式水位雨量采集系统。

    3.1 硬件平台的构建

    硬件系统设计是基于ARM的最小系统,通过制作实验板,验证电路设计的正确性和合理性,实验板上的资源如下:

    (1)Samsung S3C44B0X66MHz(ARM7内核);

    (2)8M SDRAM;

    (3)2MNor FLASH;

    (4)16MNand FLASH;

    (5)10M以太网接口;

    (6)实时系统时钟;

    (7)LCD接口;

    (8)触摸屏接口;

    (9)2个RS232串行口;

    (10)14针JTAG调试端口;

    (11)通用I/O接口;

    (12)1个SIO接口。

    其中通用的I/O口用于雨量采集,SIO接口与水位编器的SDI-12口连接,RS232口与GPRS模块相联,通过10M以太网接口与交换机或路由器。

    主要的I/O口分配如下:

    (1)GPC0-GPC3与Nand FLASH的控制信号R/B、CE、CLE、ALE分别连接;

    (2)GPC8为LCD显示控制信号nDISP ON;

    (3)GPC9为LCD背光控制信号nEL ON;

    (4)GPE7为雨量接口信号;

    (5)GPE6为电源指示灯信号;

    (6)GPG2-GPG7为触摸屏接口信号。

    3.2 实时操作系统μC/OS-Ⅱ的移植

    3.2.1 μC/OS-Ⅱ概述

    μC/OS-Ⅱ是源代码公开的嵌入式实时操作系统,它具有如下特点:

    (1)可移植性(Portable):绝大部分μC/OS-Ⅱ的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得μC/OS-Ⅱ便于移植到其他微处理器上。

    (2)可固化(ROMable):μC/OS-Ⅱ是为嵌入式应用而设计的,嵌入式系统的程序一般需要固化,μC/OS-Ⅱ可以嵌入到用户的产品中成为产品的一部分。

    (3)可裁剪(Scalable):μC/OS-Ⅱ是可裁剪的系统,通过条件编译来实现选择用户所需要的部分功能,将不要的功能去掉,这样可以节省存贮空间。

    (4)占先式(Preemptive):μC/OS-Ⅱ完全是占先式的实时内核。也就是说μC/OS-Ⅱ总是运行就绪条件下优先级最高的任务。大多数商业内核也是占先式的,μC/OS-Ⅱ在性能上和它们类似。

    (5)多任务:μC/OS-Ⅱ可以管理64个任务。应用程序最多可以有56个任务。赋予每个任务的优先级必须是不同的。μC/OS-Ⅱ不支持时间片轮转调度法,该调度法适用于调度优先级平等的任务。

    (6)可确定性:全部μC/OS-Ⅱ的函数调用与服务的执行时间具有其可确定性。也就是说,全部μC/OS-Ⅱ的函数调用与服务的执行时间是可知的。进而言之,μC/OS-Ⅱ系统服务的执行时间不依赖于应用程序任务的多少。

    (7)任务栈:每个任务有自己单独的栈,μC/OS-Ⅱ允许每个任务有不同的栈空间。以便压低应用程序对RAM的需求。使用μC/OS-Ⅱ的栈空间校验函数,可以确定每个任务到底需要多少栈空间。

    (8)系统服务:μC/OS-Ⅱ提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。

    (9)中断管理:中断可以使正在执行的任务暂时挂起。如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。

    (10)稳定性和可靠性:μC/OS-Ⅱ在一个航空项目中得到了美国联邦航空管理局对商用飞机的符合RTCA DO-178B标准的认证,这一结论表明,该操作系统的质量得到了认证,可以在任何应用中使用。为了表明μC/OS-Ⅱ具有足够安全性与稳定性,能用于与人性命攸关的、安全性条件极为苛刻的系统,μC/OS-Ⅱ的每一种功能、每一个函数及每一行代码都经过了考核与测试。

    3.2.2 μC/OS-Ⅱ的移植

    μC/OS-Ⅱ实际上是一个多任务的调度器,在任务调度器上实现了多任务操作系统的一些系统服务,如信号量、邮箱等。它绝大部分代码都是用C语言写的,只有与处理器有关的代码是用汇编写的。移植工作就是修改与处理器有关程序,主要集中在多任务切换的实现上,因为保护现场和恢复现场的代码只能使用特定的处理器汇编语言完成。

    移植μC/OS-Ⅱ的工作大都集中在####OS CPU A.S文件的移植,这个文件的实现集中体现了所要移植到处理器的体系结构和μC/OS-Ⅱ的移植原理;移植这个文件,最困难的工作是在OSIntCtxSw和OSTickISR这两个函数的实现上。这是因为这两个函数的实现是和移植者的移植思路以及相关硬件定时器、中断寄存器的设置有关,且比较容易出错。μC/OS-Ⅱ的全部源代码量大约是6000~7000行,一共有15个文件。将μC/OS-Ⅱ移植到ARM处理器上,需要修改3个和ARM体系结构相关的文件。分别是:

    (1)OS CPU.H文件;

    (2)OS CPUC.C文件;

    (3)OS CPUA.S文件。

    参考文献:

    [1] 于明,范书瑞,曾祥烨.ARM9嵌入式系统设计与开发教程.北京:电子工业出版社,2006.

    [2] 周立功.ARM微控制器基础与实战.北京:北京航空航天大学出版社,2003.

    [3] Jean J.Labrosse,邵贝贝.嵌入式实时操作系统—μC/OS-Ⅱ.北京:北京航空航天大学出版社,2003.

    [4] 李岩,荣盘祥.基于S3C44B0X嵌入式uCLinux系统原理及应用.北京:清华大学出版社,2005.

    [5] 范建华.TCP/IP详解(卷1):协议.北京:机械工业出版社,2000.

    [6] 陈明计,周立功.嵌入式实时操作系统Small RTOS51原理及应用.北京:北京航空航天大学出版社,2004.

    [7] 王田苗.嵌入式系统设计与实例开发.北京:清华大学出版社,2002.

    [8] 张仑.32位嵌入式系统硬件设计与调试.北京:机械工业出版社,2005.

    作者简介: 余德华,男,长江水利委员会水文局荆江水文水资源勘测局,工程师。

        
    相关热词搜索: 雨量 水位 嵌入式 采集系统 数据

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章