基于STM32的汽車空調調速模塊信號發生器的設計
摘要:適應汽車電子技術的發展,根據汽車空調調速模塊生產中的測試需要,設計了一種支持多類型信號輸出的汽車空調調速模塊信號發生器。可支持0V-10V分辨率0.1V的直流輸出;頻率10Hz-1000Hz,占空比0%-100%的PWM輸出;LIN-BUS總線輸出。涵蓋了目前主流的三種類型信號,具有輸出精度高、輸出穩定、使用簡單的特點。根據實際需要,設計了測試和老化兩種工作模式,測試模式用于人工測試產品使用,老化模式用于產品老化實驗階段自動循環掃描輸出。
本文引用地址:http://www.j9360.com/article/279226.htm引言
近年來,隨著汽車電子技術的發展,汽車已經深入人們的生活。汽車空調作為汽車舒適系統的重要部分,也越來越引起駕駛者的關注。汽車空調調速模塊主要用于控制空調鼓風機的轉速,進而改變空調出風量的大小,是汽車空調系統里的重要組成部分也是最容易損壞的部件。從過去簡單的純電阻分壓換擋到現在的電子開關式調速模塊的無級調速,集成度越來越高,功能也越來越豐富。汽車空調控制器ECU發出的調速信號類型也從DC直流、PWM占空比等模擬信號向LIN通信的數字化方向發展[1]。以往測試模塊往往需要借助直流電源、DDS函數信號發生器,帶LIN通信的模塊測試時,甚至需要購買整套空調控制系統才可進行測試,成本高、操作復雜。本文設計的汽車空調調速模塊信號發生器則將上述幾種信號集成在了一個信號發生器里,并根據產品實際研發和生產需要,設計了簡潔的人機界面,大大降低了對操作工人的技術水平要求。同時增加了老化模式,方便產品老化需要。
本文提出的汽車空調調速模塊信號發生器設計方案支持0V~10V直流電壓信號輸出,分辨率0.1V,數字步進輸出;頻率范圍10Hz~1000Hz,0%~100%占空比下的PWM信號輸出;支持LIN2.0標準LIN-BUS總線通信輸出,數據幀內容可根據新增模塊進行升級擴展。
1 硬件設計
圖1為系統硬件框圖,硬件由MCU系統電路、DC輸出電路、PWM輸出電路、LIN通信電路、人機界面、系統工作電源等幾部分組成。三種類型信號通過繼電器切換選擇,最終在BNC公共端子上輸出。
1.1 MCU及相關電路
MCU選用當前主流ARM Cortex-M3 芯片,ST公司的STM32F103C8T6,其具有極高的性價比。它是一款TQFP48封裝的微控制器,系統工作時鐘最高可達72MHz,64KB flash、20K RAM,豐富的內存空間為以后的升級提供了保障。同時內部集成了硬件PWM、USART、I2C總線、內置復位、及看門狗電路等外設,適用很多高集成度、低成本的應用場合[2]。通過外接一個8MHz的石英晶體振蕩器,保證了系統時鐘的準確性,將PWM輸出頻率和LIN—BUS總線的波特率誤差降到最低。外接了一片EEPROM芯片FM24CL16用于系統參數及用戶當前設置操作的掉電存儲,下次開機可以直接調用歷史設置。
1.2 DC輸出電路
DC信號由PWM濾波得到,如圖2。STM32F103C8T6的硬件PWM定時器為16位,足夠滿足直流0V~10V量程下步進0.1V的分辨率。使用其TIME1的CH1通道輸出頻率為1kHz的PWM,輸出為推挽方式。PWM輸出的高電平經過基準芯片LM385BZ-2.5穩壓到2.5V,然后再經由LM358構成的二階低通濾波放大電路輸出,為保證輸出直流信號的平滑度,又加了一級RC濾波;二階低通濾波器的截止頻率取16Hz。C23、C24直接取1μF,由計算可得R16、R17阻值為10kΩ;PWM的VPP為2.5V,為滿足DC最大10V輸出,至少需放大4倍,考慮預留余量取
,同時為了使集成運放兩個輸入端對地的電阻平衡,取R18=10kΩ,R19=33kΩ。輸出再經過一級跟隨器,可保證輸出信號的低阻抗[3]。另為防止輸出被短路,輸出串聯了1kΩ輸出限流保護電阻R22,并使用二極管1N4148做了反向保護。D3、D4兩個鉗位二極管和D5反向二極管用于防止輸出被誤接其它外部信號時對電路造成損壞。
1.3 PWM輸出電路
使用TIME1的CH2通道輸出頻率范圍10Hz~1000Hz,占空比0%~100%的PWM信號。信號的幅值固定為5V Vpp。為了提高PWM信號的驅動能力,輸出采用三極管構建了一個圖騰柱驅動電路。當PWM輸出低電平時,Q2截止,Q3導通,Q4截止,最終PWM_OUT輸出為高電平;當PWM輸出高電平時,Q2導通,Q3截止,Q4導通,最終PWM_OUT輸出為低電平。為防止輸出被短路,在輸出端串聯了一個100mA的自恢復保險絲F1,限制其最大輸出能力為100mA;D7的1N5819可防止與模塊連接時被誤反接進而可能對本電路的損傷。PWM輸出電路見圖3。
1.4 LIN通信電路
目前LIN總線技術正被越來越廣泛的應用到車身電子中,它是面向汽車低端分布式應用的低成本、低速率、串行通信總線。LIN接口由兩部分組成:協議控制器、線路接口。協議控制器可在MCU的一個標準UART上實現,MCU軟件負責管理LIN協議并實現以下功能,發送/接收8位字節、構成請求幀(接收為應幀)、發送幀。線路接口,負責將LIN總線的信號翻譯成無干擾的RX信號傳入LIN協議控制器;或將協議控制器的RX信號進行翻譯傳入LIN總線。物理層采用單線連接,兩個電控單元間的最大傳輸距離為40m,低傳輸速率小于20kb/s,采用NRZ編碼。在總線上發送的信息,有長度可選的固定格式。每個報文幀都包括2、4或8個字節的數據以及3個字節的控制、安全信息(同步場、標識符場和校驗場)[4]。
STM32F103C8T6用作協議控制器,其內部的USART支持LIN模式。LIN接口則采用NXP公司的TJA1020,它是目前主流LIN物理接口芯片。信號發生器只向電子調速模塊發送調速指令的數據幀,故工作在master主機模式下。如圖4所示,LIN 收發器的睡眠控制輸入NSLP引腳直接接到MCU工作電源3.3V上,使其一直處理喚醒狀態。本地喚醒NWAKE引腳則加限流電阻接到地上。TJA1020在主機應用下,需要增加一個額外的主機端電阻,通過在LIN 和BAT引腳之間串聯一個反向電流二極管D12和電阻R35實現,為了提高EMC以及降低EMI,對地連接了一個電容負載C28。同樣為防止外部短路和反接,在輸出端還增加了一個10Ω的限流電阻R36和100mA的自恢復保險絲F2,有效保護自身電路。
1.5 人機界面
人機界面用于輸出信號類型、輸出模式、輸出值等狀態的設定和顯示,電路見圖5。采用上下兩行4聯共陰數碼管顯示數值,上行數碼管U1用于顯示LIN通信類型模塊的型號和PWM下的頻率值,下行數碼管U2則顯示DC信號下的輸出電壓值;PWM下的占空比;LIN下的輸出檔位等。數碼管驅動電路采用一種集成化的串行輸入/輸出共陰極顯示驅動器MAX7219,它連接微處理器與2個4聯共陰8段數碼管,具有自動掃描、數字的譯碼與非譯碼選擇、模擬和數字亮度控制功能。并外接了8個LED燈用于當前選擇的信號類型、測試/老化模式、輸出開啟/關閉等狀態指示。
設計了4個獨立按鍵和一個旋鈕式編碼開關做為用戶操作設置按鍵,使操作盡量簡單化。分別為S1信號類型切換鍵、S2測試/老化模式切換鍵、S3輸出開/關鍵、編碼開關S4實現+/-及設置確定功能。
pwm相關文章:pwm是什么
c語言相關文章:c語言教程
低通濾波器相關文章:低通濾波器原理
負離子發生器相關文章:負離子發生器原理 離子色譜儀相關文章:離子色譜儀原理 鎖相環相關文章:鎖相環原理
評論