采用北斗BDM100模块的两种家庭监护终端设计
当使用pppd拨号成功之后就会出现ppp0无线网卡,此时3G模块已经连接上互联网。然而在操作系统启动的时候,一般默认网卡为 eth0,故在拨号成功之后,必须修改默认的路由路径,这样如果在应用程序使用socket编程之时没有绑定指定网卡,所有网络数据都会从ppp0网卡传 输。 绑定完ppp0网卡就可以使用linux socket机制进行与后台服务器的通信,本方案中采用的UDP方式和后台服务器进行通信,UDP协议的通信不需要像TCP一样事先建立链接,只需要绑定 ip地址和端口号即可,但是本方案中为了以后的可扩展性,设计了socket_connect和socket_send函数,不论是TCP还是UDP,只 要调用这两个函数即可,采用同样的接口,这样便于使用和扩展功能。具体如下:
int socket_connect(const int sock_fd, const char *ip_str, const unsigned int port_ui)
其中sock_fd是套接字,它是通过函数int socket_create(const int af, const int type, const int protocol, const int stime, const int rtime, const char *ifname)创建得到。ip_str是ip地址,port_ui是端口号。
int socket_send(const int sock_fd, const char * data, const int len, const int flags)
其中data是要发送的数据,len表示长度,flags一般取0即可。
接收函数:
int socket_recv_timeout(int sock_fd, char *buff, unsigned int len, unsigned int timeout/*ms*/)
具体功能用来接收网络数据,直到长度等于len,或者超时(timeout)后返回。
2.2.3服务器与3G模块通信协议
主 控芯片AT91SAM9260收到BDM100模块发来的消息后,会将消息进行重组,通过3G模块传送到后台进行解析。因为系统的定位终端具有实时性,对 于年月日信息的需求不是很强调,所以在初始化北斗时接收了GLL信息,它只含有时分秒的信息,本方案中采用的消息通信协议规定如下:
表4 自定义通信协议
其中起始位和校验位均用unsigned short表示,校验采用每两个字节异或操作,编译时,强迫两个字节对齐编译。
3G模块采用这种格式将消息传输到后台服务器进行处理,这样有利于保持信息的稳定和简洁性。
3 2G方案设计与实现
2G方案设计的监护终端采用基于cortex-M3为内核的LPC1766作为主控芯片,2G模块采用支持GSM网络的GTM900芯片[4]。该方案采用的2G网络技术成熟稳定,速度也能满足信息传输要求,配合健壮的软件设计,使得其在具体的应用中取得良好的效果。
3.1 硬件设计
该方案具体的硬件连接如下:
图6 2G方案框图
从 图中可以看出BDM100芯片和GTM900芯片分别通过串口1和串口0与主控芯片LPC1766进行连接,其中GTM900与LPC1766的连接只需 要将TXD引脚连接到RXD0,RXD连接到TXD0,然后将两个芯片的GND各自接地即可。而对应BDM100和LPC1766的连接则直接根据图2所 示即可。
3.2 软件设计
在2G方案的软件设计中,由于不采用操作系统,直接根据LPC1766和其他两个芯 片的说明手册进行裸版程序的设计。首先是要对BDM100芯片和GTM900芯片进行初始化操作,此处GTM900芯片的初始化操作要在BDM100芯片 之前,因为BDM100初始化之后就直接输出位置信息GLL,而在本方案的程序设计中,只设置了一个接收串口数据的全局数组变量 RecUartBuf[100],如果先初始化BDM100芯片,则GLL信息会和GTM900初始化信息冲突。另外,在UART接收程序中,因为每次接 收的数据长度不固定,所以不能设置为多字节中断,在本方案中将程序设置为一字节中断,并设置定时器中断,用来判定数据是否传送完毕,在之前的BDM100 芯片介绍中,将位置信息GLL的频率设置为1次/秒,则在本方案中将定时器中断设置为0.5s,这样就可以有足够的时间接收并传递信息,在定时器中断函数 中将信息标志变量RecUartFlag设置为1,表示有数据进入,此时利用Uart0Sent函数将传递过来的GLL信息通过2G模块发送到后台服务 器。
在本方案中,因为保证程序健壮性的需要,GLL位置定位消息传送到后台服务器的格式是不经过重组的原始信息,对于信息的重组和解析任务则交予后台服务器程序处理。
4 系统测试
监护终端的数据通过3G或者2G网络传送到服务器之后,服务器根据通讯协议对其解析。得到数据后,服务器进行如下操作:
1) 校验数据是否有错,有错则丢弃,并要求终端重新获取一次信息并立即传输。
2) 根据数据中的值重组还原,得到经纬度及当前的时间(格式为: XX时XX分XX秒)。
3) 根据经纬度信息,调用地图服务,获取具体位置。
4.1 3G方案测试
通过串口软件获得的北斗定位信息如下:
图7 北斗信息串口软件显示
北斗定位 BDM100 家庭监护终端 串口通信 3G 相关文章:
- 一种基于双天线的北斗定位系统设计与实现(09-17)
- 什么是3G?3G的标准(01-08)
- WiMAX与3G的发展关系(08-07)
- WiMAX之3G(08-07)
- TD-SCDMA与其他3G技术介绍(02-02)
- 第三代移动通信基础知识(07-17)