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