訾豪 張旭陽 于澤洋 王偉 侯黎陽
摘 要:近年來,國內外車聯網技術發展十分迅猛,該技術也日漸走向成熟化、產業化。但在該技術的發展過程中,車與車、車與控制云端之間的信息通信技術一直是一個瓶頸。如何既能實現通信的實時精確傳輸,又能最大程度上降低成本,成為車聯網發展中的一個研究熱點。鑒于此,筆者選擇ZigBee通信技術來解決這個棘手的問題。本文首先描述多車協同控制的整體實踐,然后給出實現ZigBee通信技術的2個具體算法,即動態變化的通信系統算法和具體信息的數組分類存儲算法,最后通過實驗驗證了算法的可行性與優越性。
關鍵詞:ZigBee;多車協同;STM32處理器;通信系統算法;分類存儲算法
中圖分類號:TP393 文獻標識碼:A 文章編號:1003-5168(2018)20-0030-05
Research on ZigBee Based Multi-vehicle Collaborative
Communication Algorithm
ZI Hao ZHANG Xuyang YU Zeyang WANG Wei HOU Liyang
(College of Computer and Information Engineering, Henan University,Kaifeng Henan 475000)
Abstract: In recent years, the development of vehicle networking technology at domestic and abroad is very fast, and the technology is becoming more mature and industrialized. But during the development of this technology, the information communication technology between car and car, car and control cloud has always been a bottleneck. How to realize the real-time and accurate transmission of communication and minimize the cost has become a hot research topic in the development of automobile network. In view of this, the author choosed ZigBee communication technology to solve this thorny problem. This paper first described the overall practice of multi-vehicle collaborative control,and then gave two specific algorithms for ZigBee communication technology, dynamic change communication system algorithm and array classification and storage algorithm for specific information. Finally, the feasibility and advantages of the algorithm were verified through experiments.
Keywords: ZigBee;multi vehicle collaboration;STM32 processor;communication system algorithm;classified storage algorithm
1 研究背景
目前,隨著社會經濟的高速發展,道路交通安全問題日益嚴重。根據聯合國秘書長潘基文公布的聯合國道路安全協作機制(UNRSC)的報告,全球每年交通事故造成近130萬人死亡,2 000萬至5 000萬人受傷,給各國政府和個人造成約5 180億美元經濟損失[1]。如何減少交通事故、降低死亡率已成為一個全球關注的問題。由此,各國展開了一場車聯網研究熱潮。其中,美國、日本和歐洲部分國家在車聯網的研究中處于領先地位,均已制定車-車、車-路通信的相關標準,并開始逐步在實際環境中測試。我國也緊跟車聯網的發展潮流。
本文為車聯網中的局域網提供了一種具有重大參考意義的實踐方法。其中,最具參考價值的是算法方面:動態變化的通信系統算法解決了設備的入網問題,對于車輛和紅綠燈而言,可以不分先后隨時入網,該算法會自動識別出其入網類別;具體信息的數組分類存儲算法解決了復雜信息的存儲問題,該算法對入網的信息進行自動分類并分區存儲,使信息更加標準化和規范化。本文提出的兩大算法使車與車、車與控制云端之間的信息通信更加精確、可靠、高效,為車聯網的通信技術提供了一個行之有效的解決方案。
2 實踐整體描述
實踐的整體目的是實現多車協同控制,需要3輛以上的實驗智能小車與上位機、賽道環境之間的配合,以實現預定7種場景的功能。其中,所需的實驗智能小車的硬件組成基本類似,分別由STM32處理器(STM32F103ZET6的最小系統,STM32系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導體(ST)公司出品,其內核是Cortex-M3)、底盤、舵機、攝像頭、編碼器、電源系統和通信模塊等構成;上位機則由STM32處理器(STM32F103ZET6的最小系統)、顯示屏和通信模塊等構成;賽道環境則是由紅外傳感器(紅外發射器用51單片機控制,主要運用在本實踐的“組合定位”算法,這里不做詳細敘述)、雙道黑白賽道、紅綠燈模塊和通信模塊等組成。實踐整體效果如圖1所示。
與硬件相匹配,實踐的軟件程序也分為實驗智能小車、上位機和紅綠燈(賽道)3個板塊。其中,實驗智能小車的軟件程序主要由舵機控制、電機控制、攝像頭圖像處理和通信模塊等小板塊構成。其主要功能是向外發送實驗智能小車信息、接收外部向實驗智能小車發送的信息、對信息進行處理以控制實驗智能小車正常運行。上位機的軟件程序主要由通信模塊、顯示模塊等構成。其主要功能是控制整個系統的運行、處理一些特殊情況、通過顯示屏向外界輸出系統信息等。紅綠燈對場景的實現起到關鍵作用,當紅綠燈處于不同的狀態時,會向外發送不同的信號以作區別。此外,本實踐整體的程序都運用C語言來編寫,通過不斷地實驗與調試,得到了一些使實驗智能小車平穩運行的參數(如舵機中值、PID參數和碼盤測速參數等),并將其運用到實踐中。軟件程序結構如圖2所示。
根據該實踐整體所要達到的目標及現實中車輛常遇到的具體情境,文中設定了7種場景,并成功實現了場景既定功能。7種場景分別為:遙控車展示定位功能、緊急車輛優先通行、超車、通過十字路口、跟馳、通過學校或者人行橫道及智能停車引導。而在程序的具體實現中,每個場景的切換是通過按鍵模塊選擇的。
對于上述介紹的實踐情況及所實現的功能場景,文中所面對的最大問題是如何找到一種能夠在實驗智能小車、上位機和紅綠燈之間建立通信的模塊。筆者最初考慮到的有藍牙、Wi-Fi、紅外、ZigBee這4種通信模塊。通過搜索資料與驗證發現,藍牙的每個微網最多只能配置7個節點,不利于該實踐的推廣;Wi-Fi的帶寬較大,但伴隨的是功耗加大,不適合本實踐的條件;紅外通信技術中,由于紅外線的直射特性,對方向及周圍光照條件要求高,也不符合本實踐的條件;而ZigBee通信模塊,具有自動組網、低功耗、節點廣等特性,滿足本實踐對通信模塊的要求,因此最終確定選用ZigBee通信模塊。
3 硬件部分的實現
實踐整體所選用的ZigBee模塊為CC2630系列的DRF1609(UART接口)型號。CC2630是雙ARM核32位CPU芯片(Cortex-M3負責ZigBee協議的處理,Cortex-M0負責無線通信的處理),是目前運算速度最快的ZigBee模塊,可以組成較大的網絡,傳輸更大容量的數據。
該ZigBee模塊可以組建標準的Mesh網絡,進行數據傳輸(如圖3所示),也可以自動加入網絡(Router可以不用設置,連續按3次功能按鍵,可自動尋找Coodinator加入網絡)。此外,該ZigBee模塊能自動路由,自動獲得最佳的路由路徑。同時,其還具有動態路由維護功能,當某個路由損壞,可重新獲得最佳的路由路徑。在數據傳輸時,該ZigBee模塊可實現透明傳輸數據,也可點對點發送至任意節點。該ZigBee模塊具有更穩定的數據傳輸,實驗室條件下,近距離測試,誤碼率可達0.005 9%,實測條件(隔房間,距離10m以上,20個Wi- Fi干擾),誤碼率可達0.23%。
除了紅外發射傳感器用的是51處理器之外(并不需要與ZigBee模塊相連),該實踐整體中所用到的處理器都是STM32F103ZET6的最小系統。于是,在硬件連接中,就需要ZigBee模塊與核心板的最小系統連線,如圖4所示。根據二者功能特點,STM32用的是串口3作為ZigBee模塊的串口端,故ZigBee模塊的VCC引腳接最小系統中的3.3V引腳,ZigBee模塊的GND引腳接最小系統中的GND引腳,ZigBee模塊的TX引腳接最小系統中的RX引腳(PB11),ZigBee模塊的RX引腳接最小系統中的TX引腳(PB10)。
4 軟件部分的實現
4.1 軟件實現的模型建立
根據需要,在該實踐中,將各個板塊之間的通信建立為“局域網”模型。網是由小車-上位機、紅綠燈-上位機、小車-小車之間的有序“連接”,形成環狀結構,確保數據信息能按要求傳遞。如圖5所示(小車的具體數量根據所實現場景而定)。
4.2 軟件實現的整體框架
根據需要及硬件的限制,軟件程序也分為小車、上位機和紅綠燈3個板塊。
在智能小車主函數所在.C文件中,首先包含有“攝像頭”“定時器”“串口通信”“OLED 屏幕”“按鍵”等頭文件的調用。其中,攝像頭用的是OV7076;定時器程序是用來產生PWM波,然后對舵機和車速進行控制;串口通信是用來控制藍牙、紅外、ZigBee信號的收發;OLED 是用來顯示攝像頭的圖像;按鍵用于情景設定,然后進行主函數的編寫。
在上位機主函數所在.C文件中,首先包含有“觸摸屏”“串口通信”“LED燈”“按鍵”等頭文件的調用。其中,觸摸屏是用來顯示整個系統的必要信息;串口通信是用來控制紅外、ZigBee信號的收發;LED燈是STM32最小系統自帶的,可以用于程序的調試與校正;按鍵是用于情景的設定,然后進行主函數的編寫。
在紅綠燈主函數所在.C文件中,首先包含有“串口通信”“LED燈”“按鍵”等頭文件的調用。其中,串口通信是用來控制紅外、ZigBee信號的收發;LED燈是STM32最小系統自帶的,可以用于程序的調試與校正;按鍵則主要用于情景的設定,然后進行主函數的編寫。
4.3 軟件實現的算法介紹
根據上述各個板塊的ZigBee模塊使用方式及ZigBee模塊的具體數據傳送特點,筆者給出實現該軟件的具體算法:動態變化的通信系統算法和具體信息的數組分類存儲算法。
在整體實踐中,動態變化的通信系統算法是本文的核心部分。在具體實踐中,首先上電的是上位機(主ZigBee模塊),然后依次上電紅綠燈、智能小車1、智能小車2和智能小車3(根據情景需要確定智能小車個數)。這就出現一個問題,上位機如何判斷具體智能小車的個數:我們設計的算法是“跑火車思想”,信息鏈相當于一輛火車,從“上位機站”出發,根據目標短地址的指引到達車1,然后依次到達車2和車3等。我們知道,每個智能小車所搭載的ZigBee模塊的短地址是不一樣的,當只有一輛智能小車上電時,上位機收到的信息來自于車1;當2輛車上電時,則來自于車2等。本算法可以告知上位機智能小車的數量,以便于具體場景的實現和數據的銜接。當有智能小車發生故障無法向外界發送數據時,上位機也能根據信息鏈是否完整來進行判斷。
在整體實踐中,具體信息的數組分類存儲算法是本文的亮點。實踐中各個板塊之間傳遞的信息是復雜多樣的,而為了使ZigBee模塊在信息傳遞的過程中不至于混亂,本文在程序中定義一個44位的數組(Data_44byte[],數組的位數是根據需要得來的),如圖6所示。本數組中的不同位代表不同的信息。其中,第0位為“FD”,代表發送模式(由ZigBee使用方法知);第1位為“44”,代表該數組具有44位;第2位與第3位為發送的“目標地址”;第4位與第5位、第6位與第7位、第8位與第9位、第10位與第11位則分別存儲著智能小車1、智能小車2、智能小車3、紅綠燈所連ZigBee模塊的短地址;第12位代表入網ZigBee模塊的個數;第13位代表ZigBee模塊的編號(上電的次序編號);第14位代表紅綠燈的狀態信息;第15到第19位、第20到第24位、第25到第29位則分別存儲智能小車1、2、3的X軸坐標信息、Y軸坐標(占兩位)信息、車道信息和車速信息。第30位到第41位依次每兩位存放著情景2到情景7的狀態信息;第42位為“預留位”;第43位為“情景編號”。
在上位機程序中,主要是通過顯示屏來顯示小車道路信息,而這些信息則是通過ZigBee模塊獲取。所以,上位機程序必須包括44位數組的全部內容,并且隨著時間的推移不斷更新,就能得到顯示屏實時顯示智能小車道路信息的效果。
4.4 具體場景的軟件實現
該實踐所實現的7種場景分別為:遙控車展示定位功能、緊急車輛優先通行、超車、通過十字路口、隊列跟馳、通過學校或者人行橫道、智能停車引導。而在程序的具體實現中,每個場景的切換是通過按鍵選擇的。
遙控車展示定位功能:通過遙控車的道路運行展示定位系統功能。使用手機或者專業遙控器,通過藍牙通信(手機端控制智能小車端)來控制智能小車的行駛。與此同時,在上位機的顯示屏上實時顯示車輛位置坐標、車速、車道等信息;緊急車輛優先通行:模擬現實中的急救車、消防車、警車等緊急車輛在后方行駛,此時前方車輛收到上位機的避讓信號并主動讓道。從而使緊急車輛安全快速通過(如圖6所示)。超車:后方車向上位機發送超車請求,上位機通過獲取前方車輛位置信息,判斷是否具有超車的條件。情況一:后方車的左后方安全距離內有車駛放棄超車。情況二:后方車的左后方安全距離內無車行駛,則執行超車(如圖7所示)。通過十字路口:在十字路口,行駛車道分為左轉車道、直行車道和右轉車道。當小車即將通過路口時,智能小車向上位機發送通過路口的請求,上位機獲取智能小車與紅綠燈的狀態信息,并進行分析處理,向該智能小車發送提前減速、進入相應車道、停車等待、轉彎或直走等信號(如圖8所示)。隊列跟馳:上位機通過獲取前后方車輛的位置信息,保證本車輛與前后方車輛都有一定的安全距離。當后方車輛進入安全范圍以內,警告該車輛并使其減速。當與前方車輛距離過小,應當自動降速保持安全距離(如圖9所示)。通過學校或者人行橫道:借助上位機處理技術與定位技術,當車行駛到達學校或人行橫道等特殊路段時,為確保行駛安全,上位機通過信息處理,給車輛一減速行駛信號,車輛自行以較低的車速進行行駛,這在現實中也是常見的情景(如圖10所示)。智能停車引導:當智能小車根據需要停車時,上位機能通過智能小車的位置信息及空閑車位的信息,給該智能小車分配一個合適的車位,向智能小車發送信息。智能小車收到信息后,會自動向所分配到的空閑車位行駛,并安全停車。
5 結語
該實踐的價值,也正是車聯網技術進步的價值。車聯網及信息互聯是智能交通發展的大趨勢。目前,我國車聯網技術的應用主要體現在以下幾方面[2,3]。動態及靜態交通管理領域:智能收費系統、自動路徑導航系統、智能停車場系統、智能停車場管理、智能車輛調度、智能交通、智能交通信號燈管理和車輛監控;公共安全領域:智能超載超速報警系統、智能預警系統和疲勞駕駛監測系統;公共服務領域:智能交通查詢系統和智能收費系統;物流運輸領域:智能車輛管理系統、貨物實時監測系統和物流檢測系統。
車聯網時代的到來,對整個汽車產業鏈甚至我國信息產業都是一個新機遇、新挑戰,必須搶占車聯網的理論研究、技術開發和應用的先機[4]。車聯網的關鍵技術在于對車輛的精確定位及車與車、車與控制云端之間通信平臺的建立。而本文所闡述的組合定位與ZigBee通信技術的巧妙運用很好地解決了以上2個問題。隨著車聯網技術的不斷發展和完善,車輛及交通管理控制的智能化程度進一步加強,交通問題一定會得到解決。本文所介紹的這種實踐,能在一定程度上解決車與車、車與云端控制器之間的通信問題。若在不久的將來,該實踐能得到推廣,將在一定程度上推動車輛網技術的發展。但是,由于ZigBee模塊本身特性及系統其他條件的限制,本文所介紹的實踐仍然具有較大的局限性,適用范圍有待擴展,可移植性也有待提高,束縛條件較多。筆者將會從該實踐中受到啟發與鼓舞,不斷更新硬件,轉換思維,爭取創造出更優越的實踐,與各位車聯網愛好者與研究者共同推進車聯網的發展與進步。
參考文獻:
[1]王建昱.V2X車聯網及其關鍵技術[J].信息技術與信息化,2013(5):60-63.
[2]王建強,吳辰文,李曉軍.車聯網架構及關鍵技術研究[J].微計算機信息,2011(4):156-159.
[3]諸彤宇,王家川,陳智宏.車聯網技術初探[J].交通工程,2011(7):266-268.
[4]譚紅平,陳金鷹,楊俊.車聯網技術及其應用研究[C]//四川省通信學會2011年學術年會論文集.2011.