新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于nRF24LE1的校園警情定位系統設計

        基于nRF24LE1的校園警情定位系統設計

        作者: 時間:2014-04-21 來源:網絡 收藏

        3.3 中心站軟件

        本文引用地址:http://www.104case.com/article/245747.htm

        中心站和分站的軟件實現在整體上有相似之處,稍微區別是當分站確認接收到警報數據包后,便向預定的目標地址(其他分站或者中心站)發送該警報包,而中心站接收到警報數據包后,通過EM310往預定的目標IP地址發送,其流程圖如圖5所示。

        3.4 網站設計實現

        本校園警情快速定位網站的地圖應用設計采用百度地圖的JavaScript API。其是一套由JavaScript語言編寫的應用程序接口,可幫助在網站中構建功能豐富、交互性強的地圖應用,支持PC端和移動端基于瀏覽器的地圖應用開發,且支持HTML5特性的地圖開發。

        用戶通過瀏覽器訪問該網站,即向該網站發出了服務請求,該網站便向數據庫提取警情數據,同時向百度請求地圖服務,最后把兩者數據融合,返回給用戶,刷新瀏覽界面,用戶看到就是在百度地圖中對應的位置上標記的警情信息和固定警力信息。

        4 關鍵技術討論

        4.1 數據包定義

        本系統通信的數據包類型有應答包和警報包。警報包又分為遙控器直接發出的警報包(稱為遙控器警報包)和分站轉發的警報包(稱為分站警報包),數據包類型標識定義如表1所列。

         

         

        為了形式上的統一,把各種數據包都規定為30個字節長度,數據包中各個字節的定義如表2所示。

         

         

        某遙控器待發送的警報包數據存放在如下的數組中:

         

         

        4.2 數據包發送和接收

        中,集成了一個功能齊全的2.4GHz收發器核nRF24L01+和一個加強型8051微控制器核。該微控制核和收發器核nRF24L01+是通過其專用的SPI接口進行通信,因此數據包收發是通過SPI讀寫操作來完成的。

        TxMode函數的參數分別描述如下:TxAddress:存放目標地址數據的數組;TxAdrWidth:目標地址長度;TxData:存放待發送數據的數組;TxDataLength:待發送的數據長度。

        無線遙控器發送的警報是一個廣播性質的數據,所有分站都有同等的機會接收該警報數據,因此在本系統中所有分站必須開啟一個能接收廣播類型數據的通道,也就是所有分站都具有同樣的接收廣播的地址。

        有6個接收數據的通道地址,能滿足這樣的要求,本系統僅僅用了2個接收數據的通道地址,一個是該分站專用的接收地址(即分站ID),另一個是該分站跟其他分站相同的接收地址,配置操作略——編者注。

        無線遙控器發送數據是廣播型,因此發送就是向共有的接收地址發送。另外還需要開通一個接收應答數據包的通道,因為應答包是有固定的指向,因此無線遙控器只需要開通一個專用的接收數據通道(即遙控器ID),其相關配置略——編者注。

        為了增加系統的可靠性和可控性,這里只是允許接收中斷,而且接收中斷在某種情況下,還根據需要進行關閉,然后再次開啟等。

        4.3 隨機調整發包時間間隔參數策略

        時間間隔調整是靠Delay函數里面的Temp參數的調整來確定的。Delay(Temp)延時時間大約為Temp值的1/10 s。延時參數Temp值等于基數10加上一個小于10的隨機數,具體實現如下:

         

         

        Delay(Temp)實現的延時是以1 s為基礎加上一個小于1的隨機小數,總共有4個1 s左右的延時疊加,因此該延時是以4 s為基數進行調整的,該參數的配置是根據實驗測試并統計B從接收警報包,到轉發警報包,再到接收應答包的時間,再適當加上一定余量,權衡得出來的。

        每一個設備都把自己認為重要的事情做好,并且又能夠互相配合,使得整個系統可靠性和實時性達到一個相對完美的配合。

        4.4 遠程應用服務器操作策略

        網絡組網方案是數據中心服務器端采用公網固定IP地址,EM310直接通過IP地址訪問Internet。其中,最關鍵兩個動作就是EM310連接遠程應用服務器操作和EM310往遠程應用服務器發送數據包。

        本文從實時性角度出發,采用最簡的操作步驟,如表3所示。

         

         

        4個步驟之間緊密相連,缺一不可。每個AT指令發送出去后,會返回一個字符串,只有確認返同字符串中有“OK”字符,才能認為該AT指令操作成功,才可以進入下一個步驟的操作,否則重新發送該AT指令。這種方法可以獲得最高的可靠性,同時也會帶來一定風險,程序會一直在循環等待。

        考慮到實時性,本文采用的是并不是每個AT指令操作后都等待“OK”字符,而是直接進入第4個步驟,發送警報信息。在該指令發送后,經過適當的延時,然后去判斷返回的字符串中是否有“OK”字符,否則才開始從第1個步驟開始。

        萬一警情信息發送不成功,需要重新連接服務器,即從第1個步驟重新開始。本文采用的并不是每個AT指令操作后都去作等待“OK”字符的動作,而是經過適當延時,直接進入下一個動作。因此必須預先對該延時參數有個估計,同時要保留一定余量。本文通過大量測試,權衡后得到如表4所列的參數。

         

         

        結語

        測試兩種情況從按下求助按鈕到地圖顯示的時間:一是分站直接到中心站;二是分站間接到中心站(本系統分站到中心站最多是2個),結果是40~50 s。假設A轉發的數據包目標是分站B,在A接收范圍內按下一個求助按鈕,同時在B接收的范圍內,按下另一個求助按鈕。測試表明本系統能可靠把兩個警報包最終在百度地圖上顯示出來。因此,本系統所用的策略保障了一定的實時性和可靠性。

        萬能遙控器相關文章:萬能遙控器代碼


        蜂鳴器相關文章:蜂鳴器原理
        燃氣報警器相關文章:燃氣報警器原理

        上一頁 1 2 下一頁

        關鍵詞: NORDIC nRF24LE1

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘德县| 枣强县| 象州县| 东乡族自治县| 木里| 五寨县| 鄂托克前旗| 仙桃市| 弥渡县| 平顶山市| 韶山市| 诏安县| 屯门区| 万山特区| 利津县| 淳安县| 缙云县| 泽普县| 江西省| 思南县| 苏州市| 华宁县| 海林市| 马龙县| 新沂市| 邵阳县| 景东| 法库县| 舒兰市| 永寿县| 鞍山市| 黑龙江省| 绥宁县| 奉新县| 和龙市| 丽水市| 凉城县| 浪卡子县| 宝兴县| 长岛县| 庆安县|