基于LIN總線的車用無刷直流電機(jī)LIN總線設(shè)計(jì) 2024-10-06
基于LIN總線的車用無刷直流電機(jī)控制器設(shè)計(jì)
1 前言 隨著汽車部件的電動(dòng)化、自動(dòng)化程度不斷提高和對汽車電機(jī)的噪聲、電磁兼容、效率的高要求,永磁無刷直流電機(jī)正在逐步替代有刷的永磁直流電機(jī) 。永磁無刷電機(jī)具有體積小、壽命長、效率高、結(jié)構(gòu)簡單、可靠性好等優(yōu)點(diǎn),利用它作為汽車部件的驅(qū)動(dòng)執(zhí)行元件可有效地提高汽車部件的性能。例如在Freightliner公司的M2系列商務(wù)車上,采用無刷電機(jī)驅(qū)動(dòng)其空調(diào)系統(tǒng)的鼓風(fēng)機(jī),更好地調(diào)節(jié)了送風(fēng)速度 。
由于汽車總線技術(shù)的日趨成熟,汽車內(nèi)多個(gè)電機(jī)單元的控制方式正從傳統(tǒng)的集中式線束控制向分布式總線控制轉(zhuǎn)變。分布式總線控制可以減少線束,降低成本,便于各個(gè)電機(jī)控制單元和車內(nèi)其它電控單元一起形成一個(gè)綜合協(xié)調(diào)的控制系統(tǒng),提高各控制單元的運(yùn)行可靠性,減少冗余的傳感器及相應(yīng)的軟硬件配置,實(shí)現(xiàn)信息交換和資源共享。目前常用的汽車總線包括CAN、LIN等,其中LIN面向低速場合的應(yīng)用。作者設(shè)計(jì)基于LIN總線的無刷直流電機(jī)控制器,該控制器以文獻(xiàn)中介紹的MC68HC908MR16單片機(jī)、PC33896前置驅(qū)動(dòng)器、MC33399LIN收發(fā)器為核心構(gòu)成,以低廉的成本獲得了較好的控制性能。
2 基于LIN總線的無刷直流電機(jī)控制系統(tǒng)?
LIN總線是一種新型的低成本汽車車身總線,1999年由歐洲汽車制造商Audi、BMW、Daimler2Chrysler、Volvo、Volkswagen、VCT等公司和半導(dǎo)體廠商Motorola共同組成的LIN協(xié)會推出,從2003年開始投入使用。
LIN總線使用串行通信協(xié)議,它有下面的特性:單主機(jī)多從機(jī)組織(即無需總線仲裁) ; 基于普通UART/SCI接口的低成本硬件實(shí)現(xiàn),低成本軟件或作為純狀態(tài)機(jī);從機(jī)節(jié)點(diǎn)不需要石英或陶瓷諧振器即可以實(shí)現(xiàn)自同步;保證信號傳輸?shù)难舆t時(shí)間;低成本的單線通信介質(zhì),通信速率最大可達(dá)20kb/s。一個(gè)LIN網(wǎng)絡(luò)由1個(gè)主節(jié)點(diǎn)、最多不超過15個(gè)從節(jié)點(diǎn)組成。所有節(jié)點(diǎn)都有一個(gè)從機(jī)任務(wù),從機(jī)任務(wù)分為接收任務(wù)和發(fā)送任務(wù),主節(jié)點(diǎn)還有一個(gè)主機(jī)任務(wù)。LIN網(wǎng)絡(luò)上的通信總是由主機(jī)任務(wù)所發(fā)起,主機(jī)任務(wù)傳輸報(bào)文幀頭,報(bào)文幀頭包括同步間隔場、同步場和標(biāo)志符場;從機(jī)任務(wù)作出報(bào)文響應(yīng),報(bào)文響應(yīng)包括2、4或8字節(jié)的數(shù)據(jù)場和校驗(yàn)場,報(bào)文幀頭和報(bào)文響應(yīng)組成完整的報(bào)文幀。
LIN總線作為CAN總線的補(bǔ)充,主要用于車身控制。車身網(wǎng)絡(luò)主要連接對象有座椅、車門、空調(diào)和儀表顯示等系統(tǒng)。基于LIN總線的全自動(dòng)空調(diào)系統(tǒng)結(jié)構(gòu)框圖如圖1 所示。其中空調(diào)中央控制單元起CAN /LIN網(wǎng)關(guān)和LIN主節(jié)點(diǎn)的作用,其他單元為從節(jié)點(diǎn),分為傳感器從節(jié)點(diǎn)和執(zhí)行從節(jié)點(diǎn)。傳感器從節(jié)點(diǎn)將溫度、濕度、日照強(qiáng)度等環(huán)境狀態(tài)值發(fā)送給主節(jié)點(diǎn),主節(jié)點(diǎn)根據(jù)這些狀態(tài)值以及駕駛員設(shè)定的車內(nèi)溫度等參數(shù)進(jìn)行綜合決策,向執(zhí)行從節(jié)點(diǎn)傳達(dá)控制命令,執(zhí)行從節(jié)點(diǎn)依據(jù)命令進(jìn)行相應(yīng)的動(dòng)作。這樣的空調(diào)系統(tǒng)有效實(shí)現(xiàn)節(jié)點(diǎn)的分布式控制,減少汽車上的安裝線束,同時(shí)實(shí)現(xiàn)真正的全自動(dòng)控制,使得空調(diào)系統(tǒng)各部件協(xié)調(diào)運(yùn)行,從而使室內(nèi)溫度達(dá)到并保持在駕駛員設(shè)定值上,創(chuàng)造一個(gè)舒適的室內(nèi)環(huán)境。由于無刷直流電機(jī)擁有良好的調(diào)速性能,所以空調(diào)系統(tǒng)中一些執(zhí)行從節(jié)點(diǎn)把它作為驅(qū)動(dòng)部件,如壓縮機(jī)、鼓風(fēng)機(jī)、冷卻風(fēng)扇等。這些從節(jié)點(diǎn)分別和主節(jié)點(diǎn)之間構(gòu)成了基于LIN總線的無刷直流電機(jī)速度閉環(huán)控制,主節(jié)點(diǎn)通過決策算法給定電機(jī)轉(zhuǎn)速,轉(zhuǎn)速的反饋和控制算法由從節(jié)點(diǎn)來完成,從節(jié)點(diǎn)即是作者所要設(shè)計(jì)的控制器。
3 控制器硬件結(jié)構(gòu)
控制器結(jié)構(gòu)框圖如圖2所示,圖中包括:電源管理模塊、MC68HC908MR16 單片機(jī)控制模塊、PC33896 前置驅(qū)動(dòng)模塊、三相FET 全橋模塊、MC33399LIN物理層通信模塊。
霍爾傳感器檢測電機(jī)轉(zhuǎn)子的位置,它是3個(gè)脈寬為180°(電角度) 、互差120°(電角度)的信號。單片機(jī)的定時(shí)器輸入捕捉單元捕捉到位置信號的變化,實(shí)現(xiàn)定子繞組電流的換向,確保定子產(chǎn)生的磁場與轉(zhuǎn)子永磁磁場保持平均的垂直關(guān)系,以利產(chǎn)生最大轉(zhuǎn)矩。同時(shí),通過定時(shí)器記錄的2次換向之間的時(shí)間間隔,可計(jì)算出電機(jī)的轉(zhuǎn)速,根據(jù)目標(biāo)轉(zhuǎn)速與計(jì)算轉(zhuǎn)速之間的差值通過PI算法調(diào)節(jié)PWM占空比,從而控制電機(jī)的轉(zhuǎn)速。電機(jī)的目標(biāo)轉(zhuǎn)速、起/停、正/反轉(zhuǎn)等信息來自LIN總線的報(bào)文幀。
3.1 電源管理模塊
現(xiàn)代汽車內(nèi)部的電氣負(fù)載不斷增加,未來汽車上將采用42V電系代替現(xiàn)有的12V 電系供電。但要完全實(shí)現(xiàn)這一轉(zhuǎn)變,還有諸多問題尚未解決,現(xiàn)主要采用42V /12V的雙電源供電來作為一種過渡方案。作者設(shè)計(jì)的控制器考慮這一發(fā)展趨勢,在12V的電機(jī)應(yīng)用中,控制器采用單12V電源供電;在42V的電機(jī)應(yīng)用中,控制器采用42V /12V 雙電源供電。同時(shí)電源管理模塊中含有一塊12V /5V的電源調(diào)壓芯片LT1211。
3.1 單片機(jī)控制模塊
單片機(jī)控制模塊以MC68HC908MR16單片機(jī)為核心,它是一款專門用于電機(jī)控制的8 位單片機(jī)。工作溫度范圍達(dá)到- 40~105℃,完全適應(yīng)汽車內(nèi)的工作環(huán)境。片內(nèi)帶有12位、6通道PWM模塊,產(chǎn)生6路PWM邏輯信號(可設(shè)定為6路獨(dú)立或者3對兩兩互補(bǔ)) ;定時(shí)器A的0, 1, 2三個(gè)通道用來捕捉位置傳感器信號的變化,通道3負(fù)責(zé)記錄通道2的位置信號產(chǎn)生變化的時(shí)刻; 10位A /D轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間為16 - 17μs,能快速完成電池電壓監(jiān)測任務(wù);出錯(cuò)信號輸入,用于發(fā)生在過流或過熱的情況下產(chǎn)生中斷,進(jìn)而封鎖PWM輸出;特有的快速8位乘法和16位除法指令,使得它具有較高的運(yùn)算能力,能完成較為復(fù)雜的控制算法; 768B 片內(nèi)RAM 和16kB 片內(nèi)Flash存儲器,具有在線編程能力和保密功能;系統(tǒng)保護(hù)特性,包括看門狗復(fù)位、低電壓禁止復(fù)位等增強(qiáng)了程序的穩(wěn)定性和可靠性。
3.3 前置驅(qū)動(dòng)模塊
前置驅(qū)動(dòng)模塊的核心是PC33896,它是新推出的專用于汽車電子42V /12V 系統(tǒng)的三相FET前置驅(qū)動(dòng)器。片內(nèi)含有DC /DC降壓電路、電流采樣放大器、SPI 通信口及各種保護(hù)電路等。PC33896直接接收來自單片機(jī)的6路PWM邏輯信號,將其轉(zhuǎn)換成用來驅(qū)動(dòng)6個(gè)FET柵極的驅(qū)動(dòng)信號。若汽車系統(tǒng)供電電壓是新的42V電系,片內(nèi)的DC /DC將之降到大約15V 左右用于FET柵極電路驅(qū)動(dòng),節(jié)省了開通和關(guān)斷FET所耗散的功率;若汽車電源供電電壓采用的是現(xiàn)行的12V電系,某些場合電源電壓會不足以驅(qū)動(dòng)FET柵極,此時(shí)電荷泵電路將之提升到至少10V左右,確保FET的正常驅(qū)動(dòng)。內(nèi)部電流采樣放大器用來測量直流母線電流。單片機(jī)能通過SP I口發(fā)送指令,配置PC33896 (如DC /DC和電荷泵的工作與否、電流放大器的放大倍數(shù)等)以及診斷其故障.
3.4 LIN物理層通信模塊
MC33399是面向汽車電子應(yīng)用的LIN收發(fā)器芯片,它和單片機(jī)的SCI口構(gòu)成LIN通信的物理基礎(chǔ)。它有正常和睡眠兩種工作模式,總線上的喚醒幀可將其從睡眠模式喚醒。
4 控制器的軟件設(shè)計(jì)
由于單片機(jī)的內(nèi)嵌硬件模塊和PC33896功能較強(qiáng),使單片機(jī)有足夠的資源完成較為復(fù)雜的控制策略,從而使控制器的性能大大提高。
4.1 主程序結(jié)構(gòu)
系統(tǒng)的程序采用前后臺結(jié)構(gòu)。前臺是中斷級,后臺是任務(wù)級。任務(wù)級由一個(gè)死循環(huán)和一個(gè)LIN通信服務(wù)程序構(gòu)成。死循環(huán)內(nèi)包含一個(gè)有限狀態(tài)機(jī)和一個(gè)10ms服務(wù)程序,有限狀態(tài)機(jī)如圖3所示。系統(tǒng)上電,完成初始化任務(wù)后進(jìn)入死循環(huán)。一旦發(fā)生SCI接收中斷,中斷服務(wù)程序判斷接收到的是否為同步間隔場。若為同步間隔場,程序在退出中斷服務(wù)時(shí)并不返回到死循環(huán)中,而是進(jìn)入LIN通信服務(wù)程序,進(jìn)行報(bào)文幀的接收和處理。完成通信服務(wù)后,程序重新返回死循環(huán)。依據(jù)接收的報(bào)文幀,有限狀態(tài)機(jī)切換到相應(yīng)的狀態(tài)。為保護(hù)電機(jī),圖中正轉(zhuǎn)態(tài)和反轉(zhuǎn)態(tài)之間的轉(zhuǎn)換強(qiáng)制經(jīng)歷了中間的停止態(tài)過渡。當(dāng)發(fā)生過流或者低電壓等出錯(cuò)事件時(shí),控制器進(jìn)入出錯(cuò)態(tài),它關(guān)斷所有PWM輸出,并記錄錯(cuò)誤代碼。控制器接收到總線的睡眠幀后,進(jìn)入睡眠態(tài),總線的喚醒信號將重新激活控制器。在正轉(zhuǎn)態(tài)或反轉(zhuǎn)態(tài)時(shí),死循環(huán)內(nèi)的10ms服務(wù)程序每間隔10ms執(zhí)行一次,完成電機(jī)轉(zhuǎn)速計(jì)算、PI控制算法、電池電壓讀取等任務(wù)。
4.2 LIN通信報(bào)文幀的定制
LIN總線是一種主從機(jī)通信模式,報(bào)文幀的定制在LIN網(wǎng)絡(luò)軟件總體設(shè)計(jì)時(shí)進(jìn)行。文中的無刷直流電機(jī)控制器是總線上的一個(gè)從節(jié)點(diǎn),它響應(yīng)的報(bào)文幀如表1所示。標(biāo)志符“0x3C”是下載命令幀,用于主節(jié)點(diǎn)向所有從節(jié)點(diǎn)廣播命令和數(shù)據(jù),其中第一個(gè)數(shù)據(jù)字節(jié)為“00”的是睡眠幀。標(biāo)志符“0x3D”是上傳命令幀,它觸發(fā)一個(gè)從節(jié)點(diǎn)(由一個(gè)優(yōu)先的下載幀編址)向主機(jī)上傳數(shù)據(jù)。標(biāo)志符“0x20”是無刷電機(jī)控制幀,用于控制器接收主節(jié)點(diǎn)的控制信息,第一個(gè)數(shù)據(jù)字節(jié)為“01”要求電機(jī)正轉(zhuǎn),為“02”是反轉(zhuǎn),為“04”是停止,第三、第四兩個(gè)數(shù)據(jù)字節(jié)是電機(jī)轉(zhuǎn)速的給定值。標(biāo)志符“0x21”是電機(jī)狀態(tài)幀,用于控制器向主節(jié)點(diǎn)傳輸信息,第一、第二兩個(gè)數(shù)據(jù)字節(jié)是電機(jī)的實(shí)際轉(zhuǎn)速,第三、第四兩個(gè)字節(jié)表示電池電壓。
4.3 軟件中的中斷服務(wù)程序
4.3.1 定時(shí)器A0、A1、A2輸入捕捉中斷( inputcap2ture ISR1)
當(dāng)定時(shí)器A0、A1、A2監(jiān)測到位置信號有跳變沿時(shí),引起輸入捕捉中斷inputcap ture ISR1。中斷程序中通過讀取3個(gè)引腳的當(dāng)前電平,并結(jié)合前一次中斷中讀入的值,查詢換向表完成換向。
4.3.2 定時(shí)器A3輸入捕捉中斷( inputcap ture ISR2)
定時(shí)器A3監(jiān)測到A2 通道的位置信號有上升沿跳變時(shí),引起輸入捕捉中斷inputcap ture ISR2。中斷程序讀取定時(shí)器A3通道捕捉寄存器的當(dāng)前值,結(jié)合前一次中斷中讀入的值和定時(shí)器A的溢出次數(shù),算出一個(gè)位置脈沖周期內(nèi)對定時(shí)器A的高頻時(shí)鐘脈沖的計(jì)數(shù),結(jié)果用于速度的計(jì)算。
4.3.3 定時(shí)器B溢出中斷(TIMERB ISR)
定時(shí)器B每隔10ms溢出中斷一次,中斷程序中置位標(biāo)志位TImerflag,從而使得主程序死循環(huán)內(nèi)的10ms服務(wù)程序能被執(zhí)行。
定時(shí)器A3、定時(shí)器B的中斷允許在LIN通信服務(wù)程序中被關(guān)閉,而換向中斷被保留,從而保證了通信的可靠性和電機(jī)的運(yùn)行穩(wěn)定。
5 試驗(yàn)結(jié)果
采用所設(shè)計(jì)的控制器,以一臺無刷直流電機(jī)(其規(guī)格等同于額定電壓為48V、額定功率為150W 的客車空調(diào)鼓風(fēng)機(jī)驅(qū)動(dòng)用無刷電機(jī))為試驗(yàn)對象,試驗(yàn)圖如圖4所示。
圖4中控制器采用42V /12V雙電壓供電。LIN圖4 試驗(yàn)圖總線的主節(jié)點(diǎn)由PC機(jī)來模擬,它通過RS232 串口經(jīng)由一塊RS232轉(zhuǎn)LIN的接口卡PC card與LIN總線相連,其LIN 通信的軟件利用Labview界面環(huán)境開發(fā)。
實(shí)際運(yùn)行結(jié)果表明:電機(jī)能快速起動(dòng)、制動(dòng)、準(zhǔn)確及時(shí)跟蹤主節(jié)點(diǎn)的給定速度,控制器運(yùn)行穩(wěn)定、可靠,能滿足實(shí)時(shí)控制的要求。
6 結(jié)論
作者所設(shè)計(jì)基于LIN總線的無刷直流電機(jī)控制器,硬件電路結(jié)構(gòu)簡單,兼容未來汽車的42V供電電系,具有高的性價(jià)比。此外,由于LIN總線是一種開放的協(xié)議,該控制器不僅適用于汽車電子領(lǐng)域,還可用于工業(yè)控制、家電等其他領(lǐng)域。
|