《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于STM32的便攜式車燈檢測箱研制
基于STM32的便攜式車燈檢測箱研制
來源:微型機與應(yīng)用2013年第15期
李玉群,周莉萍,徐 龍
(華中科技大學(xué) 機械科學(xué)與工程學(xué)院 儀器系,湖北 武漢 430074)
摘要: 為滿足對汽車車燈的電氣參數(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)成本。
Abstract:
Key words :

摘  要: 為滿足對汽車車燈的電氣參數(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è)備長時間控制燈的運轉(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é)點以高阻狀態(tài)隔離于總線之外,避免對CAN總線上其他節(jié)點產(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)入待機模式,此時發(fā)送器關(guān)閉,接收器進(jìn)入低電流模式。如果檢測到總線上有有效信號,則RXD引腳變低電平,STM32芯片對RXD的這一變化作出反應(yīng),控制Q1導(dǎo)通,使收發(fā)器進(jìn)入工作模式。但在待機模式下總線上的第一條消息會丟失。STM32通過控制Q1的導(dǎo)通和截止來切換驅(qū)動器的運行模式。

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所示。做主機時要在LIN總線上加一個上拉電阻R1和保護(hù)二極管D1,做從機時無需加此電阻和二極管,因為傳輸距離不長的一條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)用層。在硬件層上要建立的抽象模型有:
?。?)按鍵模型。將各類按鍵和鈕子開關(guān)抽象成一個按鍵模型,該模型不但記錄了某按鍵的功能信息,還記錄了該按鍵在上一次和本次掃描中的狀態(tài)。
?。?)液晶模型。將液晶顯示屏抽象為指令的收發(fā)函數(shù)和數(shù)據(jù)的顯示函數(shù),要能夠?qū)崿F(xiàn)液晶任意位置的字體反白和閃爍顯示等功能。
?。?)車燈模型。將待檢車燈抽象成一個統(tǒng)一的模型,該模型記錄了車燈內(nèi)燈的總數(shù)目及各燈的參數(shù),如點亮位置燈的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ù)用,因此要注意對共享資源的訪問問題。
?。?)通信控制模型。該模型負(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ù)向下運行,判斷是否有新的事件被觸發(fā)。如果沒有則直接調(diào)用延時函數(shù)將本任務(wù)阻塞,否則要通過被抽象出來的車燈模型對車燈的各類信號量進(jìn)行投遞,以同步相應(yīng)的任務(wù)完成相應(yīng)的功能。

 TaskTest任務(wù)的流程如圖6所示。任務(wù)首先進(jìn)行模式及數(shù)據(jù)初始化,完成對時鐘的配置,然后根據(jù)既定的實驗要求運行。在實驗?zāi)J街校WC多個循環(huán)之后實驗節(jié)拍的正確性,本設(shè)計采用用戶時鐘與相對時鐘相結(jié)合的方法實現(xiàn)。用戶時鐘是根據(jù)一個相對精確的時鐘源(定時器的定時或時鐘芯片)通過計數(shù)的方法建立對時、分、秒的記錄,該時間一方面作為液晶顯示的試驗運行時間,另一方面作為試驗?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].機械設(shè)計與制造,2010(7):55-57.
[2] 馬軍,李澤滔.基于LIN總線的電動車窗控制器設(shè)計[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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。