《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計
基于CAN總線的重型卡車嵌入式車載儀表系統(tǒng)設(shè)計
來源:電子技術(shù)應(yīng)用2010年第12期
王雪梅, 吳曉娜, 倪文波
西南交通大學(xué) 機械工程學(xué)院, 四川 成都610031
摘要: 設(shè)計了基于CAN總線的重型卡車車載網(wǎng)絡(luò)系統(tǒng)。該網(wǎng)絡(luò)系統(tǒng)由牽引車網(wǎng)段和拖車網(wǎng)段組成,中間通過橋接設(shè)備相互連接。主橋接設(shè)備是整個網(wǎng)絡(luò)系統(tǒng)的核心,以嵌入式微處理器S3C2410A為核心,完成了該主橋接設(shè)備的硬件結(jié)構(gòu)設(shè)計和基于Linux的監(jiān)測、顯示軟件設(shè)計。
中圖分類號:TP216
文獻標(biāo)識碼:B
文章編號: 0258-7998(2010)12-0082-04
Design of heavy-duty truck embedded instrument system based on CAN bus
WANG Xue Mei, WU Xiao Na, NI Wen Bo
School of Mechanical Engineering, Southwest Jiaotong University, Chengdu 610031,China
Abstract: Vehicle network system based on CAN bus was designed. The system consists of tractor segment and trailer segment, between which is bridge devices. Bridge master not only is main control device of tractor, but also is key of connection with trailer. Bridge master adopted S3C2410A embedded microprocessor. On the basis of the design of hardware, measurement software based on Linux embedded operation system is also programmed.
Key words : CAN bus; embedded technique; heavy-duty truck

    重型卡車因其具有運輸量大、運輸成本低等特點,在工程建設(shè)、貨物運輸、城市垃圾清運等方面得到了越來越多的應(yīng)用。但近年來重型卡車行車時引起的交通事故頻繁發(fā)生,給人民生命財產(chǎn)安全造成了巨大損失。隨著汽車電子技術(shù)的快速發(fā)展,基于CAN總線的重型卡車車載網(wǎng)絡(luò)技術(shù)已成為保證重型卡車可靠、安全運行的一種有效技術(shù)措施[1]。采用分布式網(wǎng)絡(luò)控制,不僅可以減少線束,而且能夠提高各電子控制系統(tǒng)的運行可靠性,實現(xiàn)各子系統(tǒng)之間的資源共享和在線故障診斷。
    目前,國外基于CAN總線技術(shù)和J1939協(xié)議標(biāo)準(zhǔn)的重型卡車網(wǎng)絡(luò)系統(tǒng)的研究己經(jīng)進入商用化階段,取得了顯著的社會經(jīng)濟效益[2]。在國內(nèi),一汽、上汽和中國重汽等集團公司相繼都在其不同型號的重卡上采用CAN總線技術(shù)。但目前國內(nèi)還沒有自主知識產(chǎn)權(quán)的成熟產(chǎn)品,基本上還是采用直接引進國外著名汽車電子供應(yīng)商的產(chǎn)品的方式,很難掌握其關(guān)鍵技術(shù),嚴(yán)重阻礙了我國重型卡車車載網(wǎng)絡(luò)技術(shù)的發(fā)展[1]。
    本文設(shè)計了一個基于CAN總線的重型卡車車載儀表系統(tǒng)。該車載儀表系統(tǒng)是整個車載網(wǎng)絡(luò)系統(tǒng)的核心模塊,綜合應(yīng)用了CAN總線技術(shù)、嵌入式技術(shù)和智能儀器等技術(shù),主要實現(xiàn)車況信息的收集與處理、行駛數(shù)據(jù)記錄、通信和顯示等功能,不僅為駕駛員判斷是否發(fā)生故障以及發(fā)生故障的狀況提供了依據(jù),而且為運輸公司的經(jīng)營和事故處理提供依據(jù)。該研究工作對于我國汽車電子技術(shù),特別是重型卡車設(shè)備的電子化、網(wǎng)絡(luò)化發(fā)展,參與國際競爭具有積極的促進作用。
1 重型卡車車載網(wǎng)絡(luò)系統(tǒng)總體設(shè)計
    重型卡車通常由牽引車和拖車組成。由于牽引車要掛接一個或多個拖車,并可能需要頻繁地卸載和加掛拖車,因而應(yīng)在牽引車、拖車內(nèi)各自采用單獨的網(wǎng)段,由多網(wǎng)段組成的網(wǎng)絡(luò)來支持系統(tǒng)工作。如圖1所示是本文設(shè)計的基于CAN總線的重型卡車車載網(wǎng)絡(luò)系統(tǒng)的拓?fù)浣Y(jié)構(gòu),它由牽引車網(wǎng)段和拖車網(wǎng)段組成。當(dāng)存在多個網(wǎng)段時,必須有相應(yīng)的橋接設(shè)備提供從一個網(wǎng)段到另一個網(wǎng)段的消息傳遞功能。各網(wǎng)段的信息通過橋接設(shè)備進行報文的轉(zhuǎn)發(fā)、過濾、地址轉(zhuǎn)換和重新打包等,從而減少每個子網(wǎng)的數(shù)據(jù)信息流量,使每個子網(wǎng)工作更有效,也提高了整個網(wǎng)絡(luò)的效率。
    圖1中的網(wǎng)絡(luò)互連ECU即為實現(xiàn)牽引車網(wǎng)段和拖車網(wǎng)段互聯(lián)的橋接設(shè)備,牽引車端的是主橋接設(shè)備(Bridge Master),拖車端的是從橋接設(shè)備(Bridge Slave)。在牽引車網(wǎng)段和拖車網(wǎng)段內(nèi),各個電子控制單元ECU通過CAN總線與網(wǎng)絡(luò)互連ECU連接,構(gòu)成主從式分布式系統(tǒng),網(wǎng)橋設(shè)備作為主節(jié)點,各個電子控制單元ECU作為從節(jié)點。主節(jié)點向從節(jié)點發(fā)出命令幀,從節(jié)點接收到命令幀后向主節(jié)點發(fā)送響應(yīng)幀,從而實現(xiàn)數(shù)據(jù)交換。網(wǎng)橋具有兩個CAN通信端口,一方面可以連接同一網(wǎng)段中各個電子控制單元ECU,另一方面可以實現(xiàn)牽引車和拖車之間的報文轉(zhuǎn)發(fā)。牽引車的網(wǎng)橋周期地輪詢拖車系統(tǒng)中的網(wǎng)橋,當(dāng)拖車網(wǎng)橋接收到輪詢消息時,開始對其網(wǎng)段中的各個電子控制單元ECU進行監(jiān)測,接收電子控制單元ECU發(fā)送的報文信息,并將拖車網(wǎng)段中生成的報文傳到牽引車網(wǎng)橋。如果拖車系統(tǒng)已經(jīng)卸載,牽引車的網(wǎng)段仍然能正常工作,連接拖車網(wǎng)橋的CAN網(wǎng)絡(luò)處于等待狀態(tài),一旦拖車系統(tǒng)被掛接上,便開始對其進行輪詢檢測。


2 嵌入式車載儀表硬件結(jié)構(gòu)設(shè)計
     位于牽引車端的網(wǎng)絡(luò)互聯(lián)ECU,即主橋接設(shè)備是整個網(wǎng)絡(luò)系統(tǒng)的核心。它不僅是牽引車的主控設(shè)備,也是連接后面的拖車系統(tǒng)的關(guān)鍵設(shè)備,整個網(wǎng)絡(luò)系統(tǒng)的信息在此匯集、處理、存儲和顯示,據(jù)此可以判斷發(fā)動機的燃油液位是否過低、發(fā)動機冷卻液溫度是否過高、發(fā)動機機油壓力是否過低以及車燈是否發(fā)生故障,將這些故障信息以圖形的方式顯示出來,使駕駛員能夠隨時全面地監(jiān)測卡車運行狀態(tài)。
    網(wǎng)絡(luò)互連ECU采用Samsung公司的S3C2410作為微處理器。S3C2410是一款低價格、低功耗、高性能的16/32 bit且具有ARM920T內(nèi)核的微處理器。主頻203 MHz,處理能力完全滿足該系統(tǒng)的需要,并且能夠方便地移植Linux操作系統(tǒng),為設(shè)計具有良好人機交互界面的車載儀表系統(tǒng)創(chuàng)造了條件。
    整個硬件電路主要包括電源電路、復(fù)位電路、時鐘電路、存儲器擴展電路、液晶顯示電路和兩路CAN通信接口電路,其基本結(jié)構(gòu)如圖2所示。

    系統(tǒng)采用SJA1000 CAN控制器和PCA82C250總線收發(fā)器設(shè)計CAN通信接口。SJA1000是PHILIPS公司推出的一款CAN通信控制器,支持CAN2.0A、2.0B協(xié)議。由于其設(shè)計是基于早期的80C51單片機應(yīng)用,內(nèi)嵌鎖存器可以使80C51單片機無需任何外接器件就可以直接連接。但是,S3C2410A的地址總線和數(shù)據(jù)總線是分開的,不能直接連接SJA1000,所以需要模擬出類似80C51單片機的外部存儲器時序才能使用。圖3電路中,使用了一個“或”門74LS32和一個“或非”門74LS02的組合,配合地址總線,首先模擬出一個ALE(地址鎖存信號),把SJA1000的內(nèi)部寄存器地址寫入鎖存器,然后再向SJA1000內(nèi)部寄存器寫入數(shù)據(jù)。這樣,使用ARM的兩條外部存儲器訪問指令,就可以模擬出SJA1000所需要的時序了。利用S3C2410A的片選信號nGCS4和地址總線LADDR2,經(jīng)過“或非”門模擬出的SJA1000的物理端口地址為0x20000008,片選信號nGCS4和地址總線LADDR3,經(jīng)過 “或”門,模擬出的SJA1000的數(shù)據(jù)端口地址為0x20000004。

3 嵌入式車載儀表軟件設(shè)計
3.1 嵌入式Linux下CAN設(shè)備驅(qū)動程序開發(fā)

    網(wǎng)絡(luò)互連ECU在Linux系統(tǒng)下使用CAN通信技術(shù),因此需設(shè)計基于Linux的CAN設(shè)備驅(qū)動程序。
  設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和機器硬件之間的接口。Linux內(nèi)核有三種類型的設(shè)備驅(qū)動程序:字符設(shè)備驅(qū)動程序、塊設(shè)備驅(qū)動程序和網(wǎng)絡(luò)設(shè)備驅(qū)動程序[4]。SJA1000控制器屬于字符型設(shè)備,CAN設(shè)備驅(qū)動程序?qū)嶋H上是Linux內(nèi)核直接對SJA1000器件的初始化與讀寫操作。而這些操作方式其實就是一些標(biāo)準(zhǔn)的系統(tǒng)調(diào)用,如open()、read()、write()、close()等。定義把系統(tǒng)調(diào)用和驅(qū)動程序關(guān)聯(lián)起來的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)file_operations,結(jié)構(gòu)體中的每一個成員都是一個函數(shù)指針,實現(xiàn)了對于不同操作的函數(shù)跳轉(zhuǎn)功能。具體的聲明如下:
    struct file_operations sja1000_can_fops =
    {
        owner: THIS_MODULE,
         ioctl: can_ioctl,                  //設(shè)置通信參數(shù)
         open: can_open, //完成SJA1000初始化,中斷申請,
                                      增加次數(shù)計數(shù)器的使用次數(shù)
         write: can_write,                       //發(fā)送數(shù)據(jù)
        read:  can_read,                       //接收數(shù)據(jù)
         release : can_release,   //關(guān)閉CAN設(shè)備,關(guān)閉中斷,
                                            減少次數(shù)計數(shù)器的使用次數(shù)
    };
    驅(qū)動程序加載到內(nèi)核中時,首先運行驅(qū)動程序的初始化函數(shù),然后等待系統(tǒng)調(diào)用在file_operations結(jié)構(gòu)中定義的相關(guān)函數(shù),實現(xiàn)對設(shè)備的操作。CAN設(shè)備的初始化函數(shù)負(fù)責(zé)創(chuàng)建CAN設(shè)備文件,注冊CAN設(shè)備驅(qū)動程序。
    對于字符設(shè)備,Linux通過調(diào)用register_chrdev()向系統(tǒng)注冊;卸載驅(qū)動時,注銷設(shè)備函數(shù)為unregister_chrdev()。設(shè)備驅(qū)動程序一般以模塊形式加入內(nèi)核,使用module_init和module_exit宏對模塊初始化函數(shù)can_init()和模塊清除函數(shù)can_cleanup()進行標(biāo)記(通常在文件末尾)。程序如下:
  module_init(can_init);
  module_exit(can_cleanup);
    驅(qū)動程序編寫完成并編譯通過后,可使用命令:#insmod can_sja1000_dev.ko進行動態(tài)加載。加載后,用戶程序就可以通過文件直接操作CAN控制器,實現(xiàn)CAN總線通信。使用驅(qū)動程序完成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采集的卡車運行狀態(tài)數(shù)據(jù)到來時,中斷被觸發(fā),喚醒處于睡眠狀態(tài)的進程,接收數(shù)據(jù)處理函數(shù)將從SJA1000控制器讀取數(shù)據(jù)到接收緩沖區(qū),用戶通過系統(tǒng)調(diào)用讀取到完整的數(shù)據(jù)。

3.2 基于MiniGUI的車載儀表顯示程序設(shè)計
    MiniGUI是嵌入式圖形用戶界面系統(tǒng),它通過窗口系統(tǒng)來管理應(yīng)用程序在屏幕上的顯示[5]。本系統(tǒng)的人機界面包含的窗口類型有:對話框、按鈕、靜態(tài)框、位圖和填充條,使用對話框作為主窗口,基于MiniGUI人機界面的程序流程圖如圖5所示。

    本系統(tǒng)的圖形用戶界面主要顯示車速、轉(zhuǎn)速、水溫、油壓、燃油量、車內(nèi)溫度,冷卻水溫度過低、油壓過低、燃油過低報警信號和大燈、尾燈、左右轉(zhuǎn)向燈、制動燈等燈光信號。使用MiniGUI的按鈕通知消息MSG_COMMOND,該消息是在狀態(tài)監(jiān)測按鈕按下后發(fā)送到窗口過程函數(shù),執(zhí)行CAN通信子程序,接收各電子控制單元ECU上傳的卡車運行狀態(tài)信息,實時地顯示在液晶屏上,并以不同的顏色表示報警信號和車燈信號,使駕駛員能夠隨時全面地監(jiān)測卡車的運行狀態(tài),提高卡車運行的安全性。
    本文針對我國重型卡車的發(fā)展現(xiàn)狀,在完成重型卡車車載網(wǎng)絡(luò)系統(tǒng)總體結(jié)構(gòu)設(shè)計的基礎(chǔ)上,對基于CAN總線的嵌入式車載儀表系統(tǒng)的軟硬件設(shè)計方法進行了詳細(xì)闡述。該系統(tǒng)能對重型卡車的車速、發(fā)動機轉(zhuǎn)速、水溫、油溫、油壓、燃油量以及車燈開關(guān)量等狀態(tài)信息進行實時監(jiān)測,及時有效地發(fā)現(xiàn)和識別卡車運行過程中發(fā)生的各種故障,對于保證卡車安全運行起到了重要作用。測試表明,本文所設(shè)計的重型卡車車載儀表系統(tǒng)工作性能穩(wěn)定、可靠,具有較好的人機界面。
參考文獻
[1] 位堂杰,劉金朝.HOWO重型載貨汽車的車載網(wǎng)絡(luò)系統(tǒng)[J]. 汽車電器,2009(1):1-3.
[2] FELLMETH P, L?魻FFLER T.Networking heavy-duty vehicles based on SAE J1939[J]. Vector Corporation,2008.
[3] 陽憲惠. 現(xiàn)場總線技術(shù)及其應(yīng)用(第2版)[M].北京:清華大學(xué)出版社,2008.
[4] 李俊.嵌入式Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[5] 周立功.ARM嵌入式MiniGUI初步與應(yīng)用開發(fā)范例[M]. 北京:北京航空航天大學(xué)出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品自拍三区| 国产亚洲a∨片在线观看| 亚洲欧美第一页| 日韩视频欧美视频| 亚洲国产视频a| 久久精品国产2020观看福利| 亚洲女性喷水在线观看一区| 一本高清dvd不卡在线观看| 亚洲黄色小视频| 亚洲国产日韩欧美在线图片| 亚洲福利小视频| 亚洲国产精品t66y| 亚洲国产精品悠悠久久琪琪| 禁断一区二区三区在线| 国产综合亚洲精品一区二| 国产一区二区| 国模私拍视频一区| 欧美不卡在线视频| 日韩视频在线免费| 久久精品九九| 欧美中文字幕在线| 久久精品123| 亚洲国产精品久久久久久女王| 欧美一区视频在线| 亚洲国产日韩综合一区| 亚洲精品国精品久久99热| 亚洲人成7777| 夜夜嗨网站十八久久| 一区二区欧美亚洲| 亚洲免费影院| 久久成人这里只有精品| 久久福利毛片| 另类尿喷潮videofree| 欧美暴力喷水在线| 欧美日韩国产精品一区二区亚洲| 一区二区三区精品| 性一交一乱一区二区洋洋av| 午夜一区在线| 亚洲欧洲另类国产综合| 亚洲毛片av在线| 亚洲在线视频网站| 久久gogo国模啪啪人体图| 久久理论片午夜琪琪电影网| 欧美1区2区3区| 欧美视频官网| 国产视频在线观看一区二区| 狠狠网亚洲精品| 亚洲日本久久| 免费成人在线观看视频| 亚洲第一色在线| 亚洲欧洲视频在线| 在线亚洲激情| 先锋影音久久| 亚洲国产成人av在线| 日韩一区二区精品视频| 亚洲免费在线观看| 久久亚洲综合| 欧美日韩国语| 好吊色欧美一区二区三区四区 | 亚洲网站啪啪| 午夜国产精品视频免费体验区| 久久精品中文字幕免费mv| 欧美成人一区二免费视频软件| 欧美视频国产精品| 国内精品视频666| 一区二区精品国产| 亚洲欧美制服中文字幕| 亚洲一区二区三区免费观看| 久久av红桃一区二区小说| 一本久久a久久精品亚洲| 欧美一区二区免费| 欧美精品免费在线| 国产亚洲精品自拍| 一区二区三区精品| 亚洲国产精品成人精品| 亚洲一区二区三区激情| 老司机精品视频网站| 国产精品白丝黑袜喷水久久久| 亚洲乱码日产精品bd| 久久精品国产亚洲5555| 欧美精品久久久久久久| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧洲一区二区在线观看| 午夜精品福利在线| 日韩视频一区二区三区在线播放免费观看| 亚洲欧美日韩天堂| 欧美日本在线视频| 在线观看日韩| 欧美一区二区三区免费视| 一本综合久久| 欧美电影免费观看| 国产在线观看91精品一区| 亚洲天堂免费观看| 99精品欧美一区二区三区综合在线| 欧美在线免费播放| 国产精品v日韩精品v欧美精品网站 | 国产亚洲人成a一在线v站| 日韩视频在线一区二区| 亚洲国产高潮在线观看| 欧美一区二区精品在线| 欧美揉bbbbb揉bbbbb| 亚洲国产精品福利| 久久精品亚洲一区二区| 久久国产日韩| 国产精品嫩草影院av蜜臀| 91久久在线| 亚洲国产专区校园欧美| 久久精品123| 国产精品一区三区| 亚洲午夜精品视频| 亚洲在线视频观看| 欧美午夜一区| 99香蕉国产精品偷在线观看| 99国产精品一区| 欧美激情精品久久久久| 在线观看日韩专区| 亚洲成色999久久网站| 亚洲精品国精品久久99热| 亚洲一区在线观看免费观看电影高清| 欧美激情一区二区在线 | 最新亚洲一区| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲精品中文字幕在线观看| 亚洲品质自拍| 欧美成人综合在线| 在线观看欧美亚洲| 亚洲人成毛片在线播放| 欧美成人一区在线| 亚洲精品视频在线看| 9色精品在线| 欧美午夜精品久久久| 亚洲天堂黄色| 欧美在线高清视频| 国产日韩久久| 亚洲国产91精品在线观看| 噜噜噜噜噜久久久久久91| 亚洲电影第1页| 99精品视频免费| 欧美性片在线观看| 亚洲自拍偷拍视频| 久久精品国产亚洲aⅴ| 国内精品久久久久伊人av| 女仆av观看一区| 狠狠色综合网站久久久久久久| 欧美在线视频a| 另类亚洲自拍| 午夜视频久久久久久| 欧美日韩另类视频| 一本色道久久99精品综合| 亚洲系列中文字幕| 国内在线观看一区二区三区| 中文国产亚洲喷潮| 欧美一级黄色录像| 国产一区二区三区高清播放| 亚洲第一天堂av| 欧美二区在线播放| 一区二区三区色| 久久久久久9999| 亚洲国产精品va在线观看黑人| 99国产精品久久久久老师| 欧美视频你懂的| 香蕉乱码成人久久天堂爱免费 | 久久久久久久久综合| 欧美日本在线播放| 亚洲一区二区三区在线| 久久精品视频一| 亚洲日本电影在线| 校园激情久久| 亚洲第一中文字幕在线观看| 亚洲小说区图片区| 国内精品亚洲| 亚洲视频在线视频| 国际精品欧美精品| 亚洲无限乱码一二三四麻| 国产亚洲精品bt天堂精选| 亚洲毛片在线| 国产日韩av在线播放| 亚洲乱码精品一二三四区日韩在线| 国产精品久久久久77777| 久久精品人人做人人综合| 欧美日韩在线一二三| 久久精品国产综合精品| 欧美午夜免费电影| 最新精品在线| 国产乱码精品一区二区三区忘忧草| 亚洲人成网站影音先锋播放| 国产精品欧美经典| 亚洲精品一区二区三区蜜桃久| 国产精品成人一区二区| 亚洲国产精品久久| 国产精品久久久久久久久久尿 | 欧美一级片一区| 亚洲人成在线播放| 久久精品国产综合精品| 日韩视频一区二区| 看片网站欧美日韩| 亚洲综合欧美| 欧美日韩三级电影在线| 亚洲韩国青草视频| 国产丝袜美腿一区二区三区|