基于嵌入式系统的河道航标远程监控研究

2008-01-29 00:26,,
船海工程 2008年1期
关键词:航标IP地址内核

,, ,

(1.中国船舶重工集团公司第723研究所,江苏 扬州 225001;2.江苏科技大学 电子信息学院,江苏 镇江 212003)

航标是航道的基础助航设施,直接影响船舶的航行安全。但航标的传统管理模式落后,已经无法适应日益繁忙的航道运输所提出的高质量安全航行的需求。这里结合内河航道航标管理现状,设计出一种经济、可靠的航标无线监控系统。

1 系统组成

由于本系统是用于航标的实时监控,所以要求采集终端所在的位置定位信息以及各种电压电流量等模拟信号通过GPRS[1]网络经由Internet传送到远方的监控中心,系统的组成见图1。

图1 系统组成框

图中嵌入式处理器采用s3c44b0,片外扩展4 Mb的FLASH存储器,用于存储启动代码bootloader、uClinux操作系统内核和文件系统、编译通过的应用程序等需要断电后保存的数据[3]。而16 Mb的sdram存储器也就是针对PC机上所说的内存,操作系统运行于其上。终端有两个串口,串口1(对应uClinux的设备“ttyS0”)接收GPS(global positioning system)全球定位系统模块接收到的定位数据,串口2(对应uClinux的设备“ttyS1”)接siemens公司生产的GPRS modem MC35。系统把采集到的位置信息以及A/D控制器采集到的模拟量经过处理,通过串口2的GPRS MODEM发送至接于互联网的监控中心。发送过程采用TCP/IP协议,而在数据链路层,相对于以太网的HDLC协议,GPRS采用PPP(pointer to pointer protocol)协议。

2 GPRS技术优势

GPRS采用分组交换的形式,可提供最大170 kb/s 的数据传输速率。

1) 永远在线。不同的网络用户共享同一组GPRS通信信道,但只有某一用户需要发送和接收数据时才会占用信道资源,没有数据传输时还与网络保持虚连接。这种信道复用的特点,特别适用于突发的、频繁的、小量的数据传输。

2) 计费方式灵活。采用按流量计费,收费相对较便宜。

3) 动态分配IP地址。通过GPRS拨号ISP后,系统每次分配给终端的都是动态IP地址因此移动终端每次都必须先向internet主机发起主动连接。

3 uClinux操作系统及PPP协议要点

uClinux系统是由标准的linux系统简化而来,专门应用于没有MMU(内存管理单元)的CPU上,对内存的访问是直接的,对内存空间没有保护,不像标准linux那样采用虚拟内存的方法。大多数uClinux采用romfs作为文件系统,它是一种只读的文件系统,相对于标准linux占用的内存更少。另外uClinux精简了linux的函数库,采用uClibc作为标准的函数库,所有这些措施都使uClinux更加适用于如arm7这类内存较小的CPU上[2]。

在GPRS无线数据传输终端中要实现无线数据传输,要用到两个协议TCP/IP(或UDP/IP)和PPP协议,其中TCP/IP是事实上的互联网标准协议,LINUX系统在网络应用方面是其一大特色,已经包含了对TCP/IP的支持,只需在编译内核中选中即可。GPRS MODEM要实现连接互联网,必须先登录到中国移动的网关支持节点GGSN,GGSN把获得的动态IP地址分配给终端。MODEM与网关GGSN的通讯必须采用PPP协议。PPP协议位于ISO/OSI七层协议的数据链路层,是网络层和物理层的接口。它是一种在串行链路上传输数据报的协议。一般的拨号上网都采用这个协议,通过串口实现,由3部分组成[4]:

1) 一种在串行线路上封装数据报的方法。

2) 一个用于建立、配置和测试数据链路连接的链路控制协议LCP(link control protocol)。

3) 一套用来建立和配置不同网络层协议的网络控制协议NCP(network control protocol)。

GPRS MODEM在拨号后首先要与GPRS网关进行通信链路的协商,即协商点到点的各种链路参数配置。协商过程遵守LCP,采用 PAP/CHAT认证。IPCP协议用于设置网络协议环境,并分配IP地址。一旦协商完成,链路已经创建,IP地址也将分配,然后两者就按照协商的标准进行IP报文的传输。

PPP拨号在uClinux操作系统中分两部分处理,一部分在内核中完成,主要完成PPP消息的封包、拆包,所以在编译操作系统内核时需选中对PPP协议的支持。另一部分称之为PPP守护进程pppd, PPP守护进程提供基本的LCP协议,完成PPP链路的建立、断开、帐户认证和IP地址的设定等工作,如果内核源代码中没有包含PPP源码包,需要从网上下载ppp-2.4.1(或ppp-2.3.8)源码包,然后交叉编译,生成能在目标系统运行的pppd和chat程序。本项目系统内核中包含ppp包,所以编译时只要选中即可。pppd 和chat两者调用的关系是:

1) 由pppd程序调用chat会话程序。

2) chat会话程序负责拨号,启动服务器端的pppd程序,然后chat会话程序结束。

3) 由pppd程序继续chat会话程序的工作,验证身份,与服务器端的pppd程序进行握手,建立PPP连接。

4 拨号上网的实现过程

本项目拨号上网实现过程中需要用到两个拨号脚本文件:ppp-on和ppp-on-dialer。在这2个脚本中,分别调用pppd和chat程序,但由于uClinux默认的shell是使用一种叫sash的简单shell,功能不够强,无法执行脚本文件,所以在编译内核过程中,需先将默认的sash替换成msh——种在uClinux下可以运行的、功能更强的shell。下面是本项目拨号过程中所用到的脚本:

1) ppp-on

#!/bin/sh

TELEPHONE=*99***1# # 中国移动的拨号号码

ACCOUNT= # 拨号帐号,GPRS拨号为空

PASSWORD= # 密码为空

LOCAL_IP=0.0.0.0

REMOTE_IP=0.0.0.0

NETMASK=255.255.255.0

export TELEPHONE ACCOUNT PASSWORD

DIALER_SCRIPT=/etc/ppp/ppp-on-dialer

exec /usr/bin/pppd debug lock nocrtscts modem /dev/ttyS1 115200

asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP

noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

其中比较重要的参数是nocrtscts,表示串口没有硬件握手,因为设计的开发板串口/dev/ttyS1不带硬件握手功能。串口和GPRS MODEM的通讯波特率是115 200 b/s。

2) ppp-on-dialer

#!/bin/sh

exec /usr/bin/chat-v

TIMEOUT 200

ECHO ON

ABORT ‘ BUSY ’

ABORT ‘ NO ANSWER ’

ABORT ‘ NO CARRIER ’

ABORT ‘ RINGING RINGING ’

SAY “Press CTRL+C to close the connection at any stage ”

SAY “ defining PDP context ”

‘’ AT

‘OK’ AT+CGDCONT=1,“IP”,“CMNET”,“”,0,0’

‘OK’ ‘AT+CGACT=1,1’

TIMEOUT 30

‘OK’ ‘ATD *99***1#’

CONNECT ‘’

其中值得注意的是拨号初始化指令各个MODEM可能不同,本终端采用SIEMENS公司的MC35,所以文件中的AT指令都按照它的来写。脚本文件的格式要严格遵循脚本的标准例如不能用空格键,须用tab键等,否则可能会造成拨号失败。另外还要配置中国移动DNS服务器。拨号成功后会由GGSN服务器动态分配一个IP地址,至此GPRS 终5端就连接到互联网上。

有多种方式实现拨号上网,可在命令行下执行拨号命令,但嵌入式系统一般都要在无人干预下运行拨号程序,为此,可在uClinux启动脚本/etc/rc文件里加上拨号的命令,这样,系统一启动就将自动运行拨号上网程序,实现上网。本项目采用的方式是在程序里调用system()函数,执行拨号上网脚本。

5 终端应用程序

在终端应用程序设计中,考虑到程序需要并发执行,采用多线程来处理。不采用多进程是基于以下两个原因:

1) uClinux操作系统是用vfork调用来代替传统unix系统的fork调用[3],父进程创建子进程后阻塞,子进程一般情况下调用exec()函数以加载可执行程序并运行,这时父进程恢复运行。本项目中主程序要求父子进程之间能通讯,但是vfork()调用中子进程执行的是可执行程序,所以无法实现父子进程通讯,故本工程不适合用多进程。

2) 父子进程由于是使用独立的代码段、数据段和堆栈等,进程间直接通讯几乎不可能,只能借助于进程间通讯来完成互相之间的数据共享,无疑增加了程序的复杂性。主程序流程图如图2所示。

图2 应用程序流程图

6 结束语

航标遥测遥控系统可保证科学地、有计划地对航标进行日常管理、维护以及遇损时及时修复,大大降低维修人员劳动强度及费用开支,为航标的管理从粗放型向技术型、集约型的转变提供了必要的技术支持。目前该系统已在汉江航道局航标管理系统中应用,通过一段时间的应用,对系统整体的实时性、准确性、安全性、可靠性、稳定性进行了验证,基本实现了预期的目标。

[1] 钟章队,蒋文怡,李红君,等.GPRS通用分组无线业务[M].北京:人民邮电出版社,2001.

[2] 李 岩,容盘符.基于S3C44B0X嵌入式uClinux系统原理及应用[M].北京:清华大学出版社,2005.

[3] 朱玮玮,杨建明.uClinux——一种嵌入式Linux系统[J].舰船电子工程,2003(4):47-50.

猜你喜欢
航标IP地址内核
多内核操作系统综述①
IALA航标工作船员培训示范课程研究
浅谈虚拟AIS航标及北斗遥测遥控在沿海航标配布中的应用
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
铁路远动系统几种组网方式IP地址的申请和设置
微软发布新Edge浏览器预览版下载换装Chrome内核
探究如何加强航标管理提升航标服务
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计