当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]Linux和GPRS的数据通讯系统应用介绍

0 引 言

  随着我国电网的不断扩大,输电线路越来越多、越来越复杂,给线路运检人员日常维护和检修造成了一定的困难。输电线路运检人员一般工作在野外,需要用导航系统来识别路径,当遇到危险情况下寻求救援时也需要将自己的位置信息传输给监控中心。而目前普遍使用的手持定位系统和车载定位系统只能实现市区和主干道上的导航,不能满足输电线路运检导航的需要。输电线路运检导航系统的设计有效地解决了目前导航系统的弊端。

  本文重点是解决输电线路运检导航系统的数据传输问题,采用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()等函数。[!--empirenews.page--]
上述的函数中都有涉及到读握手信号的状态进行判断操作,而读握手信号值主要是通过读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网上的通信服务器工作在服务器模式。客户端程序基本流程是:创建套接字,绑定套接字到已知端口上,然后请求连接,最后调用数据收发函数进行数据的发送。在客户端通信程序执行前,服务器端的程序必须完成初始化并开始侦听。

  客户端程序如下:

  

 

  

[!--empirenews.page--]
4 监控中心软件设计

  监控中心程序负责整个工作区域画面的显示,特殊区域划分的绘制和管理以及对所有运检人员的跟踪。根据电力部门对各工作区域的特殊区域划分,将其用不同的颜色显示,方便监控人员的监视及管理。

  监控中心软件利用MapXMobile控件实现GIS的基本功能,以Microsoft公司的可视化开发环境VC为开发平台,进行二次开发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭