《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業(yè)界動態(tài) > CAN總線行車記錄儀設計

CAN總線行車記錄儀設計

2017-05-31

  CAN總線(CAN.bus)是一種串行多主站控制器局域網總線,其主要原理是把車輛上相關控制器都聯系起來,實現發(fā)動機控制器,變速箱控制器,ABS控制器,車身控制器,儀表及其它控制器的通信。CAN—bus系統(tǒng)除了使整車線束更少、更井井有條,整車重量更輕外,更大的好處是做到了全車信息即時共享。

  本文探討基于CAN總線的行車記錄儀設計和實現,詳細闡述了系統(tǒng)的整體結構、硬件電路設計、軟件設計流程。所開發(fā)的行車記錄儀用于在車輛行駛過程中實時采集汽車CAN總線數據信息,并將數據存儲在u盤中,以u盤為載體傳輸給PC機,可運用PC機上的軟件對數據進行分析??朔艘酝F場數據采集系統(tǒng)必須有一臺計算機的模式,可實時了解汽車運行期間各種數據信息變化,同步記錄行駛狀況,在車輛長時間測試或行駛以后,記錄的數據用于分析車輛行駛性能以及各部件的運行情況,方便了標定和設計工作的進行。

  1 系統(tǒng)整體結構設計

  由于CAN串行通訊總線的良好特性,被廣泛地應用于現場數據采集系統(tǒng)、汽車制造業(yè)和航空工業(yè)等領域。本文所設計的基于CAN總線數據記錄儀是應用在奇瑞汽車A5車型上的,對整車CAN網絡上的節(jié)點數據進行采集和存儲。A5是第一款應用CAN bus總線系統(tǒng)的自主品牌國產轎車,其CAN—bus主要應用在傳動部,在車身部、ITS部和信息部等也有少量的應用。對A5這款首次使用CAN技術的車型進行實時數據采集,可了解汽車運行期問各種數據信息變化,對A5乃至后續(xù)所有車款的研發(fā)來說,都有著非常重要的意義。

  CAN總線行車記錄儀的整體結構框圖如圖1所示。

  CAN總線行車記錄儀工作時應掛接到汽車CAN總線上成為一個CAN節(jié)點,以便采集CAN數據信息。由圖1所示,該系統(tǒng)不僅采集車內的CAN總線消息,還可根據需要實時采集模擬信號量。液晶屏用來顯示采集的各路信號值,具有掉電保護功能,重新通電后,即可恢復顯示原有數據。采集到的數據除了用液晶屏實時顯示給用戶外,還可通過USB接口芯片CH375 將之存儲到u盤中,供實驗員拿回實驗室分析使用,如要實現存儲功能,按下存儲開關即可。

vehicleinformationrecorde01.jpg

  圖1 系統(tǒng)整體結構

  2 系統(tǒng)硬件設計

  根據系統(tǒng)的整體結構,硬件電路主要有如下幾個大模塊:主控制器模塊、液晶模塊、CAN驅動器模塊、電源模塊、CH375接口電路模塊。

  2.1 主控制器模塊

  系統(tǒng)CPU采用Freescale公司的MC9S12XD 系列單片機。它是控制和通信部分的核心,不僅負責系統(tǒng)初始化設置及報文接收,而且實現有關的數據判斷處理和顯示。片內集成了構成單片機控制系統(tǒng)和數據采集系統(tǒng)所需的幾乎全部模擬和數字外設及其它功能部件,其主要特點如下:

  (1)MC9S12XD系列帶有獨特的XGATE協(xié)處理器,本系統(tǒng)中CAN信號的接收是由中斷程序完成的,而中斷處理程序交給XGATE來處理,這樣將減輕CPU負荷,提高系統(tǒng)的反應速度。

  (2)帶有l(wèi)6個模數轉換通道,給采集模擬信號提供了硬件支持,并可編程選擇精確到10位精度。

  (3)帶有5個MSCAN模塊,內部集成有CAN控制器,對CAN 模塊的配置實質上轉化為了對單片機相應寄存器的配置,使用方便靈活。

  (4)背景調試模式BDM 的支持,使得芯片的調試極為方便,加快了產品開發(fā)周期。

  (5)豐富的中斷源,為系統(tǒng)在非操作系統(tǒng)支持下運行提供了充分的保障。

  2.2 液晶顯示模塊

  系統(tǒng)采用的是WYM19264液晶,分3屏顯示,每屏可顯示容量為64x64的點陣。該液晶外部接口采用20腳針式插座,與單片機的連接電路也比較簡單,其中片選信號CS1、CS2分別與單片機的PH6、PH5相連,控制信號RS、R/W、EN分別與PK4、PJ1、PJ0相連,8條數據線(DBO~DB7)則連接PB端口的8個引腳(PB0-PB7),實行并口傳輸。

  2.3 CAN驅動器模塊

  CAN驅動器接口芯片選用PAC82C250,它是CAN協(xié)議控制器和物理總線的接口, 主要是為汽車中高速通訊(高達1Mbps)應用而設計的。此器件對總線提供差分發(fā)送能力,對CAN控制器提供差動接收能力,具有抗汽車環(huán)境中的瞬間干擾而保護總線功能。其管腳8(Rs)允許選擇不同的工作模式:高速、待機、斜率控制,本系統(tǒng)中將管腳8接地,選用其高速模式。而RX、TX則與單片機CAN模塊引腳相連,本系統(tǒng)中選用的是CAN0模塊,即分別與RXCAN0、TXCAN0連接。

  2.4 電源模塊

  記錄儀電源取自12V車載蓄電池電源,該電源除供系統(tǒng)工作外,還擔負點火、照明、信號等設備的供電,電源波動大,干擾嚴重,由于汽車在行駛過程中,可能遇到路面狀況比較惡劣的情況,會出現記錄儀電源接口由于劇烈震動所造成的松動或接觸不良,因此電源模塊必須精心設計才能滿足需求。

  電源模塊電路簡圖如圖2所示,其中U1是由電池提供的6V備份電源,U2(主電源)是車載12V電源,該電源模塊被分成2路,經7805穩(wěn)壓后的+5v 電壓單獨給液晶供電,經4275轉換后的VCC給整個單片機及輔助電路供電。系統(tǒng)正常工作時,D1處于截止狀態(tài),備份電池不起作用,一旦失去主電源供給,則D1迅速導通,備份電源自動啟動為系統(tǒng)供電。

vehicleinformationrecorde02.jpg

  圖2 電源模塊

  電源模塊此種設計方案有2個原因,如下所示:

  (1)備用電池的采用。記錄儀存儲采集數據,即將采集數據按順序寫進為記錄文件所分配的簇中,當采集結束時實驗員斷開存儲開關或者因掉電而采集被迫終止,單片機都需要做關閉記錄文件這一重要處理。關閉文件就是將文件實際長度和采集數據記錄總數寫進文件相關頭中。假如不正確關閉文件,或者因為掉電來不及關閉文件,Windows將無法找到文件的末尾,PC機軟件也因找不到采集數據的末尾而無法打開文件,此時,所做的采集工作將因此失敗。為了防止因掉電而無法關閉文件,本系統(tǒng)采用了備用電池。

  (2)單片機和液晶單獨供電。主電源正常工作時,整個系統(tǒng)的電源由主電源供給,一旦主電源掉電,備用電池只給單片機供電,供單片機完成關閉文件處理,而液晶因掉電而不工作。因液晶的功耗較大而備份電池電力有限,此種分開2路的供電方式不但能提供關閉文件的電源需要,而且還節(jié)約了電池電力。

  當然,備份電池不可能長時間使用,只能用于系統(tǒng)緊急關閉文件處理,為此設計了電源檢測信號,一旦檢測出主電源掉電,既啟用蜂鳴器和發(fā)光二極管來提醒用戶電源供電不正常,需工作人員檢查記錄儀電源接頭。

  2.5 CI-I375接口電路模塊

  本系統(tǒng)中的USB 接口芯片選用的南京沁恒電子公司的CH375,該芯片支持主機方式和設備方式.它具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機的系統(tǒng)總線上。還內置了處理Mass—Storage海量存儲設備的專用通訊協(xié)議的固件,外部單片機可以直接以扇區(qū)為基本單位讀寫u盤。

  讀選通信號RD#、寫選通信號WR#、片選信號CS#均是輸入信號且低電平有效,CS#是中斷請求輸出信號,也是低電平有效。而A0信號用來區(qū)分命令和數據,當A0=1時可以寫命令,當A0=0時可以讀寫數據,8位雙向數據總線與單片機的PA端口(PA0-PA7)相連,并口傳輸。其硬件上支持自動檢測USB設備連接功能,在主機方式下正常連接時,其ACT#腳輸出低電平,因此使ACT# I腳外接上拉電阻并串聯一發(fā)光二極管,可用來標示USB設備是否正常連接。

  在布PCB時,盡量使7805芯片布在板子邊緣且散熱比較好的地方,并且遠離液晶屏幕。因為在實際過程中,經過測試,7805芯片產生大量的熱量,如果長時間使用并且靠近液晶屏幕,將會影響液晶的顯示效果。另外,盡量使電源模塊的發(fā)光二極管靠近電源接口,USB模塊的發(fā)光二極管靠近USB模塊,并且以顏色區(qū)分開,方便用戶觀察。

  3 系統(tǒng)軟件設計

  在軟件設計方面采用模塊化設計思想和中斷調用方案,系統(tǒng)上電后首先進行初始化,對CAN總線上的信息采用中斷方式接收,由XGATE處理中斷程序,系統(tǒng)每接收一幀信息,便產生一次中斷來觸發(fā)微處理器進入中斷,在中斷服務程序中讀取該幀數據并暫存在緩存里。此緩存是XGATE和CPU共享的,由于通過CH375讀寫u盤的數據單位是一個扇區(qū),所以本系統(tǒng)將緩存設置為一個扇區(qū)(512Byte),當緩存滿時,由主程序將數據轉存到U盤中。

  系統(tǒng)軟件部分主要功能模塊包括:主程序模塊,初始化模塊,中斷處理模塊。

  3.1 主程序設計

  主程序流程圖如圖3所示。

  由流程圖3可看出,在整個程序運行期間,采用查詢的方式來檢測電源是否掉電。由于車內CAN 信號發(fā)包頻率均為幾十毫秒,如果液晶屏實時顯示數據的話,屏幕刷新太快,不易于觀察,因此本系統(tǒng)設置當緩存接收滿時,刷新一次屏幕數據,這樣的刷新頻率足以滿足用戶的需要,無論存儲開關是否閉和,液晶屏均提供顯示服務。記錄過程中突然掉電或者用戶斷開存儲開關,都將導致當前所記錄文件的關閉,即修改文件指針和文件長度等與文件系統(tǒng)相關的處理。

vehicleinformationrecorde03.jpg

  圖3 主程序流程

  3.2 初始化模塊

  (1)CAN模塊的初始化

  對CAN控制器的初始化設計是重點,必須對寫入的每個寄存器進行仔細全面的考慮,如果初始化沒成功,系統(tǒng)將無法正常工作。本記錄儀實質上是作為整個CAN 網絡的一個增加節(jié)點參與通信,網絡內的所有CAN節(jié)點必須同步。要進行CAN模塊的初始化,首先必須進入初始化模式,通過設置IN—ITRQ(CANCTLO)位發(fā)起請求,并得到INITAK(CANCTL1)的回應后,MSCAN進入初始化模式。在此模式下,通常是對CAN一BTR0、CANBTR1、CANIDAR、CANIDMR等寄存器進行配置。CANBTR0決定波特率預分頻和同步跳轉寬度的數值,CAN—BTR1決定周期的寬度、采樣點的位置以及在每個采樣點進行采樣的次數,根據具體CAN總線通信速率設置適當的值。CANIDAR、CANIDMR共同決定哪些ID幀需要接收,在本系統(tǒng)中,CAN總線記錄儀的目的是接收CAN線數據全部報文,因而設置CANIDMR為0xFFh,即所有位都不屏蔽,所有的幀都接收。將需要配置的寄存器設置好后,需退出初始化模式,參與CAN總線通信。

  (2)CH375的初始化

  主要是設置USB的工作模式,通過CH375提供的SETUSB MODE命令,設置其工作模式代碼為06H,即USB主機方式下,自動檢測USB設備是否連接,當USB設備連接或者斷開時都會產生中斷通知外部單片機,并自動定時產生USB幀周期開始包SOF發(fā)送給已經連接的USB設備。通常情況下,設置USB工作模式在20微秒時間內完成,完成后輸出操作狀態(tài)。通過讀PA端口得到操作狀態(tài),查看是否設置成功。如不成功,表明CH375出錯,例如芯片型號錯或者處于串口方式或者不支持,則無法進行u盤的讀寫。

vehicleinformationrecorde04.jpgvehicleinformationrecorde05.jpg

  3.3 中斷處理模塊

  中斷模塊即接受中斷,由于本系統(tǒng)設置所有的幀都被接收,因而必須在中斷處理函數里對接收到的幀進行判斷,并進行“解碼”。現就實例來詳細說明“解碼”的過程,如表1所示,列舉了A5車內2個重要的CAN消息,其ID均是采用標準格式(11位),數據單元占64位(8字節(jié))。中斷接收到數據幀后,首先取其ID號,對于標準幀格式來說,IDRO存放的是IDIO~ID3,IDR1的高3位存放的是ID2~ID0,因此ID號=(IDR0>5),其中ID號設置為int型變量。得到ID號后,將根據消息列表進行消息解碼,例如,假設取得的ID號是0xFA,這是來自發(fā)動機控制單元EMS(enginemanagement system)的消息幀,我們將從它的64位數據單元中取出所關心的數據,其中64位數據在結果寄存器DSR0-DSR7中的存放順序如表2所示。假設我們從此幀中取出如下3個數據:Engine speedRPM,M eanEfectiveTorque,DriveRequest。

vehicleinformationrecorde06.jpg

  表3列出了它們在64位數據單元中的起始位和所占位數。在此對數據位數為16的Engine speed RPM 稍作解釋,由于選用的單片機采用的是Motorola大端模式,因此其最低位是DSR1中的第8位,而不是DSR0中的第0位,而我們的上層PC機數據分析軟件是Intel格式的,于是需要對多字節(jié)數據進行大小端轉換。下面給出函數語句示例:

  Engine speed RPM DSR1;

  Engine speed RPM =(Engine speed RPM<<8)IDSR0;

  M eanEfectiveTorque=DSR2;

  DriverRequest=DSR3;

  對多字節(jié)數據需進行大小端轉換,而單字節(jié)數據則是直接拷貝。將采集的數據存儲在緩存里,然后結束本次中斷。

  3.4 其它模塊

  液晶模塊,對于需要固定顯示的部分,利用“預制畫面”以減少工作中通訊傳輸的負擔和重復性工作。讀寫u盤模塊,u盤中的數據都是以文件格式存儲的,單片機讀寫u盤則主要是根據FAT文件系統(tǒng)進行文件和目錄的各種操作,CH375提供了u盤文件級子程序庫,此庫支持FAT16和FAT32文件系統(tǒng),用戶只需調用此庫的各種API函數就可實現數據塊的讀寫。A/D轉換模塊,對控制寄存器5(ATDCTL5)的配置要慎重,因為對此寄存器的寫操作將中斷當前模數轉換序列并且開始一個新的轉換序列,建議將此寄存器放在前4個控制寄存器之后配置。

  4 結束語

  本系統(tǒng)所開發(fā)的行車記錄儀已成功的運用于A5車的3萬公里、5萬公里等各種路試,準確記錄了行車過程中的重要數據,對于研究人員進行性能分析、故障分析、以及標定工作提供了重要的數據依據。在已具備CAN 總線的車輛上使用基于CAN的行車記錄儀,可大幅度降低系統(tǒng)復雜度,并降低成本。對于不同的車型,只需軟件的少許修改而不需要更改硬件,使得記錄儀具有極高的靈活性和可移植性,從而廣泛應用于各種車型。


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。