馬子鎧,葉春生
(華中科技大學(xué) 材料成型與模具技術(shù)國家重點實驗室,湖北 武漢 430074)
汽車車燈猶如汽車的“眼睛”,同時也猶如車輛之間的“溝通語言”[1]。一個好的車燈應(yīng)具有盡可能多的功能和長的使用年限,常見的車燈有近光燈、遠(yuǎn)光燈、轉(zhuǎn)向燈和位置燈等。通過點亮不同功能的車燈來給其他的車輛提示,在方便汽車駕駛?cè)说耐瑫r,也降低了交通事故的發(fā)生頻率。
因此,為了減少交通事故,保障行車安全,對汽車車燈進(jìn)行質(zhì)量檢測對于車燈生產(chǎn)商而言是一個十分重要的任務(wù)。車燈生產(chǎn)商通常會在車燈生產(chǎn)線上裝配一套專門的檢測設(shè)備對車燈進(jìn)行質(zhì)量檢測,但經(jīng)常會出現(xiàn)錯檢、漏檢的情況,導(dǎo)致已經(jīng)售出的車輛因為車燈故障而被召回,直接導(dǎo)致生產(chǎn)商和消費者產(chǎn)生巨大的經(jīng)濟(jì)損失。針對這種問題,本文結(jié)合某廠家生產(chǎn)的高配車燈開發(fā)出一套新型車燈質(zhì)量檢測系統(tǒng)[2],提高車燈的檢測效率。
本文以某廠家生產(chǎn)的高配車燈為對象,設(shè)計一套車燈質(zhì)量檢測系統(tǒng)對其不同燈光狀態(tài)進(jìn)行質(zhì)量檢測,具體包括近光燈(LB)、遠(yuǎn)光燈(HB)[3]、轉(zhuǎn)向燈(TI)、位置燈(PL)和駐車燈(DRL)等5種不同的燈光狀態(tài),并實現(xiàn)了車燈漸亮和漸滅2個新功能。
結(jié)合車燈檢測系統(tǒng)的功能需求和處理器速度要求,控制器采用STM32系列控制芯片(型號為STM32F103C8T6)[4],該處理器經(jīng)濟(jì)實用,在處理速度上可以滿足檢測系統(tǒng)的基本需求,且支持LIN總線模式。在該芯片基礎(chǔ)上設(shè)計了配套的控制開發(fā)板,開發(fā)板配置多個模塊接口,可以直接使用。
為了保障通信傳輸效率,控制器采用LIN通信方式[5]。LIN通信(Local Interconnect Network)是一種低成本的串行通信網(wǎng)絡(luò)(CAN通信[6]的補(bǔ)充),可用于實現(xiàn)汽車中的信號通信。LIN總線是基于USART接口硬件實現(xiàn)的,通過時序信號進(jìn)行同步,保證信號的傳輸效率。檢測系統(tǒng)包括一個主機(jī)(控制系統(tǒng))和一個從機(jī)(車燈),可以采用單主機(jī)對多個從機(jī)的控制方式,使用起來更為便捷。
控制器采用按鍵輸入控制信號,基于STM32F103C8T6芯片處理器作為控制系統(tǒng),搭載配套的軟件,將控制電平、PWM脈沖信號[7]和LIN總線輸出給車燈,通過觀察車燈與指示燈的狀態(tài)完成質(zhì)量檢測,整個車燈質(zhì)量檢測系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 車燈質(zhì)量檢測系統(tǒng)總體結(jié)構(gòu)
圖1中,LB和TI狀態(tài)為近光燈和轉(zhuǎn)向燈常亮常滅,通過電平控制實現(xiàn);HB狀態(tài)為遠(yuǎn)光燈常亮常滅,它與車燈漸亮及漸滅3種狀態(tài)通過發(fā)送規(guī)定的字節(jié)序來實現(xiàn);PL和DRL為車燈同一指示燈的2種狀態(tài)(PL燈亮度較低,DRL燈亮度較高),利用改變輸出波形的占空比來實現(xiàn)。
在控制系統(tǒng)中,硬件電路主要包括2個模塊:STM32最小系統(tǒng)模塊和車燈硬件控制系統(tǒng)模塊。最小系統(tǒng)模塊是以STM32F103C8T6為主控芯片,并搭配電源模塊、晶振模塊、下載模塊、復(fù)位模塊、通信模塊等功能單元,由于STM32控制模塊屬于通用模塊,本文不做詳細(xì)介紹。
車燈硬件控制系統(tǒng)主要由蜂鳴器電路、繼電器電路、電源電路、按鍵電路和連接電路等5個模塊組成,每個模塊的詳細(xì)介紹如下。
電路原理如圖2所示,其中三極管作為電子開關(guān),可以實現(xiàn)小電流控制大電流。因為不能通過I/O口直接驅(qū)動大功率電器,故采用PA5的高低電平來控制NPN型三極管的通斷,致使蜂鳴器產(chǎn)生作用,通過蜂鳴器的響聲判斷主程序工作于何種模式下。此外,采用R405電阻消除PA5電平切換產(chǎn)生的抖動。
圖2 蜂鳴器的電路原理圖
繼電器的主要作用是作為電氣開關(guān),控制輸出到車燈的電流。其電路原理如圖3所示,由于車燈的控制輸出電流低,且工作頻率不高,為了保護(hù)NPN三極管不被開關(guān)關(guān)斷時線圈所產(chǎn)生的反電動勢燒毀,該模塊未采用三極管來控制電流輸出。R3010電阻的作用與R405一致,起到去抖動的作用。
采用220 VAC-12 VDC開關(guān)電源對控制器進(jìn)行供電,電源模塊分為2個子模塊(5 V的標(biāo)準(zhǔn)電壓模塊和3.3 V的低電壓模塊),分別由LM2575芯片和LM1117芯片調(diào)節(jié)得到。其中,5 V的標(biāo)準(zhǔn)電壓為STM32最小系統(tǒng)供電(見圖4);3.3 V模塊為按鍵輸入模塊供能(見圖5)。
該模塊由3.3 V低電壓模塊加一個10 kΩ的電阻組成(見圖6),并將PB組引腳的輸入模式設(shè)置為浮動輸入模式。當(dāng)外接的按鍵端子被連接時,PB組中對應(yīng)的引腳被置為高電平,并將信號傳入STM32最小系統(tǒng)模塊中,處理器在對信號進(jìn)行處理后輸出相應(yīng)的操作信號。
圖4 12 V電壓轉(zhuǎn)5 V電壓電路原理圖
圖5 5 V電壓轉(zhuǎn)3.3V電壓電路原理圖
圖6 按鍵輸入模塊電路原理圖
車燈硬件控制板需要和STM32最小系統(tǒng)連接起來才能正常工作。該模塊用到了PA和PB的相關(guān)引腳,并采用電壓為12 V/5 V的電源為主板提供工作電壓(見圖7)。
中斷子程序和全局變量設(shè)置在軟件開發(fā)過程中起到至關(guān)重要的作用,其中全局變量[8]是對于整個程序而言都可以使用的變量。中斷[9]是指程序運行過程中,出現(xiàn)了某些故障需要主機(jī)干預(yù),控制器能自動停止正在運行的程序并轉(zhuǎn)入新的處理程序,等處理完畢后再回到原先被暫停的程序,繼續(xù)并完成工作。
控制器利用按鍵輸入信號來進(jìn)入中斷子程序,在中斷子程序中來改變?nèi)肿兞康膍ode值,在執(zhí)行完中斷程序后回到主函數(shù)來判斷全局變量mode值,根據(jù)mode值來判斷程序應(yīng)該執(zhí)行哪一個模式下的子程序。當(dāng)程序執(zhí)行完對應(yīng)模式子程序后,將重置全局變量的mode值并回到初始循環(huán)狀態(tài),等待按鍵再次輸入后開始執(zhí)行下一次操作。
圖7 連接模塊電路原理圖
LB、HB、TI、PL和DRL等狀態(tài)、車燈漸亮和漸滅、以及各種基礎(chǔ)功能的組合均由各個模式下的子程序?qū)崿F(xiàn)。車燈控制程序流程圖如圖8所示。
圖8 車燈控制程序流程圖
控制程序的主函數(shù)主要用于完成固件函數(shù)的初始化以及各種中斷函數(shù)的配置工作,其中初始化主要包括STM32處理器上的片上功能和引腳的初始化,在初始化過程中用到的固件函數(shù)見表1。
表1 STM32初始化固件函數(shù)
PWM脈沖信號輸出由定時器控制和調(diào)節(jié),定時器中的ARR(自動重裝載寄存器)決定了PWM波的信號頻率,CRR(比較寄存器)決定了PWM波的占空比。通過調(diào)節(jié)ARR與CPP的值來控制PWM的輸出信號,比如PL的頻率為10 470 bit/s,占空比為20%,燈亮度較暗;而DRL的頻率為10 470 bit/s,占空比為100%,燈亮度較亮。
LIN總線報文傳輸規(guī)則[10]在軟件設(shè)計上也起到重要作用,必須按照LIN總線報文格式來傳輸數(shù)據(jù),從機(jī)才能正常接受信號并做出相應(yīng)的應(yīng)答。LIN報文包括幀頭(HEADER)和應(yīng)答(RESPONSE)兩部分,其中幀頭部分包括同步間隔場(SYNCH BREAK FIELD)、同步場(SYNCH FIELD)和標(biāo)識符場(PROTEXTED IDENTIFIER FILED);應(yīng)答包括數(shù)據(jù)場(DATA FIELD)和校驗和場(CHECKSUM FIELD)。關(guān)于每一個組成的詳細(xì)介紹如下所示。
1)同步間隔場:為了識別報文,報文的第1個場是一個同步間隔場,由主機(jī)發(fā)送。它的作用是同步從機(jī)總線的時鐘信號。
2)同步場:同步場以下降沿為判斷標(biāo)志,采用的字節(jié)格式是“0x55”(01010101b),表現(xiàn)為有5個下降沿放在8個位定時中,用于從機(jī)與主機(jī)進(jìn)行同步。
3)標(biāo)識符場:由ID和Parity組成,用于定義報文的內(nèi)容和長度。
4)數(shù)據(jù)場:用于傳輸報文幀,從低位開始傳輸由多個8位數(shù)據(jù)組成的字節(jié)組。
5)校驗和場:用于校驗接收的數(shù)據(jù)的正確性。
報文傳輸由報文的格式控制和形成,報文整體格式如圖9所示。
圖9 報文幀格式
總線報文傳輸規(guī)則代碼實現(xiàn),通過調(diào)用固件庫中的USART_SendBreak()函數(shù)來發(fā)送間隔場,并利用校驗和求和算法來計算校驗和,將發(fā)送數(shù)據(jù)組中的9個發(fā)送數(shù)據(jù)進(jìn)行累加,最后將結(jié)果賦值到發(fā)送數(shù)據(jù)組的最后一位上,如果校驗和溢出,校驗和進(jìn)位加一。然后利用USART串口調(diào)用USART_SendData()函數(shù)循環(huán)發(fā)送數(shù)據(jù)到從機(jī)上,直到一組數(shù)據(jù)發(fā)送完畢為止,圖10所示為用LIN發(fā)送指令時在示波器中測量的輸出波形,前一部分低電平部分為發(fā)送的間隔場,其后部分為同步場、數(shù)據(jù)場等,可以實現(xiàn)車燈的基本波形需求,并能檢測車燈質(zhì)量。
圖10 輸出的LIN報文波形圖
為了驗證本文所設(shè)計的車燈檢測設(shè)備的可行性,利用該設(shè)備對合作廠商生產(chǎn)的車燈進(jìn)行質(zhì)檢測試。經(jīng)過對大批次車燈的質(zhì)量檢測結(jié)果顯示,本文設(shè)計的車燈質(zhì)量檢測設(shè)備能夠高效率地完成車燈的檢測工作,并在檢測過程中展現(xiàn)出了出色的可靠性與穩(wěn)定性。