引言
在五自由度主動磁懸浮軸承控制系統(tǒng)中,采用由工控PC+DSP控制器的架構(gòu)是一種較好的方法,而DSP核心控制器則是磁懸浮軸承控制系統(tǒng)中非常重要的一部分,對主軸位置信號的精確采集是DSP控制器的首要任務(wù)。在本控制器中采用MAX115對主軸位置的模擬信號進(jìn)行采集。
磁懸浮控制器中的ADC選擇
在磁懸浮主軸控制器的設(shè)計中,對主軸位置的測量是至關(guān)重要的。位置傳感器的信號經(jīng)過適當(dāng)?shù)男盘栒{(diào)理電路處理后被傳送到A/D采樣通道,ADC把得到的模擬信號轉(zhuǎn)換成相應(yīng)的數(shù)字信號,芯片采樣的精度和分辨率以及采樣轉(zhuǎn)換時間是非常重要的技術(shù)參數(shù),它們直接決定著控制速度和控制精度。本控制器中采用的傳感器是一種電渦流
位移傳感器。它是一種高精度無接觸式傳感器。
本系統(tǒng)要求能分辨1mm位置信號,根據(jù)傳感器的傳感特性,必須要求有至少為12位的分辨率。同時本系統(tǒng)中要求絕對精度不低于±1LSB。由于磁力軸承系統(tǒng)要求的控制周期很短(一般小于200ms),故要求ADC的采樣時間也必須很快(一般在20ms內(nèi))。
綜上考慮選用Maxim公司的MAX115作為ADC來完成主軸位置信號的采集。MAX115是12位2×4通道同步采樣逐次比較型ADC,其具有兩組ADC,每組4通道連續(xù)采集保持;單通道轉(zhuǎn)換時間為2ms;轉(zhuǎn)換精度±1/2LSB;4通道傳輸率為16ksps;并且內(nèi)部具有2.5V參考電壓和10MHz時鐘,極大地精簡了外部附加電路;其高速的并行接口可以方便地與DSP相連。
MAX115與TMS320F240的接口電路
圖1是磁懸浮軸承DSP控制器的結(jié)構(gòu)簡圖。
圖1 磁懸浮軸承DSP控制器的結(jié)構(gòu)簡圖
圖中4路主軸位置信號經(jīng)由MAX115進(jìn)行A/D轉(zhuǎn)換后,采集結(jié)果通過中斷方式輸入到DSP內(nèi)。DSP經(jīng)過濾波算法處理后,將采集數(shù)據(jù)寫到雙口RAM內(nèi),計算機(jī)通過ISA總線訪問雙口RAM并將其中的數(shù)據(jù)取走,進(jìn)行上位機(jī)的圖形顯示、數(shù)據(jù)分析等功能。同時DSP進(jìn)行控制算法計算,計算之后將控制數(shù)據(jù)通過控制器板卡上的4路DAC輸出給功率放大器,從而實(shí)現(xiàn)對主軸的控制。這樣,利用DSP處理速度快的特點(diǎn)來完成算法的計算,利用PC機(jī)強(qiáng)大的多媒體處理特點(diǎn)來實(shí)現(xiàn)主軸位置監(jiān)視和數(shù)據(jù)分析,DSP和PC同時相對獨(dú)立工作,互不影響,從而加快了系統(tǒng)的處理速度。
MAX115和DSP硬件的接口設(shè)計如圖2所示,MAX115引腳A0-A3和引腳D0-D11是具有三態(tài)的雙向接口,可以直接和DSP相關(guān)引腳進(jìn)行連接。為簡化電路設(shè)計和增加可靠性,系統(tǒng)中使用的是內(nèi)部基準(zhǔn)電源,此時要將REFIN引腳接上一個0.1mF的旁路電容;同時使用內(nèi)部時鐘10MHz,并將CLK引腳接上VCC。
圖2 MAX115與TMS320F240 DSP之間的接口電路圖
MAX115與TMS320F240進(jìn)行接口設(shè)計時主要考慮兩個問題:一是MAX115數(shù)據(jù)線和控制模式線共用問題。由于MAX115的D1/A3,D0/A2為數(shù)據(jù)和地址共用引腳,但實(shí)際設(shè)計時不能將此引腳同時連接到DSP的地址線和數(shù)據(jù)線,此處即為DSP和MAX115接口連接的難點(diǎn)。本系統(tǒng)設(shè)計時用一種全新的方法來實(shí)現(xiàn),因?yàn)镈SP有16位的數(shù)據(jù)線,而MAX115只需要12位數(shù)據(jù)線和2根工作模式控制引腳,所以通過將DSP的14根數(shù)據(jù)線直接接到MAX115上的地址和數(shù)據(jù)線,即D0接AD_A0,D1接AD_A1,D2接AD_D0,D3接AD_D1,D4接AD_D2......D13接AD_D11,當(dāng)對MAX115進(jìn)行編程時,通過
可編程邏輯器件MAX7128進(jìn)行地址選通,MAX7128編程采用Altera公司的Max+plusⅡ集成環(huán)境,使用AHDL語言編寫。
MAX115的和信號線由DSP的和分別直接連接即可。通過DSP的數(shù)據(jù)線的D0-D3作為編程地址線從而對其工作模式進(jìn)行編程。當(dāng)A/D轉(zhuǎn)換結(jié)束后,要從ADC中讀取數(shù)據(jù),讀到14位數(shù)據(jù)D13-D0時,再將所得數(shù)據(jù)左移2位,即屏蔽掉低2位無效的輸入后,即可得到12位A/D采集數(shù)據(jù)。另一個問題是MAX115與DSP接口的速度匹配問題,由于DSP速度過快,會導(dǎo)致MAX115無法正常工作,所以系統(tǒng)中采用軟件的方法插入等待狀態(tài),具體操作見下文的軟件設(shè)計。
控制器中MAX115的片選()信號、轉(zhuǎn)換開始()信號及讀()寫()信號都是由MAX7128產(chǎn)生的。MAX7128編程方便,易于調(diào)試,用其實(shí)現(xiàn)快速地址選通等功能來加快系統(tǒng)的處理速度。其中DSP的參與地址譯碼。
軟件設(shè)計
DSP作為下層的CPU來控制數(shù)據(jù)采集的整個過程。本控制器設(shè)計使用的編程軟件是TI公司的
CCS,采用C語言及嵌入式匯編編程,這樣編寫的程序簡潔,易于讀懂。
本控制器采用4通道連續(xù)轉(zhuǎn)換,A3A2A1A0=0011。上電后DSP給MAX115寫入工作方式,然后送信號,A/D轉(zhuǎn)換開始,轉(zhuǎn)換完成后,MAX115發(fā)出請求AD_INT變低,DSP中斷立刻開始讀取A/D轉(zhuǎn)換結(jié)果。MAX115的與DSP的XINT1相連,作為DSP的外部中斷輸入。當(dāng)A/D轉(zhuǎn)換完成后,變低,DSP進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中將A/D轉(zhuǎn)換結(jié)果讀出。這種方法應(yīng)用于快速轉(zhuǎn)換,只要中斷來了便進(jìn)行轉(zhuǎn)換,充分利用了CPU的資源。下面給出了中斷方式下DSP控制A/D轉(zhuǎn)換的部分程序。其中主要以中斷子程序?yàn)橹?,其它中斷初始化及其DSP中斷向量程序均省略。
_
____ A/D轉(zhuǎn)換電路 _____
data=0X03;/*MAX115工作方式選擇A3A2A1A0=0011*/
asm(" OUT _data,0003h ");
/*選擇ADC,并寫入工作模式*/
asm("rpt XXX ");
/*XXX為一個數(shù)值 其大小應(yīng)根據(jù)實(shí)際調(diào)試而決定*/
asm(" nop ");
/*延時 匹配速度*/
asm(" OUT _data,1003h ");
/*A/D轉(zhuǎn)換開始用地址1003h來選中信號*/
_____A/D轉(zhuǎn)換結(jié)果的讀取_____
void AD_INT()
{ asm(" IN _ad_result1,0003h "); /*讀入AD_CH1A轉(zhuǎn)換結(jié)果*/
ad_result1=ad_result1&0x0fff;
ad_result1=ad_result1*2;
/* CH1A通道最后結(jié)果ad_result1*/
asm(" rpt XXX ");
asm(" nop ");
asm(" IN _ad_result2,0003h "); /*讀入AD_CH2A轉(zhuǎn)換結(jié)果*/
ad_result2=ad_result2&0x0fff;
ad_result2=ad_result2*2;
/* CH2A通道最后結(jié)果ad_result2*/
asm(" rpt XXX ");
asm(" nop ");
asm(" IN _ad_result3,0003h "); /*讀入AD_CH3A轉(zhuǎn)換結(jié)果*/
ad_result3=ad_result3&0x0fff;
ad_result3=ad_result3*2;
/* CH3A通道最后結(jié)果ad_result3*/
asm("rpt XXX ");
asm(" nop ")