国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于BBB平臺(tái)的車載定位監(jiān)控系統(tǒng)設(shè)計(jì)

2015-07-03 07:41:36劉博楊斌
關(guān)鍵詞:開(kāi)發(fā)板字段線程

劉博,楊斌

(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都610031)

引 言

隨著人們生活水平不斷提高,私家車越來(lái)越多地走進(jìn)了平常百姓家。這樣就引發(fā)了一個(gè)嚴(yán)重的社會(huì)問(wèn)題,車輛被盜的情況越來(lái)越多,在這個(gè)趨勢(shì)下車載定位監(jiān)控系統(tǒng)越來(lái)越得到廣大車主關(guān)注。車載定位監(jiān)控系統(tǒng)可以時(shí)時(shí)刻刻保護(hù)車輛的財(cái)產(chǎn)安全。這種車輛安防系統(tǒng)將會(huì)是汽車租賃公司、汽車廠商保護(hù)車輛安全的合理解決方案。

1 硬件平臺(tái)

1.1 BeagleBone Black開(kāi)發(fā)板

中國(guó)版BeagleBone Black(BBB)是英蓓特科技有限公司推出的一款基于AM3359處理器的開(kāi)源開(kāi)發(fā)套件。處理器集成了4 GHz的ARM Cortex-A8內(nèi)核,并提供了豐富的外設(shè)接口。中國(guó)版BBB的擴(kuò)展接口包括網(wǎng)口、USB Host、USB OTG、TF卡接口、串口、JTAG 接口(默認(rèn)不焊)、HDMI D Type接口、e MMC、ADC、I2C、SPI、PWM 和LCD屏接口。通用接口包括4組通用輸入輸出接口(GPIO),每一組GPIO模組提供32個(gè)專用的通用接口輸入輸出引腳,因此通用的GPIO有128個(gè)引腳??删幊虒?shí)時(shí)單元和工業(yè)通信子系統(tǒng)(PRU-ICSS)包含了兩個(gè)32位RISC內(nèi)核(可編程實(shí)時(shí)單元,即PRUs)、存儲(chǔ)器、終端控制器,以及能夠支持更多周邊接口和協(xié)議的內(nèi)部外設(shè)。圖1為BeagleBone Black開(kāi)發(fā)板。

1.2 SIM908開(kāi)發(fā)板

圖1 BeagleBone Black開(kāi)發(fā)板

圖2為SIM908開(kāi)發(fā)板。SIM908是一款集成GPS導(dǎo)航技術(shù)的四頻GSM/GPRS 模 塊。模塊結(jié)構(gòu)緊湊,將GPRS和GPS整合在SMT封裝里。開(kāi)發(fā)板擁有一個(gè)GSM控制串口和GPS控制串口。GSM控制串口可以控制開(kāi)發(fā)板工作狀態(tài),開(kāi)啟相應(yīng)的功能,GPS控制串口功能為讀取GPS數(shù)據(jù)。SIM908開(kāi)發(fā)板可以實(shí)現(xiàn)GPS定位和GPRS數(shù)據(jù)的傳輸。

1.3 系統(tǒng)硬件架構(gòu)

整個(gè)系統(tǒng)共分為3個(gè)部分,如圖3所示。第一部分為車載監(jiān)控終端,由SIM908和BBB開(kāi)發(fā)板構(gòu)成,SIM908負(fù)責(zé)GPS數(shù)據(jù)的采集,并通過(guò)GPRS數(shù)據(jù)傳輸功能發(fā)送GPS數(shù)據(jù),BBB開(kāi)發(fā)板負(fù)責(zé)GPS數(shù)據(jù)處理和SIM908工作狀態(tài)的控制。第二部分為移動(dòng)基站,負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)交互。第三部分為系統(tǒng)的PC操作上位機(jī),顯示車輛位置信息。

圖3 系統(tǒng)硬件架構(gòu)圖

2 軟件設(shè)計(jì)

2.1 系統(tǒng)軟件構(gòu)建

系統(tǒng)軟件構(gòu)建如圖4所示。

圖4 系統(tǒng)軟件構(gòu)建圖

2.2 PC上位機(jī)軟件實(shí)現(xiàn)

2.2.1 基于QT實(shí)現(xiàn)上位機(jī)

在PC操作上位機(jī),有兩個(gè)Qt Web Kit控件分別用來(lái)顯示Google地圖和Baidu地圖、一個(gè)IP地址輸入對(duì)話框、當(dāng)前GPS信息顯示欄等。窗口界面的設(shè)計(jì)比較簡(jiǎn)單,在這里主要介紹數(shù)據(jù)的處理和內(nèi)部的信號(hào)機(jī)制。在QT編程中應(yīng)用最廣泛的應(yīng)該是信號(hào)、槽。信號(hào)顧名思義,就是一種聲明消息,當(dāng)按鈕等觸發(fā)事件發(fā)生的時(shí)候,監(jiān)聽(tīng)的特定槽函數(shù)就可以運(yùn)行,對(duì)指定的數(shù)據(jù)操作進(jìn)行處理。

在本系統(tǒng)中SIGNAL readyRead()是TCP通信中特定的信號(hào),它的意義就是當(dāng)前的數(shù)據(jù)已經(jīng)準(zhǔn)備妥當(dāng),可以進(jìn)行讀取,這個(gè)時(shí)候就可以觸發(fā)槽函數(shù)void readdata()對(duì)網(wǎng)絡(luò)傳輸來(lái)的數(shù)據(jù)進(jìn)行讀取。同樣,系統(tǒng)中聲明了很多槽函數(shù)和信號(hào)觸發(fā),SIGNAL connected()是指當(dāng)TCP通信建立成功后觸發(fā)connectfinished()函數(shù),告訴用戶連接成功。當(dāng)連接成功后就開(kāi)始對(duì)獲取的GPS進(jìn)行解析,然后通過(guò)QT的QtWeb Kit與JavaScript的交互分別在Google和Baidu地圖上描點(diǎn)顯示,并在旁邊的GPS數(shù)據(jù)欄中顯示當(dāng)前GPS數(shù)據(jù)信息。

2.2.2 GPS數(shù)據(jù)解析原理

GPS數(shù)據(jù)格式如下:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F

字段0:$GPGGA,語(yǔ)句ID,表明該語(yǔ)句為Global Positioning System Fix Data(GGA)GPS定位信息。

字段1:UTC時(shí)間,hhmmss.sss,時(shí)分秒格式。

字段2:緯度ddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)。

字段3:緯度N(北緯)或S(南緯)。

字段4:經(jīng)度dddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)。

字段5:經(jīng)度E(東經(jīng))或 W(西經(jīng))。

字段6:GPS狀態(tài),0=未定位,1=非差分定位,2=差分定位,3=無(wú)效PPS,6=正在估算。

字段7:正在使用的衛(wèi)星數(shù)量(00~12)(前導(dǎo)位數(shù)不足則補(bǔ)0)。

字段8:HDOP水平精度因子(0.5~99.9)。

字段9:海拔高度(-9999.9~99999.9)。

字段10:地球橢球面相對(duì)大地水準(zhǔn)面的高度。

字段11:差分時(shí)間(從最近一次接收到差分信號(hào)開(kāi)始的秒數(shù),如果不是差分定位將為空)。

字段12:差分站ID號(hào)0000~1023(前導(dǎo)位數(shù)不足則補(bǔ)0,如果不是差分定位將為空)。

字段13:校驗(yàn)值。

程序設(shè)計(jì)中,首先應(yīng)用字符串查找函數(shù)對(duì)GPGGA字段進(jìn)行查找,然后分別對(duì)其進(jìn)行相應(yīng)處理,處理過(guò)程中會(huì)運(yùn)用數(shù)據(jù)的相互轉(zhuǎn)換。比如string和double,應(yīng)用string庫(kù)函數(shù)atof進(jìn)行相應(yīng)的轉(zhuǎn)換。當(dāng)數(shù)據(jù)處理結(jié)束之后,就可以應(yīng)用GPS數(shù)據(jù)進(jìn)行地圖定位。

2.2.3 在線地圖加載

QWeb View類提供了一個(gè)可以展現(xiàn)和編輯網(wǎng)頁(yè)文檔的widget。QWeb View是Qt Web Kit網(wǎng)頁(yè)瀏覽模塊的一個(gè)主要widget組件,可以用它來(lái)展現(xiàn)互聯(lián)網(wǎng)網(wǎng)頁(yè)。Qt Designer中創(chuàng)建的一個(gè)QWeb View,可以使用QWeb View的load()方法來(lái)加載一個(gè)網(wǎng)站,如load(QUrl("googlemap.html"))同其他所有QT的widget一樣,需要調(diào)用show()方法才會(huì)顯示出QWeb View。QWeb View除了用load方法設(shè)定網(wǎng)頁(yè)路徑外,也可以使用set Html方法加載html格式的網(wǎng)頁(yè),如set Url(QUrl("baidumap.html"))。網(wǎng)頁(yè)文件加載之后,開(kāi)啟QWeb View的JS功能,這樣就可以實(shí)現(xiàn)與網(wǎng)頁(yè)文件進(jìn)行JS交互應(yīng)用了。

2.2.4 QtWebKit與JavaScript交互實(shí)現(xiàn)地圖定位

QT與JavaScript互調(diào)是通過(guò)QWebFrame的兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)的:add ToJavaScript Window Object()將 QObject對(duì)象傳給JS,這樣JS就能調(diào)用QObject的public slots函數(shù)。QT通過(guò)evaluateJavaScript()直接調(diào)用JS中的函數(shù),QWeb Kit與JavaScript交互原理圖如圖5所示。當(dāng)GPS數(shù)據(jù)被解析之后通過(guò)如下的函數(shù)進(jìn)行交互:

其中BaiDu_M(jìn)ark()為網(wǎng)頁(yè)中的JavaScript功能函數(shù),如下所示:

圖5 QtWeb Kit與JavaScript交互原理圖

2.3 車載終端實(shí)現(xiàn)

2.3.1 BBB串口驅(qū)動(dòng)和設(shè)備樹的實(shí)現(xiàn)

Device Tree是一種描述硬件的數(shù)據(jù)結(jié)構(gòu),起源于OpenFirmware(OF)。在Linux 2.6中,ARM架構(gòu)的硬件細(xì)節(jié)過(guò)多地被硬編碼在arch/arm/plat-xxx和arch/arm/mach-xxx中,采用Device Tree后,許多硬件的細(xì)節(jié)可以直接通過(guò)它傳遞給Linux,而不需要在kernel中進(jìn)行大量的冗余編碼。device tree有3種格式:一個(gè)是方便閱讀的源文件*.dts(device tree source),另兩個(gè)是經(jīng)過(guò)編譯送給系統(tǒng)使用的文件*.dtb(device tree blob)和*.dtbo(device tree blob overlay)。BBB上有UART1~UART5共5個(gè)可用的UART串口,配置*.dts源文件。在/lib/firmware目 錄 中 創(chuàng) 建 設(shè) 備 樹 源 文 件/lib/firmware/BBUART1-00A0.dts。以UART1為例:

P9.24和P9.26分別用作txd和rxd引腳。編譯*.dts文件:dtc-I dts-O dtb-@ BB-UART1-00A0.dts> BBUART1-00A0.dtbo

加載dtbo文件BeagleBone Black中用cape manager軟 件 管 理 所 有 的 cape,目 錄 是/sys/devices/bone_capemgr.8/。這個(gè)目錄內(nèi)有一個(gè)叫做slots的文件,是capemgr軟件的對(duì)外接口。加載cape:

echo BB-UART1>/sys/devices/bone_capemgr.8/slots

slot是“插槽”的意思,要插上一個(gè)cape,就要向這個(gè)“插槽”里“插入”(echo)相應(yīng)的設(shè)備,echo的含義是“向標(biāo)準(zhǔn)設(shè)備輸出”。同樣也可以在程序中調(diào)用system終端命令掛載device tree來(lái)啟動(dòng)UART1:system("echo BB-UART1>$SLOTS")

通過(guò)以上的配置我們就可以方便地使用串口了。

2.3.2 GPS數(shù)據(jù)采集線程

GPS數(shù)據(jù)采集線程就是所謂的生產(chǎn)者,它主要的工作是不間斷地對(duì)GPS數(shù)據(jù)進(jìn)行采集,然后通知數(shù)據(jù)發(fā)送線程將打包好的數(shù)據(jù)發(fā)送。

在GPS采集線程中應(yīng)用了Linux的特色功能異步I/O,Linux異步I/O是Linux2.6版本內(nèi)核的一個(gè)標(biāo)準(zhǔn)特性,異步I/O背后的基本思想是允許進(jìn)程發(fā)起很多I/O操作,而不用阻塞或等待任何操作完成。稍后在接收到I/O操作完成的通知時(shí),進(jìn)程就可以檢索I/O操作的結(jié)果。在一個(gè)CPU密集型的應(yīng)用中,需要預(yù)先知道這些數(shù)據(jù)的位置,所以預(yù)先發(fā)起異步I/O讀請(qǐng)求。等到真正需要用到這些數(shù)據(jù)的時(shí)候,再等待異步I/O完成。使用了異步I/O,在發(fā)起I/O請(qǐng)求到實(shí)際使用數(shù)據(jù)這段時(shí)間內(nèi),CPU還可以繼續(xù)做其他事情。這樣就可以很好地應(yīng)用CPU的資源,讓應(yīng)用程序更加合理有效地運(yùn)行。串口數(shù)據(jù)準(zhǔn)備好后,GPS數(shù)據(jù)采集線程就可以將準(zhǔn)備好的GPS數(shù)據(jù)放入事先申請(qǐng)的隊(duì)列中,并發(fā)送信號(hào)給發(fā)送線程,告知采集成功。

2.3.3 GPS數(shù)據(jù)發(fā)送線程

SIM908模塊的GPRS發(fā)送模式一共有兩個(gè),分別是非透?jìng)髂J胶屯競(jìng)髂J?,其中非透?jìng)髂J骄哂兄С侄噙B接的功能。但是在編程處理時(shí)選擇了透?jìng)髂J?,透?jìng)髂J较略谠O(shè)置生效、連接好網(wǎng)絡(luò)端之后,就可以直接傳輸數(shù)據(jù)了。如“AT+CIPMODE=1”設(shè)置透?jìng)髂J?,“AT+CIPSTART="TCP","119.129.252.148",8080”建 立 TCP/IP連接或UDP,透?jìng)髂J较陆⒑眠B接后就可以直接發(fā)送數(shù)據(jù),無(wú)需發(fā)送指令即可相互發(fā)送數(shù)據(jù)。

GPS數(shù)據(jù)發(fā)送線程就是所謂的消費(fèi)者,它主要負(fù)責(zé)將準(zhǔn)備好的GPS數(shù)據(jù)發(fā)送到監(jiān)控系統(tǒng)的終端,當(dāng)GPS數(shù)據(jù)發(fā)送線程接到GPS數(shù)據(jù)采集線程的信號(hào)后,就會(huì)訪問(wèn)內(nèi)存,將內(nèi)存隊(duì)列中的數(shù)據(jù)通過(guò)Socket套接字發(fā)送到客戶端,然后發(fā)送一個(gè)信號(hào)給GPS數(shù)據(jù)采集線程,告之已經(jīng)成功發(fā)送,可以再次采集數(shù)據(jù)。

3 測(cè) 試

當(dāng)遠(yuǎn)程監(jiān)控終端程序開(kāi)啟的時(shí)候,首先將GPS數(shù)據(jù)進(jìn)行解析,然后在地圖上描點(diǎn)。監(jiān)控端地圖定位如圖6所示,圖中的左半部分為百度地圖的定位顯示,右半部分為谷歌地圖的定位顯示,用兩個(gè)地圖進(jìn)行對(duì)比,從而獲得更加合理的定位顯示。監(jiān)控端衛(wèi)星定位圖示如圖7所示,地圖中標(biāo)定的位置為西南交通大學(xué)0號(hào)實(shí)驗(yàn)樓。

結(jié) 語(yǔ)

本系統(tǒng)使用GPRS作為GPS車輛綜合監(jiān)控調(diào)度管理系統(tǒng)的無(wú)線傳輸手段,具有費(fèi)用低、無(wú)需線纜施工及安全可靠、維護(hù)方便的特點(diǎn),是一種經(jīng)濟(jì)可行、技術(shù)成熟的系統(tǒng)構(gòu)建方案。通過(guò)實(shí)際檢驗(yàn),系統(tǒng)工作穩(wěn)定,能夠較精確地完成車輛監(jiān)控,操作簡(jiǎn)單方便。

圖7 監(jiān)控端衛(wèi)星定位圖示

[1]李延興.GPS技術(shù)研究新進(jìn)展[M].天津:天津科學(xué)技術(shù)出版社,2009.

[2]鄧中衛(wèi).GPS技術(shù)、應(yīng)用與市場(chǎng)[M].北京:航空工業(yè)出版社,2012.

[3]錢天爵.GPS接收機(jī)使用與維修[M].北京:北京海潮出版社,2013.

[4]王廣運(yùn).GPS精密測(cè)地系統(tǒng)原理[M].北京:測(cè)繪出版社,2007.

[5]王解先.GPS精密定軌定位[M].上海:同濟(jì)大學(xué)出版社,2007.

[6]錢天爵,瞿學(xué)林.GPS全球定位系統(tǒng)及其應(yīng)用[M].北京:北京海潮出版社,2007.

[7]洪大永.GPS全球定位系統(tǒng)技術(shù)及其應(yīng)用[M].廈門:廈門大學(xué)出版社,2008.

[8]日本測(cè)地學(xué)會(huì).GPS人造衛(wèi)星精密定位系統(tǒng)[M].北京:地震出版社,2010.

[9]魏子卿.GPS衛(wèi)星測(cè)軌網(wǎng)研究[M].北京:北京星球地圖出版社,2012.

猜你喜歡
開(kāi)發(fā)板字段線程
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
Microchip最新推出兩款PIC32 Curiosity開(kāi)發(fā)板
淺談linux多線程協(xié)作
淺析單片機(jī)開(kāi)發(fā)板的設(shè)計(jì)與制作
電子制作(2017年22期)2017-02-02 07:10:14
CNMARC304字段和314字段責(zé)任附注方式解析
無(wú)正題名文獻(xiàn)著錄方法評(píng)述
Mouser為您呈上開(kāi)發(fā)關(guān)鍵之STMicroelectronics Nucleo開(kāi)發(fā)板
Arduino和Atmel發(fā)布Arduino Zero開(kāi)發(fā)板
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
Linux線程實(shí)現(xiàn)技術(shù)研究
广灵县| 江口县| 林口县| 临沂市| 昌黎县| 云梦县| 汽车| 孝感市| 高雄县| 石渠县| 登封市| 奉节县| 高台县| 永吉县| 霍邱县| 北安市| 菏泽市| 广丰县| 南丰县| 博白县| 大新县| 简阳市| 宁明县| 屯留县| 平泉县| 雅江县| 东阳市| 丽江市| 侯马市| 武定县| 新竹县| 石城县| 蓬溪县| 耿马| 龙泉市| 岳普湖县| 柘城县| 宝丰县| 上蔡县| 崇义县| 克东县|