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