羅發(fā)貴,張 杰,隋良紅
(1.中國(guó)測(cè)試技術(shù)研究院,四川 成都 610021;2.四川大學(xué)制造科學(xué)與工程學(xué)院,四川 成都 610065)
在汽車運(yùn)行過程中,經(jīng)常需要知道汽車運(yùn)行的基本情況,需要測(cè)量汽車的運(yùn)行速度、運(yùn)行距離、經(jīng)緯度位置以及所在地的海拔等,這些信息對(duì)于人車安全具有重要意義。將GPS技術(shù)用于這些參數(shù)的測(cè)量,可以達(dá)到期望的效果。但由于其測(cè)量數(shù)據(jù)量大,而且具有高速變化、不易采集、不易存儲(chǔ)數(shù)據(jù)等缺點(diǎn),必須要配以高性能的傳輸總線[1]。在這種情況下,基于CAN總線的GPS汽車參數(shù)采集測(cè)量方案應(yīng)運(yùn)而生。
在本項(xiàng)目中,將CAN總線技術(shù)應(yīng)用于GPS汽車參數(shù)測(cè)量中,并用C8051F500作為主控芯片,把TJA1050作為其外加物理接口。同時(shí)輔以按鍵、顯示、存儲(chǔ)等功能,實(shí)現(xiàn)汽車行駛參數(shù)的高速采集測(cè)量。
CAN是一種多主方式的串行通信總線,基本設(shè)計(jì)規(guī)范要求有高的位速率、高抗電磁干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤[2]。當(dāng)信號(hào)傳輸距離達(dá)到10km時(shí),CAN總線仍可提供高達(dá)50kb/s的數(shù)據(jù)傳輸速率。CAN通信協(xié)議主要描述設(shè)備之間的信息傳遞方式,CAN層的定義與開放系統(tǒng)互連模型一致。每一層與另一設(shè)備上相同的那一層通信,實(shí)際的通信發(fā)生在每一設(shè)備上相鄰的兩層,而設(shè)備只通過模型物理層的物理介質(zhì)互連[3]。
CAN能夠使用多種物理介質(zhì),例如雙絞線、光纖等,其中最常用的就是雙絞線。信號(hào)使用差分電壓傳送,2條信號(hào)線被稱為CAN_H和CAN_L,靜態(tài)時(shí)均為2.5V左右,此時(shí)狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯形”;此時(shí),通常電壓值為:CAN_H=3.5 V,CAN_L=1.5V。CAN總線成本低,具有極高的總線利用率、很遠(yuǎn)的數(shù)據(jù)傳輸距離(長(zhǎng)達(dá)10km)、高速的數(shù)據(jù)傳輸速率(高達(dá)1 Mb/s)、可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制,發(fā)送的信息遭到破壞后,可自動(dòng)重發(fā),節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線的功能。
GPS系統(tǒng)包括3部分:空間部分(GPS衛(wèi)星星座);地面控制部分(地面監(jiān)控系統(tǒng));用戶設(shè)備部分(GPS信號(hào)接收機(jī))[4]。GPS衛(wèi)星星座和地面控制部分屬于整個(gè)系統(tǒng)的運(yùn)行維持部分,由美國(guó)專門的機(jī)構(gòu)維護(hù)。通常普通用戶直接使用的僅僅是GPS信號(hào)接收機(jī)[5]。
GPS信號(hào)接收機(jī)的任務(wù)是:能夠捕獲到按一定衛(wèi)星高度截止角所選擇的待測(cè)衛(wèi)星的信號(hào),并跟蹤這些衛(wèi)星的運(yùn)行,對(duì)所接收到的GPS信號(hào)進(jìn)行變換、放大和處理,以便測(cè)量出GPS信號(hào)從衛(wèi)星到接收機(jī)天線的傳播時(shí)間,解譯出GPS衛(wèi)星所發(fā)送的導(dǎo)航電文,實(shí)時(shí)地計(jì)算出測(cè)站的三維位置,甚至三維速度和時(shí)間[6]。接收機(jī)硬件和機(jī)內(nèi)軟件以及GPS數(shù)據(jù)的后處理軟件包,構(gòu)成完整的GPS用戶設(shè)備[7]。GPS接收機(jī)的結(jié)構(gòu)分為天線單元和接收單元2個(gè)模塊。
系統(tǒng)硬件主要是由C8051F500單片機(jī)、TJA1050、GPS傳感器、按鍵、顯示、打印、存儲(chǔ)等組成,硬件組成如圖1所示。
圖1中,單片機(jī)C8051F500是沒有CAN接口的MCU,需要通過外加TJA1050作為物理通信接口,單片機(jī)負(fù)責(zé)數(shù)據(jù)的處理計(jì)算工作,是整個(gè)系統(tǒng)的主要部分。TJA1050是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器和物理總線之間的接口,可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能。GPS傳感器是系統(tǒng)的主要傳感器單元,負(fù)責(zé)對(duì)被測(cè)量的測(cè)量。
Silicon Lab公司的C8051F500單片機(jī)內(nèi)部集成了CAN控制器,符合Bosch規(guī)范2.0A(基本CAN)和2.0B(全功能CAN),方便了CAN網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)。由于C8051F500的高集成度,只需少量外圍測(cè)量電路便可組成集數(shù)據(jù)采集、控制和通信功能于一體的單片機(jī)系統(tǒng),同時(shí)還可提高系統(tǒng)的整體可靠性。另外,C8051F500內(nèi)核與普通51系列兼容,且指令簡(jiǎn)單易學(xué),可縮短系統(tǒng)研發(fā)周期[8]。圖2是基于C8051F500的CAN硬件電路實(shí)現(xiàn)原理圖。
圖1 系統(tǒng)硬件組成框圖
圖2 CAN功能節(jié)點(diǎn)組成原理圖
3.2.1 C8051F500單片機(jī)
單片機(jī)內(nèi)部集成了CAN控制器,其與收發(fā)模塊(CTM1050)共同構(gòu)成CAN節(jié)點(diǎn)模塊。其中CAN控制器包括CAN核、消息存儲(chǔ)器、消息處理器和控制寄存器。由于其MCU無法直接訪問消息RAM,因此有兩組位于控制寄存器的接口寄存器被用來控制CPU對(duì)消息RAM的訪問。接口寄存器通過緩存?zhèn)鬏攲⒁獋鬏數(shù)臄?shù)據(jù),避免了CPU訪問消息RAM時(shí)同CAN消息的發(fā)送和接收之間的沖突[9]。在單個(gè)傳輸時(shí),一個(gè)完整的消息對(duì)象或者消息對(duì)象的一部分在消息RAM和IFx消息緩沖寄存器之間進(jìn)行可靠傳輸。
3.2.2 TJA1050高速CAN收發(fā)器
TJA1050是CAN控制器與CAN物理總線之間的接口芯片,是CAN協(xié)議控制器和物理總線之間的接口,它最初應(yīng)用于波特率范圍在60 K波特到1 M波特的高速自動(dòng)化應(yīng)用中。TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能。
TJA1050有一個(gè)電流限制電路,保護(hù)發(fā)送器的輸出級(jí),使由正或負(fù)電源電壓意外造成的短路不會(huì)對(duì)TJA1050造成損壞(此時(shí)的功率消耗增加)。TJA1050還有一個(gè)溫度保護(hù)電路,當(dāng)與發(fā)送器連接點(diǎn)的溫度超過165℃時(shí),會(huì)斷開與發(fā)送器的連接。因?yàn)榘l(fā)送器消耗了大部分的功率,所以這個(gè)集成電路的功率消耗和溫度會(huì)較低[10],但是此時(shí)IC的其他功能仍繼續(xù)工作。當(dāng)引腳TXD變高電平,發(fā)送器由關(guān)閉狀態(tài)復(fù)位。當(dāng)總線短路時(shí),尤其需要這個(gè)溫度保護(hù)電路。
在汽車通電的瞬間,引腳 CAN_H和CAN_L也受到保護(hù),如圖3所示。
圖3 自動(dòng)的暫態(tài)過程測(cè)試電路圖
當(dāng)引腳 TXD由于硬件和/或軟件程序的錯(cuò)誤而持久為低電平時(shí),“TXD控制超時(shí)”定時(shí)器電路可以防止總線進(jìn)入這種持久的支配狀態(tài)(阻塞所有網(wǎng)絡(luò)通信),這個(gè)定時(shí)器是由引腳TXD的負(fù)跳變邊沿觸發(fā)。如果引腳TXD的低電平持續(xù)時(shí)間超過內(nèi)部定時(shí)器的值,發(fā)送器會(huì)被禁能,使總線進(jìn)入隱性狀態(tài),定時(shí)器由引腳TXD的正跳變邊沿復(fù)位。
在CAN初始化時(shí)會(huì)打開CAN中斷,即CAN總線上有數(shù)據(jù)要發(fā)送時(shí)會(huì)產(chǎn)生一個(gè)中斷,此時(shí)由單片機(jī)的MCU來判斷其優(yōu)先級(jí)是否為最優(yōu),若是,則響應(yīng)其中斷。此時(shí)單片機(jī)內(nèi)的CAN處理器會(huì)控制消息緩存寄存器寫入數(shù)據(jù),并按照協(xié)議對(duì)消息進(jìn)行處理;等發(fā)送請(qǐng)求中斷產(chǎn)生,響應(yīng)中斷并發(fā)送處理好的數(shù)據(jù),此為一次數(shù)據(jù)收發(fā)過程[11]。CAN總線數(shù)據(jù)收發(fā)流程如圖4所示。
系統(tǒng)初始化主要包括端口、時(shí)鐘和CAN控制器的初始化。其一般步驟如下:
(1)將SFRPAGE寄存器設(shè)置為CAN0_PAGE;
(2)將CAN0CN寄存器中的INIT和CCE位設(shè)置為‘1’;
(3)設(shè)置位定時(shí)寄存器和BRP擴(kuò)展寄存器中的時(shí)序參數(shù);
(4)初始化每個(gè)消息對(duì)象或?qū)⑵銶sgVal位設(shè)置為 NOTVALID(無效);
(5)將 INIT 位清零。
其初始化部分程序如下:
系統(tǒng)初始化完成后,在主程序中調(diào)用接收子程序,由接收子程序來響應(yīng)總線上的消息接收請(qǐng)求命令。接收子程序要比發(fā)送子程序復(fù)雜一些,因?yàn)樵谔幚斫邮請(qǐng)?bào)文的過程中,還要對(duì)諸如總線關(guān)閉、錯(cuò)誤報(bào)警、接收溢出等情況進(jìn)行處理。下面給出部分接收子程序:
發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的發(fā)送,發(fā)送時(shí)用戶只需將處理好的待發(fā)送數(shù)據(jù)按特定的格式組合成一幀報(bào)文,送入發(fā)送緩存區(qū)中,然后啟動(dòng)發(fā)送即可。
本項(xiàng)目是基于CAN總線的GPS傳感器應(yīng)用,用來實(shí)時(shí)測(cè)量汽車運(yùn)行中的相關(guān)動(dòng)態(tài)參數(shù)。試驗(yàn)前,將傳感器天線置于汽車外部(吸附于車頂),通過RF傳輸線與車內(nèi)儀器主機(jī)連接。儀器開機(jī)啟動(dòng)后,當(dāng)汽車運(yùn)行時(shí),儀器可以測(cè)試出汽車實(shí)時(shí)的行駛速度、里程、所在位置的經(jīng)緯度值、大地坐標(biāo)以及海拔高度等參數(shù)。經(jīng)過實(shí)車道路測(cè)試,隨機(jī)列舉了4組等精度重復(fù)測(cè)量數(shù)據(jù),如表1所示。
表1 實(shí)車路試數(shù)據(jù)
由多次重復(fù)測(cè)量數(shù)據(jù)經(jīng)計(jì)算分析,通過標(biāo)準(zhǔn)偏差公式:
式中:Σ——總和;
可知表1中緯度、經(jīng)度、海拔、大地坐標(biāo)X、Y的穩(wěn)定性分別為:5.776 2×10-10,6.691 67×10-11,0.870 92,0.87093,0.083833。通過該組數(shù)據(jù),并與更高精度已知數(shù)據(jù)相比較分析后,可以看出系統(tǒng)的測(cè)量結(jié)果達(dá)到了既定的精度和穩(wěn)定性要求。
本項(xiàng)目研究成果的實(shí)際使用與測(cè)試實(shí)驗(yàn)數(shù)據(jù)證明,系統(tǒng)可以達(dá)到對(duì)汽車經(jīng)緯度、海拔、速度、里程及大地坐標(biāo)X/Y的準(zhǔn)確測(cè)量,實(shí)現(xiàn)了對(duì)汽車動(dòng)態(tài)運(yùn)行參數(shù)測(cè)量的實(shí)時(shí)性和靈活性。同時(shí),拓展了基于CAN總線的傳感器在汽車領(lǐng)域中的應(yīng)用,數(shù)據(jù)傳輸準(zhǔn)確靈活,具有較好的實(shí)用意義。相比于傳統(tǒng)的傳輸方式,CAN總線減少了數(shù)據(jù)沖突和丟失,提高了信息的準(zhǔn)確性和精確度;因此,項(xiàng)目具有較好的工程背景和實(shí)際應(yīng)用價(jià)值。
[1]高峰,王睿,王建.CAN總線型多功能汽車行駛記錄儀[J].廣西工學(xué)院學(xué)報(bào),2005(4):6-9.
[2]王黎明,夏立,邵英,等.CAN現(xiàn)場(chǎng)總線系統(tǒng)的設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[3]楊春杰,王曙光,亢紅波,等.CAN總線技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.
[4]楊戰(zhàn)輝,蒙曉鋒,鹿曉東,等.GPS精密單點(diǎn)測(cè)量解算方法應(yīng)用[J].測(cè)繪技術(shù)裝備,2010(3):28-30.
[5]雷建朝,郭強(qiáng),姜仕利.GPS測(cè)量與數(shù)據(jù)處理中一些問題的研究與總結(jié)[J].西北水電,2006(3):15-17.
[6]趙軍祥,張其善,常青,等.高動(dòng)態(tài)GPS衛(wèi)星信號(hào)模擬器關(guān)鍵技術(shù)分析及應(yīng)用[J].電訊技術(shù),2003(3):49-54.
[7]劉美生.全球定位系統(tǒng)及其應(yīng)用綜述(三)——GPS的應(yīng)用[J].中國(guó)測(cè)試技術(shù),2007(1):5-11.
[8]鮑可進(jìn).C8051F單片機(jī)原理及應(yīng)用[M].北京:中國(guó)電力出版社,2006.
[9]吳志玲,靳鴻,馮彥君.基于C8051F500的CAN總線通信系統(tǒng)的節(jié)點(diǎn)設(shè)計(jì)[J].電子測(cè)試,2011(8):36-37,99.
[10]于曉光.CAN總線隔離器的設(shè)計(jì)與應(yīng)用[J].電子設(shè)計(jì)工程,2009(12):1-4.
[11]原奕.Visual C++實(shí)踐與提高——數(shù)據(jù)庫開發(fā)與工程應(yīng)用[M].北京:中國(guó)鐵道出版社,2006:277-278.