基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計(jì)_第1頁
基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計(jì)_第2頁
基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計(jì)_第3頁
基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、    基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計(jì)摘要:實(shí)現(xiàn)了一種全集成可變帶寬中頻寬帶低通濾波器,討論分析了跨導(dǎo)放大器-電容(OTAC)連續(xù)時(shí)間型濾波器的結(jié)構(gòu)、設(shè)計(jì)和具體實(shí)現(xiàn),使用外部可編程電路對所設(shè)計(jì)濾波器帶寬進(jìn)行控制,并利用ADS軟件進(jìn)行電路設(shè)計(jì)和仿真驗(yàn)證。仿真結(jié)果表明,該濾波器帶寬的可調(diào)范圍為126 MHz,阻帶抑制率大于35 dB,帶內(nèi)波紋小于05 dB,采用18 V電源,TSMC 018m CMOS工藝庫仿真,功耗小于21 mW,頻響曲線接近理想狀態(tài)。關(guān)鍵詞:Butte摘  要:設(shè)計(jì)了基于CAN總線的重型卡車車載網(wǎng)絡(luò)系統(tǒng)。該網(wǎng)絡(luò)

2、系統(tǒng)由牽引車網(wǎng)段和拖車網(wǎng)段組成,中間通過橋接設(shè)備相互連接。主橋接設(shè)備是整個(gè)網(wǎng)絡(luò)系統(tǒng)的核心,以嵌入式微處理器S3C2410A為核心,完成了該主橋接設(shè)備的硬件結(jié)構(gòu)設(shè)計(jì)和基于Linux的監(jiān)測、顯示軟件設(shè)計(jì)。關(guān)鍵詞:CAN總線; 嵌入式技術(shù); 重型卡車    重型卡車因其具有運(yùn)輸量大、運(yùn)輸成本低等特點(diǎn),在工程建設(shè)、貨物運(yùn)輸、城市垃圾清運(yùn)等方面得到了越來越多的應(yīng)用。但近年來重型卡車行車時(shí)引起的交通事故頻繁發(fā)生,給人民生命財(cái)產(chǎn)安全造成了巨大損失。隨著汽車電子技術(shù)的快速發(fā)展,基于CAN總線的重型卡車車載網(wǎng)絡(luò)技術(shù)已成為保證重型卡車可靠、安全運(yùn)行的一種有效技術(shù)措施1。采用分布式網(wǎng)絡(luò)

3、控制,不僅可以減少線束,而且能夠提高各電子控制系統(tǒng)的運(yùn)行可靠性,實(shí)現(xiàn)各子系統(tǒng)之間的資源共享和在線故障診斷。    目前,國外基于CAN總線技術(shù)和J1939協(xié)議標(biāo)準(zhǔn)的重型卡車網(wǎng)絡(luò)系統(tǒng)的研究己經(jīng)進(jìn)入商用化階段,取得了顯著的社會經(jīng)濟(jì)效益2。在國內(nèi),一汽、上汽和中國重汽等集團(tuán)公司相繼都在其不同型號的重卡上采用CAN總線技術(shù)。但目前國內(nèi)還沒有自主知識產(chǎn)權(quán)的成熟產(chǎn)品,基本上還是采用直接引進(jìn)國外著名汽車電子供應(yīng)商的產(chǎn)品的方式,很難掌握其關(guān)鍵技術(shù),嚴(yán)重阻礙了我國重型卡車車載網(wǎng)絡(luò)技術(shù)的發(fā)展1。    本文設(shè)計(jì)了一個(gè)基于CAN總線的重型卡車車載儀表系統(tǒng)。

4、該車載儀表系統(tǒng)是整個(gè)車載網(wǎng)絡(luò)系統(tǒng)的核心模塊,綜合應(yīng)用了CAN總線技術(shù)、嵌入式技術(shù)和智能儀器等技術(shù),主要實(shí)現(xiàn)車況信息的收集與處理、行駛數(shù)據(jù)記錄、通信和顯示等功能,不僅為駕駛員判斷是否發(fā)生故障以及發(fā)生故障的狀況提供了依據(jù),而且為運(yùn)輸公司的經(jīng)營和事故處理提供依據(jù)。該研究工作對于我國汽車電子技術(shù),特別是重型卡車設(shè)備的電子化、網(wǎng)絡(luò)化發(fā)展,參與國際競爭具有積極的促進(jìn)作用。1 重型卡車車載網(wǎng)絡(luò)系統(tǒng)總體設(shè)計(jì)    重型卡車通常由牽引車和拖車組成。由于牽引車要掛接一個(gè)或多個(gè)拖車,并可能需要頻繁地卸載和加掛拖車,因而應(yīng)在牽引車、拖車內(nèi)各自采用單獨(dú)的網(wǎng)段,由多網(wǎng)段組成的網(wǎng)絡(luò)來支持系統(tǒng)工

5、作。如圖1所示是本文設(shè)計(jì)的基于CAN總線的重型卡車車載網(wǎng)絡(luò)系統(tǒng)的拓?fù)浣Y(jié)構(gòu),它由牽引車網(wǎng)段和拖車網(wǎng)段組成。當(dāng)存在多個(gè)網(wǎng)段時(shí),必須有相應(yīng)的橋接設(shè)備提供從一個(gè)網(wǎng)段到另一個(gè)網(wǎng)段的消息傳遞功能。各網(wǎng)段的信息通過橋接設(shè)備進(jìn)行報(bào)文的轉(zhuǎn)發(fā)、過濾、地址轉(zhuǎn)換和重新打包等,從而減少每個(gè)子網(wǎng)的數(shù)據(jù)信息流量,使每個(gè)子網(wǎng)工作更有效,也提高了整個(gè)網(wǎng)絡(luò)的效率。    圖1中的網(wǎng)絡(luò)互連ECU即為實(shí)現(xiàn)牽引車網(wǎng)段和拖車網(wǎng)段互聯(lián)的橋接設(shè)備,牽引車端的是主橋接設(shè)備(Bridge Master),拖車端的是從橋接設(shè)備(Bridge Slave)。在牽引車網(wǎng)段和拖車網(wǎng)段內(nèi),各個(gè)電子控制單元ECU通過CAN總線

6、與網(wǎng)絡(luò)互連ECU連接,構(gòu)成主從式分布式系統(tǒng),網(wǎng)橋設(shè)備作為主節(jié)點(diǎn),各個(gè)電子控制單元ECU作為從節(jié)點(diǎn)。主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)出命令幀,從節(jié)點(diǎn)接收到命令幀后向主節(jié)點(diǎn)發(fā)送響應(yīng)幀,從而實(shí)現(xiàn)數(shù)據(jù)交換。網(wǎng)橋具有兩個(gè)CAN通信端口,一方面可以連接同一網(wǎng)段中各個(gè)電子控制單元ECU,另一方面可以實(shí)現(xiàn)牽引車和拖車之間的報(bào)文轉(zhuǎn)發(fā)。牽引車的網(wǎng)橋周期地輪詢拖車系統(tǒng)中的網(wǎng)橋,當(dāng)拖車網(wǎng)橋接收到輪詢消息時(shí),開始對其網(wǎng)段中的各個(gè)電子控制單元ECU進(jìn)行監(jiān)測,接收電子控制單元ECU發(fā)送的報(bào)文信息,并將拖車網(wǎng)段中生成的報(bào)文傳到牽引車網(wǎng)橋。如果拖車系統(tǒng)已經(jīng)卸載,牽引車的網(wǎng)段仍然能正常工作,連接拖車網(wǎng)橋的CAN網(wǎng)絡(luò)處于等待狀態(tài),一旦拖車系統(tǒng)被掛

7、接上,便開始對其進(jìn)行輪詢檢測。2 嵌入式車載儀表硬件結(jié)構(gòu)設(shè)計(jì)     位于牽引車端的網(wǎng)絡(luò)互聯(lián)ECU,即主橋接設(shè)備是整個(gè)網(wǎng)絡(luò)系統(tǒng)的核心。它不僅是牽引車的主控設(shè)備,也是連接后面的拖車系統(tǒng)的關(guān)鍵設(shè)備,整個(gè)網(wǎng)絡(luò)系統(tǒng)的信息在此匯集、處理、存儲和顯示,據(jù)此可以判斷發(fā)動(dòng)機(jī)的燃油液位是否過低、發(fā)動(dòng)機(jī)冷卻液溫度是否過高、發(fā)動(dòng)機(jī)機(jī)油壓力是否過低以及車燈是否發(fā)生故障,將這些故障信息以圖形的方式顯示出來,使駕駛員能夠隨時(shí)全面地監(jiān)測卡車運(yùn)行狀態(tài)。    網(wǎng)絡(luò)互連ECU采用Samsung公司的S3C2410作為微處理器。S3C2410是一款低價(jià)格、低功

8、耗、高性能的16/32 bit且具有ARM920T內(nèi)核的微處理器。主頻203 MHz,處理能力完全滿足該系統(tǒng)的需要,并且能夠方便地移植Linux操作系統(tǒng),為設(shè)計(jì)具有良好人機(jī)交互界面的車載儀表系統(tǒng)創(chuàng)造了條件。    整個(gè)硬件電路主要包括電源電路、復(fù)位電路、時(shí)鐘電路、存儲器擴(kuò)展電路、液晶顯示電路和兩路CAN通信接口電路,其基本結(jié)構(gòu)如圖2所示。    系統(tǒng)采用SJA1000 CAN控制器和PCA82C250總線收發(fā)器設(shè)計(jì)CAN通信接口。SJA1000是PHILIPS公司推出的一款CAN通信控制器,支持CAN2.0A、2.0B協(xié)議。由于其設(shè)計(jì)

9、是基于早期的80C51單片機(jī)應(yīng)用,內(nèi)嵌鎖存器可以使80C51單片機(jī)無需任何外接器件就可以直接連接。但是,S3C2410A的地址總線和數(shù)據(jù)總線是分開的,不能直接連接SJA1000,所以需要模擬出類似80C51單片機(jī)的外部存儲器時(shí)序才能使用。圖3電路中,使用了一個(gè)“或”門74LS32和一個(gè)“或非”門74LS02的組合,配合地址總線,首先模擬出一個(gè)ALE(地址鎖存信號),把SJA1000的內(nèi)部寄存器地址寫入鎖存器,然后再向SJA1000內(nèi)部寄存器寫入數(shù)據(jù)。這樣,使用ARM的兩條外部存儲器訪問指令,就可以模擬出SJA1000所需要的時(shí)序了。利用S3C2410A的片選信號nGCS4和地址總線LADDR2

10、,經(jīng)過“或非”門模擬出的SJA1000的物理端口地址為0x20000008,片選信號nGCS4和地址總線LADDR3,經(jīng)過 “或”門,模擬出的SJA1000的數(shù)據(jù)端口地址為0x20000004。3 嵌入式車載儀表軟件設(shè)計(jì)3.1 嵌入式Linux下CAN設(shè)備驅(qū)動(dòng)程序開發(fā)    網(wǎng)絡(luò)互連ECU在Linux系統(tǒng)下使用CAN通信技術(shù),因此需設(shè)計(jì)基于Linux的CAN設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口。Linux內(nèi)核有三種類型的設(shè)備驅(qū)動(dòng)程序:字符設(shè)備驅(qū)動(dòng)程序、塊設(shè)備驅(qū)動(dòng)程序和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序4。SJA1000控制器屬于字符型設(shè)備,CAN設(shè)備驅(qū)動(dòng)程序

11、實(shí)際上是Linux內(nèi)核直接對SJA1000器件的初始化與讀寫操作。而這些操作方式其實(shí)就是一些標(biāo)準(zhǔn)的系統(tǒng)調(diào)用,如open()、read()、write()、close()等。定義把系統(tǒng)調(diào)用和驅(qū)動(dòng)程序關(guān)聯(lián)起來的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)file_operations,結(jié)構(gòu)體中的每一個(gè)成員都是一個(gè)函數(shù)指針,實(shí)現(xiàn)了對于不同操作的函數(shù)跳轉(zhuǎn)功能。具體的聲明如下:    struct file_operations sja1000_can_fops =            owner: THIS_MO

12、DULE,        ioctl: can_ioctl,                  /設(shè)置通信參數(shù)        open: can_open, /完成SJA1000初始化,中斷申請,              

13、60;                       增加次數(shù)計(jì)數(shù)器的使用次數(shù)        write: can_write,                    &#

14、160;  /發(fā)送數(shù)據(jù)        read:  can_read,                       /接收數(shù)據(jù)        release : can_release,   /關(guān)閉CAN設(shè)備,關(guān)閉中斷,    &

15、#160;                                       減少次數(shù)計(jì)數(shù)器的使用次數(shù)        驅(qū)動(dòng)程序加載到內(nèi)核中時(shí),首先運(yùn)行

16、驅(qū)動(dòng)程序的初始化函數(shù),然后等待系統(tǒng)調(diào)用在file_operations結(jié)構(gòu)中定義的相關(guān)函數(shù),實(shí)現(xiàn)對設(shè)備的操作。CAN設(shè)備的初始化函數(shù)負(fù)責(zé)創(chuàng)建CAN設(shè)備文件,注冊CAN設(shè)備驅(qū)動(dòng)程序。    對于字符設(shè)備,Linux通過調(diào)用register_chrdev()向系統(tǒng)注冊;卸載驅(qū)動(dòng)時(shí),注銷設(shè)備函數(shù)為unregister_chrdev()。設(shè)備驅(qū)動(dòng)程序一般以模塊形式加入內(nèi)核,使用module_init和module_exit宏對模塊初始化函數(shù)can_init()和模塊清除函數(shù)can_cleanup()進(jìn)行標(biāo)記(通常在文件末尾)。程序如下:module_init(can_in

17、it);module_exit(can_cleanup);    驅(qū)動(dòng)程序編寫完成并編譯通過后,可使用命令:#insmod can_sja1000_dev.ko進(jìn)行動(dòng)態(tài)加載。加載后,用戶程序就可以通過文件直接操作CAN控制器,實(shí)現(xiàn)CAN總線通信。使用驅(qū)動(dòng)程序完成CAN總線數(shù)據(jù)收發(fā)的原理如圖4所示。在系統(tǒng)初始化完畢后,發(fā)送命令幀給監(jiān)測系統(tǒng)的電子控制單元ECU,通過系統(tǒng)調(diào)用將命令幀從用戶空間拷貝到內(nèi)核空間,發(fā)送數(shù)據(jù)處理函數(shù)將內(nèi)核層的命令幀寫入SJA1000控制器;當(dāng)電子控制單元ECU采集的卡車運(yùn)行狀態(tài)數(shù)據(jù)到來時(shí),中斷被觸發(fā),喚醒處于睡眠狀態(tài)的進(jìn)程,接收數(shù)據(jù)處理函數(shù)將從

18、SJA1000控制器讀取數(shù)據(jù)到接收緩沖區(qū),用戶通過系統(tǒng)調(diào)用讀取到完整的數(shù)據(jù)。3.2 基于MiniGUI的車載儀表顯示程序設(shè)計(jì)    MiniGUI是嵌入式圖形用戶界面系統(tǒng),它通過窗口系統(tǒng)來管理應(yīng)用程序在屏幕上的顯示5。本系統(tǒng)的人機(jī)界面包含的窗口類型有:對話框、按鈕、靜態(tài)框、位圖和填充條,使用對話框作為主窗口,基于MiniGUI人機(jī)界面的程序流程圖如圖5所示。    本系統(tǒng)的圖形用戶界面主要顯示車速、轉(zhuǎn)速、水溫、油壓、燃油量、車內(nèi)溫度,冷卻水溫度過低、油壓過低、燃油過低報(bào)警信號和大燈、尾燈、左右轉(zhuǎn)向燈、制動(dòng)燈等燈光信號。使用MiniGUI的按鈕通知消息MSG_COMMOND,該消息是在狀態(tài)監(jiān)測按鈕按下后發(fā)送到窗口過程函數(shù),執(zhí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論