基于ARMlinux的嵌入式远程测控系统设计

2024-09-20

基于ARMlinux的嵌入式远程测控系统设计(共8篇)

基于ARMlinux的嵌入式远程测控系统设计 篇1

基于ARM linux的嵌入式远程测控系统

设计

基于ARM linux的嵌入式远程测控系统设计

类别:嵌入式系统

前言 目前,大多数远程测控系统中,系统的硬件采用8/16位的单片机,软件多采用汇编语言编程,该编程仅包含一个简单的循环处理的控制流程;单片机与单片机(或上位机)之间的通信通过RS232、RS485或CAN总线来组成局域网,再用Pc机作为 Web服务器,与Internet进行通讯。这样的远程测控设备成本高、体积大、速度慢、功耗大。现在,32位嵌入式CPU价格已下降,性能指标也有提高,为嵌入式系统的广泛应用提供了可能性。基于上述情况,我们将嵌入式系统应用于远程测控系统,大大提高了测控系统的性能,同时降低了成本和功耗,体积也大大减小。

嵌入式系统一般应用嵌入式操作系统来开发。在嵌入式操作系统的选择上,由于Linux有完整开放的源代码,因而它具有修改和优化系统、内核稳定、适用于多种CPU和多种硬件平台、支持网络等特点,所以选择Linux作为嵌入式操作系统较好。本文提出的基于 ARMlinux的嵌入式远程测控系统不仅能够实现本地数据采集与控制,还能实现远程测控任务。

1、硬件系统

硬件系统如图1。S3C2410包含一个16/32-bit的Risc(ARM920T)的CPU内核,主频200Hz,内部含有8通道1O位AD转换器和大量的I/O口、LCD控制器等丰富接口,能运行Ucosll、ARMlinux和Wince嵌入式操作系统,DM 9OOO是10M/100M以太网接口控制芯片。本硬件系统结构简单,成本低,不需要Pc机就可直接接入Internet。

2、软件系统

嵌入式操作系统是整个嵌入式系统的核心。本系统选择ARMlinux系统。由于嵌入式系统的存储容量很小,因此要把ARMLinux操作系统装入有限的存储器内,就要对它进行裁剪。很多资料对此都有论述,这里就不再累述。下面主要介绍基于操作系统上的远程测控软件设计。其体系结构如图2。

2.1 基于Boa的Web服务器

嵌入式linux主要有三个web Server:Hapd、Thttpd和Boa。Httpd是最简单的一个web Server。它的功能最弱,不支持认证,不支持CG1。Thttpd和Boa都支持认证、CGI等,功能都比较全。Boa是一个单任务的小型Httpd 服务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。下面介绍Boa的移植与编译。

对于有MMU嵌入式linux,把Boa下载到Redhat宿主机上后,解压到任意目录,再修改Boa/src/Makefde里面的编译器。例如:

CC=/opfhosfarmv41/bin/armv41—unkllown—linux—gcc CPP=/opt/host/army41/bin/armv41—unknown—linux—g++ 此后直接在Boa/src目录下执行make即可生成Boa可执行文件。将其复制到ramdisk加载mount的目录的bin里面后,等一同加入配置文件和HTML/CGI文件后,重做ramdisk即可。

配置文件Boa.conf的编制见下。

需要说明的是,Linux下的应用程序的配置都是以配置文件的形式提供的,~般都是放在目标板/ete/目录下或者/ctc/config目录下,但Boa 的配置文件Boa.conf一般都放置在目标板/home/httpd/目录下。本系统Boa.conf文件的编写程序为:

Servername S A M S U N G—A R M DocumentRoot/home/httpd/cgi—bin/

ScfiptAlias/index.html/home/httpd/html/index.html 它指定了HTML页面index.html必须放/home/httpd/html目录下,CGI可执行文件必须放到/home/httpd/cgi~bin目录下。

2.2 CGI程序技术原理

CGI(Common Gateway Interface)是外部扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通过 CGI可以提供许多静态的Html网页无法实现的功能。其www与CGI的工作原理如下。

HTTP协议是WWW的基础,它基于客户/服务器模型。一个服务器可以为分布在网络各处的客户提供服务。它是建立在TCP/IP协议之上的“无连接”协议。每次连接只处理一个请求。当一个请求到来时,便创建一个子进程为用户的连接服务。根据请求的不同,服务器会返回HTML文件或通过CGI凋用外部应用程序,返回处理结果。服务器通过CGI与外部程序和脚本之问进行交互,根据客户端在进行请求时所采取的方法,服务器会收集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序。CGI扩展程序对信息进行处理并将结果返回服务器。服务器对信息进行分析后,将结果发送网客户端。

外部CGI程序与www服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与CGI扩展程序之问的信息交换的通道。客户的请求通过服务器的标准输出传送给CGI的标准输入。CGI对信息进行处理后,会将结果发回到它的标准输入,然后由眼务器将处理结果发送给客户端。

2.3 CGI外部扩展程序的编制

服务器程序可以通过三种途径接收信息:环境变量、命令行和标准输入。具体使用哪一种方法要由标签的Method属性来决定。在“Method=GET”时,向CGI程序传递表单编码信息的正常做法是通过命令来进行的。

大多数表单编码信息都是通过Qucry-String的环境变量来传递的。如果“Method=POST”,表单信息将通过标准输入来读取。还有一种不使用表单就可以向CGI传送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之间用问号(?)来分隔。本测控系统采用的是GET方法。下面是远程控制LED闪烁快慢的程序。其网页如下页图3,其程序如下。

;LED测试

<input type=“radio”name=“speed”value=“show”checked>慢速

<input type=“radio”name=“speed”value=“normal”>中速 <input type=“radio”name=“speed”value=“rast”>高速

<input type=“submit”value=确定“name=”submit>

其中leds.cgi程序如下:

#!/bin/sh Period=1+case $QUERY-STRING in slow)

period=0.25 ;;

normal)period = 0.125 ;;

fast period=0.0625+;;

fast)+ period =0.0626 ;;

esac /bin/echo $ period ? /tmp/led-control//通过Query_String的环境变量传递给应用程序。

echo “Content-type:texe/html;charset=gb2312”

echo /bin/cat led =result.template exit 0 led—control是编译好的可执行的应用程序,通过led驱动来实现对LED的控制。因为S3C2410有MMU,所以通过操作系统来对硬件控制需要驱动程序来实现。其数据采集部分也类似,不再单独说明。

图3 实验结果

3、测试结果

首先建立好基于S3C2410嵌入式开发环境,把编译好的booloader、嵌入式linux内核和ramdisk烧人Flash中,然后起动Boa服务器,在PC机的浏览器上输人嵌入式系统的IP地址,即显示出如图3的网页。通过点击慢速、中速和高速,再点击确定,测控板上LED的闪烁由慢变快,圆满实现了设计目标。

4、结论

找们开发的基于ARMLinux的远程测控系统,在真正意义上实现了通过互联网进行远程测控。它具有一般通用平台性能,特别适合实时性要求不很强的家电网络监控和远程工业控制。当然随着硬件和网络速度提高及操作系统实时性的改善,将会大大提高此测控系统的性能,因此有很好的应用前景。

基于ARMlinux的嵌入式远程测控系统设计 篇2

当前,在工业控制领域,网络控制技术快速发展。网络控制要求测控系统必须具备两方面的功能:一方面要在现场完成复杂的测控任务,通常一些任务具有一定的实时性的要求;另一方面要求测控系统能够与某一类型的控制网相连,实现远程监控。

嵌入式Linux以代码开放、价格低廉、功能强大又易于移植的特性正在被广泛应用,将这一技术引入工业控制现场,实现对装备的远端监测、诊断和控制,是当前远程监控领域的研究热点。该研究将嵌入式实时Linux引入远程监控系统,重点针对现有远程监控系统体积、实时性问题加以改进,在定制构建的操作系统基础之上,一方面实现了嵌入式远程操作系统技术,使一个体积很小的嵌入式装置就可代替原有笨重的机器实现对设备的远程监控;另一方面,操作系统硬实时性也为远程监控系统故障的实时预报、诊断、控制提供了强有力的支持。

1 嵌入式远程测控系统的构建

1.1 系统功能

测控系统以基于Linux的嵌入式系统为核心,设计目标归纳起来主要有以下几点:

(1)测控任务在现场完成。测控系统采用分散的控制策略,系统正常运行时上位机只起到状态监控的作用,在工业现场完成数据测量、数据处理、过程控制等多种任务,能确保一些任务完成的实时性。

(2)具有一定的自诊断、自校正的功能,将故障情况上传给上位机,便于维护人员查错、排错,具有动态显示和数据存储能力。

(3)测控系统可连到工业以太网,通过工业以太网实现远程监控。

1.2 构建方案

嵌入式系统以嵌入式微处理器为核心,运行嵌入式Linux操作系统。应用程序可通过网络进行更新,通过键盘进行人机对话,数据可通过LCD现场显示,重要数据可以文件形式保存在Flash存储器中,数据和报警信息可通过串口向上位机传输,也可通过以太网口向工业以太网或Internet发布信息,用户通过显示界面查看设备状态、设置设备参数,实现远程监控、远程维护,如图1所示。

2 嵌入式远程测控系统硬件平台的设计

本系统采用三层架构:

第一层是为现场需要远程监控的设备安装摄像头、传感器等本地监控装备,同时安装本地控制器,一方面接受并执行远程客户端发送来的命令,另一方面可以通过通讯接口将本地设备的状态参数返回给服务器,最终返回客户端,实现远程监控。

第二层是主服务器,它的作用是: (1) 处理并转发客户端发送的命令; (2) 转发设备端的视频数据到相应的客户端; (3) 运行数据库保存设备的设置信息,定时查询设备的返回状态信息等; (4) 将设备端的各种参数和数据备份,以供以后回放、处理。

第三层是客户端,它是各种控制命令的源,同时接收服务器转发的各种参数和数据。

一般测控系统对嵌入式系统要求比较多的功能有:键盘接口、显示接口、A/D(或D/A)转换单元、可扩展的I/O接口、打印机接口、与PC机通信的串行接口、以太网口等。实现的嵌入式系统硬件框图如下图2所示。

针对测控系统的应用,选择Motorola的Coldfire系列的MCF5307。MCF5307是一款高性能、低价位、高集成度的微处理器,为嵌入式控制应用而设计。MCF5307的处理能力达70MIPS,工作频率88.47 MHz,总线频率44.236 MHz,为运行Linux提供硬件上的支持,在开发板上还集成有16 M的SDRAM、2M的FLASH、10 baseT以太网接口、RS232/RS485串口、I/O接口等,完全可以满足本远程监控系统的设计需求。

3 嵌入式远程测控系统软件平台的设计

系统采用嵌入式μClinux操作系统作为嵌入式远程监控端的软件平台,其源代码开放、内核小,非常适合运行在没有MMU的嵌入式微处理器上,并且μClinux操作系统也支持TCP/IP协议,具有强大的网络功能,同时该操作系统也支持多任务并发运行,可以采用多任务编程方法。这样,远程监控系统的每个功能可以作为一个独立的任务来实现,这大大地增强了系统软件的可靠性、稳定性,也便于以后的维护和升级,同时也提供了图形用户接口(GUI),结合键盘、LCD液晶显示和触摸屏模块为用户提供友好的人机交互界面。

3.1 任务划分

软件平台设计中,采用嵌入式实时操作系统μClinux对系统多任务进行调度及管理。基于实时多任务操作系统的应用程序中,实时性取决于对任务及中断的处理。用户根据需要调用μClinux的任务调度函数,调度函数从就绪任务中寻找优先级最高的任务,并进行任务切换操作。μClinux把任务分为各不相同的优先级(唯一),已经准备就绪的高优先级的任务可以剥夺正在运行的低优先级对CPU的使用权,所以正确的任务划分及优先级分配可以充分体现嵌入式实时操作系统任务调度算法的效率,从而提高整个系统的实时性能。μClinux可以支持64个任务,最多支持56个用户任务,其余8个是系统任务。按照任务划分原则,结合远程装备监控系统的具体要求,把应用软件分成以下几类任务:

(1)测控基本功能实现任务。包括测量、数据预处理、驱动输出等。此类任务实时性、可靠性最高,所以优先级最高,测量优先级最高。数据预处理是根据需求对采样数据作低通滤波处理。

(2)保护功能任务。主要是报警功能。要求尽可能快地完成。

(3)人机交互功能。键盘响应、显示器显示等。优先级最低。

3.2 任务调度

基于μClinux应用系统工作时,首先对CPU初始化,接着进行操作系统初始化,主要任务控制块初始化(TCB), TCB优先级表初始化;空任务的创建;新任务创建,并可在新创建的任务中再创建其他的新任务,最后调用OSSTART()函数启动多任务调度,流程图如图3所示。

3.3 软件设计

由于该嵌入式远程监控系统采用uClinux操作系统管理系统的资源,相对于传统的单片机,更类似一台微型计算机系统,具有更强的性能和不同于传统单片机的软件设计方法,其软件结构包括加载程序、uClinux内核、系统调用接口和应用程序。

加载程序负责在加电后对微处理器进行必要的硬件设置,初始化内存,并把uClinux内核映像从Flash中复制到内存,把控制权交给内核,使内核运行,最终使应用程序运行。uClinux内核作为应用程序控制系统硬件的接口,提供应用程序对硬件的间接访问,在具体设计中,对微处理器中内置A/D转换器的操作、对键盘的操作以及对LCD的操作由在uClinux下编写的设备驱动程序完成,这些驱动被编译进uClinux的内核。

系统任务的实现由两个不同的进程实现:本地数据采集程序和网络服务程序。

本地数据采集程序根据任务又分为如下模块:数据采集模块、数据处理模块、LCD模块、数据保存模块、键盘模块。数据采集模块负责按照用户设定的控制参数(如A/D通道、采集频率),对外部信号进行采集,并将采集的数据送到数据处理模块;数据处理模块对采集的数据进行数字滤波,本系统采用取相邻10个数据平均值的滤波方法,数据处理模块将滤波后的数据存入公共的数据缓冲区,供LCD模块显示或者供网络服务程序使用;LCD模块负责将公共数据缓冲区的数据按照用户要求的格式进行显示;数据保存模块负责将公共缓冲区的数据按照一定的格式保存到Flash中;键盘模块提供用户在现场对设备进行控制的手段,用于设定采集的参数。

网络服务程序实际上由两部分构成:嵌入式Web server和CGI程序。嵌入式Web server作为在后台运行的守护进程,负责监听来自网络的客户请求。当用户通过IE浏览器向本地系统发出请求时,启动相应的CGI程序,将请求转化为服务器能够识别的格式,进行处理后,再由CGI将结果转化为Web浏览器能够识别的格式,作为HTTP应答消息回送到客户端,从而完成客户端与本地系统的交互操作。

4 结束语

嵌入式实时系统的开发是一个很复杂的过程,除了在分析初始要求后权衡软硬间的关系外,还要时刻在系统灵活性、速度、成本、计划和可用工具之间作出权衡。我们开发的基于Linux的嵌入式系统应用于远程测控系统,能满足当前工业控制领域对测控系统提出的要求,保证测控任务完成的实时性、可靠性,可连到工业以太网实现远程监控,其硬件接口采用插板的形式,结构简单、易于装卸、方便系统集成和维护;软件方面,用户可针对具体应用作相应修改或删除即可,因而提高了测控系统的开发效率,在工业控制领域有很好的应用前景。

基于嵌入式实时Linux的重大装备远程监控系统具有体积小、性能可靠、使用简便、价格低廉、抗干扰力强等优势,同时由于开发是基于自主版权的操作系统,系统的实时性、网络性、可靠性是其他系统难以比拟的,而且将来功能增加、版本升级都很方便,有很强的应用推广价值。

参考文献

[1]王学龙.嵌入式Linux系统设计与应用[M].北京:清华大学出版社, 2001.

[2]邹思铁.嵌入式Linux设计与应用[M].北京:清华大学出版社, 2002.

[3]蒋书波, 张焕春, 经亚枝.实时操作系统用于嵌入式应用系统的设计[J].电测与仪表, 2001 (42) .

[4]金真, 唐明浩, 蒋琳.Internet远程监控系统的嵌入式实现方法[J].计算机工程, 2006 (1) .

基于ARMlinux的嵌入式远程测控系统设计 篇3

关键词:远程视频监控系统;嵌入式技术;设计研究

目前市面上的嵌入式技术设备普遍都具有着实时性强、资源占用空间小、功能强大的优势,这为嵌入式设备受到越来越多的人的关注提供了前提,但是现在已有的嵌入式视频监控系统一般都是基于局域网环境之下的,这使得监控系统在很大的程度上受到地域范围的限制,而基于第三代移动通信技术的网络视频监控系统的运作成本又比较的高,因此基于嵌入式技术的远程视频监控系统的发展逐渐的成为了人们的主要推崇方式。

一、嵌入式远程视频监控系统的设计结构

目前使用较多的嵌入式远程视频监控系统大多是基于s3c2440开发板的嵌入式Linux平台,通过USB接口的摄像头捕捉图像,然后将图像数据传输到开发板之上,开发板再通过采集和处理等模式对图像数据进行处理之后就通过网络传输到接收端PC上,接收端的PC通过运行相关的软件实现视频解码最终将图像显示到电脑之上。这一系统的总体结构是如图1所示,总的结构又分之为硬件平台和软件平台两个部分。

(一)系统的硬件平台设计

一般在远程视频监控系统中其硬件平台选用的大多是utu2440-F版式的开发板,这种开发板主要是由核心板和底板两个部分组成,其中核心板上集成了64mb的nand flash和64mb的sdram系统,而底板上主要有网卡、usb借口及串口等外接的接口和芯片,而其中央处理器cpu采用的是三星饿s3c2440a型号的微处理器,这种处理器具有着总体体积小、性能高、功耗低的优点,因此在硬件系统中得到了广泛的应用。

这些硬件系统的功能分工主要表现为以下:nand flash是保存操作系统与文件系统的平台;串口是用于和宿主机进行通信,进行输入调试命令及运行命令的平台;网卡主要是用于连接外界网络进行信息传输的平台;usb接口摄像头用于对视频进行采集;lcd显示屏是用于接收客户端视频图像的工具。

(二)系统的软件平台设计

嵌入式的系统一般具有着资源有限、不易调试的问题,这就需要我们采用交叉编译调试的方法进行编译这是嵌入式系统运行在软件方面的前提条件,这种交叉编译调试过程一般是发生在宿主机之上的,与其相对应的嵌入式开发板叫做目标板,当在开发的时候,我们要先在宿主机上编写好相应的程序并安装交叉编译程序,然后将写成的代码通过交叉编译器来进行编译,以生成可执行的二进制代码,然后就可以在目标板上进行运行了。

二、嵌入式远程视频监控系统设计的关键技术

随着科学技术的飞速发展嵌入式技术开始被广泛的应用到现代的视频监控系统之上,大大的提高了视频监控的强度和效度,促进了我国视频监控设备的长远发展。为了能够突破现在地域范围的限制,实现实效的远程视频监控,我们还需要对嵌入式技术不断的进行革新发展,掌握其系统设计的关键,从而有效的促进我国远程视频监控系统的应用发展。总的来说,在远程视频监控系统设计中嵌入式技术的关键主要表现在以下几个方面:

(一)NAT技术的应用改进

NAT技术可以实现通过局域网把主机上的地址映射为网络上的有效IP地址,从而有效的实现网络地址的复用。通过使用NAT技术不仅能够很好的隐藏内部的网络地址信息,使外界不能够随意的访问内部的网络系统,从而有效的保护内部网络的安全,提高网络运行的安全性能,而且还能够很好的减少Ipv4地址的需求量。这些限制条件在一定的程度上保护了网络的运行安全,但同时也带来一些不便,导致外部的网络不能够穿过NAT主动的与内部的网络进行通信,从而影响了信息的传输与共享,现在我们要实现远程的视频监控就必须要突破NAT技术的保护,利用STUN协议实现NAT的穿越,从而有效的加强信息的传输与共享。

(二)MJPEG编解码技术的应用改进

MJPEG编解码又被称之为运动静止图像压缩技术,它的主要作用是用于视频传输和对图像的处理,其基本的原理是基于静态的图像压缩技术而发展起来的动态图像压缩技术,这种方式可以单独的完整的压缩每一帧图像,而且其主要的特点是在压缩的过程中基本上可以不用考虑视频流中不同帧图像之间的变化,只要对单独的一帧进行压缩就可以,这造成大量的冗余信息被反复的存储,导致空间占用过大,压缩效率不高。因此为了能够有效的提高MJPEG编解码技术的功能,我们就必须要根据实际的需求开发出适合自己需要的MJPEG编解码视频压缩方案。

(三)SDL显示技术的应用

跨平台多媒体技术就是SDL显示技术,它主要是由C语言所编写的,可以同时的支持多种操作系统,为应用程序的开发及代码移植提供了很多的便利。SDL的程序代码主要是由4个部分组成的,分别是初始阶段、程序运行阶段、时间等待与处理阶段及资源的释放阶段这四个部分,在这个SDL显示平台上使用者不需要知道操作系统间的具体差别,只要调解SDL提供的API函数就可以有效的实现对音视频的操作。

三、嵌入式远程视频监控系统的优势

随着科学技术的飞速发展嵌入式技术开始被广泛的应用到现代的视频监控系统之上,逐渐的突破了地域范围的界限,使视频监控的远程传输成为了可能,大大的提高了视频监控的强度和效度,促进了我国视频监控设备的长远发展。总的来说,嵌入式远程视频监控系统的优势主要表现为以下几个方面:

(一)实现了发送端与接收端的便携操作

与传统的视频传输平台相比,增加了嵌入式的远程视频监控平台无论是从发送端亦或是接收端的环境都能够实现便携可操作目标,这样就大大地提高视频监控的力度和灵活性。

(二)突破地域范围的限制

嵌入式的远程视频监控系统通过内置的网卡实现与网络的有效连接,这样就可以把监控的图像实时的传输到制定的终端之上,这样就大大的降低了地域范围对信息传输的控制,实现远程遥控指挥。

(三)实现了图像智能处理化技术

智能图像处理技术一般在Windows平台上的广泛的使用,我们通过把智能模块嵌入到远程监控服务器的终端系统之上,就可以实现对图像的智能化处理,从而使音频更加的系统丰富。

结语:

随着嵌入式技术的发展进步,远程视频监控系统取得了又一个重要的突破,嵌入式的视频传输与监控逐渐的成为了一种社会发展的趋势,逐渐的突破了传统的地域区限的限制,开始向着远程化、自动化的方向发展。在今后的发展规划之中,为了更加有效的促进嵌入式的远程视频监控系统的发展,我们必须要要不断的进行技术创新,提高嵌入式技术水平,使其能够具有更加广泛的作用。

参考文献:

[1]彭懿涛,夏惊涛,穆道生.基于嵌入式技术的远程视频监控系统[J].兵工自动化,2006,04:55-56+76.

基于ARMlinux的嵌入式远程测控系统设计 篇4

发 布 时 间 : 2008-11-19 来 源 : 中电网 作 者 : 张永强,赵永勇,李崇德 浏 览 :

984

多媒体通信技术的发展为信息的获取和传输提供了丰富的手段,视频采集是其中不可缺少的重要组成部分,该系统基于S3C2410的ARM9芯片和嵌入式Linux操作系统,采用USB摄像头捕捉视频,经MPEG-4算法压缩编码,系统直接与网络相连,用户使用标准的网络浏览器和流媒体播放程序即可查看远程视频影像。硬件系统

系统硬件平台选用基于ARM9架构嵌入式芯片S3C2410,稳定工作在202MHz主频,板载64MB SDRAM 64MB FLASH,主板资源包括:主USB口、从USB口、10M/100M以太网口,触摸屏、彩色LCD、键盘、8个用户自定义LED数码管,A/D,RTC电路,2个串口、1个JTAG通用接口,音频模块,支持MPEG4,MP3编解码,3个168PIN的扩展插座,32位的数据总线,保留充分扩展空间。

其中标配模块包括:IC卡+PS2模块、IDE硬盘+CF卡模块、PCMCIA+SD/MMC模块。另外可选配模块有:GPS模块,GPRS模块,FPGA模块,CAN+AD+DA模块、红外模块、蓝牙模块、摄像头模块。软件系统

2.1 内核配置与USB摄像头驱动

假定已经搭建好嵌入式Linux的开发环境,下面第一步工作就是USB摄像头的安装与驱动。首先检查Linux Kernel中是否已经添加了USB模块的支持,并且加入Video4Linux支持。

Multimedia devices→Video For Linux

Video For Linux→[*]V4L information in proc filesystem

在主菜单的USB Support下还有各种摄像头的驱动,选中将要使用的摄像头芯片类型。

<>USB IBM(Xirlink)C-it Camera support<*>USB OV511 Camera support<>USB Philips Cameras <>USB SE401 Camera support<>USB STV680(Pencam)Camera support<>USB 3com HomeConnect(akavicam)support 在USB摄像头选购时,优先考虑Linux内核公开支持的摄像头芯片,不然要额外编写相应的USB摄像头驱动程序,然后进行编译、安装。在此选用网眼公司的V3000产品,他采用了OV511的芯片。

确定USB摄像头被正常驱动后,下一步就是使用Video4Linux提供的API函数集来编写视频采集程序。

2.2 基于V4L设计的视频采集模块

在Linux下,所有外设都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。他完成设备的初始化和释放、对设备文件的各种操作和中断处理等功能,为应用程序屏蔽了外设硬件的细节,使得应用程序可以像普通文件一样对外设进行操作。

Linux系统中的视频子系统Video4Linux为视频应用程序提供了一套统一的API,视频应用程序通过标准的系统调用即可操作各种不同的视频捕获设备。Video4Linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问。

Linux下与Video4Linux相关设备及用途如表1所示。

这里主要针对设备文件/dev/video进行视频捕捉方面的程序设计。

Linux下视频采集流程如图2所示。

其中用到的主要函数有:

Camera_open():用来开启视频设备文件,使用前需要首先声明一个video_device类型的设备文件。

Camera_get_capability():通过调用ioctl()函数取得设备文件的相关信息,并存放到video_capability结构里。

Camera_get_picture():通过调用ioctl()函数取得图像的相关信息,并且存放到video_picture结构里。

Camera_close():用来关闭设备文件。Camera_grab_image():用来抓取图像,采用mmap方式,直接将设备文件/dev/video0映射到内存,加速文件I/O操作,还可以使多个线程共享数据。

剩下的还有设备初始化、参数设备等相关函数,不再详述。

2.3 视频压缩编码模块

获取图像数据后,可以直接输出到FrameBuffer进行显示,由于本系统要将采集到的视频影响通过网络传输出去,所以在传输之前要对原始的图像数据进行压缩编码,在此选用MPEG-4视频编解码方案。和其他标准相比,MPEG-4压缩比更高,节省存储空间,图像质量更好,特别适合在低带宽条件下传输视频,并能保持图像的质量。

MPEG-4中基于对象的视频编码过程可以分为3步进行:

(1)从原始视频流中分割视频对象。

(2)对视频对象进行编码,对不同视频对象的运动信息、形状信息、纹理信息分配不同的码字。对输入的任意形状的VOP序列,用基于块的混合编码技术编码,处理顺序是先IVOP后PVOP,BVOP。在对VOP的形状信息编码后,取得任意形状VOP的采样,每个VOP划分为不相交的宏块,每个宏块含有4个8×8象素块进行运动补偿以及纹理编码,已编码的VOP帧保存在帧存中,在当前VOP帧和已编码VOP帧之间的计算运动矢量;对将编码的块和宏块,计算他们的运动补偿预测误差;运动补偿预测后的IVOP及误差用8×8块DCT变换,并进行DCT系数的量化,然后是游程编码和熵编码。

(3)对各个视频对象的码流进行复合,每个视频对象的形状、运动纹理信息复合成VOL比特流,各视频对象视频流复合成统一的码流输出。对视频流进行压缩编码以后,接下来就要实现网络传输部分的功能。

2.4 JRTPLIB网络传输模块

流媒体指的是在网络中使用流技术传输的连续时基媒体,RTP是目前解决流媒体实时传输问题的好办法,JRTPLIB是一个面向对象的RTP库,他完全遵循RFC1889设计,下面讲述如何在Linux平台上运用RTP协议进行实时流媒体编程。

2.4.1 初始化 在使用JRTPLIB进行实时流媒体数据传输之前,首先应该生成RTPSession类的一个实例来表示此次RTP会话,然后调用Create()方法来对其进行初始化操作。RTPSession类的Create()方法只有一个参数,用来指明此次RTP会话所采用的端口号。

2.4.2 数据发送

当RTP会话成功建立起来之后,接下来就可以开始进行流媒体数据的实时传输了。首先需要设置好数据发送的目标地址,RTP协议允许同一会话存在多个目标地址,这可以通过调用RTPSession类的AddDestination()、DeleteDestination()和ClearDestinations()方法来完成。目标地址全部指定之后,接着就可以调用RTPSession类的SendPacket()方法,向所有的目标地址发送流媒体数据。

2.4.3 数据接收

对于流媒体数据的接收端,首先需要调用PollData()方法来接收发送过来的RTP或者RTCP数据报。由于同一个RTP会话中允许有多个参与者(源),因此既可以通过调用GotoFirstSource()和GotoNextSource()方法来遍历所有的源,也可以通过调用GotoFisstSourceWithDat()和GotoNextSourceWithData()方法来遍历那些携带有数据的源。在从RTP会话中检测出有效的数据源之后,接下去就可以调用RTPSession类的GetNextPacket()方法从中抽取RTP数据报,当接收到的RTP数据报处理完之后,要及时释放。

JRTPLIB为RTP数据报定义了3种接收模块,通过调用RTPSession类的SetReceiveMode()方法可以设置下列这些接收模式:

RECEIVEMODE_ALL:缺省的接收模式,所有到达的RTP数据报都将被接受;RECEIVEMODE_IGNORESOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被接受,而被拒绝的发送者列表可以通过调用AddToIgnoreList(),DeleteFromIgnoreList()和ClearIgnoreList()方法来进行设置;RECEIVEMODE_ACCEPTSOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被拒绝,而被接受的发送者列表可以通过调用AddToAcceptList(),DeleteFromAcceptList和ClearAcceptList()方法来进行设置。

2.4.4 控制信息 JRTPLIB是一个高度封装后的RTP库,只要PollData()或者SendPacket()方法被成功调用,JRTPLIB就能够自动对达到的RTCP数据报进行处理,并且还会需在要的时候发送RTCP数据报,从而能够确保整个RTP会话过程的正确性。

在本系统中,使用RTPSession JRTPLIB类库提供的方法来实现底层的RTP/RTCP操作,并且把他封装在CrtpTransmitter类中,该类从Media Sink类继承而来,接收到相应的媒体帧数据,使用RTPSession类库的操作把数据发送到网络上。结语

基于ARMlinux的嵌入式远程测控系统设计 篇5

关键词:GSM,SMS,无线测量,远程控制

0 引言

远程的测控系统实际上是一个远程的数据传输与处理系统,目前远程测控的主要方式有:通过数传电台;通过CDPD网络;GPRS方式;GSM方式。GSM方式的远程数据传输测控系统主要是利用其短信息业务(SMS)实现。可以节约建网的巨额费用投入,比起其他方式具有投资少、开通快和运行维护简单等优点,广泛应用于各种领域。

本文基于GSM手机的远程无线测控系统软硬件设计完成温度等信号检测报警,实现异地控制和检测数据回传显示。

1 SMS协议与AT指令

SMS是使用电信网络收发文本消息的电信增值服务,通过SMS协议实现。SMS是一种存储转发服务,短信收发的大致流程一般为原终端用户发起一条短信(发送短信MO),上行至短信中心,经过处理后再下行到相应的目的终端用户(接收短信MT)。SMS有消息送达确认特征。短消息的发送者可以接收到一个返回消息,通知他们短消息是否已经送达。

GSM 模块与计算机之间的通信协议是一些AT指令集。AT指令集是从终端设备(TE)或数据终端设备(DTE)向终端适配器(TA)或数据电路终端设备(DCE)发送的。通过TA,TE发送AT指令来控制移动台(MS)的功能,与GSM网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。

1.1 AT指令的语法规则与常用的AT指令集

语法规则:AT指令是以AT作首,字符串以其ASCII码的16进制数组成,AT指令的响应数据包在每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。常用AT指令集如表1所示。

示例:CDMA modem DTE:AT<CR><LF>OK<LF>ATTEST<CR><CR>ERROR<LF>

如果AT指令执行成功,“OK”字符串返回;如果语法错误或A执行失败,“ERROR”字符串返回。

1.2 PDU模式下短消息的收发

通过异步串行通信接口实现控制GSM手机的短信收发控制共有三种接入协议:BlockMode;基于AT命令的TextMode;基于AT命令的PDU Mode。本文采用PDU模式收发SMS。PDU相当于一个数据包,它由构成消息(SMS)的信息组成。作为一种数据单元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。当由移动终端发起时,PDU的格式为:

当以移动终端为目的时,PDU的格式为:

其中,SMSC为短消息业务中心地址,DA/OA为源/目的地址,PID为协议识别,DCS为数据编码,UDL为用户数据长度,UD为用户数据,VP为有效时间,MR指明是发出信息,SCTS指明短消息到达业务中心的时间。

PDU模式下短消息的接收:根据设置不同,手机将收到的短消息保存在缓存单元或存入SIM卡,单片机从手机中接收短消息实资上就是从SIM或缓存中读出信息。由于不同的厂商对AT指令集的解释代码和响应信息不一样,所以单片机首先要确认能否与手机建立起通信,一般用ATE指令完成此确认;然后用AT+CMGF指令选定短消息的数据格式;在收到手机的正确回答后以AT指令完成读出功能。一般用AT+CMGL读取以前的信息,在收到手机的RING(振铃)数据时,用AT+CMGR读取实时信息。短信息发送:与接收一样也要先建立联接,传送一些初始化指令,然后发送短消息内容。

2 系统的硬件设计

系统总体结构设计为测控中心站(上位机)与远程测控分站(下位机),上位机这里直接由GSM手机构成移动终端,通过短信形式经GSM网发送命令给远程下位机实现控制,同时通过接收下位机发出的短信实现监测。下位机对测控目标监测与控制,并通过收发模块TC35经GSM网与上位机双向通信,图1为系统总体结构:

2.1 远程测控分站的硬件电路设计

远程测控分站电路的设计原理框图如图2所示:GSM无线通信模块TC35通过标准异步串行通信接口RS-232与单片机AT89S52实现双向通信。用于接收来自测控中心站的短信息,并由单片机对信息内容进行解读,同时通过单片机控制TC35将来自测控中心站的命令执行结果以及所测得的温度数据发送给测控中心站。显示采用液晶LCD1602用于实时显示所测得的温度数据。身份认证采用AT24C02存储身份验证信息,而验证信息通过键盘录入。通过输出控制模块实现对现场进行控制。

2.2 TC35短信收发模块接口及部分单片机外围电路设计

短信收发模块TC35与单片机采用MAX232实现RS-232串口建立连接。需要注意的是不同的短信收发模块内部电平转换芯片的供电方式是不同的。TC35通过串口引脚4为内部电平转换芯片供电。为兼容其他的短信收发模块在接口设计时使用了一个8路拨码开关,连接如图3所示。

本系统采用矩阵键盘、显示采用LCD1602。存储单元采用EEPROM存储器 AT24C02,以I2C串行总线的形式与外界进行数据的传输。以智能集成温度传感器DS18B20完成温度测量,还完成通过单片机控制SSR固态继电器来控制电源的开关等控制功能。AT89S52单片机与它们的部分连接方式如图4所示。

3 系统软件设计及部分主要流程图

本系统重点就是解决监测中心站与远程监测分站的远程无线通信问题。TC35通过AT命令来实现两者的数据通信,数据传输采用PDU模式短消息方式。系统的总体流程图如图5所示。

AT89S52通过串口发送AT指令实现对TC35的控制并首先初始化,TC35初始化软件流程图如图6所示。

短消息的接收、处理与发送程序完成数据通信,采用中断方式接收短信息,使用AT命令读取短消息并处理。为有效使用手机内存储器应对新短消息处理后将其删除。图7为串口的收发中断流程图。

4 结束语

通过调试,系统各部分功能都得到实现。远程监测分站能够完成现场测控功能并液晶显示,与监测中心站进行双向通信,还能通过键盘设置身份验证信息,监测中心站用短消息实现对被控目标的测控监视功能。本设计的特点及创新之处如下:监测中心查询监测站的实时检测时需要用到上位机的SIM卡号,这样设计对监测数据起到一定的保密作用,而且可以屏蔽掉一些广告信息和无用信息。本论文所设计的远程监测系统很容易经过适当改变后,应用到其它的数据自动测量领域或数据遥控领域。

参考文献

[1]韩斌杰.GSM原理及其网络优化[M].北京:机械工业出版社,2001.

[2]郭金发,张龙.短信与BREW开发技术[M].西安:西安电子科技大学出版社,2005.

基于ARMlinux的嵌入式远程测控系统设计 篇6

【关键词】管式捕集器;测控系统;组态王

管式捕集器由若干根下倾的平行管段构成,具有操作简单、处理量大、气液分离效果好等优点,能够捕集天然气/凝析液混输中产生的段塞流,防止段塞流对后续生产设备产生冲击所造成的生产事故。

随着微处理器技术的发展,台湾研华公司的ADAM数据采集模块逐步得到用户的认可,不同功能的ADAM模块配合上位机及通讯就构成一个完整的网络系统,实现对工业生产过程的检测和控制。为提高管式捕集器的运行效率和整个系统的安全性,根据工艺要求设计了采用ADAM4000系列模块和调节仪、利用组态王6.52作为上位软件的测控系统,实现了数据实时监测、报表查询以及在EXCEL中实现数据储存。

1.测控系统方案

系统结构采用 ADAM 4017模拟量输入模块来采集各类仪表的所有4~20mA信号,采用 ADAM 4080模块来采集流量计的脉冲信号,界面信号与调节仪、调节阀构成了闭环控制,使界面保持在给定的恒定值;两个液位计交替使用来调节同一个电动调节阀,使液位保持在给定的恒定值;涡轮流量计输出为脉冲信号,在二次表流量显示仪中实时显示瞬时流量,同时显示仪有4~20mA信号输出,可连接至ADAM 4017模块。

所有ADAM 4017模拟量输入模块和ADAM 4080模块,通过一对双绞线并联到RS—485网络上,通过RS—485网络系统利用ADAM4520模块实现485/232信号转换,上位机采用组态王6.52进行编程可采集上述数据,以便对各参数进行实时显示和记录、绘制各种曲线、图表以及实现参数的打印和存储,同时实现报表数据实时查询和EXCEL存储。

上位机ADAM4520(RS485/232)←ADAM4080←质量流量计。

上位机ADAM4520(RS485/232)←ADAM4080←椭圆齿轮流量计。

上位机ADAM4520(RS485/232)←ADAM4017←压力和差压变送器。

上位机ADAM4520(RS485/232)←ADAM4017←气体流量计。

上位机ADAM4520(RS485/232)←ADAM4017←流量显示仪←涡轮流量计。

上位机ADAM4520(RS485/232)←ADAM4017←调节仪→调节阀←管式捕集器液位计和段塞流捕集器液位计。

上位机ADAM4520(RS485/232)←ADAM4017←调节仪→调节阀←射频导纳界面仪。

2.系统硬件

2.1 ADAM系列模块功能

它是一种内置微处理器、变送器及计算机接口的智能设备,用户可通过计算机以RS—485通讯协议发出ASC 码专用命令集对模块进行遥控。该系列模块具有信号调理、量程调整、A/D和D/A转换及数据通讯等功能,模块的配置参数均可通过计算机远程设定并存入EEPROM存储器,即使在掉电情况下,也能保证配置参数不丢失。

ADAM4017为16位8通道模拟量输入模块,可采集电压、电流等模拟量输入信号,它为所有通道都提供了可编程的输入范围,其模拟量输入通道和模块间还提供3000V的电压隔离。 ADAM4017支持6路差分输入,2路为单端信号。如果测试电流信号,需在该通道的输入端口并联250Ω的电阻。所有通道的输入范围均可编程设置并可将传感器电压或电流信号转换成相应的工程量。

ADAM4080模块具有两个32位计数器输入通道,可计数也可测频率,可编程设置;提供TTL输入和光隔离输入信号接线方式,并分别提供接线端口。接线后需编程确定哪种输入方式被激活;提供一个可编程的数字滤波器来消除输入通道噪音。

ADAM4520模块为光隔离的RS-232至RS-422/485转换模块,将RS-232信号转换成隔离RS-485信号,此外该模块可自动控制数据传输方向,提高传输速率。

2.2调节仪双重调节功能

管式捕集器装置上有一台磁翻转远传液位计,容积式段塞流捕集器原有一台远传液位计,二者不同时运行,但共用管式捕集器油出口的电动调节阀,由远传液位计控制调节电动调节阀。控制过程为:转换开关拨至标记“管式捕集器”侧→管式捕集器的液位信号传送至调节仪→通过闭环控制实现调节或调节仪等比例输出液位至ADAM4017;转换开关拨至标记“段塞流捕集器”侧→段塞流捕集器的液位信号传送至调节仪→通过闭环控制实现调节或调节仪等比例输出液位至ADAM4017。

本系统对两个液位交替实现了闭环控制,通过测量、比较得到偏差,使系统沿减少或消除偏差的方向运动;通过转换开关来选择管式捕集器或段塞流捕集器的液位变送器,用作反馈信号PV,将来自液位变送器的反馈信号PV送入SR93调节仪,与该调节仪设定的液位给定值SV的偏差进行PID运算,由调节仪输出4~20mA控制信号给电动调节阀,控制调节阀的阀门开度,使液位保持在恒定的范围内。

3.系统软件

监控组态软件是面向监控和数据采集的软件平台工具,亚控公司的组态王是一款Microsoft Windows98/2000/XP全中文的工控组态软件,可生成交互式图形界面、实时多任务,并提供如PLC、智能模块等的驱动软件,简化了上位机与现场控制系统间的连接等。

3.1软件制作流程

制作组态画面:监控界面主要包含工艺流程图、参数界面、实时、历史趋势曲线显示和报表查询。根据信号类型和分布区域绘制工艺流程图,模拟生产运行的流程,在模拟流程上直观地实现生产流程全自动化运行监控,另外在任一处单击鼠标右键都可弹出菜单进入任一画面;参数界面包括模拟参数汇总;通过选择不同测点组,操作员可浏览任意点的当前数据状态和曲线、任意时间段的历史数据和曲线;系统将利用组态王提供的报表组件为生产提供定义好的表格,在组态王中制作报表,并实现在EXCEL中存储。

构造数据库(定义变量):数据库是“组态王”最核心部分,是联系上位机和下位机的桥梁。在数据库中存放的是变量的当前值,构造实时数据库需要定义相应的外部设备及数据变量。在定义数据库变量时只要把I/O变量连接到外部设备上,按照设备安装向导的提示就可完成设备的配置工作,可和组态王交换数据。

建立动画连接:就是建立画面的图素与数据库变量的对应关系,当压力、液位、脉冲信号等发生变化时,通过I/O接口将引起实时数据库中变量的变化。

3.2软件编程中的关键问题

脉冲信号流量计算编程:ADAM4080采集的脉冲信号在程序中以寄存器的形式显示,其中要使用PCVL、PCVH两个寄存器,分别是计数器低位和高位。

报表制作及存储编程:在组态王中利用编程制作列表控件“报表菜单”实现两项功能,即程序运行后,单击报表菜单,出现“历史查询”选项,单击该项可在组态王中进行历史数据查询;再次单击报表菜单,出现“保存结果”列项,单击该项可在指定的EXCEL文件中自动保存该查询结果,同时存表结果显示成功。

4.运行调试中出现的问题及解决办法

当检测系统建立后调试出现的问题及解决办法:(1)在ADAM 4000 UTILITY中无法搜索到模块。这是因为计算机只有一个COM口和模块相连,如同时打开ADAM 4000 UTILITY和组态王就会出现该情况,正确做法是先打开ADAM 4000 UTILITY,搜索设置完毕后关闭该软件,再运行组态王软件。(2)模块无法初始化。在一个模块进行初始化时除ADAM4520外其它模块都不能上电,所以每个模块采用24V电源分配器,每个模块供电采用一路。(3)接线不牢靠:ADAM4017的一个接线端内除一根电线外还有两个250Ω电阻的一端,电阻接线端很细且易弯曲,建议使用ADAM4017+来代替ADAM4017。

5.结论

基于ADAM系列模块的管式补集器测控系统采用了工业自动化组态软件——组态王设计监控界面, ADAM系列模块作控制器开发了测控系统,系统开发周期短,可移植性强,稳定性高,具有良好的工程应用价值。

【参考文献】

[1]李琦,冯叔初.管式液塞捕集器的初步研究 油气田地面工程,2000,3(19).

[2]ADAM 4000 Data Acquisition Modules Users Manual.

基于ARMlinux的嵌入式远程测控系统设计 篇7

从90年代以来, 油井的自动化和网络化管理的程度日益提高, 但是由于油井大部分都分布在交通不便的野外且数量非常多, 常规采用的油井数据采集方式大多需要巡井工人到现场进行抄表, 这种方式不仅费时费力, 增加维护成本, 而且, 由于一些人为因素有可能还会影响数据的准确性。虽然利用无线射频芯片做为油井数据采集的改进方式, 使巡井人员可以远离油井进行数据采集和分析, 但是这种方式还是需要人员到油井现场, 且一次只能对少数油井的数据进行采集, 工作效率还是不高。而本研究提出的融合ZigBee和GPRS技术的特点和优势开发设计的嵌入式的油井远程监测系统, 在监测管理中心就可以对监测的所有油井工作时的各种数据进行实时地主动和被动地采集。不但降低了数据采集成本更提高了数据采集的准确性和实时性[1]。

[2 监测系统的总体结构

整个监测系统的结构设计如图1所示, 以ZigBee和GPRS构成的无线网络为数据采集的传输核心, Zigbee主要完成单一油井数据采集需要的各种传感器的连接和多个油井之间的联网;GPRS通过接收来自Zigbee传输的数据, 并将数据通过主动或者被动的方式传送到监测管理中心。利用嵌入式芯片S3C2410和ucLinux构成数据采集前置机的控制核心, 达到对油井运行时电压、电流、温度和压力等数据的采集和控制, 远程监测系统的数据采集和监测管理中心服务器用一个GPRS模块通过RS-232与计算机连接, 通过上位机软件处理和存贮采集到的油井数据, 并进行分析汇总和对远端进行必要的控制。

本远程无线监测系统可以对油井的各类运行数据进行主动采集, 然后传输到监测管理中心进行分析和存储, 并根据出现的异常数据情况, 对远端的油井进行必要的检测和控制, 也可以将告警数据直接发送到相关的维护人员, 节省故障排除时间, 尽量减少油井故障发生的时间和次数。基于以上的一个设计思路, 本系统在设计上由硬件装置和监测中心组成, 逻辑上主要由位于硬件装置上的数据采集、控制软件和位于监控中心的管理软件组成, 两者相互配合完成油井的远程数据监测和控制功能, 并为今后油井的正常运行提供数据方面的参考。

3 系统的设计实现

由嵌入式油井无线远程监测系统的基本结构可以看出, 系统硬件设计主要考虑两个部分:一是终端数据采集单元的设计;二是监测网络传输中心单元的设计。下面分别对这两部分进行详细介绍。

3.1 嵌入式终端数据采集节点的设计

终端数据采集节点主要由控制核心C8051F040, 无线芯片CC2430, 和用于三相电压、电流的霍尔传感器, 温度传感器和压力传感器等组成。节点系统采集需要的监测数据和下发控制指令, 同时与数据采集中心节点单元构成无线传感器网络, 将采集来的数据通过GPRS网络远程无线传输到监测管理中心[2]。整个硬件电路如图2所示。

3.1.1 三相电压和电流监测电路

由于抽油机使用的是工频50 Hz、380 V的三相电压, 所以, 电压电流监测电路是完成模拟电流、电压信号转换为数字信号, 然后由单片机进行读取、监测的一类电路。其主要包含霍尔电压传感器、电流传感器和C8051F040等器件。控制系统中需要输入电流、电压两路模拟信号, 因此要用多路模拟开关。此外由于采样的信号是一个快速变化的信号, 因此在模拟开关和A/D转换芯片之前需加一个采样保持器。在采样电压信号时保持电流信号, 这样才能保证采样的电压和电流信号为同一时刻的值[3], 而C8051F040这款高性能的单片机所带的ADC转换器就可以完成对电能信号的采样、保持和转换等功能。本设计中对三相电压和电流有效值的计算, 采用以下公式。

计算电压有效值公式为:

U=1Νi=1Ν-1ui2 (1)

电流有效值计算公式为:

Ι=1Νl=1Ν-1il2 (2)

式中:N——一个周期内的采样点数;ui——一个周期内各个采样点的电压值;il——一个周期内各个采样点的电流值。

3.1.2 压力信号采集电路

压力传感器安装在输油管上, 根据所安装管路的压力选用相应量程的传感器。根据油田输油管的具体情况, 选用了HDP501压力传感器, 此压力传感器的特性如下:量程为1~150 MPa, 可以满足实际需要;供电电压VT为直流24 V, 可以选用 (4~20 mA (二线制) , 0~5 V、1~5 V、0~10 V (三线制) ) 这两类输出信号方式, 压力传感器根据输油管压力的不同, 发送出不同的电流值或者电压值, 当压力传感器输出的电流为4 mA时, 电压跟随器LM110输入引脚输入1 V电压;当压力传感器输出的电流为20 mA时, LM110输入引脚输入5 V电压。然后电压输入到C8051F040的A/D, 根据不同电压, 单片机可以判断出不同压力值。压力信号采集电路如图3所示。

3.2 嵌入式数据监测中心单元的设计

数据监测中心单元硬件电路设计如图4所示。它是整个远程监测系统的传输核心单元。在整个系统中, 起着承上启下的作用。该单元通过S3C2410控制器实现GPRS网络和ZigBee网络的数据交换。

这部分主要的技术难点在于Zigbee芯片和GPRS模块之间的协议转换。基于这一要求, 我们开发了基于这两种无线网络芯片的网络协议转换单元, 它的任务是负责ZigBee和GPRS网络的双向数据转换, 是一个基于ZigBee与GPRS协议的转换网关[4]。下面给出在32 MHz系统时钟下, 用DMA向flash存储单元内部写入程序的部分源代码[5]。

通过对CC2430、S3C2410和SIM300的分析, 在uclinux操作系统程序框架结构的基础上, 建立两个任务ZigBee_T、GPRS_ T, 为避免数据拥塞, 系统创建两个消息队列[4]:GPRS_ZigBeeQ=ZSGCET (&MsgQA[0], Q_Size) , ZigBee_GPRSQ=ZSGCET (&MsgQB[0], Q_Size) 。

4 系统软件平台的设计

整个软件系统分成三个部分, 由监控中心软件子系统、嵌入式终端数据单元软件子系统和无线网络传输中心软件子系统组成。图5给出了整个软件系统的结构图。其中下位机软件 (包括嵌入式终端数据节点软件子系统和数据监测中心软件子系统) 主要由C语言、汇编语言和嵌入式操作系统uClinux以模块化结构进行开发。而上位机软件 (监测管理中心软件子系统) 用VC++6.0和SQL Server数据库进行开发。

监测管理中心操作系统采用Windows2003 Server中文版, 数据库采用SQL Server。服务器接收到GPRS网络传来的IP数据后要进行验证。在收到来自监测管理中心的就绪信息之后, 下位机将采集的数据编制成规定格式, 通过GPRS网络发送到监测管理中心, 监测管理中心读取IP数据包, 识别信息内容, 然后进行分析和显示。监控中心软件主要应用VC++6.0的socket控件来实现数据的收发, 通过UDP或者TCP协议进行数据的交互, 实现网络的通信[5]。监测中心主程序流程图如图6所示。

由图6可知, 整个监测系统的工作都是以数据监测和故障处理为核心的。在系统的初始状态下, 系统的物理部件即ZigBee无线传感器网络和GPRS网络进行数据采集和监测工作, 如果没有问题则系统将持续的处于这种状态, 如果有问题则说明被监测的设备中出现故障, 这时将通过告警装置进行显示, 提示相应的工作人员去处理发生的故障。同时, 系统也会对采集来的远端数据进行存储处理和统计分析。

5 结 论

利用基于嵌入式技术的油井无线远程监测系统对油井实施性能监测和控制保护, 不但是必要的也是可行的。是对现有油井维护方式进行改进的一种良好手段。本方案采用32位嵌入式ARM微处理器系统作为远端监测模块的控制和通信核心, 利用Zigbee技术构成无线传感器网络, 利用GPRS网络形成远程监测网络。相关分析表明, 本方案利用了嵌入式技术、ZigBee和GPRS技术的优势, 具有传送及时、运行可靠等优点。本系统扩展性较强, 在实际应用中可以灵活扩展功能, 以适应需求。因此, 本系统的设计有广泛的应用前景。

摘要:为了适应油井参数采集的自动化和网络化, 融合ZigBee和GPRS技术的特点和优势, 提出了嵌入式的油井远程监测系统的解决方案, 分析了以嵌入式控制器为核心的终端采集和无线网络传输单元的硬件设计、监测管理中心软件设计及管理平台的运行和构成, 监测管理中心通过ZigBee和GPRS构成的无线网络监测和采集油井的性能和运行状况。本系统为油井的检测和自动化管理提供了基础。

关键词:油井远程监测,ARM和uCLinux,嵌入式系统

参考文献

[1]曲长波, 王永贵.基于ADAM5510M和GPRS的油井远程数据采集系统的设计与实现[J].石油工业计算机应用, 2008, 16 (1) :27-30.

[2]闫银发, 公茂法, 汤元信.基于Zigbee技术的无线网络抄表系统设计[J].电测与仪表, 2006, 43 (6) :43-45.

[3]郭丽.油井监控系统的设计与实现[D].大连:大连理工大学.

[4]马福昌, 冯道训, 张英梅, 等.ZigBee和GPRS技术在水文监测系统中的应用研究[J].水利水文自动化, 2008, (3) :1-4.

[5]沈苑, 施展, 陈晓蓉.GPRS技术在远程数据采集系统中的应用[J].仪表技术, 2006, (6) :27-28.

[6]马永强, 李静强, 冯立营.基于Zigbee技术的射频芯片技术CC2430[J].单片机与嵌入式系统应用, 2006, (3) :45-47.

基于ARMlinux的嵌入式远程测控系统设计 篇8

随着电力系统改革的深入和计算机技术的不断发展,电力系统的智能化程度越来越高。传统的人工抄表方式存在很多弊端[1],如耗费大量人力、对抄读上来的数据管理不便、对人为窃电应对迟缓等。因此,建立电力远程抄表系统十分必要。远程抄表系统利用特定的通信手段和通信介质,将远程抄收的电表数据实时或定时传送到远方电力部门的计算机管理系统或其他需要抄表数据的系统。按照通信介质的不同,对于上层通信方式,国内外远程抄表通信系统主要有有线总线通信、电话线通信、电力线载波通信、小区无线通信等方式[2]。对于底层通信方式,主要有RS485专线、低压电力载波、以太网、无线等方式[3]。当前,现场总线技术广泛应用于工业控制中,包括CAN、PROFIBUS、LONWORKS等总线协议[4]。CAN-BUS是一种支持分布式控制系统和实时控制的串行通信网络,在网络开放性、可靠性、抗干扰性、实时性、成本等方面有强大的优势,但是其远程通信能力薄弱,无法有效地接入因特网[5]。基于TCP/IP协议的以太网是当今局域网的主流,将嵌入式Web Server[6]引入网关能充分利用网络资源,因此以嵌入式微处理器S3C2410为核心,通过移植嵌入式Linux[7],设计了嵌入式Web服务器,并开发相应的应用程序来构建一种嵌入式环境下的远程抄表系统。

2 结构设计

在自动化抄表系统领域,国内外厂商已经开发出多种抄表方式,大致可分为3类:预付费充值卡智能仪表抄表系统、无线电抄表系统、远程智能仪表有线联网抄表系统。在此设计的远程抄表系统属于远程有线联网自动抄表系统,它的特点是将电表采集的计量信息通过CAN总线传送到一个数据采集集中器上,然后在数据采集集中器上实现嵌入式Web Server,远程上位机通过通用浏览器(如IE、firefox等)浏览传输来的信息或发送控制命令。

嵌入式网Web服务器作为远程抄表系统的核心,一端连接底层电表作为数据接口接收数据,另一端接入Internet实现数据的传输并与远程数据中心交互。由电表采集来的数据被通过打包传送到网络上,然后由浏览器进行HTTP协议解析,最终提交页面呈现在浏览器上。

3 硬件设计

嵌入式抄表系统硬件平台主要包括嵌入式CPU、以太网接口、串行通信口、Flash程序控制器、SRAM静态存储器、调试端口、复位、电源接口等。本系统采用集成了ARM920T核心处理器的32位微控制器S3C2410芯片作为硬件平台的中央处理器。S3C2410内部资源丰富,具有指令和数据Cache、LCD控制器、RAM控制器、NAND Flash、3路UART、并行I/O口、触摸屏接口和2个USB接口控制器,主频最高可达203 MHz,性价比高,是目前常用于远程控制终端设备的微控制器。

本系统使用两片K4S561632C构成32位64MB SDRAM,选用一片64M的K9F1208U0B构成Flash,存放采集集中器应用程序、嵌入式操作系统和CAN总线传输来的数据。以太网接口模块采用RTL8019AS 10M/100Mbps以太网接口芯片,支持多种嵌入式处理器芯片,内置FIFO缓存器用于发送和接受数据。S3C2410处理器本身不带CAN总线控制器,因此需要在嵌入式处理器的外部总线上扩展CAN总线接口芯片,本系统采用MCP2510作为CAN总线控制器,并使用CTM1050作为CAN总线收发器。MCP2510支持CAN总线的V2.0A和V2.0B技术规范,最大支持1Mb/s的可编程波特率,帧优先级设置、接收帧过滤与屏蔽、报文管理等特点。CTM1050是一款带隔离的高速CAN收发器芯片,芯片内部集成了所有必需的CAN隔离及CAN收发器件。芯片的主要功能是将CAN控制器的逻辑电平转换为CAN总线差分电平并且具有DC2500V的隔离功能及ESD保护作用。CAN总线接口图如图1所示。

4 软件设计

4.1 软件的总体设计

嵌入式操作系统采用Linux2.6内核,它具有内核小、效率高、源代码开放、内核集成TCP/IP协议等优点,但由于系统的硬件资源有限,需要针对具体应用配置内核,使整个系统能够存放到容量较小的Flash中。Linux内核采用模块化的设计,通过对Linux内核重新编译,保留串口驱动,保留PPP、TCP/IP网络协议。应用软件开发模式采用宿主开发模式通过建立交叉编译环境宿主机调试程序,然后下载到ARM环境下运行。采用VIVI作为Boot Loader,根据软硬件进行相应的修改。文件系统采用cramfs,具有操作简单、资源少、速度快的优点。系统软件的整体结构如图2所示。

4.2 嵌入式Web服务器的实现

远程抄表的实现基于嵌入式Web服务器,远程客户通过浏览器访问Web服务器,发送控制命令或监视设备发来的数据,协议转换通过公共网关接口CGI实现,然后将数据以太网协议格式打包发送的客户端。Web服务器工作流程图如图3所示。

HTTP(超文本传输协议)是在因特网上进行信息传输的主要方式,其典型模型表现为请求/响应,首先远程客户端与服务器端建立TCP连接,然后通过浏览器发出请求并读取服务器的响应,服务器通过响应传输客户端请求的资源并以HTML的方式呈现在客户端的浏览器上。

HTTP协议的C/S模式的信息交换过程,分4个过程:建立连接、发送请求信息、发送响应信息、关闭连接。HTTP服务端程序开始运行时,主进程创建一个套接字并和服务器IP地址绑定,然后设置为监听状态,等待客户端的连接请求。当接收了一个连接,ACCEPT返回一个新的套接口描述符,主进程生成一个新的子进程来处理这个新的连接。部分实现代码如下:

4.3 CGI程序的实现

采集集中器通过CGI程序实现对CAN总线上电表的电力数据的读取,当用户通过浏览器向CAN总线上的节点发送命令时,首先网卡驱动程序接收到远程发送过来的以太网帧,以太网层取出帧头,判断数据帧的类型字段标识,如果是ARP报文,则剥离ARP报头,如果是IP报文,则剥离IP报头,然后根据报头中的上层协议字段标识,将报文交给相应的协议处理。如果是TCP报文段,则取出TCP报头信息,根据报头中的字段标识,将数据交给上层HTTP应用程序进行处理,取出应用层数据后,再将数据按CAN报文格式封装好后放入CAN接口发送缓冲区,由CAN接口发送出去。当CAN总线上的节点要发送数据到以太网时,网关首先从CAN接口接收到报文,通过协议转换任务取出报文的数据部分,然后CGI应用程序对数据进行处理,通过环境变量与Web服务器进行交互。CGI运行的基本步骤如下:

(1)浏览器向Web服务器的某一端口发出请求。

(2)服务器识别到URL指向的是一个程序而不是静态的文件时,调用CGI脚本程序。

(3)CGI脚本执行,读取输入的变量和信息,处理后输出结果,脚本结束。

(4)服务器检测发现到脚本执行结束之后关闭连接。

(5)服务器把结果送回到浏览器显示脚本运行的结果。

数据采集流程如图4所示。

5 结语

本设计采用ARM9处理器和嵌入式Linux操作系统构建了基于Web的远程抄表系统,设计了嵌入式Web服务器,编写了CGI程序,把采集到的电量数据通过CAN总线传送到Web服务器,然后由Web服务器通过Internet传送到远程客户端,实现了远程抄表。由于系统是通过Internet来实现远程访问的,因而在系统的设计过程中要充分考虑到系统的网络安全问题以及可能带来的损失,并采取相应的对策。另外,由于无线技术发展迅速,有众多优点,将无线技术引入抄表系统将更符合发展主流。

参考文献

[1]金福根,肖民,陈安军.居民电能表集中抄表系统存在问题分析[J].电力需求侧管理,2007,9(5):67-68.

[2]许建华.自动抄表技术的应用和发展[J].供用电,2004,21(1):50-52.

[3]蒋国兵.采用电力载波集中抄表系统应注意的问题[J].供用电,2007,24(5):65-66.

[4]饶运涛,邹继军.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

[5]林士兵,袁焱,杨煜普.TCP/IP网络与CAN网络网关的设计与实现[J].计算机工程,2007,33(3):243-244.

[6]胡方霞,曾一,高旻.Web Services技术应用与探讨[J].计算机科学,2007,34(3):75-77.

上一篇:计算机网络的毕业设计下一篇:三年级关于月亮的作文250字