功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
研发资讯 您所在的位置: 首页 > 研发资讯

基于嵌入式Linux 的移动终端的软件设计

来源:    作者:    发布时间:2016-09-28 09:28:33    浏览量:

  当应用层的 GPS 信号接收程序开始运行时,它会向文件系统发出读请求,文件系统发现此请求的对象为 tty 设备,于是调用函数 tty_read( ),接着调用函数 read_chan( ) 读取 tty 缓冲区中的数据。

  3.3 GPS 数据处理程序

  GPS 接收器与嵌入式 Linux 平台之间的通信协议有很多种,这里采用的通信协议是 NMEA-0183,它规定了 GPS 数据的输出速率为 4,800 波特,其输出都是 ASCII 字符,工作模式为 8-N-1。通信协议 NMEA-0183 中包含的语句有 GPGGA、GPGLL、GPGSA、GPGSV、GPRMC、GPVTG 等,要想知道车辆的位置信息,至少要提取出 GPGGA、GPGLL、GPRMC 中的一种。NMEA-0183 协议报文的语句格式如图 3 所示。



图 3 NMEA0183 的报文格式

  其中,$ 为串头,表示串的开始;AA 为识别符;XXX 为语句名;ddd…ddd 为数据字段,字母或数字;* 表示串尾;hh 表示 $ 与 * 之间所有字符代码的校验和;< CR > 为回车控制符;< LF > 为换行控制符。

  在车辆监控系统中,主要关心的是时间、车辆的位置和速度等信息。因此,在移动终端上,GPS 数据处理程序的主要功能是从 GPS 接收器接收到的数据中提取出 GPRMC 定位语句,忽略掉其他信息[3]。此后,移动终端上的 GPRS 通信程序负责将相关的数据发送给监控中心。


3.4 GPRS 通信程序

  3.4.1 拨号到 GPRS 网络的基本原理

  移动终端要想通过 GPRS 通信模块访问 Internet,首先得附着在 GPRS 网络上,然后发起 PDP(Packet Data Protocol,分组数据协议)上下文激活过程[4],如图 4 所示。只有通过此过程,GPRS 通信模块才能与 GGSN 建立一条逻辑通路,从而访问 Internet。


图 4 PDP 上下文激活过程示意图

  3.4.2 移动终端上拨号程序的实现

  在嵌入式 Linux 系统平台下,移动终端利用 pppd(包含 chat)拨号到 GPRS 网络。pppd 是一个用户空间的后台服务进程(daemon),而 chat 是 pppd 所带一个辅助工具,用来与 GPRS 通信模块建立会话。在 PDP 上下文激活过程中,chat 完成了第 ① 步,而 pppd 完成了第 ②、③、④、⑩ 步。pppd 拨号程序的层次结构如图 5 所示。


图 5 pppd 拨号程序的层次结构

  其中,N_PPP 层就是 PPP 协议层。PPP 协议模块不仅提供简单的数据链路层功能,它还提供诸如鉴权(如PAP/CHAP),数据压缩/解压(如CCP)和数据加密/解密(如ECP)等扩展功能。由于 GPRS 通信程序要求透明化地使用这些扩展功能,而 PPP 协议模块本身无法对各种策略进行选择,于是 pppd 应运而生。PPP 协议模块中策略性的内容都移到了 pppd 中,由 pppd 完成对鉴权、压缩/解压和加密/解密等扩展功能的选用。

  在运行 pppd 的时候,pppd 首先读取配置文件中的配置信息,其中包含了设置 PPP 协议模块的参数、GPRS 通信模块连接的端口(/dev/ttyS1)以及对 chat 进行调用的语句,等等。随后 pppd 调用 chat,chat 也会读取相应的配置文件(其中包含一些应答语句对和 AT 命令),然后使用默认的行规程 N_TTY 向 GPRS 通信模块发送 AT 命令,接着 chat 将控制权返还给 pppd。pppd 将行规程切换为 N_PPP,而 pppd 与 PPP 协议模块之间采用了设备文件来进行通信,设备文件名是 /dev/ppp。通过 read 系统调用,pppd 可以读取 PPP 协议模块的数据包(当然,PPP 协议模电感厂家块只会把应该由 pppd 处理的数据包发给 pppd)。通过 write 系统调用,pppd 可以把要发送的数据包传递给 PPP 协议模块,而通过 ioctl 系统调用,pppd 可以设置 PPP 协议模块的参数,可以建立/关闭连接。

  此后,pppd 执行了 PDP 上下文激活过程的第 ②、③、④ 步。等 PDP 上下文激活过程的第 ⑤-⑨ 步(与移动终端不直接相关)完成之后,pppd 执行第 ⑩ 步,在函数 make_ppp_unit( ) 中调用 ioctl(PPPIOCNEWUNIT) 创建一个网络接口(如ppp0)。当 PPP 协议模块在处理 PPPIOCNEWUNIT 时,调用函数 register_netdev( ) 向内核注册 PPP 网络接口,该网络接口的传输函数指向函数 ppp_start_xmit( )。值得注意的一点是,如果关闭进程 pppd,行规程会由 N_PPP 切换回默认的 N_TTY,因此,在移动终端与监控电感器命名中心通信的过程中不能关闭 pppd 进程。

  至此,移动终端完成了向 GPRS 网络的拨号,这样它就拥有了一个可以用于与监控中心进行通信的网络接口(如ppp0)。

  • 松下电工通过晶圆级接合4层封装LED松下电工成功开发出通过晶圆级接合,将封装有LED的晶圆和配备有光传感器的晶圆合计4枚晶圆进行集成封装。该公司为了显示其晶圆级封装(WLP)的技术实力,在 第20届微机械/MEMS展 上公开了该元件。此

  • LC滤波器的设计低通滤波器设计首先根据给定技术条件,选择某一形式的低通原则型滤波器,查出、计算归一化元件值,然后用所有要求的截止频率和负载电阻进行标定,便可得到所需要低通滤波网络。1、滤波器特性的逼近 理想化的低通滤

  • 单片机基本结构及C语言编程基础1、 DIP40双列直插; 2、 P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、 电源VCC(PIN40)和地线GND(PIN20); 4、 高电平复位RE

  •