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

摘  要: 為滿足對(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)說,,要建立各種控制模型,利用控制模型對(duì)硬件資源的使用進(jìn)行有效的管理,,如:
?。?)液晶顯示模型。該模型對(duì)液晶顯示內(nèi)容的指針和同類內(nèi)容的顯示次序進(jìn)行記錄,,要實(shí)時(shí)反映當(dāng)前面板和受檢車燈的狀態(tài),。
 (2)AD控制模型,。該模型要合理地分配AD資源,,實(shí)現(xiàn)對(duì)多個(gè)采樣通道的管理。由于本設(shè)計(jì)用的是一個(gè)A/D轉(zhuǎn)換器的分時(shí)復(fù)用,,因此要注意對(duì)共享資源的訪問問題,。
?。?)通信控制模型。該模型負(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í),,說明當(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.

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