《基于STM32的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于STM32的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器的設(shè)計(jì)(5頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于STM32的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器的設(shè)計(jì)
摘要:適應(yīng)汽車電子技術(shù)的發(fā)展,根據(jù)汽車空調(diào)調(diào)速模塊生產(chǎn)中的測(cè)試需要,設(shè)計(jì)了一種支持多類型信號(hào)輸出的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器??芍С諳V-10V分辨率O.1V的直流輸出;頻率10Hz-lOOOHz,占空比O%-lOO%的PWM輸出;LIN-BUS總線輸出。涵蓋了目前主流的三種類型信號(hào),具有輸出精度高、輸出穩(wěn)定、使用簡(jiǎn)單的特點(diǎn)。根據(jù)實(shí)際需要,設(shè)計(jì)了測(cè)試和老化兩種工作模式,測(cè)試模式用于人工測(cè)試產(chǎn)品使用,老化模式用于產(chǎn)品老化實(shí)驗(yàn)階段自動(dòng)循環(huán)掃描輸出。
關(guān)鍵詞:DC;LIN;PWM
2、
引言
近年來,隨著汽車電子技術(shù)的發(fā)展,汽車已經(jīng)深入人們的生活。汽車空調(diào)作為汽車舒適系統(tǒng)的重要部分,也越來越引起駕駛者的關(guān)注。汽車空調(diào)調(diào)速模塊主要用于控制空調(diào)鼓風(fēng)機(jī)的轉(zhuǎn)速,進(jìn)而改變空調(diào)出風(fēng)量的大小,是汽車空調(diào)系統(tǒng)里的重要組成部分也是最容易損壞的部件。從過去簡(jiǎn)單的純電阻分壓換擋到現(xiàn)在的電子開關(guān)式調(diào)速模塊的無級(jí)調(diào)速,集成度越來越高,功能也越來越豐富。汽車空調(diào)控制器ECU發(fā)出的調(diào)速信號(hào)類型也從DC直流、PWM占空比等模擬信號(hào)向LIN通信的數(shù)字化方向發(fā)展。以往測(cè)試模塊往往需要借助直流電源、DDS函數(shù)信號(hào)發(fā)生器,帶LIN通信的模塊測(cè)試時(shí),甚至需要購買整套空調(diào)控制系統(tǒng)才可進(jìn)行測(cè)試,成本高
3、、操作復(fù)雜。本文設(shè)計(jì)的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器則將上述幾種信號(hào)集成在了一個(gè)信號(hào)發(fā)生器里,并根據(jù)產(chǎn)品實(shí)際研發(fā)和生產(chǎn)需要,設(shè)計(jì)了簡(jiǎn)潔的人機(jī)界面,大大降低了對(duì)操作工人的技術(shù)水平要求。同時(shí)增加了老化模式,方便產(chǎn)品老化需要。
本文提出的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器設(shè)計(jì)方案支持OV~10V直流電壓信號(hào)輸出,分辨率O.lV,數(shù)字步進(jìn)輸出;頻率范圍10Hz~1000Hz,0%~100%占空比下的PWM信號(hào)輸出:支持LIN2.0標(biāo)準(zhǔn)LIN-BUS總線通信輸出,數(shù)據(jù)幀內(nèi)容可根據(jù)新增模塊進(jìn)行升級(jí)擴(kuò)展。
一、硬件設(shè)計(jì)
圖1為系統(tǒng)硬件框圖,硬件由MCU系統(tǒng)電路、DC輸出電路、P
4、WM輸出電路、LIN通信電路、人機(jī)界面、系統(tǒng)工作電源等幾部分組成。三種類型信號(hào)通過繼電器切換選擇,最終在BNC公共端子上輸出。
1.1 MCU及相關(guān)電路
MCU選用當(dāng)前主流ARMCortex-M3芯片,ST公司的STM32F103C8T6,其具有極高的性價(jià)比。它是一款TQFP48封裝的微控制器,系統(tǒng)工作時(shí)鐘最高可達(dá)72MHz,64KB flash、20K RAM,豐富的內(nèi)存空間為以后的升級(jí)提供了保障。同時(shí)內(nèi)部集成了硬件PWM、USART、I?C總線、內(nèi)置復(fù)位、及看門狗電路等外設(shè),適用很多高集成度、低成本的應(yīng)用場(chǎng)合。通過外接一個(gè)8MHz的石英晶體振蕩器,保證了系統(tǒng)時(shí)鐘
5、的準(zhǔn)確性,將PWM輸出頻率和LIN-BUS總線的波特率誤差降到最低。外接了一片EEPROM芯片F(xiàn)M24CL16用于系統(tǒng)參數(shù)及用戶當(dāng)前設(shè)置操作的掉電存儲(chǔ),下次開機(jī)可以直接調(diào)用歷史設(shè)置。
1.2 DC輸出電路
DC信號(hào)由PWM濾波得到,如圖2。STM32F103C8T6的硬件PWM定時(shí)器為16位,足夠滿足直流OV~10V量程下步進(jìn)O.lV的分辨率。使用其TIME1的CH1通道輸出頻率為lkHz的PWM,輸出為推挽方式。PWM輸出的高電平經(jīng)過基準(zhǔn)芯片LM385BZ-2.5穩(wěn)壓到2.5V,然后再經(jīng)由LM358構(gòu)成的二階低通濾波放大電路輸出,為保證輸出直流信號(hào)的平滑度,又加了
6、一級(jí)RC濾波:二階低通濾波器的截止頻率取16Hz。C23、C24直接取1μF,由f=1/2πRC計(jì)算可得R16、R17阻值為lOkQ;PWM的VPP為2.5V,為滿足DC最大10V輸出,至少需放大4倍,考慮預(yù)留余量取G=R18+R19/R18=4.3,同時(shí)為了使集成運(yùn)放兩個(gè)輸入端對(duì)地的電阻平衡,取R18=lOkΩ, R19=33kΩ。輸出再經(jīng)過一級(jí)跟隨器,可保證輸出信號(hào)的低阻抗‘副。另為防止輸出被短路,輸出串聯(lián)了lkΩ輸出限流保護(hù)電阻R22,并使用二極管1N4148做了反向保護(hù)。D3、D4兩個(gè)鉗位二極管和D5反向二極管用于防止輸出被誤
7、接其它外部信號(hào)時(shí)對(duì)電路造成損壞。
1.3 PWM輸出電路
使用TIME1的CH2通道輸出頻率范圍10Hz―lOOOHz,占空比O%~l00%的PWM信號(hào)。信號(hào)的幅值固定為SVVpp。為了提高PWM信號(hào)的驅(qū)動(dòng)能力,輸出采用三極管構(gòu)建了一個(gè)圖騰柱驅(qū)動(dòng)電路。當(dāng)PWM輸出低電平時(shí),Q2截止,Q3導(dǎo)通,Q4截止,最終PWM OUT輸出為高電平:當(dāng)PWM輸出高電平時(shí),Q2導(dǎo)通,Q3截止,Q4導(dǎo)通,最終PWM~OUT輸出為低電平。為防止輸出被短路,在輸出端串聯(lián)了一個(gè)lOOmA的自恢復(fù)保險(xiǎn)絲Fl,限制其最大輸出能力為lOOmA;D7的1N5819可防止與模塊連接時(shí)被誤反接進(jìn)而可能對(duì)
8、本電路的損傷。PWM輸出電路見圖3。
1.4 LIN通信電路
目前LIN總線技術(shù)正被越來越廣泛的應(yīng)用到車身電子中,它是面向汽車低端分布式應(yīng)用的低成本、低速率、串行通信總線。LIN接口由兩部分組成:協(xié)議控制器、線路接口。協(xié)議控制器可在MCU的一個(gè)標(biāo)準(zhǔn)UART上實(shí)現(xiàn),MCU軟件負(fù)責(zé)管理LIN協(xié)議并實(shí)現(xiàn)以下功能,發(fā)送/接收8位字節(jié)、構(gòu)成請(qǐng)求幀(接收為應(yīng)幀)、發(fā)送幀。線路接口,負(fù)責(zé)將LIN總線的信號(hào)翻譯成無干擾的RX信號(hào)傳入LIN協(xié)議控制器:或?qū)f(xié)議控制器的RX信號(hào)進(jìn)行翻譯傳人LIN總線。物理層采用單線連接,兩個(gè)電控單元間的最大傳輸距離為40m,低傳輸速率小于20kb/s,
9、采用NRZ編碼。在總線上發(fā)送的信息,有長度可選的固定格式。每個(gè)報(bào)文幀都包括2、4或8個(gè)字節(jié)的數(shù)據(jù)以及3個(gè)字節(jié)的控制、安全信息(同步場(chǎng)、標(biāo)識(shí)符場(chǎng)和校驗(yàn)場(chǎng))。
STM32F103C8T6用作協(xié)議控制器,其內(nèi)部的USART支持LIN模式。LIN接口則采用NXP公司的TJA1020,它是目前主流LIN物理接口芯片。信號(hào)發(fā)生器只向電子調(diào)速模塊發(fā)送調(diào)速指令的數(shù)據(jù)幀,故工作在master主機(jī)模式下。如圖4所示,LIN收發(fā)器的睡眠控制輸入NSLP引腳直接接到MCU工作電源3.3V上,使其一直處理喚醒狀態(tài)。本地喚醒NWAKE引腳則加限流電阻接到地上。TJA1020在主機(jī)應(yīng)用下,需要增加一個(gè)額外的主
10、機(jī)端電阻,通過在LIN和BAT引腳之間串聯(lián)一個(gè)反向電流二極管D12和電阻R35實(shí)現(xiàn),為了提高EMC以及降低EMI,對(duì)地連接了一個(gè)電容負(fù)載C28。同樣為防止外部短路和反接,在輸出端還增加了一個(gè)loQ的限流電阻R36和lOOmA的自恢復(fù)保險(xiǎn)絲F2,有效保護(hù)自身電路。
1.5 人機(jī)界面
人機(jī)界面用于輸出信號(hào)類型、輸出模式、輸出值等狀態(tài)的設(shè)定和顯示,電路見圖5。采用上下兩行4聯(lián)共陰數(shù)碼管顯示數(shù)值,上行數(shù)碼管Ul用于顯示LIN通信類型模塊的型號(hào)和PWM下的頻率值,下行數(shù)碼管U2則顯示DC信號(hào)下的輸出電壓值:PWM下的占空比:LIN下的輸出檔位等。數(shù)碼管驅(qū)動(dòng)電路采用一種集成化的
11、串行輸入/輸出共陰極顯示驅(qū)動(dòng)器MAX7219,它連接微處理器與2個(gè)4聯(lián)共陰8段數(shù)碼管,具有自動(dòng)掃描、數(shù)字的譯碼與非譯碼選擇、模擬和數(shù)字亮度控制功能。并外接了8個(gè)LED燈用于當(dāng)前選擇的信號(hào)類型、測(cè)試/老化模式、輸出開啟/關(guān)閉等狀態(tài)指示。
設(shè)計(jì)了4個(gè)獨(dú)立按鍵和一個(gè)旋鈕式編碼開關(guān)做為用戶操作設(shè)置按鍵,使操作盡量簡(jiǎn)單化。分別為Sl信號(hào)類型切換鍵、S2測(cè)試/老化模式切換鍵、S3輸出開/關(guān)鍵、編碼開關(guān)S4實(shí)現(xiàn)+/一及設(shè)置確定功能。
1.6 系統(tǒng)電源電路
系統(tǒng)直接采用220V市電供電,輸入首先經(jīng)過一個(gè)lOOmAl250V的自恢復(fù)保險(xiǎn)絲,確保內(nèi)部發(fā)生意外短路故障時(shí)能快
12、速有效地保護(hù)系統(tǒng)。再通過Ll共模電感和Cl安規(guī)電容構(gòu)成的EMI電路,提高系統(tǒng)受外部電網(wǎng)波動(dòng)或電源噪聲等EMI干擾。再使用15V/5W的工頻變壓器將電壓降到15V,并通過整流、濾波轉(zhuǎn)換成直流電壓輸出。系統(tǒng)需要較多種類電源電壓,首先通過高效率的降壓型DC-DC芯片LM2576-ADJ將電壓穩(wěn)壓到SV供PWM電路和切換信號(hào)輸出通道的繼電器使用:MCU及其外圍電路工作需要的3.3V電源則由一片LDO芯片LD1117-3.3將SV進(jìn)一步穩(wěn)壓到3.3V得到。另外通過使用一片LDO芯片HT7550對(duì)地串聯(lián)一個(gè)6.8V穩(wěn)壓管可直接將15V電源穩(wěn)壓到12V,來為LIN通信電路提供工作電源。圖6為系統(tǒng)電源電路。
13、
電路中還設(shè)計(jì)了一個(gè)掉電檢測(cè)電路,當(dāng)系統(tǒng)發(fā)生斷電情況時(shí)可迅速通知MCU將用戶當(dāng)前的操作設(shè)定存入EEPROM中,下次開機(jī)上電時(shí)再將數(shù)據(jù)讀取出來使用。將15V電源經(jīng)30k Q和lOk Q電阻分壓后接到比較器LM311的同相端,反相端接到由LM38582-2.5基準(zhǔn)電路輸出的2.5V參考電壓上。當(dāng)斷電瞬間電源電壓從15V跌到10V時(shí)比較器迅速反轉(zhuǎn)產(chǎn)生一個(gè)下降沿輸出,觸發(fā)MCU的外部中斷,通知其進(jìn)行掉電保護(hù)操作。
二、軟件設(shè)計(jì)
系統(tǒng)軟件采用C語言編寫,主程序包含了DC輸出及校準(zhǔn)、PWM輸出、LIN通信幀編碼及輸出、顯示及按鍵掃描、掉電保護(hù)等幾個(gè)功能函數(shù)。
14、
系統(tǒng)校準(zhǔn)是廠家出廠前使用的校準(zhǔn)程序,用于信號(hào)發(fā)生器首次上電開機(jī)時(shí),DC通道的輸出值校準(zhǔn).校準(zhǔn)采用上/下限兩點(diǎn)式線性校準(zhǔn)方式,分別校準(zhǔn)1V和10V輸出點(diǎn),校準(zhǔn)公式為y=x*(y2-yl)/(x2-xl)+yl。只需校準(zhǔn)一次,校準(zhǔn)值存入EEPROM,斷電不丟失。
系統(tǒng)使用MCU內(nèi)部鎖相環(huán)將系統(tǒng)8M外部主時(shí)鐘倍頻到72MHz,保證在PWM輸出時(shí)可通過分檔改變TIME1的時(shí)鐘預(yù)分頻系數(shù),實(shí)現(xiàn)頻率1Hz~lkHz,占空比O%~100%范圍內(nèi)1%的分辨率和準(zhǔn)確度。DC輸出時(shí)則需要根據(jù)輸出設(shè)定值,結(jié)合兩點(diǎn)式線性校準(zhǔn)公式調(diào)整輸出PWM的占空比,從而改變輸出的電壓值。
LIN
15、通信則按照LIN 2.O總線標(biāo)準(zhǔn),使MCU的USART工作在LIN模式下,并編寫了一個(gè)LIN數(shù)據(jù)幀編碼及發(fā)送函數(shù),波特率為9600,數(shù)據(jù)位8位,停止位1位,無校驗(yàn)位。報(bào)文幀由報(bào)文頭和響應(yīng)內(nèi)容組成,見圖7:報(bào)文頭包括13位長度的同步間隔,同步域Ox55,標(biāo)識(shí)符場(chǎng)Ox61;響應(yīng)內(nèi)容為5個(gè)字節(jié),包括datal(給定速度0~255間任意值)、data2、data3、data4分別為固定值Ox02、Ox20、Ox00。校驗(yàn)和域是數(shù)據(jù)域所有字節(jié)的和的反碼。
系統(tǒng)采用一個(gè)外部中斷用于掉電檢測(cè),當(dāng)中斷事件發(fā)生時(shí),立即將用戶當(dāng)前設(shè)定的參數(shù)寫入EEPROM。等待下次開機(jī)時(shí)再從EEPROM中讀取方便用戶繼續(xù)使用上次設(shè)定。存儲(chǔ)的主要參數(shù)有當(dāng)前信號(hào)類型、DC輸出值、PWM輸出頻率和占?xì)饪毡?、LIN模塊型號(hào)和檔位、測(cè)試/老化模式等。測(cè)試模式下,用戶可手工設(shè)置當(dāng)前輸出具體值,并作出任意調(diào)整。老化模式下,用戶則只需選擇信號(hào)類型和模塊型號(hào),信號(hào)發(fā)生器將定時(shí)每間隔5分鐘自動(dòng)每次按滿量程的10%步進(jìn)循環(huán)輸出。
三、結(jié)論
采用本方法設(shè)計(jì)的汽車空調(diào)調(diào)速模塊信號(hào)發(fā)生器已經(jīng)達(dá)到了設(shè)計(jì)要求,并已形成產(chǎn)品在汽車空調(diào)調(diào)速模塊產(chǎn)品的測(cè)試、老化等生產(chǎn)檢測(cè)環(huán)節(jié)中使用,并取得了良好的使用效果。