胡 寧,李斌斌 Hu Ning,Li Binbin
基于CAN總線的智能車燈設(shè)計(jì)
胡 寧,李斌斌 Hu Ning,Li Binbin
(長(zhǎng)安大學(xué) 汽車學(xué)院,陜西 西安 710064)
為引起行人對(duì)夜間行駛過程中汽車的注意,避免造成車燈晃眼而引發(fā)交通事故,提出了一種結(jié)合90C51單片機(jī)和汽車CAN總線的智能車燈控制系統(tǒng),首先通過安裝在汽車前端的激光雷達(dá)來(lái)檢測(cè)前方是否有行人,并且可以通過連續(xù)接收的雷達(dá)間隔時(shí)間結(jié)合汽車車速判斷行人的行走方向,以此決定車燈的變換。智能車燈設(shè)計(jì)系統(tǒng)關(guān)鍵在于可以通過自動(dòng)檢測(cè)使車燈自動(dòng)變換,而不需要人為長(zhǎng)時(shí)間手動(dòng)控制車燈,進(jìn)一步降低交通事故的發(fā)生率和減少駕駛疲勞,保證行車安全。
激光雷達(dá);CAN總線;單片機(jī);智能車燈
近幾年來(lái),交通事故的發(fā)生率居高不下,每年因?yàn)榻煌ㄊ鹿仕劳龅娜藬?shù)一直占據(jù)很大的比重,而事故的原因大多數(shù)是由駕駛員錯(cuò)誤操作或行人不留意道路車輛而引起。夜間駕駛員很難辨別遠(yuǎn)處是否有行人,常常會(huì)由于剎車不及時(shí)而釀成交通事故。為了減少駕駛?cè)说鸟{駛疲勞,及時(shí)發(fā)現(xiàn)行人提前做出反應(yīng),設(shè)計(jì)中利用激光傳感器提前檢測(cè)行人以及行人的行走方向和速度,綜合自身速度利用遠(yuǎn)近光連續(xù)變換來(lái)提醒行人,最終會(huì)根據(jù)行人運(yùn)動(dòng)方向而開啟遠(yuǎn)光燈或者近光燈,減少燈光對(duì)行人眼睛的刺激,大大降低事故的發(fā)生率,避免更大的人員傷亡。
如今,CAN總線廣泛應(yīng)用在汽車上已經(jīng)有近十年的歷史。利用CAN總線可以方便快捷地獲取各節(jié)點(diǎn)想要獲取的數(shù)據(jù),并且節(jié)點(diǎn)本身的數(shù)據(jù)可以通過CAN總線發(fā)送到其他任意節(jié)點(diǎn),CAN總線是汽車智能化,包括無(wú)人駕駛技術(shù)以及汽車輔助駕駛技術(shù)的基礎(chǔ)。以CAN總線為基礎(chǔ)設(shè)計(jì)的智能車燈控制系統(tǒng)具有很好的前景,如今各大車企都試圖與IT企業(yè)合作開發(fā),汽車安全會(huì)被放在越來(lái)越突出的位置,這體現(xiàn)了基于CAN總線的智能車燈控制系統(tǒng)的價(jià)值以及良好的前景。
設(shè)計(jì)采用90C516BD+單片機(jī)控制車燈的開啟和關(guān)閉,利用現(xiàn)今廣泛應(yīng)用的汽車CAN總線作為傳播媒介,通過安裝在汽車前方的激光雷達(dá)傳遞過來(lái)的時(shí)間結(jié)合汽車CAN總線的車速節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)信號(hào)判斷行人的行走方向,經(jīng)MCU分析后做出決策,進(jìn)一步控制車燈的遠(yuǎn)近光。
系統(tǒng)首先判斷前方行人的行走方向,當(dāng)汽車檢測(cè)到行人同汽車同向時(shí),單片機(jī)控制車燈遠(yuǎn)光燈開啟0.5 s,近光燈開啟0.5 s,這樣閃爍5 s的時(shí)間,為了保證汽車的行車安全,最終汽車?yán)^續(xù)開啟遠(yuǎn)光燈;當(dāng)汽車檢測(cè)到行人同汽車逆向時(shí),單片機(jī)控制車燈遠(yuǎn)光燈開啟0.5 s,近光燈開啟0.5 s,這樣閃爍5 s的時(shí)間,為了防止車燈對(duì)行人眼睛的刺激,最終汽車?yán)^續(xù)開啟近光燈。
系統(tǒng)設(shè)計(jì)基于未來(lái)的實(shí)際應(yīng)用,運(yùn)用模塊化的設(shè)計(jì)思路,系統(tǒng)的主要模塊有電源模塊,感知模塊,控制模塊,通信模塊和核心處理器模塊。
1.1 核心處理器
設(shè)計(jì)的核心處理器采用51系列的單片機(jī)90C516BD+,即89C51的升級(jí)版本。90C516BD+作為新一代高速低功耗單片機(jī),指令代碼與傳統(tǒng)51單片機(jī)完全兼容,內(nèi)部集成專用復(fù)位電路MAX810,當(dāng)晶振為12MHz以下頻率時(shí),復(fù)位腳可直接接地。90C516BD+單片機(jī)內(nèi)置8位中央處理單元,有3個(gè)16位定時(shí)/計(jì)數(shù)器和5個(gè)兩級(jí)終端結(jié)構(gòu),其內(nèi)部數(shù)據(jù)存儲(chǔ)器采用的字節(jié)數(shù)為512,90C516BD+包括4個(gè)I/O口[1]。除此之外,此單片機(jī)也可以在低功耗模式工作,可以工作在空閑或者掉電模式,當(dāng)單片機(jī)處在空閑模式時(shí),即使單片機(jī)的CPU停止工作,但其定時(shí)器、串口和中斷將繼續(xù)維持其功能;在掉電模式下,RAM的數(shù)據(jù)保存,其他的功能模塊將會(huì)停止工作。在此設(shè)計(jì)中,51單片機(jī)的P0口被用來(lái)控制汽車CAN通信以及數(shù)據(jù)的輸入輸出。
1.2 電源模塊
設(shè)計(jì)的電源采用7.2V的直流電源經(jīng)過LM7805穩(wěn)壓芯片調(diào)整為5.0V的電壓,單片機(jī)以及傳感器模塊、CAN通信模塊都可以在5V電壓基礎(chǔ)上經(jīng)過處理后正常工作。電源模塊電路如圖1所示。
1.3 通信模塊
設(shè)計(jì)的通信模塊主要是由CAN總線構(gòu)成,CAN總線是世界上最廣泛的現(xiàn)場(chǎng)總線之一,主要負(fù)責(zé)51單片機(jī)與汽車各節(jié)點(diǎn)之間的雙向通信,CAN總線在1991年9月由德國(guó)BOSCH公司制定發(fā)布,目的是解決汽車各個(gè)控制器件之間頻繁的數(shù)據(jù)交換,該技術(shù)規(guī)范包括A和B兩部分[2]。CAN2.0A協(xié)議規(guī)定標(biāo)準(zhǔn)幀格式,標(biāo)準(zhǔn)幀中報(bào)文的識(shí)別為11位,報(bào)文總計(jì)11個(gè)字節(jié),其中包括幀信息1個(gè)字節(jié),幀ID 2個(gè)字節(jié),數(shù)據(jù)幀8個(gè)字節(jié)[3];與標(biāo)準(zhǔn)幀不同的是,CAN擴(kuò)展幀的幀ID為4個(gè)字節(jié)。CAN是一種多自主總線,通信介質(zhì)可以是雙絞線、光纖或者同軸線。CAN總線的傳播速度最高可以達(dá)到1 Mbps,實(shí)現(xiàn)了ISO 11898標(biāo)準(zhǔn)的物理層要求;當(dāng)傳輸速率為5 kbps時(shí),傳輸距離可以達(dá)到10 km。設(shè)計(jì)采用MCP2515CAN控制器用于網(wǎng)絡(luò)中的數(shù)據(jù)傳輸控制,對(duì)于一般模式,增加了Pelican新模式;CAN收發(fā)器采用TJA1050作為控制器與總線之間的電壓轉(zhuǎn)化器件。
1.4 傳感器模塊
因設(shè)計(jì)需要采集前方是否有行人以及行人的行走方向,所以采用的傳感器模塊為激光雷達(dá)傳感器,激光雷達(dá)是以發(fā)射激光束探測(cè)目標(biāo)的位置、速度等特征量的雷達(dá)系統(tǒng)。從工作原理上講,與微波雷達(dá)沒有根本區(qū)別,但是探測(cè)的距離范圍比微波傳感器遠(yuǎn)得多,向目標(biāo)發(fā)射探測(cè)信號(hào),然后將接收到的從目標(biāo)反射回來(lái)的信號(hào)與發(fā)射信號(hào)進(jìn)行比較,適當(dāng)處理后,可以獲得目標(biāo)的有關(guān)信息,如目標(biāo)距離、方位、高度、速度、姿態(tài)、甚至形狀等,從而對(duì)飛機(jī)、導(dǎo)彈等目標(biāo)進(jìn)行探測(cè)、跟蹤和識(shí)別[4]。傳感器探測(cè)的信號(hào)通過電信號(hào)傳遞給單片機(jī),作為整個(gè)智能系統(tǒng)的認(rèn)知部分。
1.5 輸出模塊
輸出模塊主要是對(duì)車輛的近光燈和遠(yuǎn)光燈分別用2個(gè)LED燈進(jìn)行模擬,因?yàn)長(zhǎng)ED燈使用比較方便,易于操作,并且完全可以達(dá)到模擬的效果。在設(shè)計(jì)中用紅色LED燈代表汽車近光燈,綠色LED燈代表汽車遠(yuǎn)光燈,直接與單片機(jī)的I/O口連接。
在智能車燈設(shè)計(jì)中,處理器對(duì)激光雷達(dá)采集的時(shí)間信號(hào)進(jìn)行處理分析后,輸出對(duì)應(yīng)信號(hào)控制汽車遠(yuǎn)光燈和近光燈,判斷依據(jù)為:
1)當(dāng)傳感器檢測(cè)到前方有行人時(shí),會(huì)向單片機(jī)發(fā)出高電平,觸發(fā)單片機(jī)的外部中斷,這時(shí)單片機(jī)輸出控制紅燈和綠燈閃爍,即為汽車遠(yuǎn)近光燈的交替變化;
2)在1)的基礎(chǔ)上,激光傳感器再次發(fā)送脈沖信號(hào),通過與1)中發(fā)送脈沖信號(hào)接收時(shí)間的對(duì)比,結(jié)合自身汽車車速信息,判斷行人的行走方向。
當(dāng)行人與汽車同向時(shí),單片機(jī)向綠色LED燈發(fā)送高脈沖,這時(shí)汽車遠(yuǎn)光燈亮起,保證汽車的行車安全;當(dāng)行人與汽車行駛方向相反時(shí),單片機(jī)向紅色LED燈發(fā)送高脈沖,這時(shí)汽車的近光燈亮起,防止車燈對(duì)行人眼睛的刺激而引發(fā)交通事故。
CAN控制器中MCP2515和90C516BD+的地址線和數(shù)據(jù)線是共用的,直接連接就可以,但是為了區(qū)分某個(gè)時(shí)間段發(fā)送的是數(shù)據(jù)還是地址,單片機(jī)必須要連接地址鎖存信號(hào)ALE,單片機(jī)直接與控制器MCP2515的讀寫信號(hào)相連,設(shè)計(jì)中采用MCP2515的RST復(fù)位端直接與90C516BD+的I/O口連接,單片機(jī)向I/O口輸送高電平使控制器硬復(fù)位。90C516BD+的中斷管腳與單片機(jī)的INT1連接,當(dāng)收到數(shù)據(jù)時(shí)通知單片機(jī)。
控制器的TXCAN和RXCAN分別與收發(fā)器TJA1050的TXD與RXD連接,而收發(fā)器CAN_H、CAN_L管腳分別連接至CAN總線的CAN_H與CAN_L,控制器的SPI總線模塊直接與單片機(jī)I/O口連接,這樣就組成了整個(gè)設(shè)計(jì),如圖2所示。
設(shè)計(jì)中采用紅色LED燈與綠色LED燈對(duì)汽車的遠(yuǎn)近光燈進(jìn)行模擬,單片機(jī)的高電平為5V左右,所以可以將燈直接連接在單片機(jī)上,使用起來(lái)特別方便,并且容易控制,只需單片機(jī)給管腳高電平即可點(diǎn)亮LED燈,如圖3所示。
CAN總線節(jié)點(diǎn)要快速、實(shí)時(shí)地完成通信任務(wù),軟件的設(shè)計(jì)起到至關(guān)重要的作用,利用程序的結(jié)構(gòu)化設(shè)計(jì),具有較好的模塊性、可理解性和移植性等特點(diǎn)[5]。
設(shè)計(jì)的軟件部分主要包括主程序、發(fā)送程序和接收程序,軟件主要包括1個(gè)主節(jié)點(diǎn)和2個(gè)從節(jié)點(diǎn)。激光雷達(dá)作為從節(jié)點(diǎn)將采集到的數(shù)據(jù)經(jīng)過驗(yàn)收濾波器和屏蔽濾波器傳至主節(jié)點(diǎn),另外主節(jié)點(diǎn)發(fā)送遠(yuǎn)程幀向汽車的車速?gòu)墓?jié)點(diǎn)發(fā)送請(qǐng)求車速報(bào)文,該從節(jié)點(diǎn)接收到主節(jié)點(diǎn)的請(qǐng)求信號(hào),會(huì)立即做出響應(yīng),向主節(jié)點(diǎn)發(fā)送帶有車速信息的報(bào)文,這樣主節(jié)點(diǎn)的單片機(jī)接收到2個(gè)從節(jié)點(diǎn)傳遞來(lái)的數(shù)據(jù)進(jìn)行分析,判斷行人的行走方向,然后主節(jié)點(diǎn)的單片機(jī)分別向代表汽車遠(yuǎn)光燈的綠燈和代表汽車近光燈的紅燈發(fā)送高電平信號(hào),通過LED燈的顯示信息可以方便快捷地實(shí)現(xiàn)智能車燈的控制。整個(gè)控制流程如圖4所示。
CAN總線發(fā)送請(qǐng)求的擴(kuò)展幀信息見表1。
表1 汽車擴(kuò)展幀信息發(fā)送內(nèi)容
標(biāo)識(shí)符IDPC1MODEPID測(cè)試內(nèi)容 0X18DB33F1(擴(kuò)展幀)0X020X010X0C發(fā)動(dòng)機(jī)轉(zhuǎn)速 0X020X010X0D行車速度 0X020X010X05冷卻液溫度 0X020X010X0F進(jìn)氣溫度
由表1可以看出,請(qǐng)求汽車車速信息的主節(jié)點(diǎn)發(fā)送的報(bào)文標(biāo)識(shí)符ID為18 DB 33 F1共4個(gè)字節(jié),數(shù)據(jù)幀為02 01 0D 00 00 00 00 00共8個(gè)字節(jié),當(dāng)車速節(jié)點(diǎn)收到此報(bào)文后,會(huì)自動(dòng)做出反應(yīng),回復(fù)帶有車速信息的報(bào)文給主節(jié)點(diǎn)。此過程中報(bào)文發(fā)送程序流程如圖5所示。
報(bào)文接收程序流程如圖6所示。
基于CAN總線的信息傳遞,設(shè)計(jì)了智能車燈控制系統(tǒng),可有效防止外界的干擾;并且當(dāng)其中1根CAN線破壞時(shí)不影響系統(tǒng)的正常工作,具有很好的穩(wěn)定性。既可以降低駕駛員因駕駛疲勞而引發(fā)交通事故,還能人性化提醒路邊行人,防止因行人不注意而造成傷亡。系統(tǒng)通過激光雷達(dá)傳感器檢測(cè)路上是否有行人,再與汽車自身車速的對(duì)比分析判定行人的行走方向,進(jìn)而控制車燈,可以有效地方便駕駛員的操作,減少傷亡的發(fā)生。
[1]李朝青. 單片機(jī)原理及接口技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,2005:17-21.
[2]龍志強(qiáng),李曉龍,竇峰山. CAN總線技術(shù)與應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2013:3-8.
[3]周立功. iCAN現(xiàn)場(chǎng)總線原理與應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2006:24-28.
[4]王化祥,張淑英. 傳感器原理及應(yīng)用[M]. 天津:天津大學(xué)出版社,2014:52-54.
[5]李正軍. 現(xiàn)場(chǎng)總線及其應(yīng)用技術(shù)[M]. 北京:機(jī)械工業(yè)出版社,2005:64-66.
2016-11-15
1002-4581(2017)02-0043-04
U463.75
A
10.14175/j.issn.1002-4581.2017.02.011