网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 行业动态 | GPS | Galileo | Glonass | 北斗 | A-GPS | GIS | 地图 | DIY | Google earth | POI | 解决方案
 当前位置: Home > GPS > GPS硬件 > 文章  
基于uClinux的GPSOne/GPS双定位信息接收
文章来源: 《单片机与嵌入式系统应用》 文章作者: 徐柳茂 蒋念东 黄永强 发布时间: 2007-02-28   字体: [ ]  
 

int Maxfd = fd_gps>fd_gpsOne? fd_gps: fd_gpsOne;//得到串口描述符中较大的一个
 
struct timeval tv;//定义超时控制结构
fd_set fds; //文件描述符集合变量
tv.tv_sec = 5;//设定超时值 5 s
tv.tv_usec = 0;
 
while(1)
{
  //通过GPSOne串口,发送GPSOne定位请求
  Rt = send_port (fd_gpsone, "AT+GPSSTRT\r", strlen("AT+GPSSTRT\r");
 
  if (Rt) == -1)
    printf("Error happened!");
 
  FD_ZERO (&fds);//初始化文件描述符集合
  FD_SET(*fd_gps, &fds);//设置文件描述符集合的相应位
  FD_SET(fd_gpsOne, &fds);//使用select,让内核开始监听GPSOne和GPS串口设备
  fd_sel = select((Maxfd)+1, &fds_gps, NULL, NULL, &tv);
 
  if (fd_sel < 0)
  {
    printf("Error happened while receiving gps data.\n");
  }
  else if (FD_ISSET(*fd_gps, &fds))
  {
    //若GPS串口设备有数据可读
    recv_len = recv_port(fd_gps, buf, 254); 
   
    if (recv_len > 0)
    {
      memcpy (gps_info, buf, recv_len);//信息保存到
      gps_info数组中gps_info_process(gps_info);//解析定位信息处理
    }
  }
  else if (FD_ISSET(*fd_gpsOne, &fds))
  {
    //若GPSOne串口设备有数据可读
    recv_len = recv_port(*fd_gpsOne, buf, 254);
    if (recv_len > 0)
    {
      memcpy (gpsOne_info, buf, recv_len); //信息保存到gpsOne_info数组中
      gpsOne_info_process(gpsOne_info);//解析定位信息处理
    }
  }
 
  sleep(1);
}

  6 设计总结

  本文详细说明了串口编程的基本方法和步骤,并提出一种基于select的I/O复用机制处理多个串口信息的方案,同时给出这种方案的具体实现。此方案具有较高的可靠性,保证了多个串口的信息可以很好地被接收和处理,而且不相互干扰,利于系统更好地管理多个文件设备。特别是在数据采集和数据传输领域中, select利用内核同时监听多个设备描述符机制,可以被广泛地应用于嵌入式系统多路I/O采集的设计中。

  参考文献

  [1]  Kurt Wall. GNU/Linux编程指南[M].张辉,译. 北京:清华大学出版社,2005.
  [2]  Richard Stevens W. UNIX网络编程[M]. 第2版. 第1卷·套接口API和X/Open传输接口API.北京:清华大学出版社,1998:121131.
  [3]  马忠梅,李善平,康慨,等. ARM&Linux嵌入式系统教程[M].北京:北京航空航天大学出版社,2005:255261.
  [4]  周立功.ARM嵌入式系统实验教程(2).广州:广州周立功单片机发展有限公司,2005:213219.
  [5]  邓滔,徐勇. GPS与嵌入式Linux平台串行通信研究[J]. 工业控制计算机,2005,18(1).

  编者注: 本文为期刊缩略版,全文见网站www.mesnet.com.cn
  作者: 中山大学 徐柳茂 蒋念东 黄永强 
  来源: 《单片机与嵌入式系统应用》

  (参考链接: http://www.c114.net/technic/ZZHtml_20072/T200722713344321407-1.shtml)

 
推荐文章
·航天GPS接收机的低噪声放大器设
·基于MAX2742型电路的GPS接收机设
 
 
共4页: 上一页 [1] [2] [3] 4 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·GPS接收机射频前端电路原
·基于MAX2742型电路的GPS接
·基于嵌入式Linux系统的车
·航天GPS接收机的低噪声放
·NXP的PMP参考设计采用了软
相关文章
·心中有数 简述GPS导航设备
·MSComm控件的GPS接收机数
·又一款巧克力?LG推出多功
·排疑解惑 解答 GPS十大常
·派盟导航仪: 派盟战罗盘Z1
·航天GPS接收机的低噪声放
·任我游GPS导航仪软硬件深
·ASUS 推出超薄金属机身 GP
更多...
 
 

Copyright(c) 2006-2007 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统