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