DSP和CAN總線在直流電機(jī)測試系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1.系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)和TMS320F2810簡介
系統(tǒng)結(jié)網(wǎng)絡(luò)構(gòu)如圖1所示。該系統(tǒng)主要由上位計(jì)算機(jī)及監(jiān)控軟件、基于PCI總線的CAN智能網(wǎng)絡(luò)通信適配器及與其相配套的設(shè)備驅(qū)動程序(WDM)、現(xiàn)場控制節(jié)點(diǎn)單元和基于CAN現(xiàn)場總線其他功能模塊組成。
圖1系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
TMS320F2810是TI公司的高集成高性能DSP,采用高性能靜態(tài)CMOS技術(shù),工作頻率150MHz,低功耗和3.3V閃存編程電壓,支持邊界JTAG掃描,高性能32位CPU能進(jìn)行16x16和32x32 MAC運(yùn)算,16x16雙MAC。片內(nèi)存儲器有多達(dá)128Kx16閃存,128Kx16 ROM,1Kx16 OTP ROM,L0和L1為2個(gè)4Kx16區(qū)塊,每個(gè)為單存取RAM(SARAM),H0為8x16 SARAM區(qū)塊,M0和M1為1Kx16 2個(gè)區(qū)塊,每個(gè)是SARAM,引導(dǎo)ROM為4Kx16外接接口能連接高達(dá)1M總存儲器和可編等待狀態(tài),有看門狗計(jì)時(shí)器模塊,三個(gè)外接中斷和三個(gè)32位CPU計(jì)時(shí)器, 最高采樣率為12.5MSPS,自動排序器可以提供高達(dá)16路的通道自動切換,也可以分成兩個(gè)獨(dú)立的8通道自動切換。F2810最多可提供16路PWM波形輸出,支持SCI、SPI、MCBSP、eCAN 等多種通信方式。多達(dá)56個(gè)單獨(dú)編程的復(fù)接GPIO輸出引腳,有先進(jìn)的仿真和調(diào)試特性,工作溫度從-40℃到85℃和從-40℃到125℃, F2810可用于要求嚴(yán)格的控制系統(tǒng)中[1][4]。
2.系統(tǒng)控制節(jié)點(diǎn)硬件組成
系統(tǒng)的控制節(jié)點(diǎn)硬件結(jié)構(gòu)如圖2所示,可以同時(shí)測試四個(gè)電機(jī)。硬件部分主要包括:電機(jī)的電流和輸出脈沖(OP)信號采集和信號調(diào)理電路、PWM輸出電路、復(fù)位上電電路、組合邏輯電路CPLD,CAN通信和鍵盤顯示接口等部分。其中DSP采用的是TI公司的高集成高性能DSP芯片TMS320F2810。CAN通信部分采用了PHILIPHIS公司的集成CAN控制芯片SJA1000(CAN總線控制器)和PCA82C250(CAN總線收發(fā)器),系統(tǒng)中設(shè)置CAN總線的最大傳輸量為500Kb/s,且晶振頻率定為16MHZ,CAN總線系統(tǒng)任意兩個(gè)節(jié)點(diǎn)之間的最大距離為130M,此時(shí)總線定時(shí)BTR0值為00H,BTR1值定為1CH。當(dāng)IMP708復(fù)位上電時(shí), F2810控制器通過通用I/O(GPIO)口給電機(jī)加電,同時(shí)通過F2810片內(nèi)的PWM模塊輸出占空比可調(diào)的矩形波信號控制電機(jī)的轉(zhuǎn)速。電機(jī)的電流信號和輸出脈沖信號經(jīng)過信號調(diào)理芯片MAX472進(jìn)入到F2810的片內(nèi)A/D轉(zhuǎn)換器,轉(zhuǎn)換成數(shù)字信號供DSP處理。DSP計(jì)算出來的電流和轉(zhuǎn)速值顯示在液晶顯示器上,同時(shí)通過CAN總線傳送到上位PC機(jī)。各個(gè)節(jié)點(diǎn)通過鍵盤可以輸入測試參數(shù),包括PWM信號的占空比、轉(zhuǎn)速和電流的上下限參數(shù)等,也可以通過CAN總線由上位PC機(jī)設(shè)置。
圖2 測試節(jié)點(diǎn)硬件結(jié)構(gòu)圖
2.1 電機(jī)電流和輸出脈沖信號的采集調(diào)理電路
由于所檢測的電機(jī)的電流會因型號不同而差別很大,范圍在幾十毫安到二、三安培。本系統(tǒng)中,采用了美國MAXIM公司的雙向精密電流傳感放大器MAX471[2]。MAX471內(nèi)置35mΩ的精密傳感電阻,可測量的電流范圍是±3A,在工作溫度范圍內(nèi),其精度為2%,其響應(yīng)時(shí)間、速度和漂移等指標(biāo)均很理想,可以適應(yīng)3A以內(nèi)的各種規(guī)格直流電機(jī)的電流測量。電流信號通過RS+和RS-輸入到MAX471的采樣電阻RSENSE上,MAX471通過一個(gè)2kΩ的輸出電阻將電流轉(zhuǎn)換成0~3V的電壓信號,直接送到DSP的A/D轉(zhuǎn)換器中。 輸出脈沖信號是從電機(jī)的I/O端直接輸出的一串方波信號,其頻率和電機(jī)的轉(zhuǎn)速成正比,用于檢測電機(jī)的轉(zhuǎn)速。輸出脈沖信號是電壓信號,經(jīng)電阻分壓轉(zhuǎn)換到0~3V內(nèi),然后經(jīng)過一個(gè)電壓跟隨器傳送到F2810的A/D輸入端。
[!--empirenews.page--]2.2 PWM輸出信號驅(qū)動電路
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ù)位信號熱啟動系統(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ù)一般不會大于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)換器和外部中斷、啟動A/D轉(zhuǎn)換。然后檢測GPIO有沒有啟動信號,檢測到啟動信號后,從另一個(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顯示,啟動CAN總線傳輸,把測試結(jié)果傳輸?shù)缴衔籔C機(jī),以對數(shù)據(jù)進(jìn)行保存和分析。軟件流程如圖4所示。
圖4 軟件流程圖
5.結(jié)束語
本系統(tǒng)采用了以CAN總線構(gòu)建了自動化小型直流電機(jī)測試系統(tǒng),設(shè)計(jì)中以DSP芯片F(xiàn)2810為核心的自動測試單元能利用DSP的多路模擬量輸入通道和多路PWM輸出通道以及高速計(jì)算能力,同時(shí)實(shí)現(xiàn)對多個(gè)電機(jī)的準(zhǔn)確、高效率的測試。該系統(tǒng)在測試速度、性價(jià)比和可維護(hù)性等方面均有明顯的優(yōu)勢。
本文作者創(chuàng)新點(diǎn):利用DSP TMS320F2810的多路輸入通道和多路PWM輸出通道,實(shí)現(xiàn)了在車間的一個(gè)測試節(jié)點(diǎn)上,一次接線就能完成電機(jī)所有占空比下的電流和轉(zhuǎn)速的測試,一個(gè)測試節(jié)點(diǎn)能同時(shí)測試多個(gè)電機(jī),并通過CAN總線實(shí)現(xiàn)測試數(shù)據(jù)的的自動化處理。大大提高了測試效率,節(jié)省了成本。