DSP和CAN總線在直流電機(jī)測試系統(tǒng)中的應(yīng)用
F2810片內(nèi)的事件管理器模塊可以提供多達(dá)16路的PWM輸出信號,最小的死區(qū)時(shí)間寬度是一個(gè)CPU時(shí)鐘周期,最小的PWM脈沖寬度和脈寬的增減量為一個(gè)CPU時(shí)鐘周期,可以很方便地用來控制直流電機(jī)[5]。由于電機(jī)要求的PWM控制信號的幅值是5~10V,因此從DSP輸出的PWM信號還需經(jīng)過一個(gè)高速開關(guān)管反向器升壓后送至電機(jī)的PWM控制端。
2.3復(fù)位電路
系統(tǒng)的復(fù)位電路采用IMP708芯片,該芯片有上電復(fù)位、看門狗和電源監(jiān)控功能。在系統(tǒng)的程序由于外部干擾導(dǎo)致“跑飛”時(shí),IMP708的看門狗在一可選擇的時(shí)間間隔內(nèi)產(chǎn)生復(fù)位信號熱啟動(dòng)系統(tǒng)。IMP708具有電源監(jiān)控功能,通過IMP708和DS1556的雙重監(jiān)控能夠保證使系統(tǒng)可靠運(yùn)行。
2.4鍵盤和液晶顯示電路(LCD)
鍵盤采用標(biāo)準(zhǔn)的PS/2口的小數(shù)字鍵盤,用來輸入設(shè)置參數(shù)。鍵盤和DSP之間采用復(fù)雜可編程邏輯器件(CPLD)作譯碼電路,將鍵盤的掃描碼映射到DSP的I/O擴(kuò)展地址0x8001。當(dāng)有鍵按下時(shí),CPLD發(fā)送一個(gè)中斷信號到DSP,然后DSP從I/O擴(kuò)展地址0x8001讀取掃描碼。液晶顯示模塊(LCD)和DSP之間通過CPLD譯碼,將命令控制I/O映射到地址0x8001,將數(shù)據(jù)控制I/O地址映射到0x8003和0x8004[6]。因?yàn)長CD是5V器件,所以其8位數(shù)據(jù)線不能和3.3V的DSP直接相連,需要在數(shù)據(jù)線上加電平隔離和轉(zhuǎn)換芯片74LS245。
3.CAN通信協(xié)議設(shè)計(jì)
CAN遵從OSI層模型,按照OSI標(biāo)準(zhǔn)模型,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層,它們由CAN控制器的硬件實(shí)現(xiàn)電平變換和幀的封裝。CAN網(wǎng)絡(luò)中包括4種不同類型的幀。其中,數(shù)據(jù)幀將數(shù)據(jù)由發(fā)送器傳至接收器;遠(yuǎn)程幀由節(jié)點(diǎn)發(fā)送以請求具有相同ID標(biāo)志符的數(shù)據(jù)幀;出錯(cuò)幀可由任何節(jié)點(diǎn)發(fā)送,以控制總線錯(cuò)誤;而超載幀用于提供先前和后續(xù)數(shù)據(jù)幀或遠(yuǎn)程幀之間的附加延時(shí)。另外,數(shù)據(jù)幀和遠(yuǎn)程幀以幀空間同先前幀隔開。在實(shí)際應(yīng)用中,還需要建立自己的上層協(xié)議。在本系統(tǒng)設(shè)計(jì)中,采用簡單實(shí)用的“命令項(xiàng)加數(shù)據(jù)項(xiàng)”結(jié)構(gòu)[3],其完整數(shù)據(jù)幀結(jié)構(gòu)如圖5所示。考慮到工在業(yè)控制中,功能一般不多,因此命令項(xiàng)的長度設(shè)定為1B(可描述128種命令)。而在本控制系統(tǒng)中,命令所需參數(shù)一般不會(huì)大于7B,故數(shù)據(jù)項(xiàng)長度直接設(shè)為7B。
圖3 數(shù)據(jù)幀結(jié)構(gòu)
4.軟件設(shè)計(jì)
系統(tǒng)的CAN應(yīng)用節(jié)點(diǎn)部分采用的是BasicCAN程序,它包含初始化子程序、發(fā)送子程序、接收子程序三個(gè)部分。DSP軟件編寫采用的是TI公司的DSP集成開發(fā)環(huán)境CCS2000,它支持匯編語言和C語言編程。為了保證程序運(yùn)行效率,核心算法FFT程序和中斷向量表程序采用匯編語言編寫,而其它程序都采用C語言編寫,使本系統(tǒng)軟件具有模塊化、結(jié)構(gòu)化、可移植性好和調(diào)試方便的特點(diǎn)。系統(tǒng)的軟件執(zhí)行過程是:首先是系統(tǒng)初始化工作,即設(shè)置寄存器、配置GPIO、定時(shí)器、A/D轉(zhuǎn)換器和外部中斷、啟動(dòng)A/D轉(zhuǎn)換。然后檢測GPIO有沒有啟動(dòng)信號,檢測到啟動(dòng)信號后,從另一個(gè)GPIO發(fā)出控制信號給直流電機(jī)加電。從A/D轉(zhuǎn)換器里讀取電流信號數(shù)據(jù),再通過求平均值得到電機(jī)的電流值;對輸出脈沖信號的數(shù)據(jù)進(jìn)行FFT變換,求出基波的頻率,再根據(jù)電機(jī)的具體型號乘以一個(gè)系數(shù)得到電機(jī)的轉(zhuǎn)速。最后把測試電流和轉(zhuǎn)速送給LCD顯示,啟動(dòng)CAN總線傳輸,把測試結(jié)果傳輸?shù)缴衔籔C機(jī),以對數(shù)據(jù)進(jìn)行保存和分析。軟件流程如圖4所示。
圖4軟件流程圖
5.結(jié)束語
本系統(tǒng)采用了以CAN總線構(gòu)建了自動(dòng)化小型直流電機(jī)測試系統(tǒng),設(shè)計(jì)中以DSP芯片F(xiàn)2810為核心的自動(dòng)測試單元能利用DSP的多路模擬量輸入通道和多路PWM輸出通道以及高速計(jì)算能力,同時(shí)實(shí)現(xiàn)對多個(gè)電機(jī)的準(zhǔn)確、高效率的測試。該系統(tǒng)在測試速度、性價(jià)比和可維護(hù)性等方面均有明顯的優(yōu)勢。
本文作者創(chuàng)新點(diǎn):利用DSPTMS320F2810的多路輸入通道和多路PWM輸出通道,實(shí)現(xiàn)了在車間的一個(gè)測試節(jié)點(diǎn)上,一次接線就能完成電機(jī)所有占空比下的電流和轉(zhuǎn)速的測試,一個(gè)測試節(jié)點(diǎn)能同時(shí)測試多個(gè)電機(jī),并通過CAN總線實(shí)現(xiàn)測試數(shù)據(jù)的的自動(dòng)化處理。大大提高了測試效率,節(jié)省了成本。
評論