基于CAN總線(xiàn)的行車(chē)記錄儀設(shè)計(jì)
CAN總線(xiàn)(CAN.bus)是一種串行多主站控制器局域網(wǎng)總線(xiàn),其主要原理是把車(chē)輛上相關(guān)控制器都聯(lián)系起來(lái),實(shí)現(xiàn)發(fā)動(dòng)機(jī)控制器,變速箱控制器,ABS控制器,車(chē)身控制器,儀表及其它控制器的通信。CAN—bus系統(tǒng)除了使整車(chē)線(xiàn)束更少、更井井有條,整車(chē)重量更輕外,更大的好處是做到了全車(chē)信息即時(shí)共享。
本文引用地址:http://m.butianyuan.cn/article/201611/320328.htm本文探討基于CAN總線(xiàn)的行車(chē)記錄儀設(shè)計(jì)和實(shí)現(xiàn),詳細(xì)闡述了系統(tǒng)的整體結(jié)構(gòu)、硬件電路設(shè)計(jì)、軟件設(shè)計(jì)流程。所開(kāi)發(fā)的行車(chē)記錄儀用于在車(chē)輛行駛過(guò)程中實(shí)時(shí)采集汽車(chē)CAN總線(xiàn)數(shù)據(jù)信息,并將數(shù)據(jù)存儲(chǔ)在u盤(pán)中,以u(píng)盤(pán)為載體傳輸給PC機(jī),可運(yùn)用PC機(jī)上的軟件對(duì)數(shù)據(jù)進(jìn)行分析。克服了以往現(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)必須有一臺(tái)計(jì)算機(jī)的模式,可實(shí)時(shí)了解汽車(chē)運(yùn)行期間各種數(shù)據(jù)信息變化,同步記錄行駛狀況,在車(chē)輛長(zhǎng)時(shí)間測(cè)試或行駛以后,記錄的數(shù)據(jù)用于分析車(chē)輛行駛性能以及各部件的運(yùn)行情況,方便了標(biāo)定和設(shè)計(jì)工作的進(jìn)行。
1 系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)
由于CAN串行通訊總線(xiàn)的良好特性,被廣泛地應(yīng)用于現(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)、汽車(chē)制造業(yè)和航空工業(yè)等領(lǐng)域。本文所設(shè)計(jì)的基于CAN總線(xiàn)數(shù)據(jù)記錄儀是應(yīng)用在奇瑞汽車(chē)A5車(chē)型上的,對(duì)整車(chē)CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)數(shù)據(jù)進(jìn)行采集和存儲(chǔ)。A5是第一款應(yīng)用CAN bus總線(xiàn)系統(tǒng)的自主品牌國(guó)產(chǎn)轎車(chē),其CAN—bus主要應(yīng)用在傳動(dòng)部,在車(chē)身部、ITS部和信息部等也有少量的應(yīng)用。對(duì)A5這款首次使用CAN技術(shù)的車(chē)型進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,可了解汽車(chē)運(yùn)行期問(wèn)各種數(shù)據(jù)信息變化,對(duì)A5乃至后續(xù)所有車(chē)款的研發(fā)來(lái)說(shuō),都有著非常重要的意義。
CAN總線(xiàn)行車(chē)記錄儀的整體結(jié)構(gòu)框圖如圖1所示。
CAN 總線(xiàn)行車(chē)記錄儀工作時(shí)應(yīng)掛接到汽車(chē)CAN總線(xiàn)上成為一個(gè)CAN節(jié)點(diǎn),以便采集CAN數(shù)據(jù)信息。由圖1所示,該系統(tǒng)不僅采集車(chē)內(nèi)的CAN總線(xiàn)消息,還可根據(jù)需要實(shí)時(shí)采集模擬信號(hào)量。液晶屏用來(lái)顯示采集的各路信號(hào)值,具有掉電保護(hù)功能,重新通電后,即可恢復(fù)顯示原有數(shù)據(jù)。采集到的數(shù)據(jù)除了用液晶屏實(shí)時(shí)顯示給用戶(hù)外,還可通過(guò)USB接口芯片CH375 將之存儲(chǔ)到u盤(pán)中,供實(shí)驗(yàn)員拿回實(shí)驗(yàn)室分析使用,如要實(shí)現(xiàn)存儲(chǔ)功能,按下存儲(chǔ)開(kāi)關(guān)即可。
圖1 系統(tǒng)整體結(jié)構(gòu)
2 系統(tǒng)硬件設(shè)計(jì)
根據(jù)系統(tǒng)的整體結(jié)構(gòu),硬件電路主要有如下幾個(gè)大模塊:主控制器模塊、液晶模塊、CAN驅(qū)動(dòng)器模塊、電源模塊、CH375接口電路模塊。
2.1 主控制器模塊
系統(tǒng)CPU采用Freescale公司的MC9S12XD 系列單片機(jī)。它是控制和通信部分的核心,不僅負(fù)責(zé)系統(tǒng)初始化設(shè)置及報(bào)文接收,而且實(shí)現(xiàn)有關(guān)的數(shù)據(jù)判斷處理和顯示。片內(nèi)集成了構(gòu)成單片機(jī)控制系統(tǒng)和數(shù)據(jù)采集系統(tǒng)所需的幾乎全部模擬和數(shù)字外設(shè)及其它功能部件,其主要特點(diǎn)如下:
(1)MC9S12XD系列帶有獨(dú)特的XGATE協(xié)處理器,本系統(tǒng)中CAN信號(hào)的接收是由中斷程序完成的,而中斷處理程序交給XGATE來(lái)處理,這樣將減輕CPU負(fù)荷,提高系統(tǒng)的反應(yīng)速度。
?。?)帶有l(wèi)6個(gè)模數(shù)轉(zhuǎn)換通道,給采集模擬信號(hào)提供了硬件支持,并可編程選擇精確到10位精度。
?。?)帶有5個(gè)MSCAN模塊,內(nèi)部集成有CAN控制器,對(duì)CAN 模塊的配置實(shí)質(zhì)上轉(zhuǎn)化為了對(duì)單片機(jī)相應(yīng)寄存器的配置,使用方便靈活。
?。?)背景調(diào)試模式BDM 的支持,使得芯片的調(diào)試極為方便,加快了產(chǎn)品開(kāi)發(fā)周期。
(5)豐富的中斷源,為系統(tǒng)在非操作系統(tǒng)支持下運(yùn)行提供了充分的保障。
2.2 液晶顯示模塊
系統(tǒng)采用的是WYM19264液晶,分3屏顯示,每屏可顯示容量為64x64的點(diǎn)陣。該液晶外部接口采用20腳針式插座,與單片機(jī)的連接電路也比較簡(jiǎn)單,其中片選信號(hào)CS1、CS2分別與單片機(jī)的PH6、PH5相連,控制信號(hào)RS、R/W、EN分別與PK4、PJ1、PJ0相連,8條數(shù)據(jù)線(xiàn) (DBO~DB7)則連接PB端口的8個(gè)引腳(PB0-PB7),實(shí)行并口傳輸。
2.3 CAN驅(qū)動(dòng)器模塊
CAN 驅(qū)動(dòng)器接口芯片選用PAC82C250,它是CAN協(xié)議控制器和物理總線(xiàn)的接口, 主要是為汽車(chē)中高速通訊(高達(dá)1Mbps)應(yīng)用而設(shè)計(jì)的。此器件對(duì)總線(xiàn)提供差分發(fā)送能力,對(duì)CAN控制器提供差動(dòng)接收能力,具有抗汽車(chē)環(huán)境中的瞬間干擾而保護(hù)總線(xiàn)功能。其管腳8(Rs)允許選擇不同的工作模式:高速、待機(jī)、斜率控制,本系統(tǒng)中將管腳8接地,選用其高速模式。而RX、TX則與單片機(jī)CAN模塊引腳相連,本系統(tǒng)中選用的是CAN0模塊,即分別與RXCAN0、TXCAN0連接。
2.4 電源模塊
記錄儀電源取自12V車(chē)載蓄電池電源,該電源除供系統(tǒng)工作外,還擔(dān)負(fù)點(diǎn)火、照明、信號(hào)等設(shè)備的供電,電源波動(dòng)大,干擾嚴(yán)重,由于汽車(chē)在行駛過(guò)程中,可能遇到路面狀況比較惡劣的情況,會(huì)出現(xiàn)記錄儀電源接口由于劇烈震動(dòng)所造成的松動(dòng)或接觸不良,因此電源模塊必須精心設(shè)計(jì)才能滿(mǎn)足需求。
電源模塊電路簡(jiǎn)圖如圖2所示,其中U1是由電池提供的6V備份電源,U2(主電源)是車(chē)載12V電源,該電源模塊被分成2路,經(jīng)7805穩(wěn)壓后的+5v 電壓?jiǎn)为?dú)給液晶供電,經(jīng)4275轉(zhuǎn)換后的VCC給整個(gè)單片機(jī)及輔助電路供電。系統(tǒng)正常工作時(shí),D1處于截止?fàn)顟B(tài),備份電池不起作用,一旦失去主電源供給,則D1迅速導(dǎo)通,備份電源自動(dòng)啟動(dòng)為系統(tǒng)供電。
圖2 電源模塊
電源模塊此種設(shè)計(jì)方案有2個(gè)原因,如下所示:
?。?) 備用電池的采用。記錄儀存儲(chǔ)采集數(shù)據(jù),即將采集數(shù)據(jù)按順序?qū)戇M(jìn)為記錄文件所分配的簇中,當(dāng)采集結(jié)束時(shí)實(shí)驗(yàn)員斷開(kāi)存儲(chǔ)開(kāi)關(guān)或者因掉電而采集被迫終止,單片機(jī)都需要做關(guān)閉記錄文件這一重要處理。關(guān)閉文件就是將文件實(shí)際長(zhǎng)度和采集數(shù)據(jù)記錄總數(shù)寫(xiě)進(jìn)文件相關(guān)頭中。假如不正確關(guān)閉文件,或者因?yàn)榈綦妬?lái)不及關(guān)閉文件,Windows將無(wú)法找到文件的末尾,PC機(jī)軟件也因找不到采集數(shù)據(jù)的末尾而無(wú)法打開(kāi)文件,此時(shí),所做的采集工作將因此失敗。為了防止因掉電而無(wú)法關(guān)閉文件,本系統(tǒng)采用了備用電池。
(2)單片機(jī)和液晶單獨(dú)供電。主電源正常工作時(shí),整個(gè)系統(tǒng)的電源由主電源供給,一旦主電源掉電,備用電池只給單片機(jī)供電,供單片機(jī)完成關(guān)閉文件處理,而液晶因掉電而不工作。因液晶的功耗較大而備份電池電力有限,此種分開(kāi)2路的供電方式不但能提供關(guān)閉文件的電源需要,而且還節(jié)約了電池電力。
當(dāng)然,備份電池不可能長(zhǎng)時(shí)間使用,只能用于系統(tǒng)緊急關(guān)閉文件處理,為此設(shè)計(jì)了電源檢測(cè)信號(hào),一旦檢測(cè)出主電源掉電,既啟用蜂鳴器和發(fā)光二極管來(lái)提醒用戶(hù)電源供電不正常,需工作人員檢查記錄儀電源接頭。
2.5 CI-I375接口電路模塊
本系統(tǒng)中的USB 接口芯片選用的南京沁恒電子公司的CH375,該芯片支持主機(jī)方式和設(shè)備方式.它具有8位數(shù)據(jù)總線(xiàn)和讀、寫(xiě)、片選控制線(xiàn)以及中斷輸出,可以方便地掛接到單片機(jī)的系統(tǒng)總線(xiàn)上。還內(nèi)置了處理Mass—Storage海量存儲(chǔ)設(shè)備的專(zhuān)用通訊協(xié)議的固件,外部單片機(jī)可以直接以扇區(qū)為基本單位讀寫(xiě)u盤(pán)。
讀選通信號(hào)RD#、寫(xiě)選通信號(hào)WR#、片選信號(hào)CS#均是輸入信號(hào)且低電平有效,CS#是中斷請(qǐng)求輸出信號(hào),也是低電平有效。而A0信號(hào)用來(lái)區(qū)分命令和數(shù)據(jù),當(dāng)A0=1時(shí)可以寫(xiě)命令,當(dāng)A0=0時(shí)可以讀寫(xiě)數(shù)據(jù),8位雙向數(shù)據(jù)總線(xiàn)與單片機(jī)的PA端口(PA0-PA7)相連,并口傳輸。其硬件上支持自動(dòng)檢測(cè) USB設(shè)備連接功能,在主機(jī)方式下正常連接時(shí),其ACT#腳輸出低電平,因此使ACT# I腳外接上拉電阻并串聯(lián)一發(fā)光二極管,可用來(lái)標(biāo)示USB設(shè)備是否正常連接。
在布PCB時(shí),盡量使7805芯片布在板子邊緣且散熱比較好的地方,并且遠(yuǎn)離液晶屏幕。因?yàn)樵趯?shí)際過(guò)程中,經(jīng)過(guò)測(cè)試,7805芯片產(chǎn)生大量的熱量,如果長(zhǎng)時(shí)間使用并且靠近液晶屏幕,將會(huì)影響液晶的顯示效果。另外,盡量使電源模塊的發(fā)光二極管靠近電源接口,USB模塊的發(fā)光二極管靠近USB模塊,并且以顏色區(qū)分開(kāi),方便用戶(hù)觀察。
3 系統(tǒng)軟件設(shè)計(jì)
在軟件設(shè)計(jì)方面采用模塊化設(shè)計(jì)思想和中斷調(diào)用方案,系統(tǒng)上電后首先進(jìn)行初始化,對(duì) CAN總線(xiàn)上的信息采用中斷方式接收,由XGATE處理中斷程序,系統(tǒng)每接收一幀信息,便產(chǎn)生一次中斷來(lái)觸發(fā)微處理器進(jìn)入中斷,在中斷服務(wù)程序中讀取該幀數(shù)據(jù)并暫存在緩存里。此緩存是XGATE和CPU共享的,由于通過(guò)CH375讀寫(xiě)u盤(pán)的數(shù)據(jù)單位是一個(gè)扇區(qū),所以本系統(tǒng)將緩存設(shè)置為一個(gè)扇區(qū) (512Byte),當(dāng)緩存滿(mǎn)時(shí),由主程序?qū)?shù)據(jù)轉(zhuǎn)存到U盤(pán)中。
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論