楊 雪,陳衛(wèi)兵,鐘德剛,廖坤銳
(1.湖南工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,湖南株洲 412007;2.杭州欣易達(dá)驅(qū)動(dòng)技術(shù)有限公司,浙江杭州 310008)
隨著電動(dòng)汽車的快速發(fā)展,作為其核心部件的電機(jī)控制器的需求量也在逐年提升。電機(jī)控制器是一個(gè)軟硬件結(jié)合的復(fù)雜系統(tǒng),生產(chǎn)過(guò)程比較繁復(fù)。為了保證控制器的性能和質(zhì)量,生產(chǎn)過(guò)程中需要對(duì)控制器進(jìn)行各種測(cè)試實(shí)驗(yàn),以保證產(chǎn)品出廠后能在不同工況下正常運(yùn)行。由于需測(cè)試的控制器參數(shù)較多,測(cè)試工作量較大,人們開(kāi)始考慮自動(dòng)測(cè)試。電機(jī)控制器的硬件在環(huán)測(cè)試[1-3](HIL:hardware in loop)系統(tǒng)采用閉環(huán)理念,仿真控制器的運(yùn)行環(huán)境,能做到一定程度上的自動(dòng)測(cè)試,但仍有一些測(cè)試項(xiàng)目需手動(dòng)進(jìn)行;同時(shí),電機(jī)控制器的要求越來(lái)越精細(xì),軟件架構(gòu)越來(lái)越復(fù)雜,對(duì)不同應(yīng)用不斷有新的組件加入,導(dǎo)致HIL方法已無(wú)法適應(yīng)這種頻繁變動(dòng)的要求。在此基礎(chǔ)上,基于虛擬儀器開(kāi)發(fā)的自動(dòng)測(cè)試系統(tǒng)[4-5]應(yīng)運(yùn)而生,目前基于虛擬儀器的自動(dòng)測(cè)試系統(tǒng)人機(jī)交互友好,集中度較高,但是存在對(duì)不同電壓等級(jí)和電流等級(jí)控制器適應(yīng)性不好等問(wèn)題。
為解決這些問(wèn)題,本文考慮配合虛擬儀器上位機(jī),設(shè)計(jì)一款能適應(yīng)不同電壓等級(jí)和電流等級(jí)控制器的測(cè)試系統(tǒng)下位機(jī),且能模擬車輛實(shí)際路況下的前進(jìn)、倒車和剎車等運(yùn)行狀態(tài),進(jìn)行空載、負(fù)載、堵轉(zhuǎn)、正/反轉(zhuǎn)等多項(xiàng)實(shí)驗(yàn)。
圖1是下位機(jī)及被測(cè)系統(tǒng)框圖。從圖1可見(jiàn),下位機(jī)與被測(cè)系統(tǒng)通過(guò)CAN總線與上位機(jī)相連,下位機(jī)接收上位機(jī)的測(cè)試指令,解析之后模擬車輛油門信號(hào)、檔位和剎車等電機(jī)控制信號(hào),并將信號(hào)發(fā)送給被測(cè)系統(tǒng)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),同時(shí)將電機(jī)控制信號(hào)的狀態(tài)值通過(guò)CAN總線返回給上位機(jī)。
下位機(jī)硬件由MCU模塊、CAN通信模塊、油門信號(hào)模塊、檔位、剎車信號(hào)模塊、繼電器模塊和供電部分組成,油門信號(hào)模塊、檔位和剎車信號(hào)模塊組成控制電路。其中,MCU以STM32F103VCT6[6]為基礎(chǔ)進(jìn)行設(shè)計(jì),STM32系列芯片采用高性能、低功耗的Cortex-M3內(nèi)核,內(nèi)存空間大,運(yùn)行速度快。片上資源豐富,含有的定時(shí)器、CAN接口和2路D/A轉(zhuǎn)換器,可以滿足本設(shè)計(jì)要求。下位機(jī)硬件電路各模塊工作電壓有12、5、3.3 V。由于主電源是12 V供電,因此需要由12 V產(chǎn)生5 V和3.3 V分別供給控制電路和MCU,其中繼電器和通信模塊供電為12 V。通信采用ISO1050隔離CAN通信芯片,可防止數(shù)據(jù)總線或其他電路上的噪音電流流入控制器地線,起到保護(hù)電路和抗干擾功能??刂齐娐樊a(chǎn)生車輛運(yùn)行時(shí)所需的檔位、剎車和油門信號(hào)。繼電器電路是實(shí)現(xiàn)自動(dòng)化測(cè)試的關(guān)鍵設(shè)計(jì),可自動(dòng)切換測(cè)試狀態(tài)。
控制電路由前進(jìn)/倒車檔位電路、剎車電路、油門放大電路組成。主要模擬車輛的運(yùn)行情況,產(chǎn)生被測(cè)控制器所需的控制信號(hào),將此信號(hào)通過(guò)線束輸出給被測(cè)控制器。模擬每一次車輛運(yùn)行過(guò)程,通過(guò)下位機(jī)電路板主回路繼電器和信號(hào)回路繼電器的通斷來(lái)實(shí)現(xiàn)。
STM32F103VCT6芯片產(chǎn)生4路控制信號(hào):前進(jìn)檔位信號(hào)、后退檔位信號(hào)、剎車信號(hào)和油門信號(hào)。前3路信號(hào)通過(guò)控制單片機(jī)端口電平輸出數(shù)字信號(hào),第4路信號(hào)通過(guò)單片機(jī)DAC轉(zhuǎn)換單元輸出模擬信號(hào),本設(shè)計(jì)中DAC單元的參考電壓為3.0 V,所以單片機(jī)只能模擬出0~3.0 V電壓,設(shè)計(jì)信號(hào)放大電路輸出控制器所需的0~5 V電壓。選擇了LMV321IDBVR低功耗運(yùn)算放大芯片,此芯片具有高單位增益頻率,1 V/μs的轉(zhuǎn)換率,其幅值和頻率滿足設(shè)計(jì)要求。
控制器的供電等級(jí)不同,有48、60、72 V等,其數(shù)字信號(hào)有低電平有效和高電平有效之分,所以繼電器電路的設(shè)計(jì)須能適應(yīng)不同電壓等級(jí)、不同有效信號(hào)的控制器,并能起到隔離被測(cè)控制器與測(cè)試系統(tǒng)的作用。圖2為繼電器模塊框圖,選用JZC-32F/012-ZS3型號(hào)小功率繼電器,采用單刀雙擲開(kāi)關(guān),線圈額定電壓為12 V。從圖2可見(jiàn),繼電器電路未導(dǎo)通時(shí),K_COM與K_NC端連接;當(dāng)下位機(jī)MCU輸出信號(hào),三極管和繼電器電路導(dǎo)通,吸合K_COM與K_NO端。其中,K_COM與K_NO兩端的接線方式如表1所示,測(cè)試低電平有效的控制器時(shí),K_COM接地,K_NO接被測(cè)控制器信號(hào)端,繼電器吸合之后,K_COM端與控制器信號(hào)端形成回路,控制器MCU端口的高電平將被拉低,此過(guò)程表明下位機(jī)控制信號(hào)模擬成功。測(cè)試高電平有效的控制器時(shí),K_COM可接不同等級(jí)的電壓信號(hào),K_NO接控制器信號(hào)端,繼電器吸合之后,K_COM端與控制器信號(hào)端形成回路,控制器MCU端口的低電平將被拉高。繼電器電路設(shè)計(jì)靈活,適應(yīng)于測(cè)試不同型號(hào)的控制器,電路板上預(yù)留了多路繼電器接口,系統(tǒng)可擴(kuò)展性強(qiáng)。
圖2 繼電器模塊
表1 繼電器兩觸點(diǎn)連接方式及控制器信號(hào)狀態(tài)
CAN總線規(guī)范定義了數(shù)據(jù)鏈路層和物理層,故控制器自動(dòng)測(cè)試系統(tǒng)在應(yīng)用時(shí)需制定相應(yīng)的應(yīng)用層協(xié)議。所制定的應(yīng)用層協(xié)議需實(shí)現(xiàn)測(cè)試指令和參數(shù)的設(shè)置、讀取指令和參數(shù)狀態(tài)、選擇測(cè)試模式。本設(shè)計(jì)中下位機(jī)始終處于被動(dòng)通訊模式,只有接收上位機(jī)測(cè)試指令之后才會(huì)返回一幀數(shù)據(jù)以作應(yīng)答。數(shù)據(jù)幀格式[7]有標(biāo)準(zhǔn)幀和擴(kuò)展幀2種,圖3為數(shù)據(jù)幀結(jié)構(gòu)圖。從圖3可見(jiàn),數(shù)據(jù)幀由7個(gè)位段組成,根據(jù)仲裁段ID碼的長(zhǎng)度不同分為標(biāo)準(zhǔn)幀和擴(kuò)展幀。標(biāo)準(zhǔn)幀的仲裁段由11位ID和1位遠(yuǎn)程幀標(biāo)示位(RTR位)組成,擴(kuò)展幀的仲裁段由29位ID、1位替代遠(yuǎn)程幀標(biāo)示位(SRR位)、1位識(shí)別符擴(kuò)展位(IDE位)和RTR位組成。
圖3 數(shù)據(jù)幀結(jié)構(gòu)圖
為了擴(kuò)展更多的節(jié)點(diǎn),本實(shí)驗(yàn)選用了擴(kuò)展幀格式。數(shù)據(jù)幀的ID轉(zhuǎn)化為十六進(jìn)制為0X03016000,0X13016000,最高位的0和1代表發(fā)送方向。CAN總線波特率設(shè)置為250 Kbit/s,通信協(xié)議符合CAN2.0B標(biāo)準(zhǔn)。根據(jù)協(xié)議安全性要求,通信協(xié)議中將設(shè)計(jì)一個(gè)計(jì)時(shí)器,上位機(jī)以固定周期100 ms發(fā)送測(cè)試指令,下位機(jī)收到測(cè)試指令之后,返回一幀以作應(yīng)答。如果上位機(jī)超過(guò)1 s未收到響應(yīng)幀,則認(rèn)為通信失敗。
一個(gè)數(shù)據(jù)幀傳輸?shù)臄?shù)據(jù)量為0~8個(gè)字節(jié),這種短幀結(jié)構(gòu)的實(shí)時(shí)性非常高,抗干擾能力強(qiáng),十分適合于車載通信。上位機(jī)發(fā)送的測(cè)試指令中,檔位信號(hào)占2個(gè)字節(jié),1個(gè)字節(jié)存放地址,另外一個(gè)存放信號(hào)狀態(tài),油門信號(hào)占3個(gè)字節(jié),一個(gè)字節(jié)存放地址,另外2個(gè)字節(jié)存放十六進(jìn)制數(shù)據(jù)的高8位和低8位。例如下位機(jī)接收到的指令D0 02 21 00 26 0B B8 00,第一個(gè)字節(jié)用于標(biāo)示命令類型,即執(zhí)行哪一項(xiàng)功能檢測(cè),此條指令中D0表示正轉(zhuǎn)測(cè)試;0X02表示執(zhí)行此條指令需要更改的信號(hào)數(shù)量;0X21和0X00為檔位信號(hào)的地址位和狀態(tài)位;0X26、0X0B和0XB8為油門信號(hào)的地址位和數(shù)據(jù)位,最后一個(gè)字節(jié)未用到。下位機(jī)解析指令并模擬控制信號(hào)之后,立即返回一幀以作應(yīng)答,每個(gè)測(cè)試項(xiàng)目均有其設(shè)定好的通信協(xié)議,以保證通訊正常。
軟件開(kāi)發(fā)環(huán)境為keil uVision4,采用C語(yǔ)言編程,下位機(jī)軟件主要功能是接收并解析上位機(jī)測(cè)試指令,產(chǎn)生電機(jī)控制信號(hào),同時(shí)在測(cè)試過(guò)程中負(fù)責(zé)繼電器線圈上電和斷電,并將各信號(hào)狀態(tài)值封裝成幀、校驗(yàn)通過(guò)CAN總線發(fā)送給上位機(jī)。
軟件編程主要包括系統(tǒng)初始化、CAN通信、控制信號(hào)處理和D/A轉(zhuǎn)換等。主程序運(yùn)行在while循環(huán)中,測(cè)試到最后一個(gè)狀態(tài)時(shí)跳出while循環(huán),結(jié)束主程序。圖4為正轉(zhuǎn)測(cè)試流程圖,反轉(zhuǎn)和剎車測(cè)試流程與圖4相似。
圖4 正轉(zhuǎn)測(cè)試流程圖
下位機(jī)展示圖如圖5所示,測(cè)試板放置在工裝箱內(nèi)。為了驗(yàn)證下位機(jī)性能,對(duì)60 V和72 V控制器進(jìn)行實(shí)驗(yàn),安裝被測(cè)電機(jī)和控制器,結(jié)合上位機(jī)發(fā)送測(cè)試指令,檢測(cè)控制器的檔位和剎車是否正常,檢測(cè)控制器不同工況下的參數(shù)是否正常。
上位機(jī)給定相應(yīng)轉(zhuǎn)速和油門電壓,對(duì)控制器進(jìn)行正/反轉(zhuǎn)、剎車實(shí)驗(yàn)。記錄控制器的轉(zhuǎn)速(n)、轉(zhuǎn)矩(T)、母線電壓(Ubus)、母線電流(Ibus)等參數(shù),表2和表3為60 V和72 V控制器的測(cè)試數(shù)據(jù)。
表2 60 V控制器的測(cè)試數(shù)據(jù)
表3 72 V控制器的測(cè)試數(shù)據(jù)
對(duì)同一臺(tái)控制器反復(fù)測(cè)試20次,圖6和圖7為控制器正轉(zhuǎn)測(cè)試時(shí)的數(shù)據(jù)曲線圖,從圖可見(jiàn)測(cè)試數(shù)據(jù)波動(dòng)較小,誤差范圍在1%以內(nèi),系統(tǒng)穩(wěn)定,產(chǎn)品測(cè)試準(zhǔn)確率較高;經(jīng)測(cè)量,測(cè)試一臺(tái)控制器大約需要2 min,與手動(dòng)測(cè)試相比,測(cè)試時(shí)間節(jié)省了80%。能按照測(cè)試流程正常進(jìn)行,說(shuō)明下位機(jī)與上位機(jī)通信正常;被測(cè)電機(jī)能按照測(cè)試指令正常啟動(dòng)和停止,無(wú)故障,說(shuō)明下位機(jī)控制電路及繼電器電路正常。測(cè)試過(guò)程中,安裝被測(cè)控制器、導(dǎo)入測(cè)試標(biāo)準(zhǔn)之后,操作人員點(diǎn)擊“產(chǎn)線測(cè)試”,即可實(shí)現(xiàn)自動(dòng)化測(cè)試,按照測(cè)試流程依次進(jìn)行,整個(gè)測(cè)試過(guò)程無(wú)需人工干預(yù),提高了測(cè)試效率和準(zhǔn)確性。
本文以STM32F103VCT6為核心器件,設(shè)計(jì)了下位機(jī)電源電路、通信電路、控制信號(hào)電路和繼電器電路,在Keil平臺(tái)上用C語(yǔ)言開(kāi)發(fā)了下位機(jī)軟件系統(tǒng),完成了控制器自動(dòng)測(cè)試下位機(jī)的設(shè)計(jì)。對(duì)實(shí)際電機(jī)控制器多次測(cè)量的結(jié)果表明:
(1)下位機(jī)能很好地與上位機(jī)配合,實(shí)現(xiàn)對(duì)60 V和72 V控制器的測(cè)試,并且可擴(kuò)展到更多電壓等級(jí)控制器的測(cè)試;
(2)測(cè)試數(shù)據(jù)重復(fù)性好,誤差范圍在1%以內(nèi),系統(tǒng)穩(wěn)定可靠;
(3)提高測(cè)試效率,節(jié)省時(shí)間;
(4)下位機(jī)電路板預(yù)留了多個(gè)繼電器接口電路,系統(tǒng)可擴(kuò)展性強(qiáng)。該系統(tǒng)已投入使用,并取得了良好成效。
圖6 60 V控制器正轉(zhuǎn)測(cè)試曲線圖
圖7 72 V控制器正轉(zhuǎn)測(cè)試曲線圖