近年来,嵌入式技术发展迅速。嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可裁减,适合应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。在数据传输领域,嵌入式系统具有传统的微机系统无法比拟的优势。首先,硬件集成度高,程序可固化在FLASH/ROM等芯片中,不易破坏,因此系统可靠性大大提高;其次,随着集成电路技术的飞速发展,高端微型处理器和SoC广泛应用,嵌入式系统的体积不断减小,携带和使用非常方便;再次,嵌入式系统易扩展出输入/输出(I/O)接口来实现各种功能;最后,嵌入式系统具有成本低、开发周期短的特点。
远程数据通信可以采用多种形式,但主要的有两大类:专用网络和公用网络。公用网络由商业网络运营公司建设和经营,向用户提供各种网络接入服务,特别适合构建低成本、高性能数据通信系统。公用网络又分为有线网络和无线网络,而无线网络具有接入方便等独特的优势,因而可以非常方便地构建移动数据通信系统。
随着我国电网的不断扩大,输电线路越来越多、越来越复杂,给线路运检人员日常维护和检修造成了一定的困难。输电线路运检人员一般工作在野外,需要用导航系统来识别路径,当遇到危险情况下寻求救援时也需要将自己的位置信息传输给监控中心。而目前普遍使用的手持定位系统和车载定位系统只能实现市区和主干道上的导航,不能满足输电线路运检导航的需要。输电线路运检导航系统的设计有效地解决了目前导航系统的弊端。
本文重点是解决输电线路运检导航系统的数据传输问题,采用GPRS技术结合Linux操作系统实现。关于应用嵌入式技术和无线移动网络技术的融合,实现远程的数据传输已经出现了不同的研究方案,并充分展现了其广阔的应用领域和前景。
1 系统总体设计
整个系统由手持终端和远端服务器构成,系统整体结构如图1所示。手持终端设备通过GPRS无线网络实现与监控中心服务器之间的通信,使得当监控中心接入Internet网络时能够接收来自手持终端的数据,并在监控中心大屏幕上显示。
手持终端采用ARM-Linux系统。系统的核心部件ARM(AdvancedRISC Machines)处理器是专门针对嵌入式设备设计的,是目前构造嵌入式系统硬件平台的首选,采用RISC(精简指令集计算机)架构的ARM微处理器具有体积小、低功耗、低成本、高性能的特点。而Linux操作系统可公开获得的源代码已经在性能、功能、驱动开发和可移植性等方面经历了无数的改进、增强及扩充,其操作系统代码可裁减,所以采用嵌入式Linux操作系统可以大大提高系统的可靠性,充分发挥处理器的多任务潜力,提高开发效率和缩短开发周期。
2 系统硬件实现
手持终端硬件结构主要分为以下几个部分:ARM处理器及其扩展接口、触摸屏、电源、GPS模块、GPRS模块等。手持终端硬件平台以S3C2410控制器为核心,其他模块通过它的内部接口,辅助以设计的外部电路来完成相应的功能。
S3C2410 自带3通道UART,这里使用的串口2与GPRS模块相连,如图2所示。由图中可以看出GPB6~8代替了串口2的CTS,DCD和DTR握手信号,因此要在串口驱动中将原来对于串口2“DCD,DTR,CTS”信号操作的地方,改成相应对“GPB6~8”的操作;此外,因为要给MC35i模块“IGT” 引脚至少100 ms的低脉冲用于启动MC35i模块,而这个脉冲是通过由软件的方法对-GPB9脚写0和1来产生,因此要在驱动中串口初始化的部分添加这个脉冲产生的代码,用于启动GPRS模块。
系统使用的嵌入式Linux内核版本是2.6.14,其中串口驱动的部分位于ARM板内核的 kernel/driv-ers/serial和/kernel/drivers/char/目录下。其中串口初始化部分位于/kernel/drivers/serial/serials3c2410.c文件中。对其进行如下修改:
对于握手信号的处理位于/home/guoguo/kernel/drivers/char/serial.c文件中。主要需要修改的函数有:check_modem_status(),get_modem_info(),block_til_ready(),line_info(),autoconfig() 等函数。
上述的函数中都有涉及到读握手信号的状态进行判断操作,而读握手信号值主要是通过读modem状态寄存器的值来实现,在内核中 modem状态寄存器被定义为UART_MSR,UART_MSR共8 b,从高到低每个bit依次代表的是DCD,RI,DSR,CTS,DDCD,TERI,DDSR,DCTS的值(高低电平),因此要将这些函数中对 UART MSR的状态值status进行判断处理前,相应的位赋上正确的值,这个值从相应的GPIO脚来获取。
3 系统通信程序实现
在Linux下要完成与挂接在Internet上的通信服务器通信,首先需要经过GPRS模块初始化和GPRS网络连接,然后才能使用TCP/IP协议进行数据传输。
GPRS 模块初始化程序功能:实现MC35i模块初始化并完成MC35i与S3C2410的逻辑连接。在该程序内部使STB选通信号变为高电平,并持续规定时间,然后恢复成低电平,完成对MC35i的初始化工作,紧接着通过有关控制信号实现S3(22410与MC35i的逻辑连接。初始化程序可直接在Linux命令行下执行命令In-smodigto即可完成。
GPRS网络连接程序功能:使Mc35i以某种通信协议连接到GPRS网络上。网络连接使用第三方提供的内置PPP通信协议的软件,其命令如下:
/connect
当连接成功后,由于GPRS网络通过中国移动网关连接到了Internet网,因此就可以利用TCP/IP协议与Internet上的任何IP地址进行通信了。
由于Linux操作系统已内置TCP/IP协议栈,因此可以直接使用套接字编程实现TCP/IP的数据传输。套接字的基本模式是C/S(客户/服务器),内置GPRS模块的设备工作在客户模式,而远程Internet网上的通信服务器工作在服务器模式。客户端程序基本流程是:创建套接字,绑定套接字到已知端口上,然后请求连接,最后调用数据收发函数进行数据的发送。在客户端通信程序执行前,服务器端的程序必须完成初始化并开始侦听。
客户端程序如下:
4 监控中心软件设计
监控中心程序负责整个工作区域画面的显示,特殊区域划分的绘制和管理以及对所有运检人员的跟踪。根据电力部门对各工作区域的特殊区域划分,将其用不同的颜色显示,方便监控人员的监视及管理。
监控中心软件利用MapXMobile控件实现GIS的基本功能,以Microsoft公司的可视化开发环境VC为开发平台,进行二次开发。
手持终端系统通过绑定操作绑定到目标主机(上位机服务器)IP地址和某一端口(本系统设置为5200),并通过TCP进行数据交换。运用网络编程的方法实现监控中心软件读取端口5200接收到的数据,并实时地在监控画面上显示出来,从而实现位置监控。
目前广泛应用的监控中心电子地图,一般只能显示主要城市市区和主干道地图,不能显示县级以下电子地图,而本系统绘制了县级以下电子地图,从而实现了对输电线路运检人员位置的有效监控。
监控中心软件电子地图的主要创新点在于:
县级以下公路的显示 这部分主要是利用采集的地图数据,结合SQL数据库或MSACCESS数据库,以VC为开发平台进行绘制;
路径轨迹的记录与回放 利用GIS控件中的函数,通过对数据库中路径轨迹数据的操作,实现路径轨迹的回放。
5 结 语
该研究设计了基于Linux和GPRS的数据通讯系统,并介绍了数据通讯系统的硬件组成、硬件连接方案及串口驱动的修改,同时列出了软件的实现方法。本研究还结合该系统在输电线路运检导航系统中的应用,阐述了系统的组成、功能和特点。
该系统在科学研究和实际应用方面的网络功能优势明显。在输电线路运检中,运行班组相对固定的情况下,该系统使得其他参与检修人员在线路年度大修和故障抢修时不需要运行班组专人带路,节省人力也提高了效率;同时监控中心又可以对检修人员的位置进行实时监控。
GPRS数据传输方式的快速性和实时性能够满足传输定位数据的需求,而且能够直接与互联网络进行数据传输,应用灵活方便。测试结果表明,本系统能够实现信号的可靠传输。但该系统在机密数据传输保密上,还有待进一步完善。