EDN China > 技术文章 > 工业电子 > 安防监控 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于GPS和GPRS的小型追踪器设计方案

EEFOCUS?? 2008年06月25日 ?? 收藏0

?   PPP(Point-to-Point Protocol)是为在同等单元之间传输数据包这样的简单链路而设计的,这种链路提供全双工操作,并按照顺序传送数据包,为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。

  PPP数据帧格式如下:
PPP数据帧格式

  标志Flag:表示一个帧的开始和结束;

  地址Address:标准的广播地址;

  控制Control:用户数据采用无序帧方式传输;

  协议Protocol:标志封装在帧的数据域中的协议类型,通过确定帧序列的结尾,为FCS域留出两个字节,便可确定数据域的结尾:0xC023为网络认证数据报;0xC021为链路控制数据;0x8021为网络控制数据;

  帧检测序列FCS:差错控制。

  4.2.1 uIP的体系结构

  瑞典计算机科学研究所Adam Dunkels开发的uIP0.9是一种TCP/IP协议栈,资源占用少是他的设计特点,尤其适用于8/16位单片机。他去掉了许多全功能协议栈中不常用的功能,而保留通讯所必须的协议机制,其设计重点放在IP,ICMP和TCP协议的实现上,将这3个模块合为一个整体,而将UDP和ARP协议实现作为可选模块。uIP的体系结构如图3所示。

uIP的体系结构

  uIP处于网络通讯的中间层,上层协议在这里被称为应用程序,而下层硬件或固件被称为网络设备驱动。显然,uIP并不仅仅是针对以太网设计的,他具有媒体无关性。

  4.2.2 uIP的设备驱动程序接口

  uIP内部有两个函数直接需要底层设备驱动程序的支持:

  一个是uip_input()。当设备驱动程序从网络层收到一个数据包时,要调用这个函数,设备驱动程序必须事先将数据包存放到uip_buf[],包长放到uip_len,然后交由uip_input()处理。当函数返回时,如果uip_len不为0,则表示有带外数据(如SYN,ACK等)要发送。当需要ARP支持时,还需要考虑更新ARP表或发出ARP请求和回应。

  另一个需要驱动程序支持的函数是uip_periodic(conn)。这个函数用于uIP内核对各连接的定时轮循,因此需要一个硬件支持的定时程序周期性地用他轮循各连接,一般用于检查主机是否有数据要发送,如有,则构造IP包。

  4.2.3 uIP的应用程序接口

  为了将用户的应用程序挂接到uIP中,必须将宏UIP APPCALL()定义成实际的应用程序函数名,这样每当某个uIP事件发生时,内核就会调用该应用程序进行处理。如果要加入应用程序状态的话,必须将宏UIP_APPSTATE_SIZE定义成应用程序状态结构体的长度。在应用程序函数中,依靠uIP事件检测函数来决定处理的方法,另外可以通过判断当前连接的端口号来区分处理不同的连接。

  5 结语

  整个模块拨号上网只需3~5 s,平均上网速度已经达到33~36 kb/s。数据上传速度可以达到每秒2~2.5 kB,最高峰值可以达到8 kB,完全可靠地实现了短消息服务和一些文本信息传递。移动目标GPS数据、指令及相关应用情况下的报警数据均可通过GPRS网络传送到监控中心。该系统的便携性和方便使用的优点,也可应用到需要对移动物体进行远程监控和调度的领域中。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

GPS? GPRS? 追踪器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈