馬子鎧,葉春生
(華中科技大學 材料成型與模具技術國家重點實驗室,湖北 武漢 430074)
汽車車燈猶如汽車的“眼睛”,同時也猶如車輛之間的“溝通語言”[1]。一個好的車燈應具有盡可能多的功能和長的使用年限,常見的車燈有近光燈、遠光燈、轉向燈和位置燈等。通過點亮不同功能的車燈來給其他的車輛提示,在方便汽車駕駛人的同時,也降低了交通事故的發生頻率。
因此,為了減少交通事故,保障行車安全,對汽車車燈進行質量檢測對于車燈生產商而言是一個十分重要的任務。車燈生產商通常會在車燈生產線上裝配一套專門的檢測設備對車燈進行質量檢測,但經常會出現錯檢、漏檢的情況,導致已經售出的車輛因為車燈故障而被召回,直接導致生產商和消費者產生巨大的經濟損失。針對這種問題,本文結合某廠家生產的高配車燈開發出一套新型車燈質量檢測系統[2],提高車燈的檢測效率。
本文以某廠家生產的高配車燈為對象,設計一套車燈質量檢測系統對其不同燈光狀態進行質量檢測,具體包括近光燈(LB)、遠光燈(HB)[3]、轉向燈(TI)、位置燈(PL)和駐車燈(DRL)等5種不同的燈光狀態,并實現了車燈漸亮和漸滅2個新功能。
結合車燈檢測系統的功能需求和處理器速度要求,控制器采用STM32系列控制芯片(型號為STM32F103C8T6)[4],該處理器經濟實用,在處理速度上可以滿足檢測系統的基本需求,且支持LIN總線模式。在該芯片基礎上設計了配套的控制開發板,開發板配置多個模塊接口,可以直接使用。
為了保障通信傳輸效率,控制器采用LIN通信方式[5]。LIN通信(Local Interconnect Network)是一種低成本的串行通信網絡(CAN通信[6]的補充),可用于實現汽車中的信號通信。LIN總線是基于USART接口硬件實現的,通過時序信號進行同步,保證信號的傳輸效率。檢測系統包括一個主機(控制系統)和一個從機(車燈),可以采用單主機對多個從機的控制方式,使用起來更為便捷。
控制器采用按鍵輸入控制信號,基于STM32F103C8T6芯片處理器作為控制系統,搭載配套的軟件,將控制電平、PWM脈沖信號[7]和LIN總線輸出給車燈,通過觀察車燈與指示燈的狀態完成質量檢測,整個車燈質量檢測系統總體結構如圖1所示。

圖1 車燈質量檢測系統總體結構
圖1中,LB和TI狀態為近光燈和轉向燈常亮常滅,通過電平控制實現;HB狀態為遠光燈常亮常滅,它與車燈漸亮及漸滅3種狀態通過發送規定的字節序來實現;PL和DRL為車燈同一指示燈的2種狀態(PL燈亮度較低,DRL燈亮度較高),利用改變輸出波形的占空比來實現。
在控制系統中,硬件電路主要包括2個模塊:STM32最小系統模塊和車燈硬件控制系統模塊。最小系統模塊是以STM32F103C8T6為主控芯片,并搭配電源模塊、晶振模塊、下載模塊、復位模塊、通信模塊等功能單元,由于STM32控制模塊屬于通用模塊,本文不做詳細介紹。
車燈硬件控制系統主要由蜂鳴器電路、繼電器電路、電源電路、按鍵電路和連接電路等5個模塊組成,每個模塊的詳細介紹如下。
電路原理如圖2所示,其中三極管作為電子開關,可以實現小電流控制大電流。因為不能通過I/O口直接驅動大功率電器,故采用PA5的高低電平來控制NPN型三極管的通斷,致使蜂鳴器產生作用,通過蜂鳴器的響聲判斷主程序工作于何種模式下。此外,采用R405電阻消除PA5電平切換產生的抖動。

圖2 蜂鳴器的電路原理圖
繼電器的主要作用是作為電氣開關,控制輸出到車燈的電流。其電路原理如圖3所示,由于車燈的控制輸出電流低,且工作頻率不高,為了保護NPN三極管不被開關關斷時線圈所產生的反電動勢燒毀,該模塊未采用三極管來控制電流輸出。R3010電阻的作用與R405一致,起到去抖動的作用。
采用220 VAC-12 VDC開關電源對控制器進行供電,電源模塊分為2個子模塊(5 V的標準電壓模塊和3.3 V的低電壓模塊),分別由LM2575芯片和LM1117芯片調節得到。其中,5 V的標準電壓為STM32最小系統供電(見圖4);3.3 V模塊為按鍵輸入模塊供能(見圖5)。
該模塊由3.3 V低電壓模塊加一個10 kΩ的電阻組成(見圖6),并將PB組引腳的輸入模式設置為浮動輸入模式。當外接的按鍵端子被連接時,PB組中對應的引腳被置為高電平,并將信號傳入STM32最小系統模塊中,處理器在對信號進行處理后輸出相應的操作信號。

圖4 12 V電壓轉5 V電壓電路原理圖

圖5 5 V電壓轉3.3V電壓電路原理圖

圖6 按鍵輸入模塊電路原理圖
車燈硬件控制板需要和STM32最小系統連接起來才能正常工作。該模塊用到了PA和PB的相關引腳,并采用電壓為12 V/5 V的電源為主板提供工作電壓(見圖7)。
中斷子程序和全局變量設置在軟件開發過程中起到至關重要的作用,其中全局變量[8]是對于整個程序而言都可以使用的變量。中斷[9]是指程序運行過程中,出現了某些故障需要主機干預,控制器能自動停止正在運行的程序并轉入新的處理程序,等處理完畢后再回到原先被暫停的程序,繼續并完成工作。
控制器利用按鍵輸入信號來進入中斷子程序,在中斷子程序中來改變全局變量的mode值,在執行完中斷程序后回到主函數來判斷全局變量mode值,根據mode值來判斷程序應該執行哪一個模式下的子程序。當程序執行完對應模式子程序后,將重置全局變量的mode值并回到初始循環狀態,等待按鍵再次輸入后開始執行下一次操作。

圖7 連接模塊電路原理圖
LB、HB、TI、PL和DRL等狀態、車燈漸亮和漸滅、以及各種基礎功能的組合均由各個模式下的子程序實現。車燈控制程序流程圖如圖8所示。

圖8 車燈控制程序流程圖
控制程序的主函數主要用于完成固件函數的初始化以及各種中斷函數的配置工作,其中初始化主要包括STM32處理器上的片上功能和引腳的初始化,在初始化過程中用到的固件函數見表1。

表1 STM32初始化固件函數
PWM脈沖信號輸出由定時器控制和調節,定時器中的ARR(自動重裝載寄存器)決定了PWM波的信號頻率,CRR(比較寄存器)決定了PWM波的占空比。通過調節ARR與CPP的值來控制PWM的輸出信號,比如PL的頻率為10 470 bit/s,占空比為20%,燈亮度較暗;而DRL的頻率為10 470 bit/s,占空比為100%,燈亮度較亮。
LIN總線報文傳輸規則[10]在軟件設計上也起到重要作用,必須按照LIN總線報文格式來傳輸數據,從機才能正常接受信號并做出相應的應答。LIN報文包括幀頭(HEADER)和應答(RESPONSE)兩部分,其中幀頭部分包括同步間隔場(SYNCH BREAK FIELD)、同步場(SYNCH FIELD)和標識符場(PROTEXTED IDENTIFIER FILED);應答包括數據場(DATA FIELD)和校驗和場(CHECKSUM FIELD)。關于每一個組成的詳細介紹如下所示。
1)同步間隔場:為了識別報文,報文的第1個場是一個同步間隔場,由主機發送。它的作用是同步從機總線的時鐘信號。
2)同步場:同步場以下降沿為判斷標志,采用的字節格式是“0x55”(01010101b),表現為有5個下降沿放在8個位定時中,用于從機與主機進行同步。
3)標識符場:由ID和Parity組成,用于定義報文的內容和長度。
4)數據場:用于傳輸報文幀,從低位開始傳輸由多個8位數據組成的字節組。
5)校驗和場:用于校驗接收的數據的正確性。
報文傳輸由報文的格式控制和形成,報文整體格式如圖9所示。

圖9 報文幀格式
總線報文傳輸規則代碼實現,通過調用固件庫中的USART_SendBreak()函數來發送間隔場,并利用校驗和求和算法來計算校驗和,將發送數據組中的9個發送數據進行累加,最后將結果賦值到發送數據組的最后一位上,如果校驗和溢出,校驗和進位加一。然后利用USART串口調用USART_SendData()函數循環發送數據到從機上,直到一組數據發送完畢為止,圖10所示為用LIN發送指令時在示波器中測量的輸出波形,前一部分低電平部分為發送的間隔場,其后部分為同步場、數據場等,可以實現車燈的基本波形需求,并能檢測車燈質量。

圖10 輸出的LIN報文波形圖
為了驗證本文所設計的車燈檢測設備的可行性,利用該設備對合作廠商生產的車燈進行質檢測試。經過對大批次車燈的質量檢測結果顯示,本文設計的車燈質量檢測設備能夠高效率地完成車燈的檢測工作,并在檢測過程中展現出了出色的可靠性與穩定性。