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

📄 基于嵌入式linux的移动终端的软件设计2.htm

📁 开发GPRS通讯绝好的资料打包
💻 HTM
📖 第 1 页 / 共 5 页
字号:
class=link_red12 
href="http://article.cechina.cn/2008-10/20081070903582.htm#clist">我要评论</A></H3>
<DIV class=hxts><SPAN class=grayB>摘要:</SPAN><SPAN 
id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_L_Summary>实时操作系统(RTOS)是嵌入式应用软件的基础和开发平台,应用程序都是建立在它之上。实时嵌入式操作系统的种类繁多,大体上可分为两种:商用型和免费型。商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主要有 
Linux、μC/OS 等。</SPAN></DIV>
<DIV class=clear></DIV>
<DIV class=Adetail_content>egister_netdev( ) 向内核注册 PPP 网络接口,该网络接口的传输函数指向函数 
ppp_start_xmit( )。值得注意的一点是,如果关闭进程 pppd,行规程会由 N_PPP 切换回默认的 
N_TTY,因此,在移动终端与监控中心通信的过程中不能关闭 pppd 进程。 
<P></P>
<P><BR>  至此,移动终端完成了向 GPRS 网络的拨号,这样它就拥有了一个可以用于与监控中心进行通信的网络接口(如ppp0)。</P>
<P> <STRONG> 3.4.3 移动终端与监控中心的数据交互</STRONG></P>
<P>  前面,移动终端已经与监控中心建立了网络链接。接下来,移动终端就可以与监控中心进行通信了。GPRS 通信程序的层次结构如图 1 的右半部分所示。</P>
<P>  在移动终端向监控中心发送定位信息的过程中,移动终端上的 GPRS 通信程序通过 socket 接口发送 TCP/IP 数据包,内核根据 IP 
地址和路由表,找到 PPP 网络接口,然后调用函数 ppp_start_xmit( ),此时控制权就转移到了 PPP 协议模块。函数 
ppp_start_xmit( ) 调用函数 ppp_xmit_process( ) 去发送队列中的所
<TABLE align=left>
  <TBODY>
  <TR>
    <TD id=Adimg></TD></TR></TBODY></TABLE>有数据包,而函数 ppp_xmit_process( ) 会进一步调用函数 
ppp_send_frame( ) 去发送单个数据包。函数 ppp_send_frame( ) 根据前面 pppd 对 PPP 
协议模块的设置调用压缩等扩展功能之后,又经函数 ppp_push( ) 调用函数 pch-&gt;chan-&gt;ops-&gt;start_xmit( ) 
发送数据包。函数 pch-&gt;chan-&gt;ops-&gt;start_xmit( ) 是具体的传输方式,对于串口发送方式,则是 
ppp_async.c:ppp_asynctty_open 中注册的函数 ppp_async_send( ),函数 ppp_async_send( ) 经函数 
ppp_async_push( ) 调用函数 tty-&gt;driver-&gt;write( )(定义在低层驱动程序中)把数据发送到串口 2(GPRS 
通信模块接在串口 2 上)。</P>
<P>  ppp_async.c 在初始化时(ppp_async_init),调用函数 tty_register_ldisc( ) 向 tty 注册了行规程 
N_PPP 的处理接口,也就是一组回调函数。在移动终端接收监控中心指令的过程中,当 GPRS 通信模块收到数据时,就会回调 N_PPP 行规程中的函数 
ppp_asynctty_receive( ) 来接收数据。函数 ppp_asynctty_receive( ) 调用函数 ppp_async_input( ) 
把数据 buffer 转换成 sk_buff,并放入接收队列 ap-&gt;rqueue 中。ppp_async 另外有一个 
tasklet(ppp_async_process)专门处理接收队列 ap-&gt;rqueue 中的数据包,ppp_async_process 
一直挂在接收队列 ap-&gt;rqueue 上,一旦被唤醒,它就调用函数 ppp_input( ) 让 PPP 协议模块处理该数据包。在函数 
ppp_input( ) 中,数据被分成两路,一路是协议控制数据包,放入队列 pch-&gt;file.rqb 中,交给 pppd 
处理。另外一路是用户数据包,经函数 ppp_do_recv( )、ppp_receive_frame( ) 进行 PPP 协议相关的处理后,再由函数 
netif_rx( ) 提交给上层的 TCP/IP 协议模块进行处理,最后经 socket 接口传递给应用层的 GPRS 通信程序。</P>
<P> <STRONG> 4 总结</STRONG></P>
<P>  近几年,智能交通系统(包括车辆监控系统)发展非常迅速,因此,移动终端将会有非常广泛的应用前景。随着市场需求的不断扩大,更加丰富的功能将会被集成到移动终端上,而嵌入式 
Linux 系统凭借其自身的优势将会被越来越多地应用到这个领域。</P>
<P>  本文作者创新点:本方案充分利用了嵌入式 Linux 平台所提供的系统功能,大大简化了应用程序的开发,并且具有良好的可扩展性。在详细介绍 GPS 
信号的接收过程并给出一个简洁的 GPS 数据处理办法后,本文提供了一种切实可行的拨号到 GPRS 网络的方法,从而实现了移动终端跨越 GPRS 网络与 
Internet 上监控中心的通信。</P>
<P>  <STRONG>参考文献:</STRONG></P>
<P>  [1]&nbsp;&nbsp;&nbsp; 李艳晴等.基于 GPRS/GPS 
的车辆监控系统的设计[J].微计算机信息,2004,20-4:39-40.</P>
<P>  [2]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ales<!-- 2008-10-7 9:03:59--> </P></DIV>
<UL class=art_Dfy>
  <LI class=L>
  <DIV id=PageNum><LABEL><A 
  href="http://article.cechina.cn/2008-10/20081070903581.htm">上一页</A></LABEL>【<A 
  href="http://article.cechina.cn/2008-10/2008107090358.htm">1</A>】【<A 
  href="http://article.cechina.cn/2008-10/20081070903581.htm">2</A>】【<SPAN>3</SPAN>】【<A 
  href="http://article.cechina.cn/2008-10/20081070903583.htm">4</A>】<LABEL><A 
  href="http://article.cechina.cn/2008-10/20081070903583.htm">下一页</A></LABEL></DIV>
  <LI class=R>[<A href="javascript:window.close();">关闭</A>] [<A 
  href="javascript:window.print();">打印</A>] [<A 
  href="http://article.cechina.cn/2008-10/20081070903582.htm#clist">发表评论</A>] 
  <LI class=L>
  <DIV 
  style="MARGIN-TOP: 2px; DISPLAY: inline; BACKGROUND: url(http://www.cechina.cn/images/commend.gif) no-repeat; FLOAT: left; MARGIN-LEFT: 180px; WIDTH: 46px; CURSOR: pointer; HEIGHT: 52px; TEXT-ALIGN: center" 
  onclick=artclick(1);><SPAN id=digg_num 
  style="FONT-SIZE: 14px; COLOR: #ff6600; FONT-FAMILY: verdana,宋体,sans-serif">0</SPAN> 
  </DIV>
  <DIV 
  style="MARGIN-TOP: 2px; BACKGROUND: url(http://www.cechina.cn/images/Oppose.gif) no-repeat; FLOAT: left; MARGIN-LEFT: 20px; WIDTH: 46px; CURSOR: pointer; HEIGHT: 52px; TEXT-ALIGN: center" 
  onclick=artclick(0);><SPAN id=Oppose_num 
  style="FONT-SIZE: 14px; COLOR: #075db3; FONT-FAMILY: verdana,宋体,sans-serif">0</SPAN> 
  </DIV>
  <DIV style="FLOAT: left; MARGIN-LEFT: 20px"><A 
  href="http://article.cechina.cn/2008-10/20081070903582.htm#"><IMG 
  style="PADDING-RIGHT: 16px" height=60 alt=收藏 
  src="基于嵌入式Linux的移动终端的软件设计2.files/Adetail_pic06.gif" width=60 border=0></A> <A 
  href='javascript:copyInclipboard("http://article.cechina.cn/2008-10/20081070903582.htm"+"%20%20"+"基于嵌入式Linux的移动终端的软件设计")'><IMG 
  height=60 alt=分享 src="基于嵌入式Linux的移动终端的软件设计2.files/Adetail_pic07.gif" width=60 
  border=0> </A>&nbsp; </DIV>
  <DIV class=clear></DIV></LI></UL>
<DIV class=Statement><STRONG>版权声明:</STRONG>版权归控制工程网所有,转载请注明出处!</DIV>
<DIV class=Adetail_Relation style="DISPLAY: none">
<DIV>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=middle width=210>
      <TABLE cellSpacing=5 cellPadding=0 width=200 align=center border=0>
        <TBODY>
        <TR>
          <TD align=left height=32><SPAN class=grayB>您的姓名:</SPAN> <INPUT 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_txtName 
            style="WIDTH: 100px" 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$txtName><BR><SPAN 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_RequiredFieldValidator1 
            style="VISIBILITY: hidden; COLOR: red">请输入您的姓名</SPAN> </TD></TR>
        <TR>
          <TD align=left height=32><SPAN class=grayB>单位名称:</SPAN> <INPUT 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_txtCompany 
            style="WIDTH: 100px" 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$txtCompany><BR><SPAN 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_RequiredFieldValidator2 
            style="VISIBILITY: hidden; COLOR: red">请输入单位名称</SPAN> </TD></TR>
        <TR>
          <TD align=left height=32><SPAN class=grayB>联系电话:</SPAN> <INPUT 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_txtPhone 
            style="WIDTH: 100px" 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$txtPhone><BR><SPAN 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_RequiredFieldValidator3 
            style="VISIBILITY: hidden; COLOR: red">请输入联系电话</SPAN> </TD></TR>
        <TR>
          <TD align=left height=32><SPAN class=grayB>电子邮件:</SPAN> <INPUT 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_txtEmail 
            style="WIDTH: 100px" 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$txtEmail><BR><SPAN 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_RequiredFieldValidator4 
            style="VISIBILITY: hidden; COLOR: red">请输入电子信箱</SPAN> <SPAN 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_RegularExpressionValidator1 
            style="VISIBILITY: hidden; COLOR: red">Email格式错误</SPAN> </TD></TR>
        <TR>
          <TD align=left>本站注册会员请登录后填写反馈更快捷,每条反馈得3积分。 </TD></TR>
        <TR>
          <TD align=middle><A 
            href="http://article.cechina.cn/2008-10/20081070903582.htm#">登录</A> 
            <A 
            href="http://article.cechina.cn/2008-10/20081070903582.htm#">&nbsp;注册</A> 
          </TD></TR></TBODY></TABLE></TD>
    <TD vAlign=top>
      <TABLE id=InforTable cellSpacing=5 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD height=30><INPUT type=checkbox onchange=updateValue(this); 
            value=我想得到贵公司详细的技术资料 name=checkbox1> 我想得到贵公司详细的技术资料 </TD>
          <TD height=30><INPUT type=checkbox onchange=updateValue(this); 
            value=我想得到贵公司的价格信息 name=checkbox2> 我想得到贵公司的价格信息 </TD></TR>
        <TR>
          <TD height=30><INPUT type=checkbox onchange=updateValue(this); 
            value=我让贵公司产品销售人员与我联系 name=checkbox3> 我让贵公司产品销售人员与我联系 </TD>
          <TD height=30><INPUT type=checkbox onchange=updateValue(this); 
            value=我让贵公司技术支持人员与我联系 name=checkbox4> 我让贵公司技术支持人员与我联系 </TD></TR>
        <TR>
          <TD colSpan=2 height=30>
            <P><STRONG>其他意向请在下面输入:</STRONG><STRONG> </STRONG></P></TD></TR>
        <TR>
          <TD align=middle colSpan=2><TEXTAREA id=FeedbackInfor name=textarea rows=4 cols=40></TEXTAREA> 
          </TD></TR>
        <TR>
          <TD align=middle colSpan=2 height=30><INPUT 
            id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_btnFeedBack 
            style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 117px; HEIGHT: 24px; BORDER-RIGHT-WIDTH: 0px" 
            onclick='if(!validateInfor()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$btnFeedBack", "", true, "companyGroup", "", false, false))' 
            type=image src="基于嵌入式Linux的移动终端的软件设计2.files/Adetail_btn.gif" 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$btnFeedBack> 
            <INPUT id=ctl00_ctl00_ctl00_cpMainWrapper_MainContent_Left_MySelect 
            type=hidden 
            name=ctl00$ctl00$ctl00$cpMainWrapper$MainContent$Left$MySelect> 
        </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></DIV><!--相关文章 内容开始-->
<DIV class=Thread_column>
<UL class=art_title01>
  <LI class=l>相关文章 </LI></UL>

⌨️ 快捷键说明

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