国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

采用北斗BDM100模塊的兩種家庭監護終端設計

發布時間:2014-12-26 14:44    發布者:designapp

        隨著社會的發展,我國人口老齡化越來越嚴重,對于老人的監護成為了一個社會問題。本文根據老人監護的需求特點,利用我國自主研發的北斗衛星定位系統,結合北斗定位模塊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)進行分隔。表示輸入的消息可以以‘\r’(0x0D)或‘\n’(0x0A)或兩者的任意組合結束,而表示輸出的消息則全部以‘\r\n’組合結束。消息名和參數中的字母均不區分大小寫。
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方案的優點在于其性能穩定,成本較低,對應具有單一需求的用戶會是一個很好的選擇。這兩種方案設計合理,性能穩定,對其它工程設計具有一定參考價值。


本文地址:http://www.qingdxww.cn/thread-142172-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • FPGA設計流程培訓教程
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗證IC
  • Chiptorials ——使用ATECC608 TrustFLEX實現基本非對稱身份驗證
  • 無線充電基礎知識及應用培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 9966国产精品视频 | 国产精品成人一区二区1 | 日语高清视频在线观看 | 99久久精品免费看国产麻豆 | 麻豆精品免费视频入口 | 日本韩国一级片 | 免费观看欧美一区二区三区 | 那个在线播放观看 | 一区二区三区四区在线免费观看 | 国产xxxxx免费视频 | 中文字幕在线观看91 | 欧美精品片在线观看网站 | 亚洲一区二区黄色 | 日本色图在线 | 九九精品视频一区二区三区 | 一二三四免费视频社区 | 精品一区二区免费视频 | 欧美最爽乱淫视频播放黑人 | 成人午夜动漫在线观看 | 日本天堂影院在线播放 | 在线免费日韩 | 成人国产精品一区二区网站 | 亚洲区一区 | 亚洲欧洲自拍偷拍 | 国产精品香蕉在线观看 | 91欧美亚洲 | 亚洲国产精品日韩高清秒播 | 一本毛片| 欧美99 | 五月六月伊人狠狠丁香网 | 欧美激情一区二区三区不卡 | 99久久精品免费看国产 | 午夜 dy888理论久久 | 1024国产欧美日韩精品 | 免费看黄色网页 | 国产自产拍精品视频免费看 | 四虎永久在线精品免费观看地址 | 欧美午夜大片 | 韩国特黄毛片一级毛片免费 | 污网站免费观看在线高清 | 韩国高清不卡一区二区 |