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