⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于嵌入式linux的移动终端的软件设计 - 嵌入系统 - ic狗新闻中心.htm

📁 开发GPRS通讯绝好的资料打包
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://news.icgle.net/news/2008/10/10/IcNews21219.htm -->
<HTML><HEAD><TITLE>基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META 
content=1引言实时操作系统(rtos)是嵌入式应用软件的基础和开发平台,应用程序都是建立在它之上。实时嵌入式操作系统的种类繁多,大体上可分为两种:商用型和免费型。商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主要有linux、μc/os等。与其它嵌入式操作系统相比,嵌入式linux具有开放源代码、高可靠性以及强大的网络功能等优势,因 
name=description>
<META content="IC新闻中心 给IC芯片产业 电子行业 IC公司 集成电路设计者 提供最全最新电子行业新闻  IC网页制作 IC用户帮助 " 
name=keywords><LINK href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/news.css" 
type=text/css rel=stylesheet>
<SCRIPT language=javascript 
src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/news.js"></SCRIPT>

<META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
<BODY>
<TABLE class=h6 cellSpacing=0 cellPadding=0>
  <TBODY>
  <TR>
    <TD class=h><A href="http://www.icgle.net/"><IMG 
      src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/logonews.gif"></A></TD>
    <TD class=h1><A class=h4 href="http://news.icgle.net/">新闻</A><A class=h5 
      href="http://www.icgle.net/Pro">库存</A><A class=h5 
      href="http://price.icgle.net/">价格</A><A class=h5 
      href="http://www.icgle.net/PDF">PDF</A><A class=h5 
      href="http://pic.icgle.net/">图片</A><BR><INPUT id=k> <INPUT id=g type=button value=IC狗搜索></TD>
    <TD id=login>Loading</TD></TR></TBODY></TABLE>
<DIV class=h7><A href="http://www.icgle.net/Technic/">IC技术支持中心</A></DIV>
<TABLE class=h6 cellSpacing=0 cellPadding=0>
  <TBODY>
  <TR>
    <TD class=r2>
      <DIV class=n2>
      <DIV class=mt>基于嵌入式Linux的移动终端的软件设计</DIV>
      <DIV class=ma><A href="http://news.icgle.net/type.asp?tp=6">文章类型:嵌入系统</A> 
      &nbsp; 发布者:小刘 &nbsp; 新闻来源:因特网 &nbsp; 发布时间:2008-10-10</DIV>
      <DIV class=n1>字体大小:<A id=b16 
      href="http://news.icgle.net/news/2008/10/10/IcNews21219.htm#">[大]</A><A 
      id=b14 
      href="http://news.icgle.net/news/2008/10/10/IcNews21219.htm#">[中]</A><A 
      id=b12 
      href="http://news.icgle.net/news/2008/10/10/IcNews21219.htm#">[小]</A></DIV>
      <DIV class=n3>
      <TABLE cellSpacing=0 cellPadding=0 width="100%">
        <TBODY>
        <TR>
          <TD>
            <DIV id=mr><IFRAME id=outad marginWidth=0 marginHeight=0 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/login_cn.htm" 
            frameBorder=0 width=0 scrolling=no height=0></IFRAME></DIV>
            <DIV id=mc>
            <P><FONT face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            1引言</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            实时操作系统(RTOS)是嵌入式应用软件的基础和开发平台,应用程序都是建立在它之上。实时嵌入式操作系统的种类繁多,大体上可分为两种:商用型和免费型。商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主要有Linux、μC/OS等。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            与其它嵌入式操作系统相比,嵌入式Linux具有开放源代码、高可靠性以及强大的网络功能等优势,因此选用了嵌入式Linux系统作为移动终端的软件平台。</FONT></P>
            <P><FONT face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            2车辆监控系统概述</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            车辆监控系统是融全球定位技术(GPS)、地理信息技术(GIS)和通用分组无线业务(GPRS)于一体的高科技系统,由移动终端、GPRS网络和监控中心组成[1]。移动终端安装在各个移动车辆上,其上的GPS接收器实时采集卫星定位信息,然后通过串口1传送给ARM处理器。ARM处理器先解算出有用的数据(经纬度、速度、状态等),然后按照TCP/UDP协议的格式封装成TCP/UDP数据包,接着加上IP报头和报尾封装成IP数据报。由于ARM处理器与GPRS通信模块之间的通信遵循PPP(PointtoPointProtocol,点对点协议),因而,需要将IP数据报按照PPP帧的帧格式封装成PPP帧,然后传递给接在串口2上的GPRS通信模块。GPRS通信模块通过无线链路将数据进一步发送到SGSN(ServingGPRSSupportNode,GPRS业务支持节点)。SGSN进行相应的协议转换,并按照GPRS特有的GTP(GPRSTunnelProtocol,GPRS隧道协议)将数据封装成GTP包,然后通过GPRS骨干网传送到相应的GGSN(GatewayGPRSSupportNode,GPRS网关支持节点)。GGSN也进行相应的协议转换,再根据外部数据网的协议格式对数据进行新的封装,并且根据其目的IP地址选择路由进行传送,从而最终传送到监控中心。监控中心在具有地理信息处理和查询功能的电子地图上进行车辆运动轨迹的显示,并对被监控车辆的准确位置、速度、运动方向、行车状态等参数进行监控和查询。同时,监控中心也可以向移动终端发送文本信息和控制命令。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            由此可见,移动终端的核心功能是接收GPS信号、处理GPS数据以及通过GPRS网络与监控中心进行通信(包括向监控中心发送定位信息和接收监控中心的指令)。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>&nbsp; 
            3移动终端软件系统的设计</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;<STRONG>&nbsp;&nbsp;&nbsp;&nbsp; 
            3.1总体设计</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            在移动终端上,软件系统主要由三个部分组成:GPS信号接收程序、GPS数据处理程序和GPRS通信程序。在嵌入式Linux系统平台下,移动终端的软件系统结构如图1所示。</P>
            <P align=center><A 
            href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/20081015123220214.jpg" 
            target=_blank><IMG 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/20081015123220214.jpg" 
            onload="if(this.width>500){this.width=500}" border=0></A></FONT></P>
            <P align=center><FONT face=Verdana><STRONG>图1 
            移动终端的软件系统结构</STRONG></FONT></P>
            <P><FONT face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            3.2GPS信号接收程序</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            对于移动终端,它的第一个任务就是接收GPS信号。在嵌入式Linux系统平台下,GPS信号接收程序的层次结构如图2所示。</P>
            <P align=center><A 
            href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232209256.jpg" 
            target=_blank><IMG 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232209256.jpg" 
            onload="if(this.width>500){this.width=500}" border=0></A></FONT></P>
            <P align=center><FONT 
            face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>&nbsp; 图2 
            GPS信号接收程序的层次结构</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            其中,tty层、N_TTY行规程(LineDiscipline)层和低层驱动程序是嵌入式Linux系统中串行通信驱动模块三个固有的逻辑层,这三层之间有相互调用的接口函数。嵌入式Linux系统提供了多种行规程供各类设备进行选择,如:TTY行规程(N_TTY)用于连接终端输入驱动设备和终端显示驱动设备,而PPP行规程(N_PPP)用来连接终端驱动设备和网络驱动设备。GPS信号接收程序使用了N_TTY行规程,GPS接收器接收到的数据必须经过N_TTY行规程模块进行规范处理。低层驱动程序用来直接对硬件进行操作,而flip_buffer是低层驱动程序和N_TTY行规程之间的高速接口,它保存GPS接收器接收到的数据。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            在嵌入式Linux系统中,内核给接在串口1上的GPS接收器提供了一个设备节点/dev/ttyS0以及标准的文件系统接口[2]。这样,GPS信号接收程序对设备节点/dev/ttyS0的操作就会被内核映射成对GPS接收器的操作。当GPS接收器接收到卫星信号时,会触发低层驱动程序事先注册到系统中的中断处理函数,从而调用函数receive_chars()把数据填充到flip_buffer中,然后调用函数tty_flip_buffer_push()将数据传递给N_TTY行规程模块。N_TTY行规程模块中的函数n_tty_receive_buf()对数据进行规范化处理后将其存入tty缓冲区中,供应用层的GPS信号接收程序来读取。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            当应用层的GPS信号接收程序开始运行时,它会向文件系统发出读请求,文件系统发现此请求的对象为tty设备,于是调用函数tty_read(),接着调用函数read_chan()读取tty缓冲区中的数据。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG> 
            3.3GPS数据处理程序</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            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所示。</P>
            <P align=center><A 
            href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232205554.jpg" 
            target=_blank><IMG 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232205554.jpg" 
            onload="if(this.width>500){this.width=500}" border=0></A></FONT></P>
            <P align=center><FONT 
            face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG> 图3 
            NMEA0183的报文格式</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            其中,$为串头,表示串的开始;AA为识别符;XXX为语句名;ddd…ddd为数据字段,字母或数字;*表示串尾;hh表示$与*之间所有字符代码的校验和;&lt;CR&gt;为回车控制符;&lt;LF&gt;为换行控制符。</FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            在车辆监控系统中,主要关心的是时间、车辆的位置和速度等信息。因此,在移动终端上,GPS数据处理程序的主要功能是从GPS接收器接收到的数据中提取出GPRMC定位语句,忽略掉其他信息[3]。此后,移动终端上的GPRS通信程序负责将相关的数据发送给监控中心。</FONT></P>
            <P><FONT face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            3.4GPRS通信程序</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>&nbsp; 
            3.4.1拨号到GPRS网络的基本原理</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            移动终端要想通过GPRS通信模块访问Internet,首先得附着在GPRS网络上,然后发起PDP(PacketDataProtocol,分组数据协议)上下文激活过程[4],如图4所示。只有通过此过程,GPRS通信模块才能与GGSN建立一条逻辑通路,从而访问Internet。</P>
            <P align=center><A 
            href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232228726.jpg" 
            target=_blank><IMG 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232228726.jpg" 
            onload="if(this.width>500){this.width=500}" border=0></A></FONT></P>
            <P align=center><FONT 
            face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图4 
            PDP上下文激活过程示意图</STRONG></FONT></P>
            <P><FONT face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            3.4.2移动终端上拨号程序的实现</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            在嵌入式Linux系统平台下,移动终端利用pppd(包含chat)拨号到GPRS网络。pppd是一个用户空间的后台服务进程(daemon),而chat是pppd所带一个辅助工具,用来与GPRS通信模块建立会话。在PDP上下文激活过程中,chat完成了第①步,而pppd完成了第②、③、④、⑩步。pppd拨号程序的层次结构如图5所示。</P>
            <P align=center><A 
            href="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232239280.jpg" 
            target=_blank><IMG 
            src="基于嵌入式Linux的移动终端的软件设计 - 嵌入系统 - IC狗新闻中心.files/200810151232239280.jpg" 
            onload="if(this.width>500){this.width=500}" border=0></A></FONT></P>
            <P align=center><FONT 
            face=Verdana><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图5 
            pppd拨号程序的层次结构</STRONG></FONT></P>
            <P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -