發布時間:2025-04-11所屬分類:計算機職稱論文瀏覽:1次
摘 要: 摘要:為提高公交客流計數系統的實時性及準確性,本文分別對車載信息終端的控制器局域網絡(controllerareanetwork,CAN)總線及RS485線協議進行研究。通過實時采集車載信息終端數據并解析,獲取公交實時運行信息。將公交車上的CAN總線和RS485線的信號通過串口
摘要:為提高公交客流計數系統的實時性及準確性,本文分別對車載信息終端的控制器局域網絡(controllerareanetwork,CAN)總線及RS485線協議進行研究。通過實時采集車載信息終端數據并解析,獲取公交實時運行信息。將公交車上的CAN總線和RS485線的信號通過串口轉換器變為RS232信號,并基于Linux和Windows兩種操作系統設計了兩套數據分析系統,用戶可以根據公交客流計數系統的基本需求,實時獲取公交車的相關信息。實地測試結果表明,該設計能夠實時精確的獲取車輛的各項信息,達到預期目標,說明本文所采用的數據分析算法,準確率高、效率高、魯棒性好,為公交客流計數系統提供了有效信息。該研究具有很好的實際應用價值。
關鍵詞:車載信息終端;CAN總線;RS485;客流計數
目前,公交車車載信息終端[1-2]的通信方式主要分為RS485[3-4]和CAN總線[5-6]兩種。車載信息終端同時具有遠程定位、實時通信、車況信息采集、自動報站等多種功能,并且能夠和公交車的其他設備相關聯,方便管理者對公共交通的實時調度。因此,將這些實時信息應用到智能客流量統計系統,能夠豐富系統的功能,提高系統的實用性[7-8]。
公交車載信息終端通過通用分組無線服務技術(generalpacketradioservice,GPRS)通信單元,將全球定位系統(globalpositioningsystem,GPS)模塊獲取的實時位置信息等發送到后臺,實現公交的定位功能以及語音播報,促進城市公交的智能化發展[9]。
目前,CAN總線在公交上的應用日趨成熟。其中,安連華等人[10]通過CAN總線實時獲取公交油耗信息,防止偷油行為的同時,可以有效監測駕駛員行車規范;趙祥模等人[11]采用基于視頻的客流統計方法,能夠有效監測公交客流量,但客流數據沒有與站點信息相結合。公交車的車站名稱信息能夠直接反映當前站點的客流量統計信息,減少智能客流量統計系統對車站信息獲取的信息量。
2018年初,青島新進一批比亞迪純電動公交車,其中有400多輛安裝了智能客流量統計系統,因此加強對公交車的實時信息采集、分析及應用具有重要意義;诖,本文主要對車載信息終端的CAN總線及RS485線協議進行研究,通過對車載信息終端數據進行采集與分析,并基于Linux和Windows兩種操作系統,設計了兩套數據分析系統,用戶可以根據公交客流計數系統的基本需求,實時獲取公交車的相關信息,提高了系統的準確性,減輕了系統的工作負擔。該研究提高了公交等智能化水平,在公交客流統計方面具有廣闊的應用前景。
1硬件設計與軟件實現
1.1硬件設計
車載CAN總線采用RS232轉CAN模塊[12],RS485線采用RS232轉RS485模塊[13],其中每個模塊分為有源和無源兩種型號,用戶可以根據情況進行選擇。本文采用RS232轉CAN模塊。
其中,主要包括RS232串行接口驅動器、CAN線控制器和驅動器。該模塊具有數據透明轉換功能,其中CAN總線波特率支持5kBd/s~1MBd/s,串口波特率支持1200~460800Bd/s,適應范圍廣,而且支持CAN2.0A和CAN2.0B協議,支持標準幀和擴展模式。RS232轉RS485模塊分為有源和無源兩種,RS232轉RS485電路原理圖如圖2所示,DB9端的2腳和3腳分別是接收端和發送端,經過TTL轉232電路和TTL轉485電路,該模塊可將RS232信號轉換為平衡差分的RS485信號,從而實現雙向通信功能。其工作方式為異步半雙工,波特率支持范圍是9600~115200Bd/s。
1.2軟件實現
1.2.1CAN總線協議分析
車載信息終端與其他設備進行數據通信時,一般采用250kBd/s的CAN波特率和57600Bd/s串口波特率。CAN接口協議分為ID域和數據域兩部分。報文ID域是報文的唯一標識,其中SA源地址和DA目標地址表示該報文的發送方和接收方,FN報文幀序號代表當前報文在當前會話中的位置。報文數據域由版本號、流水號、消息幀、校驗值4部分組成,其中消息幀由消息幀類型、消息幀長度及數據幀集合組成。每個數據幀由數據幀類型、數據幀長度和數據元素組成。校驗值是從版本號開始到校驗值之前所有字節的異或值[14-15]。
一個完整的報文數據需要分包發送,每包發送8字節數據和4字節的ID域,直到所有數據發送完為止,最后一包數據如果不足8字節,則補0。
1.2.2RS485協議分析
設定RS485車載信息終端與外部設備通訊接口參數為串口波特率19200Bd/s,8位數據位,1位停止位,無奇偶檢驗位。RS485為了提高協議的兼容性,由數據幀靈活組合構成的消息幀可適應不同的需求,避免嚴格的固定長度消息幀造成冗余,從而減少資源浪費。RS485數據報文由開始符、目標地址、源地址、消息幀、校驗值和結束符組成。通過對車載信息終端數據的采集與分析,可獲得公交車的實時位置信息、當前時速信息、到站離站信息及當前站點名稱信息等。
1.2.3技術方案
該系統的主要功能是實現對車載信息系統的數據采集到解析輸出的全過程。該部分的核心思想是通過串口通信,即串口編程實現CAN總線和RS485的數據接收,然后根據協議標準對接收到的數據解析處理,并根據消息幀的類型,提取客流統計系統所需要的站點相關的報文信息,去除冗余數據,同時根據報文的編碼規則,作出相對應的解碼方案,將十六進制數據翻譯成常人能看懂的站點信息。
具體實現方法及步驟:
(1)Linux系統。1)調用open()函數打開串口/dev/ttyS0,并設置串口的讀寫模式。
2)對termios結構指針進行相關配置,修改控制模式,設置波特率、數據位、校驗位、停止位,修改輸入輸出模式,然后進行超時設置。
3)調用read()函數對串口進行讀操作。
4)調用getCompleteFrame()函數對數據進行分析處理,獲得當前公交車的站點信息、到站離站信息等。
5)write()函數可上傳數據到車載信息終端。6)調用函數close()關閉串口。
(2)Windows系統。
1)調用CreateFile()函數打開串口COM*。
2)調用SetCommState()函數配置串口基本參數,SetCommTime-outs()函數對串口進行超時設置,調用SetupComm()函數定義了輸入輸出緩沖區的大小。
3)調用ReadFile()函數對串口進行讀操作。
4)調用getCompleteFrame()函數對數據進行分析處理,獲取車輛實時信息。
5)調用WriteFile()函數可以將獲得的數據實時上傳到車載信息終端。
6)調用CloseHandle()函數關閉串口。由于串口每次接收的數據長度不固定,而且每個完整的報文數據可能分多次發送[18]。因此,getComplete-Frame()函數首先需要將接收到的數據保存在隊列內,然后從隊列頭開始對數據解析處理,發現報文結束標志后,根據報文數據的長度及校驗值確定該報文數據是否完整。
如果當前隊列內沒有完整數據幀時,則繼續接收新的數據。每當解析出一個完整的報文數據,就清空當前隊列內的所有數據,重新接收下一報文。此外,如果隊列長度超出內存長度的0.66,拋棄隊列的前0.66部分,既能防止有效信息丟失,還能避免內存溢出造成的系統崩潰。同時,采用多線程串口通信[19-20],提高處理效率。
2實驗結果
CAN總線在Linux下測試,RS485在Windows下測試。實驗結果表明,該設計能夠實時精確的獲取車輛的各項信息,達到預期目標。其中CompleteDate表示當前接收到的報文數據域部分,所有數字為十六進制表示。
以南莊二為例:20表示版本號,14表示流水號,該數字隨機產生,03表示該消息幀代表進站離站信息,0025表示消息幀總長度為十進制37,01表示具體的數據幀類型是什么,0004表示該數據幀內容的長度為4字節,后面緊跟4字節的數據幀內容00001774,后面的05000101也是一組完整數據幀,以此類推,最后的49表示校驗位,如果該值與前面所有的數字異或值相同,則表示該報文接收無誤。
根據消息幀類型、數據幀類型以及數據幀的內容部分,解析當前車輛線路是上行下行、當前站點是終點站還是其他站點、進站離站、站點編號及站點中文名。以團島進站信號為例:7e代表會話包的開始,最后的7f代表會話包的結束,ff01表示目標地址和源地址,03表示該會話包的消息幀類型為服務播報,07是隨機產生的流水號,0023表示后面所有的數據幀總長度,02000101表示數據幀類型為02,內容長度為0001,內容為01的一個完整數據幀,以此類推,結束符前的2f表示校驗位,該值應與從包頭開始到校驗位之前所有數字異或值相同。
當車輛進站時,發出到站信號,顯示當前站點類型,獲得當前站點編號及站點中文名;當車輛離站時,發出離站信號,顯示當前站點類型,獲得下一站的站點編號及站點中文名。這樣可以將每站的客流量信息對應加在每個站點上,并且可以與電子站牌相結合,讓公共交通更加智能化。
3結束語
本文主要對車載信息終端在智能客流量系統中的應用進行研究。分析了CAN總線和RS485協議標準,并對現場環境進行實驗測試。測試結果表明,本文所設計的兩套分析系統,能夠精準的采集并解析車載信息終端的數據,結合公交客流計數系統的需求特點,實時獲取公交車的線路類型、站點編號、站點名稱、進站離站等信息;長時間的測試結果表明,本系統的魯棒性高、算法穩定,為客流統計系統的發展提供了技術支持,大大提高公共交通的智能化水平,其應用前景廣闊。此外,當信號環境極差時,GPS對公交車定位會出現偏差,間接影響車輛位置信息的精準度,后期應對該問題進行優化改進,提高系統的魯棒性。
參考文獻:
[1]吳建芳.嵌入式車載信息終端的實現研究[D].哈爾濱:哈爾濱工程大學,2010.
[2]韓敏艷.車輛監控系統研究與設計[D].哈爾濱:哈爾濱工程大學,2007.
[3]許燕萍,楊代華.RS485串行總線可靠性的研究[J].電子科技,2009,22(2):8-10,22.
[4]馮子陵,俞建新.RS485總線通信協議的設計與實現[J].計算機工程,2012,38(20):215-218.
[5]曹萬科.CAN協議車載網絡若干關鍵理論研究[D].沈陽:東北大學,2008.
相關計算機刊物知識:計算機工程與應用是什么級別
投稿《計算機工程與應用》期刊,首先要了解期刊的級別,明白期刊的等級才能有所準備的投稿,經過查詢,這本期刊是計算機類的核心刊物,投稿計算機類核心刊物要從分了解期刊的簡介以及投稿要求,對于投稿時間有限或者沒精力準備的作者可尋找指導發表。
SCISSCIAHCI