周慧(1979—),
女,漢族,講師,武漢理工大學(xué)自動(dòng)化學(xué)院碩士研究生,研究方向?yàn)槠嚲W(wǎng)絡(luò)技術(shù)。基金項(xiàng)目:湖北省數(shù)字制造重點(diǎn)實(shí)驗(yàn)室開放基金項(xiàng)目(SZ06-15)
摘要:采用CAN(Controller Area Network)構(gòu)建了汽車車燈控制系統(tǒng),并基于SAE J1939協(xié)議設(shè)計(jì)了車燈控制報(bào)文格式。在硬件設(shè)計(jì)中,本文基于USBCAN-II接口卡實(shí)現(xiàn)開關(guān)控制功能,以P87C591為核心實(shí)現(xiàn)車燈控制功能。為達(dá)到代碼的可重用性,本文采用模塊化程序設(shè)計(jì)思想設(shè)計(jì)了基于CAN的汽車車燈控制系統(tǒng)軟件。
關(guān)鍵詞:汽車;CAN;車燈;網(wǎng)絡(luò)控制
Abstract: This article constructs vehicle lamp control system based on CAN (Controller Area Network) and designs message format for vehicle lamp control based on SAE J1939. In hardware design, we implement switch control function with USBCAN-II interface card and achieve vehicle lamp control function base on P87C591. For reusing codes, we designed the software of vehicle lamp control system based on CAN with modular design method.
Key Words: Vehicle; CAN; Vehicle Lamp; Network Control
1 引言
有研究表明,在目前的汽車創(chuàng)新中,70%來源于電子系統(tǒng)的革新。汽車電子總的發(fā)展趨勢是:汽車電子控制系統(tǒng)獲取內(nèi)部和外部的信息越來越多,功能越來越強(qiáng),智能化程度越來越高,可靠性也越來越高。[1]汽車ECU(Electronic Control Unit,電子控制單元)的大量使用改善了汽車的動(dòng)力性、經(jīng)濟(jì)性、舒適性和環(huán)保性,但是ECU數(shù)量的急劇增加必然要求改變傳統(tǒng)汽車控制方式,以減少線束。同時(shí),行駛過程中各ECU之間的關(guān)聯(lián)和時(shí)序控制也與行車安全性密切相關(guān),而傳統(tǒng)控制方式并不能實(shí)現(xiàn)此目的。車載網(wǎng)絡(luò)技術(shù)為解決上述問題提供了一種良好的解決方案。
2 基于CAN的汽車車燈控制系統(tǒng)結(jié)構(gòu)
2.1 CAN概述
CAN(Controller Area Network)[2]是德國Robert Bosch公司在20世紀(jì)80年代初為汽車業(yè)開發(fā)的一種車載專用串行數(shù)據(jù)通信總線,滿足SAE(Society of Automobile Engineer)對C類高速車載網(wǎng)絡(luò)(≤1 Mbps)的要求,適合動(dòng)力傳動(dòng)和底盤電子系統(tǒng)的信息傳輸與控制。因此,它也滿足A類低速網(wǎng)絡(luò)(≤10Kbps)和B類中速網(wǎng)絡(luò)(≤125Kbps)的要求。CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。CAN具有多主工作方式、總線利用率高、數(shù)據(jù)傳輸距離遠(yuǎn)、數(shù)據(jù)傳輸速率高、采用非破壞總線仲裁技術(shù)節(jié)省總線沖突仲裁時(shí)間、通過報(bào)文標(biāo)識符濾波實(shí)現(xiàn)數(shù)據(jù)接收、錯(cuò)誤處理和檢錯(cuò)機(jī)制可靠等特點(diǎn)。因此,CAN被作為專用車載總線加以廣泛應(yīng)用[3]。
2.2 基于CAN的汽車車燈控制系統(tǒng)結(jié)構(gòu)
本文以汽車車燈位置分布和行駛安全性要求作為各模塊劃分的依據(jù)[4],采用CAN構(gòu)建汽車車燈控制系統(tǒng),圖1為基于CAN的汽車車燈控制系統(tǒng)結(jié)構(gòu)圖。
該系統(tǒng)包括開關(guān)控制模塊、左前模塊、右前模塊、左后模塊和右后模塊,各模塊掛接在CAN總線(CAN-H和CAN-L為差分線)上,CAN總線的位速率為100Kbps。其中,開關(guān)控制模塊通過對開關(guān)狀態(tài)變化的監(jiān)測,向其它四個(gè)模塊發(fā)送控制指令;左前模塊、右前模塊、左后模塊和右后模塊在接收到屬于本模塊的控制指令后,分別控制對應(yīng)位置的車燈動(dòng)作。由于CAN是基于優(yōu)先級的事件觸發(fā)協(xié)議,根據(jù)行駛安全級別的不同,系統(tǒng)中各節(jié)點(diǎn)的優(yōu)先級依次為開關(guān)控制模塊——左后模塊——右后模塊——左前模塊——右前模塊。其中,開關(guān)控制模塊是系統(tǒng)控制指令發(fā)送模塊,安全性要求最高,具有最高優(yōu)先級;左后和右后模塊涉及制動(dòng)等與行駛安全相關(guān)的車燈,其優(yōu)先級僅次于開關(guān)控制模塊;左前模塊和右前模塊優(yōu)先級最低。
圖1 基于CAN的汽車車燈控制系統(tǒng)結(jié)構(gòu)
3 基于SAE J1939的汽車車燈控制應(yīng)用層協(xié)議
CAN只提供與物理層和數(shù)據(jù)鏈路層相關(guān)的協(xié)議,并沒有制定與特定應(yīng)用相關(guān)的應(yīng)用層的內(nèi)容。SAE J1939是一種基于CAN的高層協(xié)議[5],利用CAN2.0B擴(kuò)展幀的29位標(biāo)識符定義了汽車通信編碼系統(tǒng)。表1比較了CAN2.0B和SAE J1939格式。其中,SAE J1939中的29位標(biāo)識符由P (Priority,優(yōu)先權(quán)位)、R(Reservation,保留位)、DP(Data Page,數(shù)據(jù)頁位)、PF(PDU Format,協(xié)議數(shù)據(jù)單元格式)、PS(PDU Specific,協(xié)議數(shù)據(jù)單元細(xì)節(jié))和SA(Source Address,源地址)組成。
表1 CAN2.0B和SAE J1939比較:
CAN擴(kuò)展幀格式 |
S |
11位標(biāo)識符 |
S |
I |
18位擴(kuò)展標(biāo)識符 | |||||
CAN ID位置 |
ID28-ID18 |
ID17-ID0 | ||||||||
J1939幀格式 |
優(yōu)先權(quán)P |
R |
DP |
PF |
|
|
PF |
PS |
源地址 | |
|
3,2,1 |
8-3 |
|
|
2,1 |
8-1 |
8-1 | |||
J1939幀位置 |
1 |
2-12 |
13 |
14 |
15,16 |
17-24 |
25-32 |
SAE J1939將CAN2.0B擴(kuò)展幀的29位標(biāo)識符進(jìn)行了明確定義,用兩個(gè)參數(shù)組定義了車燈報(bào)文格式,分別是車燈控制命令和車燈狀態(tài)反饋,前者屬于命令類,后者屬于信息類。本文基于車燈控制命令的報(bào)文格式定義了車燈控制系統(tǒng)的信息編碼,其基本信息定義如下:
報(bào)文傳輸重復(fù)率:隨車燈的開關(guān)狀態(tài)而變化,兩條信息間隔最多不超過1秒,每秒的報(bào)文數(shù)量最多不超過10條;數(shù)據(jù)長度:8;數(shù)據(jù)頁:0;PF:254;PS:65;優(yōu)先級:3;參數(shù)組編號:65089(0xFE41)。
車燈控制數(shù)據(jù)幀中8字節(jié)的位定義規(guī)范見表2。
表2 車燈控制數(shù)據(jù)幀中8字節(jié)的位置規(guī)范:
字 節(jié) |
位 的 定 義 |
1 |
2, 1 運(yùn)行指示燈 4, 3 燈光照射高度調(diào)節(jié)數(shù)據(jù) 6, 5 低光柱數(shù)據(jù) 8, 7 高光柱數(shù)據(jù) |
2 |
2, 1 前霧燈 4, 3 轉(zhuǎn)彎信號燈 6, 5 左轉(zhuǎn)向燈 8, 7 右轉(zhuǎn)向燈 |
3 |
2, 1 倒車燈和倒車?yán)?nbsp; 4, 3 中央停車燈 6, 5 右剎車燈 8, 7 左剎車燈 |
4 |
1- 6 為空 8, 7 牌照燈、示廓燈 |
5 |
2, 1 后霧燈 3—8 為空 |
6 |
2, 1 底部示寬燈 4, 3 頂部示寬燈 5 —8 為空 |
7 |
2, 1 乘客區(qū)燈 4, 3 駕駛室燈 6, 5 右近光燈 8, 7 左近光燈 |
8 |
2, 1 為空 4, 3 右遠(yuǎn)光燈 6, 5 左遠(yuǎn)光燈 8, 7 后工作燈 |
4 基于CAN的汽車車燈控制系統(tǒng)硬件設(shè)計(jì)
4.1 開關(guān)控制模塊
在實(shí)驗(yàn)中,采用PC應(yīng)用程序和USBCAN-II接口卡來模擬開關(guān)控制模塊。PC應(yīng)用程序采用Delphi軟件編寫,用戶界面中的每個(gè)按鈕與各開關(guān)按鍵相對應(yīng);點(diǎn)擊按鈕后,應(yīng)用程序會(huì)形成相應(yīng)的控制報(bào)文,并通過USB2.0接口發(fā)送給USBCAN-II接口卡。USBCAN-II接口卡一方面通過USB2.0接口與PC連接,接收應(yīng)用程序發(fā)送的指令;另一方面通過CAN接口連接到CAN總線上,完成CAN報(bào)文的發(fā)送和接收任務(wù)。使用該應(yīng)用軟件時(shí)需設(shè)置一些參數(shù),如CAN控制器的驗(yàn)收碼、屏蔽碼、濾波方式、波特率(定時(shí)器0和定時(shí)器1)、發(fā)送模式、發(fā)送類型、幀類型、幀格式等。
4.2 車燈控制模塊
左前模塊、右前模塊、左后模塊和右后模塊的硬件結(jié)構(gòu)類似,如圖2所示。其核心是帶CAN控制器的單片8位微控制器P87C591[6]。P87C591是一個(gè)高性能的CAN微控制器,可用于汽車和通用的工業(yè)應(yīng)用,完全符合CAN2.0B規(guī)范,并提供一個(gè)直接從SJA1000獨(dú)立CAN控制器的軟件移植路徑。除了普通的CAN特性以外,P87C591還提供增強(qiáng)型PeliCAN。PeliCAN特性包括:4個(gè)獨(dú)立可配置的驗(yàn)收濾波器組;每個(gè)組都有4個(gè)可選的驗(yàn)收濾波器配置;每個(gè)驗(yàn)收濾波器都有32位區(qū)分符;所有濾波器都可“在運(yùn)行中改變”;支持更高層的協(xié)議的驗(yàn)收濾波器;接收FIFO特性;只聽模式,自檢測模式;只有達(dá)到FIFO接收中斷級才產(chǎn)生接收中斷;在接收到高優(yōu)先級數(shù)據(jù)幀時(shí)立即產(chǎn)生接收中斷等。除此之外,各模塊的硬件結(jié)構(gòu)還包括了電源單元DC/DC、CAN接口單元(包含光電耦合器6N137和CAN收發(fā)器TJA1040)、功率驅(qū)動(dòng)單元(MC33286)和復(fù)位單元等。
5 基于CAN的汽車車燈控制系統(tǒng)軟件設(shè)計(jì)
本文采用模塊化程序設(shè)計(jì)思想設(shè)計(jì)基于CAN的汽車車燈控制系統(tǒng)軟件,按照功能分成不同的程序模塊,各模塊間相對獨(dú)立,以完成特定的功能。模塊與模塊之間可以相互調(diào)用,數(shù)據(jù)共享,以達(dá)到重復(fù)利用代碼和簡化代碼的目的。主要的功能模塊有:CAN初始化模塊、接收中斷服務(wù)程序模塊、CAN報(bào)文發(fā)送模塊、轉(zhuǎn)向燈控制模塊等。
程序開始執(zhí)行時(shí)首先執(zhí)行初始化程序模塊,以初始化系統(tǒng),將對應(yīng)車燈的I/O控制口輸出方向設(shè)置為輸出,并初始化CAN控制器及定時(shí)器,等待CAN報(bào)文的接收中斷;如果有CAN報(bào)文的接收中斷,則讀取CAN報(bào)文的數(shù)據(jù)字節(jié)并且按照前述SAE J1939車燈控制格式進(jìn)行解析,并控制相應(yīng)車燈控制I/O口的變化,由功率驅(qū)動(dòng)芯片來完成車燈的開關(guān)操作。主程序流程圖如圖3所示。
6 總結(jié)
本文采用CAN構(gòu)建了汽車車燈控制系統(tǒng),解決了汽車ECU的日益增加與傳統(tǒng)汽車控制方式之間的矛盾?;赟AE J1939的車燈控制報(bào)文格式的應(yīng)用為整車應(yīng)用層協(xié)議的設(shè)計(jì)提供了參考。
參考文獻(xiàn):
[1] 秦貴和.車上網(wǎng)絡(luò)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.5.
[2] CAN Specification 2.0, Robert Bosch GmbH,1991.
[3] 饒運(yùn)濤,鄒繼軍.現(xiàn)場總線CAN原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.6.
[4] 胡劍, 李剛炎等. 客車照明與信號燈多路傳輸控制系統(tǒng)的設(shè)計(jì)[J]. 微計(jì)算機(jī)信息, 2006,(4):124-126.
[5] Surface Vehicle Recommended Practice SAE J1939, SAE, 2005.1.
[6] P8xC591 Microcontroller in CAN Applications, Philips semiconductors, 2000.
作者信息:
周 慧,徐華中 (武漢理工大學(xué)自動(dòng)化學(xué)院,湖北 武漢 430070)
李剛炎 (武漢理工大學(xué)機(jī)電工程學(xué)院,湖北 武漢 430070)