目前国外对于大型光电望远镜系统所采用的观测站远程监控系统已经比较完善,但是国内还没得到很好的应用。本课题将设计一个观测站远程监控系统,把ARM- Linux嵌入式系统应用到该系统中,实现一个在线实时监测、控制于一体的低成本远程监控系统。随着嵌入式系统的发展越来越成熟,嵌入式处理技术很好地解决和实现了高低端系统的实时性、多任务性、大数据量处理的要求。嵌入式Internet技术的产生,使得设备可以轻而易举地接入Internet网络,实现设备上网和设备的远程监控。短消息服务(SMS)已成为一种成熟的技术,其业务已为人们广泛使用和喜爱。由于GSM网络覆盖面广,可靠性高,采用无线网络远程监控也有很广阔的应用前景。
1 系统工作原理及硬件组成
1.1 系统工作原理
基于Internet网络的在线监控模式,一方面运行在Web服务器上的CGI程序根据客户端浏览器的请求负责接收现场数据,并将数据进行html转换,发往客户端浏览器;另一方面解析客户端发来的命令数据,通过CGI程序发往现场设备,实现远程控制;同时在客户端对监控页面进行一定时间间隔的动态刷新,以实现实时的远程监控。
CGI(Common Gateway Interface)公共网关接口,是一种服务器与浏览器信息交换的标准接口。在物理上,CGI是一段程序,它运行在服务器上,提供客户端HTML页面接口,完成HTML无法做到的交互功能,CGI建立在客户机/服务器机制上,为外部扩展应用程序与Web服务器交互提供了一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端输入的工作数据,完成客户端与服务器的交互操作。
基于GSM网络的无线监控模式,是采用手机短信息的方式进行数据传输的。按照系统设定的命令发送短信息,根据用户不同的短信息内容,GSM模块内的SIM 卡将以短信的形式返回现场的环境信息或相关设备开关量的状态,还可控制现场相关设备的开关量(在此用开发板上的3个LED来模拟现场相关设备的开关量),其框图如图1所示。
1.2 系统硬件组成
监控系统控制器的核心CPU选用基于ARM920T内核的16/32位RISC处理器 S3C2410A。该处理器功能强、性价比高、功耗低,提供了一套较完整的通用外围设备接口,带MMU(内存管理单元),可支持Linux、μC/OS- II、WindowsCE等多种操作系统的移植。系统硬件结构框图如图2所示。
64 MB Nand Flash采用的是K9F1208,用于存储大量的数据。其特点是高密度、低价格、较快的写入和擦除速度,较长的复写寿命。本系统用来存储嵌入式 Linux镜像、根文件系统和应用程序;内存为64 MB SDRAM,由2片HY57V561620组成,工作在32位模式下的SDRAM是一种挥发存储记忆体,不能永久保存数据,在嵌入式系统中用作代码运行,系统和用户数据、堆栈等均位于SDRAM存储器中。
网络接口模块中的以太网接口芯片为10/100M自适应以太网控制芯片DM9000。GPRS无线模块选用法国Wavecom公司设计的Q2403A,双波段(900/1800 MHz)工作,支持通用的AT命令。串口采用标准RS232接口。在小扩展板上具有JTAG口转并口电路的JTAG调试模块,用并口线将该模块与主机的并口相连,同时在主机上运行协议转换软件,就能够进行代码下载、仿真调试和Flash ROM固化等工作。在本系统目标板的Bootload-er设计阶段,用于Bootloader的调试和烧写。
2 系统的软件设计
2.1 系统的嵌入式软件结构
整个系统软件结构从下到上大体可分为3个层次,如图3所示:底层的Bootloder、嵌入式Linux内核以及系统应用程序。
Bootloader移植的是广泛支持PowerPC、MIPS、X86、ARM、XScale等诸多常用系列处理器的u-boot。
嵌入式Linux操作系统的内核源代码开放且精简、速度快、可靠性高、功能强大,可以根据需要对内核进行定制。嵌入式Linux内核是整个软件系统的主体,它不仅为应用程序提供真正的多任务运行环境,还提供强大的硬件驱动、网络和文件系统支持。本系统采用2.6.22版本的嵌入式Linux内核和 Yaffs根文件系统。Web服务器选用的是适合嵌入式系统的Boa,为了功能的扩展和大数据量的传输的存储,移植了适合嵌入式系统的数据库 sqlite。
另外,嵌入式Linux具有一套完整的免费交叉编译环境,利用S3C2410能实现低成本的设计并开发出满足自己需要的嵌入式系统。该系统的开发主要是采用NFS网络文件系统的交叉开发模式。用NFS方式建立宿主机和开发板的通信,在开发调试阶段利用NFS服务,在内核启动过程挂接NFS网络文件系统,这样不用频繁地写入Flash,缩短开发周期。通过Minicom设置,监视串口工作状态,接收显示串口收到的信息。
2.2 软件的开发
软件开发包括以下5个方面:相关驱动的开发,串口数据通信程序的开发,静态页面的开发,CGI程序的开发,无线GSM网络监控收发短信息程序的开发。
嵌入式Linux设备文件主要分为字符设备、块设备和网络设备3种类型。根据课题需要主要针对DM9000网卡驱动和Nand Flash的驱动进行改写,以及对LED字符设备的驱动开发。然后将其编译进内核,实现相应设备的驱动。
在嵌入式Linux系统中访问串口设备要把串口看作是一个设备文件,用户可以使用文件操作函数实现对串口的基本操作:如用open()函数打开串口,用 read()、write()来读/写串口,操作完成后用close()关闭串口等。对串口的设置包括波特率设置、奇偶校验位、停止位和模式设置。对串口的设置主要是设置struct termios()结构中各成员的值。在读串口程序中使用select函数实现多路复用式串口读写。串口0和串口1分别与GPRS模块和气象仪连接。
用html语言对静态页面的开发,在主界面中采用ht-ml的框架技术,具有以下优点:页面结构清晰;功能列表放在左边,系统功能一目了然;便于页面跳转;安全性高,不管提交的表单数的方式是GET方式还是POST方式,在IE地址栏都不会显示出相关信息,保证了数据传递的安全性。
该远程监控系统采用浏览器/服务器(B/S)通信模式,利用动态网页技术CGI,使得监控端能直观地对现场进行集中监控。一般来讲,CGI程序可以分为3 个部分:解码部分,即对从客户端获取的诸多环境变量进行分析,得到支持CGI程序运行的必要信息,解码属于CGI编程范畴;功能部分,即利用得到的信息完成CGI程序所要实现的功能;输出部分,即将运行的结果返回服务器,最终返回给客户端。
无线GSM网络监控收发短信息的开发,对GSM模块短信息格式的设定、传送回报的打开,以及短消息的读取和删除等是通过AT指令完成的。AT指令都是以 AT开始,结束,而AT指令回应的开始与结束都是以结束。这是串口编程接收数据与发送数据标志。如果AT命令的语法有错误,GSM就返回ER-ROR。用手机实现远程监控的GSM程序流程如图4所示。
3 系统运行效果
对目标板上电,系统的硬软件先后启动。当远程用户通过浏览器访问存储在嵌入式boa Web服务器上的网页时,首先通过以太网在普通浏览器中直接输入正确的网址http://10.0.22.121即可看到测试主页,如图5所示。
要求用户填写管理ID,并通过密码验证。只有通过验证的用户才能进入下面的监控主页,监控主界面如图6所示。
该监控主页面左侧显示有3个模块:重新登陆页面;观测站远程环境信息检测系统,能方便实时地查询现场的环境状态,如图7所示;现场开关的远程监控系统,可以控制3个开关量的开关,如图8所示,并能查询它们当前状态,设置监控页面每隔15 s动态刷新一次,如图9所示,可实现实时的远程监控。系统默认的是当前的实时查询,提交查询后,用户可以得到设备的运行情况。
手机用户可以根据开发程序中设定好的命令,发送短消息实现远程监控。例如:发送“m”到GSM模块的SIM卡中,即可返回现场的环境信息;发送“naw”或“faw”,可打开或关闭LED1并且以短信的形式返回现场3个开关量LED的状态。
4 结 论
ARM嵌入式系统与Internet网络技术的融合在大型设备的远程监控和诊断维护中的应用更加广泛。本课题把ARM嵌入式系统引入观测站的远程监控系统中,通过Internet:及GSM双网络实现了远程对大型光电望远镜设备所在环境信息的实时监测以及对现场一些开关量的控制。系统强大的网络功能不仅能实现跨地域的信息访问,而且利用网络低廉的通信费用给基于ARM-Linux嵌入式的大型光电望远镜设备的监控诊断以及维护带来了全新的活力和更高的效益。总之,基于嵌入式的双网络远程监控技术将会广泛运用,必将大大提高设备使用效能,有利于对大型光电望远镜设备的管理和维护。的结构示意图和引脚排列图,表1列出了各引脚在SPI模式下的定义和功能描述。主机与SD卡之间通过指令来实现交互。