DSP和CAN總線在直流電機測試系統(tǒng)中的應用
1.系統(tǒng)網(wǎng)絡結構和TMS320F2810簡介
系統(tǒng)結網(wǎng)絡構如圖1所示。該系統(tǒng)主要由上位計算機及監(jiān)控軟件、基于PCI總線的CAN智能網(wǎng)絡通信適配器及與其相配套的設備驅動程序(WDM)、現(xiàn)場控制節(jié)點單元和基于CAN現(xiàn)場總線其他功能模塊組成。
圖1系統(tǒng)網(wǎng)絡結構圖
TMS320F2810是TI公司的高集成高性能DSP,采用高性能靜態(tài)CMOS技術,工作頻率150MHz,低功耗和3.3V閃存編程電壓,支持邊界JTAG掃描,高性能32位CPU能進行16x16和32x32 MAC運算,16x16雙MAC。片內存儲器有多達128Kx16閃存,128Kx16 ROM,1Kx16 OTP ROM,L0和L1為2個4Kx16區(qū)塊,每個為單存取RAM(SARAM),H0為8x16 SARAM區(qū)塊,M0和M1為1Kx16 2個區(qū)塊,每個是SARAM,引導ROM為4Kx16外接接口能連接高達1M總存儲器和可編等待狀態(tài),有看門狗計時器模塊,三個外接中斷和三個32位CPU計時器, 最高采樣率為12.5MSPS,自動排序器可以提供高達16路的通道自動切換,也可以分成兩個獨立的8通道自動切換。F2810最多可提供16路PWM波形輸出,支持SCI、SPI、MCBSP、eCAN 等多種通信方式。多達56個單獨編程的復接GPIO輸出引腳,有先進的仿真和調試特性,工作溫度從-40℃到85℃和從-40℃到125℃, F2810可用于要求嚴格的控制系統(tǒng)中[1][4]。
2.系統(tǒng)控制節(jié)點硬件組成
系統(tǒng)的控制節(jié)點硬件結構如圖2所示,可以同時測試四個電機。硬件部分主要包括:電機的電流和輸出脈沖(OP)信號采集和信號調理電路、PWM輸出電路、復位上電電路、組合邏輯電路CPLD,CAN通信和鍵盤顯示接口等部分。其中DSP采用的是TI公司的高集成高性能DSP芯片TMS320F2810。CAN通信部分采用了PHILIPHIS公司的集成CAN控制芯片SJA1000(CAN總線控制器)和PCA82C250(CAN總線收發(fā)器),系統(tǒng)中設置CAN總線的最大傳輸量為500Kb/s,且晶振頻率定為16MHZ,CAN總線系統(tǒng)任意兩個節(jié)點之間的最大距離為130M,此時總線定時BTR0值為00H,BTR1值定為1CH。當IMP708復位上電時, F2810控制器通過通用I/O(GPIO)口給電機加電,同時通過F2810片內的PWM模塊輸出占空比可調的矩形波信號控制電機的轉速。電機的電流信號和輸出脈沖信號經(jīng)過信號調理芯片MAX472進入到F2810的片內A/D轉換器,轉換成數(shù)字信號供DSP處理。DSP計算出來的電流和轉速值顯示在液晶顯示器上,同時通過CAN總線傳送到上位PC機。各個節(jié)點通過鍵盤可以輸入測試參數(shù),包括PWM信號的占空比、轉速和電流的上下限參數(shù)等,也可以通過CAN總線由上位PC機設置。
圖2 測試節(jié)點硬件結構圖
2.1 電機電流和輸出脈沖信號的采集調理電路
由于所檢測的電機的電流會因型號不同而差別很大,范圍在幾十毫安到二、三安培。本系統(tǒng)中,采用了美國MAXIM公司的雙向精密電流傳感放大器MAX471[2]。MAX471內置35mΩ的精密傳感電阻,可測量的電流范圍是±3A,在工作溫度范圍內,其精度為2%,其響應時間、速度和漂移等指標均很理想,可以適應3A以內的各種規(guī)格直流電機的電流測量。電流信號通過RS+和RS-輸入到MAX471的采樣電阻RSENSE上,MAX471通過一個2kΩ的輸出電阻將電流轉換成0~3V的電壓信號,直接送到DSP的A/D轉換器中。 輸出脈沖信號是從電機的I/O端直接輸出的一串方波信號,其頻率和電機的轉速成正比,用于檢測電機的轉速。輸出脈沖信號是電壓信號,經(jīng)電阻分壓轉換到0~3V內,然后經(jīng)過一個電壓跟隨器傳送到F2810的A/D輸入端。
2.2 PWM輸出信號驅動電路
F2810片內的事件管理器模塊可以提供多達16路的PWM輸出信號,最小的死區(qū)時間寬度是一個CPU時鐘周期,最小的PWM脈沖寬度和脈寬的增減量為一個CPU時鐘周期,可以很方便地用來控制直流電機[5]。由于電機要求的PWM控制信號的幅值是5~10V,因此從DSP輸出的PWM信號還需經(jīng)過一個高速開關管反向器升壓后送至電機的PWM控制端。
2.3 復位電路
系統(tǒng)的復位電路采用IMP708芯片,該芯片有上電復位、看門狗和電源監(jiān)控功能。在系統(tǒng)的程序由于外部干擾導致“跑飛”時,IMP708的看門狗在一可選擇的時間間隔內產生復位信號熱啟動系統(tǒng)。IMP708具有電源監(jiān)控功能,通過IMP708和DS1556的雙重監(jiān)控能夠保證使系統(tǒng)可靠運行。
2.4 鍵盤和液晶顯示電路(LCD)
鍵盤采用標準的PS/2口的小數(shù)字鍵盤,用來輸入設置參數(shù)。鍵盤和DSP之間采用復雜可編程邏輯器件(CPLD)作譯碼電路,將鍵盤的掃描碼映射到DSP的I/O擴展地址0x8001。當有鍵按下時,CPLD發(fā)送一個中斷信號到DSP,然后DSP從I/O擴展地址0x8001讀取掃描碼。液晶顯示模塊(LCD)和DSP之間通過CPLD譯碼,將命令控制I/O映射到地址0x8001,將數(shù)據(jù)控制I/O地址映射到0x8003和0x8004[6]。因為LCD是5V器件,所以其8位數(shù)據(jù)線不能和3.3V的DSP直接相連,需要在數(shù)據(jù)線上加電平隔離和轉換芯片74LS245。
3.CAN通信協(xié)議設計
CAN遵從OSI層模型,按照OSI標準模型,CAN結構劃分為兩層:數(shù)據(jù)鏈路層和物理層,它們由CAN控制器的硬件實現(xiàn)電平變換和幀的封裝。CAN網(wǎng)絡中包括4種不同類型的幀。其中,數(shù)據(jù)幀將數(shù)據(jù)由發(fā)送器傳至接收器;遠程幀由節(jié)點發(fā)送以請求具有相同ID標志符的數(shù)據(jù)幀;出錯幀可由任何節(jié)點發(fā)送,以控制總線錯誤;而超載幀用于提供先前和后續(xù)數(shù)據(jù)幀或遠程幀之間的附加延時。另外,數(shù)據(jù)幀和遠程幀以幀空間同先前幀隔開。在實際應用中,還需要建立自己的上層協(xié)議。在本系統(tǒng)設計中,采用簡單實用的“命令項加數(shù)據(jù)項”結構[3],其完整數(shù)據(jù)幀結構如圖5所示??紤]到工在業(yè)控制中,功能一般不多,因此命令項的長度設定為1B(可描述128種命令)。而在本控制系統(tǒng)中,命令所需參數(shù)一般不會大于7B,故數(shù)據(jù)項長度直接設為7B。
圖3 數(shù)據(jù)幀結構
4.軟件設計
系統(tǒng)的CAN應用節(jié)點部分采用的是BasicCAN程序,它包含初始化子程序、發(fā)送子程序、接收子程序三個部分。DSP軟件編寫采用的是TI公司的DSP集成開發(fā)環(huán)境CCS2000,它支持匯編語言和C語言編程。為了保證程序運行效率,核心算法FFT程序和中斷向量表程序采用匯編語言編寫,而其它程序都采用C語言編寫,使本系統(tǒng)軟件具有模塊化、結構化、可移植性好和調試方便的特點。系統(tǒng)的軟件執(zhí)行過程是:首先是系統(tǒng)初始化工作,即設置寄存器、配置GPIO、定時器、A/D轉換器和外部中斷、啟動A/D轉換。然后檢測GPIO有沒有啟動信號,檢測到啟動信號后,從另一個GPIO發(fā)出控制信號給直流電機加電。從A/D轉換器里讀取電流信號數(shù)據(jù),再通過求平均值得到電機的電流值;對輸出脈沖信號的數(shù)據(jù)進行FFT變換,求出基波的頻率,再根據(jù)電機的具體型號乘以一個系數(shù)得到電機的轉速。最后把測試電流和轉速送給LCD顯示,啟動CAN總線傳輸,把測試結果傳輸?shù)缴衔籔C機,以對數(shù)據(jù)進行保存和分析。軟件流程如圖4所示。
圖4 軟件流程圖
5.結束語
本系統(tǒng)采用了以CAN總線構建了自動化小型直流電機測試系統(tǒng),設計中以DSP芯片F(xiàn)2810為核心的自動測試單元能利用DSP的多路模擬量輸入通道和多路PWM輸出通道以及高速計算能力,同時實現(xiàn)對多個電機的準確、高效率的測試。該系統(tǒng)在測試速度、性價比和可維護性等方面均有明顯的優(yōu)勢。
本文作者創(chuàng)新點:利用DSP TMS320F2810的多路輸入通道和多路PWM輸出通道,實現(xiàn)了在車間的一個測試節(jié)點上,一次接線就能完成電機所有占空比下的電流和轉速的測試,一個測試節(jié)點能同時測試多個電機,并通過CAN總線實現(xiàn)測試數(shù)據(jù)的的自動化處理。大大提高了測試效率,節(jié)省了成本。