采用北斗BDM100模块的两种家庭监护终端设计

最新更新时间:2015-03-14来源: 互联网关键字:BDM100模块  家庭监护  终端设计 手机看文章 扫描二维码
随时随地手机看文章
  随着社会的发展,我国人口老龄化越来越严重,对于老人的监护成为了一个社会问题。本文根据老人监护的需求特点,利用我国自主研发的北斗卫星定位系统,结合北斗定位模块BDM100设计了两种针对不同需求的家庭监护终端方案,用于对老人进行实时定位,并将实时位置信息传输到监管人手中。第一种方案采用支持3G网络的EVDO模块MC8630,结合以ARM9为内核的AT91SAM9260芯片进行位置信息回传,该方案具有传输迅速,可扩展性强的特点,可以为以后传递身体信息,环境信息提供扩展空间。第二种方案采用支持2G网络的GSM模块GTM900,结合以Cortex-M3为内核的LPC1766芯片进行定位信息传送,该方案结合良好的软件设计,具有成本低,性能稳定的特性。经过实验检测,这两种方案都能很好的解决家庭监护中老人的实时定位问题。

  1 BDM100模块设计

  BDM100模块是一款双系统高性能的GNSS模块,能够同时支持BD2 B1,GPS L1两个频点,很好适应低成本,低功耗领域,可以进行大规模的北斗系统集成应用。模块的结构框图如下图所示:

  

 

  图1 BDM100模块结构框图

  从芯片结构框图中可以看到,BDM100支持UART,SPI,1PPS,I2C等多种接口。其可以通过相关器,FFT和匹配滤波器混合应用以及算法优化,在各种复杂环境下保持出色的捕捉跟踪能力和快速TTFF功能。采用多路径抑制技术和高质量的原始观测数据,可以保证很好的授时,导航精度。BDM100芯片可以采用多系统混合定位的方式,这样可以提高定位精准度,因为本文采用北斗定位系统,所以只选取其北斗定位功能。另外,BDM100芯片有3个串口,用户可以自行设置其波特率,默认波特率是9600,并且可以通过串口3进行固件升级。该模块的定位精度可达到3米,测速精度可以达到0.1米/秒。本系统采用的外围应用电路图如下:

  

 

  图2 BDM100模块外围电路图

  本系统的两个方案均使用串口1与MCU通讯,串口3预留出接口以便日后升级。特别注意:模块正常启动时,在复位信号有效期内,保持串口3输入引脚电平恒定为高,否则模块将进入升级固件模式,无法正常启动。模块复位信号低电平有效,且持续时间不得小于2毫秒;该模块配备的天线必须为+2.85V有源天线,天线连接至模块的GNSS_ANT引脚,有源天线内部集成LNA(低噪声放大器),可以直接连接到模块GNSS_ANT引脚,若采用非+2.85V的有源天线,则需要为天线供电。

  本文所使用的BDM100模块在其采用的软件接口协议中,主要通过消息的传递来完成信息的传送,其中“消息”是全ASCLL码组成的字符串。消息的基本格式为:

  表1 BDM100模块消息格式

  

 

  其中所有的消息都以$(0x24)开始,后面紧跟消息名,之后跟有不定数目的参数或数据。消息名与数据之间均以逗号(0x2C)进行分隔。表示输入的消息可以以‘ ’(0x0D)或‘ ’(0x0A)或两者的任意组合结束,而表示输出的消息则全部以‘ ’组合结束。消息名和参数中的字母均不区分大小写。

  BDM100模块在使用之前需要进行初始化,初始化过程就是模块和主控芯片之间进行消息交互的过程。BDM100模块具有授时和定位功能,本系统只用到其定位功能,所以对于授时功能的初始化不做描述。

  本系统需要用到的初始化指令如下表所示:

  表2 BDM100模块初始化指令

  

 

  其中在3G方案中由于采用USB接口通信,需要将波特率设置为115200(默认波特率9600),具体命令为:$CFGPRT,3,h0,115200,3,3。由于本系统用到的是北斗定位系统,而BDM100模块可以支持GPS和北斗混合定位,所以需要在初始化时将模块设置为北斗定位模式,可以采用两个命令实现-CFGSYS/CFGNAV,具体命令为:$CFGSYS,h10或者$CFGNAV,1000,1000,3,2。对于输出的消息有多种,具体的编码见下表:

  表3 BDM100模块消息类型列表

  

 

  本系统中用到的输出需要地理位置信息和对应的时间信息,由上面的消息类型可以看出采用GLL消息或者RMC消息皆可以满足要求,因为GLL消息比RMC消息短,信息效率比较高,所以系统在设计中采用GLL消息进行传送。因方案中连接的控制芯片处理能力限制,GLL消息需要设置其输出频率为1次/秒,而且其对应的类别和ID号分别为0和1,通过查找对应芯片软件手册得知GLL消息的最高输出频度为1Hz,所以利用CFGMSG设置其频率用的具体指令为:$CFGMSG,0,0,1。

  当把以上内容处理完成,需要将设置进行保存,用到的指令为:$CFGSAVE。

  初始化完成以后,BDM100芯片就会以1次/秒的速度通过接口向外输出数据,具体接收以及处理过程由与其相链接的主控芯片处理。

  2 3G方案设计与实现

  以3G方案设计的监护终端采用ARM926EJ-S为内核的AT91SAM9260芯片作为主控芯片,该芯片具有性能稳定,外围接口丰富,内嵌以太网,具备快速RAM和ROM,支持LINUX操作系统的特性。消息回传的3G芯片采用EVDO模块MC8630,3G服务要求网络具有较高的数据吞吐量,EVDO模块支持中国电信CDMA2000提供的所以数据分组业务,对于无线数据接入业务,EVDO的接入速度已经接近有限ADSL上网的水平,而且采用此种方式,数据传输稳定,为以后的性能扩展留下空间,满足方案设计要求。

  2.1硬件设计

  3G方案硬件连接框图如下:

  

 

  图3 3G方案框图

  其中BDM100模块和主控芯片AT91SAM9260通过UART接口连接,而3G芯片MC8630通过USB口与主控芯片连接,这样在保证接收与发送稳定性的同时,还可以为以后的性能扩展提供空间。对BDM100模块和主控芯片的连接具体电路见图2,而对3G模块和主控芯片的连接见下图:

  

 

  图4 3G模块和主控芯片连接图  2.2 软件设计

  在主控芯片AT91SAM9260上使用linux作为操作系统,该操作系统已经在众多嵌入式设备上面使用,其稳定性已经得到了验证。

  2.2.1 BDM100模块的连接

  BDM100模块采用UART串口和主控芯片通信,在linux中配置完内核之后,利用串口通信接口进行初始化和定位信息的传送。本方案中,具体的串口通信函数如下:

  在进行串口通信时,要先对串口进行初始化,对应执行Serial_init函数。

  具体格式:

  int serial_init(char *dev, int speed, int is_block)

  其中dev是设备文件地址,speed是串口波特率,is_block是设置在初始化不成功时,是否阻塞等待,直到初始化成功。

  初始化函数通过调用static int open_dev(char *dev, int is_block)函数来打开设备文件,其中dev和is_block参数和初始化函数中的意义一致。打开成功,返回设备文件描述符,否则返回-1.通过调用static void set_speed(int fd, int speed)来设置波特率,其中fd表示设备描述符,speed表示速率,在调用此函数时,要停止串口工作。

  初始化完成后,就可以进行数据的读写,读函数为:

  int serial_read_timeout(int fd,char *str, unsigned int len, unsigned int timeout/*ms*/)

  此读函数是带有超时机制的串口读,接收的数据放在str的字符串中,fd表示设备文件地址,len表示读取的长度,timeout 表示超时时间,ms级别,函数返回读取的长度。

  所谓的超时机制,是指程序利用此函数读取数据时,会启动一个线程,有数据时运行,无数据时阻塞,当线程有数据时,读完数据,程序再继续,如果超时还没有读完,则放弃读取,程序继续,一般在设置的时间内,程序都能读完数据,这样做是为了防止线程死锁,无法结束线程。

  串口发送函数具体格式为:

  int serial_send(int fd,char *str,unsigned int len)

  其中fd表示设备文件地址,发送数据放置在str中,长度为len.发送成功返回发送长度,否则返回小于0的值。

  通过这样的三个函数,就可以实现BDM100模块与主控芯片AT91SAM9260的通信,可以完成相关的模块初始化操作和信息的传输。

  2.2.2 MC8630模块的连接

  本方案所用到EVDO射频模块,起初是无法被识别的,因为Linux默认配置中并没有打开这个选项,属于自定义电路,故需要手动配置。根据MC8630模块的电路图可以看出,CPU与MC8630通过USB口通讯,因此需要将处理器的USB口配置为3G功能。Linux对3G模块的驱动支持主要是将USB转换为串口,应用程序就可以像操作串口一样操作USB。

  所以除了打开“USB driver for GSM and CDMA modems”内核选项之外,还需打开内核选项中USB功能和USB转串口转换支持,3G模块还会用到第三方的拨号软件,所以还需打开PPP拨号功能,配置完之后,编译内核。烧录系统后,重启进入/dev目录,若出现USBtty0~USBtty3这四个设备文件,表明3G模块的驱动已被正确加载。具体如下:

  

 

  图5 3G模块驱动加载

  在程序初始化时,利用编写好的拨号脚本绑定PPP0网卡,这样程序就可以像操作本地网卡一样操作3G模块,使用socket机制进行消息的传送。具体的拨号脚本如下:

  If ['ifconfig|grep ppp0|awk ‘(print($1))'']

  Then

  echo “the ppp0 has existed!”

  else

  pppd call evdo &

  until['ifconfig|grep ppp0|awk ’(print($1))‘']

  do

  sleep 1

  done

  route del default

  route add default dev ppp0

  fi

  在执行ifconfig命令后,系统会列出了所有的网卡,一般情况下只有eth0和lo两个网卡:eth0是常用的RJ45接口的网口,插上普通网线即可上网;lo是本地网卡;当使用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 北斗信息串口软件显示

  其中显示北纬32度02438675分,东经118度48951303分,后面的090528等表示UTC时间。为了统一格式,将MM度XX分格式转化为MM.NN分(1度等于60分),故118度48951303分相当于118.81585505度,32度02438675分相当于32.04064458度。而其中UTC时间相当于0时区的时间,对应北京时间为东八区的时间,所以要加上8小时才是标准的北京时间,查找BDM100软件接口协议可得GLL消息显示的UTC时间格式为XX时XX分XX秒,例如090528,对应的UTC时间为9时5分28秒,对应的北京时间为17时5分28秒。后台服务器程序显示消息:

  

 

  图8 北斗信息3G服务器端显示

  从图中可以看到与串口通信软件显示消息一致,验证了系统的可用性和稳定性。

  4.2 2G方案测试

  同样再次利用串口通讯软件获取GLL消息:

  

 

  图9北斗信息串口软件显示

  后台服务器程序显示消息:

  

 

  图10 北斗信息2G服务器端显示

  从图中可以看出与串口通信软件显示消息一致,验证了2G方案的可行性。

  为了验证定位的准确性,打开地球在线(http://www.earthol.com/),输入当前的经纬度信息,查看定位情况。

  

 

  图11 北斗信息定位测试

  如图所示,北斗定位的位置为A12号楼,而笔者所在的位置为图中蓝色标记所在的A10号楼,误差在30米左右,由于免费版本的goole地图其官方宣称误差在50米以内,所以本次试验的误差在合理范围内,表明基于北斗BDM100模块的定位终端运行成功。

  结 语

  北斗卫星定位系统作为我国自主研制的全球卫星定位系统在满足军事用途的同时,也在不断的加紧民用化进程,本文设计了两种方案解决家庭监护中位置定位的问题,其中3G方案不仅可以传输位置信息,也为以后传输各种身体信息,环境信息提供了接口和可扩展的空间。2G方案的优点在于其性能稳定,成本较低,对应具有单一需求的用户会是一个很好的选择。这两种方案设计合理,性能稳定,对其它工程设计具有一定参考价值。

关键字:BDM100模块  家庭监护  终端设计 编辑:探路者 引用地址:采用北斗BDM100模块的两种家庭监护终端设计

上一篇:一种应用于WLAN/WiMAX的 三频双环印刷单极子天线
下一篇:用槽和同轴线馈电完美打造三极化共行天线

推荐阅读最新更新时间:2023-10-12 22:53

基于LPC2214的家庭智能终端设计与实现
  智能家居是指利用先进的计算机技术、网络通信技术、综合布线技术,将与家居生活有关的名种子系统有机地结合,通过统筹管理,使家居生活更加舒适、安全、有效。作为小区智能化的重要组成部分,智能家居平台是通过其核心——家庭智能终端实现家居智能化。智能家居终端可实现系统信息的采集、信息输入、逻辑处理、信息输出、联动控制等功能。早期的家庭智能终端网络是基于电话网实现远程监控和远程控制。由于电话网络的带宽限制以及较高的使用成本,使得家庭智能终端无法推广。随着计算机技术和通信技术的发展,基于IP技术的远程通信已经成为家庭智能终端开发的重点。目前,基于8位单片机和TCP/IP协议的远程通信设备已大量出现。但是由于8位单片机工作频率和存储量的限制,使得
[单片机]
基于LPC2214的<font color='red'>家庭</font>智能<font color='red'>终端</font>的<font color='red'>设计</font>与实现
终端需求放缓 对IC设计厂来说未必是坏事?
据业内消息人士透露,尽管最近终端市场对消费电子设备的需求有所放缓,但IC设计公司仍打算继续增加特定芯片的库存水平。而对于二线设计厂来说,终端需求放缓或将有助于其产品组合向新产品倾斜。 《电子时报》援引该人士消息称,网络芯片、功率IC以及其他一些特定应用的芯片库存水平仍然较低,由于客户的出货势头强劲,且目前还看不到供需平衡点,促使设计厂增加这些芯片的库存,以满足下游需求。 台积电证实,其大多数IC设计客户倾向于维持当前芯片的库存水平,以满足终端应用的强劲需求,尽管终端市场需求可能逆转,但在晶圆厂产能持续紧张的情况下,设计厂仍在继续寻求尽可能多的代工产能支持。 此外,即使最终用户需求放缓,对IC设计厂来说也并非完全是坏事,该消息人士认
[手机便携]
基于ARM与GPRS技术的家庭智能控制终端设计与实现
家庭智能控制系统通过家庭总线技术,把家庭中各种家用电器、家庭保安装置和各种计量设备连接到一起组成一个家庭内部网络,由家庭智能控制器进行统一管理。远程控制就是通过某种通讯方式将智能家庭控制器与外界相连,使人们能够在本地或异地对家庭系统进行集中的监视、控制。 本文中介绍的方案,结合了GPRS(General Packet Radio Service)技术永远在线,速度快,接入范围广,体积小,功耗低等优点,采用RS485工业总线,设计实现了一种基于嵌入式系统的家庭智能控制器。用户可以通过短信及互联网等方式现远程无线监控,在手机和互联网相当普及的今天,为用户提供了更简单、方便的选择。同时由于该控制器RS485接口的特殊设计,外挂节点可以
[单片机]
基于ARM与GPRS技术的<font color='red'>家庭</font>智能控制<font color='red'>终端</font><font color='red'>设计</font>与实现
嵌入式供水终端漏水监测节点及网络设计
0 引言 近年来,国内外出现了一些漏水检测设备,对于供水主管道的漏水检测起到了重要作用,如:美国Kay公司生产的漏水检测系统,功能强大,但价格较高,在单位和家庭大面积的推广应用受到很大限制。我国的某公司生产的F系列漏水、漏液检测器设备,由于没有组网,设备未设置电话拨号、短信发送、邮件发送等多种报警功能,在很大程度上制约了设备的推广应用范围。因此需要研究一种功耗小,价格低,能被大部分单位和个人能接受的,特别适合于供水终端附近漏水检测的设备和系统,以便减少因供水终端的意外损坏而不能得到及时维修所造成的水资源大量浪费现象的发生。 1 系统组网与总体设计 系统组网主要由一个主监控系统模块和多个现场监控节点模块组成漏水监测网络。主监
[单片机]
嵌入式供水<font color='red'>终端</font>漏水监测节点及网络<font color='red'>设计</font>
超过115款终端采用高通骁龙820设计
     高通虽然并未在 Computex 2016 期间发表手机处理器,但趁着此次展览特别向台湾媒体更新说明 Qualcomm Snapdragon 处理器的进展与 Snapdragon 820 主要特色。高通技术公司技术行销经理 Jerry Chang 表示,高通最强的技术在于无线通讯,尤其 4G+ 方面,Qualcomm Snapdragon 820 支援 3 x 20MHz 的载波聚合,可以提供 Cat.12 下行与 Cat.13 上行的速度。 Jerry Chang 同时指出,截至目前为止,Qualcomm Snapdragon 820 已有超过 115 款产品在设计中或是已经推向市场。华硕此次在 Com
[手机便携]
基于CDMA的无线图像监控终端设计
目前,数字类消费电子产品的需求增长惊人。在这些产品中,成像和视频类产品比重很大。并且技术积累日益成熟,单说算法有静态图像的JPEG标准、动态视频的MPEG1、MPEG2、MPEG3和H.263、H.264,并有向H.264过渡的趋势。将相关的图像技术应用于生产中将是我们考虑的一个重要方向。在银行、变电站、车站等场所,需要重点考虑单张图片的提取分析要求,以及控制应用成本,所以用M-JPEG算法比较合适。 本监控系统基于TMS320DSC21嵌入式处理器平台和嵌入式Linux系统,分为远程现场采集端和本地监控终端,通过CDMA无线网络进行传输,如图1所示。现场采集端采集监控现场单帧图像和视频连续帧并编码压缩成M-JPEG并保存成文件
[网络通信]
基于TMS320F2812和μC/OS_II的飞机电气测控终端设计
  引言   作为飞机电气系统的重要组成部分,飞机配电系统主要用于实现电功功率的合理分配和控制。目前,我国大多数飞机采用的都是常规配电系统,但由于这种配电系统具有电网重量大、空勤人员负担重、自动化程度低等缺点,在一定程度上已经对飞机的研制进程产生了许多不利的影响,因此开发更为先进的飞机配电系统成为当务之急。随着电子及 计算机 技术的发展,借鉴国外的研究现状,采用分布式配电和负载自动管理技术的先进飞机配电系统是目前发展的总趋势。本实验室对先进飞机配电系统进行了多年研究,设计了包括电源系统处理机、负载管理中心、汇流条控制器及负载 仿真 器四部分的飞机配电地面实验系统。本文所要介绍的飞机 测控终端 是适用于汇流条控制器和负载
[单片机]
基于MSP430的新型自报式水文遥测终端设计
水文遥测系统通常由终端机、中继站和中心站三部分组成。由于终端机是用来直接测量雨量、水位等水文数据,是整个遥测系统信息的来源,故其设计成为整个遥测系统的关键。遥测终端机一般处于河流上游或者湖泊边缘,分布分散,维护起来很不方便,需要长期工作在无人值守的环境中,并且往往无交流电源提供,需要靠太阳能浮充和免维护蓄电池供电,因此在终端机的设计过程中低功耗和高可靠性尤为重要。 现有的遥测终端机通常采用MCS51微控制器作为控制芯片并配以较多的模拟电路和逻辑门电路,其设计复杂,功耗和可靠性难以得到保证,所以很有必要利用新型的性能更高的器件来对终端机重新设计。TI公司的MSP430系列集成了大量的外围部件,是低工作电压、超低功耗、高性能的微控
[应用]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved