閆偉,南金瑞
(1.中北大學(xué),山西 太原 030051;2.北京理工大學(xué),北京 100081)
基于集成開(kāi)發(fā)環(huán)境的EHPS控制器的軟件設(shè)計(jì)
閆偉1,南金瑞2
(1.中北大學(xué),山西 太原 030051;2.北京理工大學(xué),北京 100081)
為了讓電控液壓助力轉(zhuǎn)向系統(tǒng)(EHPS)控制器能夠正常的工作起來(lái),只有硬件是不行的,必須滿足相匹配功能的軟件系統(tǒng)。本文基于瑞薩公司的集成開(kāi)發(fā)環(huán)境平臺(tái),采用C語(yǔ)言編程主控芯片,結(jié)合模塊化的編程思路,設(shè)計(jì)了以完成系統(tǒng)初始化、電機(jī)啟動(dòng)工作的主程序和實(shí)現(xiàn)控制算法的子程序。程序經(jīng)過(guò)在線編譯調(diào)試,達(dá)到了先期的設(shè)計(jì)目標(biāo)。有效地提高了軟件的可移植性和運(yùn)行效率,對(duì)EHPS控制功能最終實(shí)現(xiàn)起著關(guān)鍵性的作用。
EHPS;模塊化;控制算法
CLC NO.:U463.4Document Code:AArticle ID:1671-7988(2014)02-57-04
本文基于瑞薩公司一系列的集編輯、編譯、鏈接、在線仿真、硬件調(diào)試以及實(shí)時(shí)數(shù)據(jù)跟蹤功能的集成開(kāi)發(fā)環(huán)境,使得程序開(kāi)發(fā)變得簡(jiǎn)單易行。軟件程序依循完成硬件相應(yīng)動(dòng)作設(shè)計(jì),采用瑞薩電子專門為NEC系列單片機(jī)開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境PM+編譯,界面如圖1所示。最后使用NEC公司V850系列32位單片機(jī)調(diào)試的MINICUBE2仿真器實(shí)現(xiàn)微控制器調(diào)試接口與主機(jī)之間的通信。
EHPS的軟件設(shè)計(jì)要求是根據(jù)車速和方向盤轉(zhuǎn)角傳感器的信號(hào)確定電機(jī)的目標(biāo)轉(zhuǎn)速,并根據(jù)霍爾位置傳感器和電流采樣信號(hào)對(duì)電機(jī)進(jìn)行換向控制,通過(guò)調(diào)節(jié)PWM占空比來(lái)實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速進(jìn)行控制的目的。根據(jù)控制器要實(shí)現(xiàn)的功能制定了控制器程序流程圖,如圖2所示。
該控制系統(tǒng)軟件工程主要包括兩部分:主程序和對(duì)應(yīng)的子程序。主程序的功能主要是要完成整個(gè)控制系統(tǒng)的初始化并啟動(dòng)電機(jī)至怠速狀態(tài)運(yùn)行,系統(tǒng)上電后,首先對(duì)各模塊進(jìn)行初始化,主要包括系統(tǒng)時(shí)鐘、看門狗、I/O端口狀態(tài)、系統(tǒng)中斷等初始化操作。在初始化過(guò)程中,需要禁止所有中斷防止意外的中斷請(qǐng)求。
2.1 系統(tǒng)初始化
控制器正式進(jìn)入工作狀態(tài)前,需要對(duì)各模塊進(jìn)行初始化操作,初始化工作主要包括系統(tǒng)控制模塊初始化、參數(shù)變量初始化、各外設(shè)模塊的初始化、中斷向量初始化以及各級(jí)中斷的使能等等。具體流程圖如圖3所示。
(1)系統(tǒng)控制模塊的初始化
系統(tǒng)控制模塊的初始化主要為系統(tǒng)分配時(shí)鐘并處理看門狗電路,為了調(diào)試程序方便,在初始化程序中將看門狗電路關(guān)閉。完成控制模塊的初始化之后需要將中斷關(guān)閉,以防在接下來(lái)的初始化過(guò)程中產(chǎn)生意外的中斷請(qǐng)求。然后對(duì)程序中要用到的全局變量進(jìn)行初始化賦值。
(2)外設(shè)模塊的初始化
外設(shè)模塊初始化主要是對(duì)將要使用的外設(shè)模塊的各控制寄存器及各外設(shè)對(duì)應(yīng)使用的引腳端口進(jìn)行初始化操作。
2.2 電機(jī)啟動(dòng)
直流無(wú)刷電機(jī)采用的是電子換向,所以需要處理器不斷檢測(cè)轉(zhuǎn)子的位置并確定逆變器功率開(kāi)關(guān)管的導(dǎo)通狀態(tài)。電機(jī)啟動(dòng)和霍爾信號(hào)中斷捕捉模塊就是讀取三個(gè)霍爾位置傳感器的狀態(tài),以確定逆變器的換相順序。電機(jī)啟動(dòng)程序的流程圖如圖4所示。
這里只需要設(shè)置比較單元的比較寄存器,給電機(jī)首次運(yùn)行設(shè)置一個(gè)合適的PWM占空比,然后將CAP1~3引腳設(shè)定為IO功能,用于查詢此時(shí)霍爾傳
感器輸入信號(hào)從而得到電機(jī)轉(zhuǎn)子的當(dāng)前位置。電機(jī)運(yùn)轉(zhuǎn)起來(lái)之后,霍爾信號(hào)的狀態(tài)就會(huì)發(fā)生改變,從而產(chǎn)生捕獲中斷,進(jìn)入到捕獲中斷程序,根據(jù)當(dāng)前霍爾信號(hào)的狀態(tài)改變PWM輸出引腳的電平,電機(jī)就可以連續(xù)旋轉(zhuǎn)起來(lái)了。給電機(jī)預(yù)設(shè)一個(gè)怠速值,通過(guò)中斷子程序的調(diào)速即可使電機(jī)啟動(dòng)后提供助力并穩(wěn)定在一個(gè)目標(biāo)怠速狀態(tài)。
整個(gè)控制系統(tǒng)的算法實(shí)現(xiàn)主要是在子程序中完成的,對(duì)于子程序而言,大部分都是通過(guò)中斷實(shí)現(xiàn)的。就本設(shè)計(jì)而言,主要應(yīng)用的中斷源有定時(shí)器中斷和AD中斷,對(duì)于電機(jī)的換相和驅(qū)動(dòng)主要是通過(guò)事件管理器模塊的比較中斷和捕捉中斷實(shí)現(xiàn)的,與上位機(jī)的通訊主要是通過(guò)CAN總線中斷來(lái)實(shí)現(xiàn)的。
3.1 AD中斷
AD中斷完成EHPS系統(tǒng)下層軟件控制策略即電機(jī)電流的采樣和處理即電流閉環(huán)及電機(jī)是否出現(xiàn)過(guò)流情況,這里設(shè)置AD采集模塊的內(nèi)部時(shí)鐘頻率為1MHz,工作在級(jí)聯(lián)/順序采樣模式,主要流程圖如圖5所示。
AD模塊對(duì)一個(gè)序列的通道開(kāi)始轉(zhuǎn)換必須要有一個(gè)啟動(dòng)信號(hào),通常情況下,可以由軟件啟動(dòng)、事件啟動(dòng)或外部引腳觸發(fā)啟動(dòng)等。本設(shè)計(jì)采用定時(shí)器周期中斷的方式作為AD轉(zhuǎn)換的觸發(fā)信號(hào)。當(dāng)定時(shí)器定時(shí)時(shí)間到產(chǎn)生定時(shí)中斷時(shí),AD開(kāi)始對(duì)ANI0通道進(jìn)行采樣,當(dāng)序列發(fā)生器轉(zhuǎn)換結(jié)束時(shí)便產(chǎn)生一個(gè)AD中斷,進(jìn)入AD中斷程序。在中斷程序中首先要對(duì)AD模塊的轉(zhuǎn)換數(shù)據(jù)進(jìn)行存儲(chǔ)和濾波處理,然后再完成電機(jī)目標(biāo)轉(zhuǎn)速的計(jì)算和輸出。
在實(shí)際的控制系統(tǒng)中,檢測(cè)信號(hào)會(huì)摻雜一些干擾信號(hào),除了一些必要的硬件濾波之外,很多濾波任務(wù)都是有數(shù)字濾波器來(lái)完成的。數(shù)字濾波器實(shí)際上是一種數(shù)字處理方法,是由計(jì)算機(jī)程序?qū)崿F(xiàn)的一系列數(shù)學(xué)運(yùn)算。與硬件濾波相比,它主要有以下幾大優(yōu)點(diǎn):成本低、修改方便、可以實(shí)現(xiàn)硬件濾波難以實(shí)現(xiàn)的濾波效果。常用的數(shù)字濾波方法主要有:算數(shù)平均值法、加權(quán)算數(shù)平均法、中值濾波法、中值平均濾波法等。
為了達(dá)到很好的濾波效果,本設(shè)計(jì)應(yīng)用到了數(shù)字濾波中的中值濾波法,因?yàn)橄到y(tǒng)需要對(duì)電流信號(hào)進(jìn)行采樣,中值平均濾波法不但可以消除干擾,還可以平滑濾波,對(duì)快、慢干擾都有很好的抑制作用。
3.2 定時(shí)器周期中斷
在定時(shí)器的周期中斷子程序內(nèi),主要是完成EHPS系統(tǒng)下層軟件控制策略的實(shí)現(xiàn),即對(duì)電機(jī)轉(zhuǎn)速進(jìn)行速度外環(huán)電流內(nèi)環(huán)的雙閉環(huán)調(diào)節(jié)。具體的程序流程圖如圖6所示。
進(jìn)入定時(shí)周期中斷子程序后,首先對(duì)流過(guò)電機(jī)的電流進(jìn)行檢測(cè),如果出現(xiàn)了過(guò)流的問(wèn)題,將切斷助力退出程序,如果系統(tǒng)工作正常則開(kāi)始調(diào)節(jié)轉(zhuǎn)速和電流。
從該中斷流程圖中可以看出,為了對(duì)負(fù)載的變化響應(yīng)快,使得電流環(huán)的調(diào)節(jié)比轉(zhuǎn)速環(huán)要快,在本控制系統(tǒng)的設(shè)計(jì)過(guò)程中,電流環(huán)的調(diào)節(jié)速率是速度環(huán)的20倍,既能保證對(duì)瞬時(shí)電流的抑制,也能保證
速度控制的平穩(wěn)。
3.3 捕獲中斷
捕獲中斷程序主要是實(shí)現(xiàn)電機(jī)的換相保證電機(jī)可以連續(xù)旋轉(zhuǎn),另外一個(gè)功能就是根據(jù)捕獲到的轉(zhuǎn)子位置信號(hào)計(jì)算電機(jī)的實(shí)際轉(zhuǎn)速,用于轉(zhuǎn)速的閉環(huán)PI調(diào)節(jié)。其流程圖如圖7所示。
當(dāng)電機(jī)啟動(dòng)后,霍爾位置傳感器輸出的表示轉(zhuǎn)子位置信號(hào)的矩形波的跳變沿被捕捉引腳捕獲到就會(huì)觸發(fā)捕獲中斷,進(jìn)入捕獲中斷子程序。進(jìn)入此程序后,換相流程跟前提到的電機(jī)啟動(dòng)時(shí)的流程類似,通過(guò)CAP1~3引腳的分時(shí)復(fù)用實(shí)現(xiàn)位置信號(hào)電平的檢測(cè)來(lái)確定轉(zhuǎn)子的位置,從而實(shí)現(xiàn)換相。
在執(zhí)行完該中斷程序退出之前,要將CAP1~3引腳的功能由I/O口恢復(fù)為捕獲功能。
在捕獲中斷子程序中,讀完位置信號(hào)后,就會(huì)調(diào)用換相子程序。另外為了實(shí)時(shí)監(jiān)測(cè)電機(jī)的轉(zhuǎn)速值,需要不斷的將測(cè)到的電機(jī)轉(zhuǎn)速值通過(guò)CAN總線接口發(fā)送到上位機(jī)實(shí)時(shí)顯示出來(lái),以方便PI參數(shù)的調(diào)節(jié)。
對(duì)于本設(shè)計(jì),車速信號(hào)、轉(zhuǎn)向盤轉(zhuǎn)角信號(hào)和上位機(jī)監(jiān)控軟件與下位機(jī)的通信都采用的是CAN總線通信,因此在這里必須對(duì)CAN模塊進(jìn)行初始化。在CAN模塊正式使用之前,要通過(guò)軟件設(shè)置CnGMCS寄存器中的系統(tǒng)時(shí)鐘,并且在CAN模塊工作的時(shí)候不要改變這一系統(tǒng)時(shí)鐘。通過(guò)設(shè)置CnGMCTRL寄存器即可啟動(dòng)CAN模塊。
在本設(shè)計(jì)中,用 MINICUBE2硬件設(shè)備連接電腦主機(jī)、目標(biāo)板進(jìn)行通訊,連接方式如圖8所示。
本文主要闡述了EHPS控制器的軟件設(shè)計(jì)過(guò)程,著重介紹程序的設(shè)計(jì)思路及流程,經(jīng)過(guò)不斷在線編譯調(diào)試,達(dá)到了先期的設(shè)計(jì)目標(biāo)。然后配合硬件。
[1] 許陽(yáng)坡.電動(dòng)液壓助力轉(zhuǎn)向(EHPS)系統(tǒng)控制算法研究及實(shí)現(xiàn)[D].天津大學(xué)碩士學(xué)位論文.2006.
[2] 王曉明.電動(dòng)機(jī)的單片機(jī)控制(第2版)[M].北京:北京航空航天大學(xué)出版社,2007,84,-90.
[3] 徐藝文,陳忠輝.單片機(jī)應(yīng)用系統(tǒng)的軟件抗干擾技術(shù)[J].寧德師專學(xué)報(bào)(自然科學(xué)版).2002(03):226~229.
[4] Hong tei Eric Tseng Beh rouz A shraft D inu Madau The develo pment of vehicle stability control at ford.[J].IEEE/ ASME Transactions on Mechatronics.1999(3):223~234.
The software design of EHPS controller based on the integrated development environment
Yan Wei1, Nan JinRui2
(1.North University of China, ShanxiTaiyuan 030051; 2.Beijing Institute of Technology, Beijing 100081)
Not only the hardware is not, but also match the functional of the software system that can make the Electrically Hydraulic Power Steering(EHPS)controller work normally. The paper based on the platform of the RENESAS company which develop the integration, program the chip by using C language and combining the modular idea. Design to complete the main program about the system initialization and the motor starting and achieve subroutines of controlling algorithm. The programachieves the design goal in advance through online debugging. Improve the software portability and efficiency effectively, and play a key role to finish the EHPS control function finally.
EHPS; Modularize; Control Algorithms
U463.4
A
1671-7988(2014)02-57-04
閆偉,就讀于中北大學(xué)。