摘 要: 為滿足對汽車車燈的電氣參數(shù)、使用壽命等項目進(jìn)行檢測的需要,,提出了一種基于STM32處理器的便攜式檢測箱設(shè)計方案,。該設(shè)計成功實現(xiàn)了10路AD采樣通道、6路開關(guān)量輸出通道,、4路PWM輸出通道,、1路CAN通信通道和1路LIN通信通道。軟件設(shè)計采用μC/OS-Ⅱ?qū)崟r操作系統(tǒng)及分層設(shè)計思想,,提高了程序的穩(wěn)定性,。結(jié)果表明,該試驗箱不僅便于攜帶和升級,,而且具有較高的可靠性,,降低了車燈廠家的生產(chǎn)成本。
關(guān)鍵詞: 車燈檢測,;STM32,;CAN通信;LIN通信
在新產(chǎn)品發(fā)布之前,,車燈生產(chǎn)廠家需對車燈電氣參數(shù)進(jìn)行抽樣檢測,,并對車燈在復(fù)雜環(huán)境下的使用壽命進(jìn)行抽樣試驗。電氣參數(shù)的檢測項目涉及電壓值,、電流值及CAN通信和LIN通信是否正常等,。另外要配合雨淋箱、氣候箱,、灰塵箱,、鹽霧箱、振動試驗臺等設(shè)備長時間控制燈的運(yùn)轉(zhuǎn),,以測試車燈在暴雨天氣,、酷熱和嚴(yán)寒天氣、沙塵天氣、腐蝕環(huán)境和顛簸路面等極端狀況下的使用壽命,。由于雨淋箱等實驗箱笨重而龐大,,其被放置在實驗室中無法輕易移動,而生產(chǎn)線上的在線監(jiān)測系統(tǒng)更是無法被移動到實驗室中去配合雨淋箱等做數(shù)百小時的實驗而停止生產(chǎn),。此外,,質(zhì)檢部進(jìn)行產(chǎn)品抽檢、銷售部進(jìn)行功能演示以及售后部進(jìn)行售后服務(wù)時,,都需要一種便攜式檢測箱,,因此本檢測箱的研制十分必要。
1 系統(tǒng)整體方案設(shè)計
結(jié)合車燈生產(chǎn)廠家的實際需要,,便攜式車燈檢測箱在功能上包含手動和實驗兩種工作模式,。檢測箱的硬件結(jié)構(gòu)框圖如圖1所示,包括AD采樣,、CAN通信,、LIN通信、PWM控制,、開關(guān)量控制和液晶顯示等部分,。其中AD采樣部分要實現(xiàn)10路AD采樣通道,每兩路為1組實現(xiàn)對一個燈的電壓和電流采樣,;PWM部分采用軟件實現(xiàn),;CAN通信和LIN通信要安全可靠。
系統(tǒng)的工作流程為:系統(tǒng)上電初始化后,,控制單元首先判斷按鍵和開關(guān)的狀態(tài),,相應(yīng)地進(jìn)入手動或?qū)嶒災(zāi)J剑皇褂谜邊⒖硷@示終端的狀態(tài)提示,,通過控制面板將控制信息輸入到控制單元,,從而對車燈進(jìn)行檢測;檢測結(jié)果送顯示終端并根據(jù)檢測要求驅(qū)動報警電路對有誤的電參數(shù)進(jìn)行報警,;若進(jìn)入實驗?zāi)J?,則系統(tǒng)按既定要求控制車燈進(jìn)行試驗。
2 硬件電路設(shè)計
本設(shè)計選擇的主控芯片是STM32處理器,。該類芯片的時鐘頻率最高為72 MHz,,含有CAN控制器、可配置成LIN口的USART,、轉(zhuǎn)換速度為1 μs的12位A/D轉(zhuǎn)換器等豐富的片上外設(shè),,性價比很高。STM32的多數(shù)GPIO引腳都有復(fù)用功能,,可通過重映射的方式由軟件配置,,對不需要的片上外設(shè)就無需為其分配I/O端口,,節(jié)約了I/O資源,實現(xiàn)了硬件裁剪,。
2.1 CAN通道
STM32內(nèi)含CAN協(xié)議控制器,,只需在片外電路中加上CAN驅(qū)動器。CAN驅(qū)動器采用PCA82C250芯片,,該芯片完全兼容ISO11898協(xié)議,,功耗低,且保證斷開的CAN節(jié)點(diǎn)以高阻狀態(tài)隔離于總線之外,,避免對CAN總線上其他節(jié)點(diǎn)產(chǎn)生影響[1],。所設(shè)計的驅(qū)動電路如圖2所示,TXD腳與RXD腳分別接到STM32的CAN引腳上,。R1,、R2為CAN總線的終端電阻,通常取值為120 Ω,。芯片的Rs引腳提供模式選擇,當(dāng)Rs接地時芯片工作于高速模式,,此時發(fā)送器的晶體管輸出只以最快速度進(jìn)行簡單的打開和關(guān)閉,,不能對信號的上升沿和下降沿進(jìn)行斜率控制;當(dāng)Rs串接電阻至地時芯片工作于低速模式,,此時可控制信號斜率來減少射頻干擾,,斜率大小和流經(jīng)Rs引腳的電流大小成比例;當(dāng)Rs接高電平時芯片進(jìn)入待機(jī)模式,,此時發(fā)送器關(guān)閉,,接收器進(jìn)入低電流模式。如果檢測到總線上有有效信號,,則RXD引腳變低電平,,STM32芯片對RXD的這一變化作出反應(yīng),控制Q1導(dǎo)通,,使收發(fā)器進(jìn)入工作模式,。但在待機(jī)模式下總線上的第一條消息會丟失。STM32通過控制Q1的導(dǎo)通和截止來切換驅(qū)動器的運(yùn)行模式,。
2.2 LIN通道
STM32的USART端口可配置成LIN協(xié)議控制器,,只需在片外電路中加上LIN驅(qū)動器。LIN驅(qū)動器采用MCP2021芯片,。該芯片性能穩(wěn)定,,電磁輻射低,支持LIN2.1協(xié)議中所有波特率下的通信,,接口兼容標(biāo)準(zhǔn)USART[2],。所設(shè)計的驅(qū)動電路如圖3所示,。做主機(jī)時要在LIN總線上加一個上拉電阻R1和保護(hù)二極管D1,做從機(jī)時無需加此電阻和二極管,,因為傳輸距離不長的一條LIN總線上只需一個上拉電阻,。電容C2起濾波作用。D2是一個保護(hù)二極管,,R3與C1組成一個低通濾波電路,,用于濾除高頻干擾,穩(wěn)定芯片電源,。電阻R2將FAULT/TXE引腳拉高以使能其發(fā)送器,,當(dāng)驅(qū)動器出現(xiàn)發(fā)送錯誤或工作溫度過高時會在FAULT/TXE引腳上輸出一個低電平,該下降沿可作為SMT32的外部中斷信號,。該芯片的RXD和TXD引腳直接連接至USART的對應(yīng)端口,。
2.3 PWM通道與開關(guān)量通道
PWM通道和開關(guān)量通道的本質(zhì)都是用低電平控制高電平,此處采用功率場效應(yīng)管實現(xiàn),。功率場效應(yīng)管的電路設(shè)計可參考參考文獻(xiàn)[3],,此處不再贅述。
2.4 AD采樣通道
STM32內(nèi)部集成了A/D轉(zhuǎn)換器,。電壓的采樣用一個分壓電路即可實現(xiàn),,電流的采樣選用電流檢測芯片MAX4080[4]。對某一通道的電流采樣電路設(shè)計如圖4所示,,圖中的電源1和電源2分別是供給車燈和MAX4080芯片的電源,,其電壓輸入范圍都是4.5 V~76 V。采樣電阻R1的選取受諸多因素的影響,,推薦R1的取值應(yīng)使得當(dāng)使用5倍增益時采樣電阻兩端的滿量程分壓為1 V,,20倍增益時采樣電阻兩端的滿量程分壓為250 mV,60倍增益時采樣電阻兩端的滿量程分壓為100 mV,。R1兩端的電壓被取樣到芯片內(nèi)部,,經(jīng)調(diào)理放大后由OUT引腳輸出,再經(jīng)電位器分壓后由抽頭引至STM32的ADC的輸入引腳進(jìn)行A/D轉(zhuǎn)換,。因為電流的變化與采樣電阻R1兩端的電壓差及芯片的輸出電壓都是線性關(guān)系,,故以此來間接地測量電流的大小。采樣通道在使用之前必須調(diào)節(jié)R4進(jìn)行標(biāo)定,。
3 軟件設(shè)計
3.1 軟件層次劃分
本設(shè)計為了提高系統(tǒng)的健壯性和實時性,,將嵌入式實時操作系統(tǒng)μC/OS-Ⅱ移植到STM32中[5]。首先應(yīng)用分層的思想設(shè)計,,本軟件可分為硬件驅(qū)動層和應(yīng)用層,。在硬件層上要建立的抽象模型有:
(1)按鍵模型,。將各類按鍵和鈕子開關(guān)抽象成一個按鍵模型,,該模型不但記錄了某按鍵的功能信息,,還記錄了該按鍵在上一次和本次掃描中的狀態(tài)。
?。?)液晶模型,。將液晶顯示屏抽象為指令的收發(fā)函數(shù)和數(shù)據(jù)的顯示函數(shù),要能夠?qū)崿F(xiàn)液晶任意位置的字體反白和閃爍顯示等功能,。
?。?)車燈模型。將待檢車燈抽象成一個統(tǒng)一的模型,,該模型記錄了車燈內(nèi)燈的總數(shù)目及各燈的參數(shù),,如點(diǎn)亮位置燈的PWM頻率及占空比和正常的電壓/電流范圍、轉(zhuǎn)向燈的閃爍頻率和占空比,、近光燈是氙燈還是鹵素?zé)舻?。該模型還記錄了CAN通信及LIN通信的指令地址及波特率。
對應(yīng)用層來說,,要建立各種控制模型,,利用控制模型對硬件資源的使用進(jìn)行有效的管理,如:
?。?)液晶顯示模型,。該模型對液晶顯示內(nèi)容的指針和同類內(nèi)容的顯示次序進(jìn)行記錄,要實時反映當(dāng)前面板和受檢車燈的狀態(tài),。
(2)AD控制模型,。該模型要合理地分配AD資源,,實現(xiàn)對多個采樣通道的管理。由于本設(shè)計用的是一個A/D轉(zhuǎn)換器的分時復(fù)用,,因此要注意對共享資源的訪問問題,。
(3)通信控制模型,。該模型負(fù)載CAN通信與LIN通信的建立與調(diào)度,,控制每幀數(shù)據(jù)間的時間間隔,并完成相應(yīng)的錯誤處理,。
要在STM32上使用操作系統(tǒng),,首先需要進(jìn)行移植工作,然后進(jìn)行任務(wù)劃分,。本設(shè)計的主要任務(wù)劃分為7個,,其功能如表1所示。
3.2 主要流程設(shè)計
本設(shè)計采用的系統(tǒng)是一個多任務(wù)操作系統(tǒng),,任務(wù)之間并沒有嚴(yán)格的順序關(guān)系,,但是要完成一個具體的功能就需要進(jìn)行各任務(wù)間的同步,。此處給出了TaskManual和TaskTest任務(wù)的大致流程圖。
TaskManual任務(wù)的流程如圖5所示,。任務(wù)首先進(jìn)行模式及數(shù)據(jù)的初始化,,將液晶顯示模型和AD控制模型設(shè)置為初始狀態(tài)。然后查詢信號量SemNewPanel,,該信號量由TaskPanel任務(wù)產(chǎn)生,。若該信號量處于失信狀態(tài),則調(diào)用延時函數(shù)將本任務(wù)阻塞,;當(dāng)該信號量有效時,,說明當(dāng)前的面板狀態(tài)已被記錄到按鍵模型中,同時產(chǎn)生驅(qū)動事件,。程序獲得SemNewPanel信號量后繼續(xù)向下運(yùn)行,,判斷是否有新的事件被觸發(fā)。如果沒有則直接調(diào)用延時函數(shù)將本任務(wù)阻塞,,否則要通過被抽象出來的車燈模型對車燈的各類信號量進(jìn)行投遞,,以同步相應(yīng)的任務(wù)完成相應(yīng)的功能。
TaskTest任務(wù)的流程如圖6所示,。任務(wù)首先進(jìn)行模式及數(shù)據(jù)初始化,,完成對時鐘的配置,然后根據(jù)既定的實驗要求運(yùn)行,。在實驗?zāi)J街?,要保證多個循環(huán)之后實驗節(jié)拍的正確性,本設(shè)計采用用戶時鐘與相對時鐘相結(jié)合的方法實現(xiàn),。用戶時鐘是根據(jù)一個相對精確的時鐘源(定時器的定時或時鐘芯片)通過計數(shù)的方法建立對時,、分、秒的記錄,,該時間一方面作為液晶顯示的試驗運(yùn)行時間,,另一方面作為試驗?zāi)畴A段的結(jié)束和開始的時間依據(jù)以及一個試驗循環(huán)結(jié)束的依據(jù)。然而,,僅有一個用戶時鐘是不夠的,,因為同一試驗階段在不同的循環(huán)中的起始和結(jié)束時間是不一樣的,所以需要一套相對時鐘實現(xiàn)對循環(huán)內(nèi)部各試驗階段的控制,。
本設(shè)計采用STM32芯片實現(xiàn)了CAN通信,、LIN通信和AD采樣等通道,外圍電路的設(shè)計模塊分明,,可靠性高,。該車燈檢測箱提供的電氣功能檢測滿足了多數(shù)型號車燈的需要,且軟件采用分層設(shè)計思想便于修改升級,。該檢測箱性能穩(wěn)定,,便于攜帶,,滿足了車燈生產(chǎn)廠家的工作需要。
參考文獻(xiàn)
[1] 吳坎,,趙薇,,李封.基于SJA1000和PCA82C250的CAN總線接口設(shè)計[J].機(jī)械設(shè)計與制造,2010(7):55-57.
[2] 馬軍,,李澤滔.基于LIN總線的電動車窗控制器設(shè)計[J].微型機(jī)與應(yīng)用,,2011,30(16):57-59,,63.
[3] 劉星平.功率場效應(yīng)管驅(qū)動電路的研究[J].電氣開關(guān),,2002(2):1-2,25.
[4] 張亮,,莫岳平,,江東流.智能型鋰電池組管理系統(tǒng)設(shè)計[J].電工電氣,2012(5):24-25,,34.
[5] 任哲.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用(第2版)[M].北京:北京航空航天大學(xué)出版社,,2009.