葛研軍, 趙 楊, 楊均悅
(1.大連交通大學 機械工程學院,遼寧大連 116028;
2.大連交通大學 電氣信息學院,遼寧大連 116028)
多電機協同控制在造紙、印染、軋鋼等工業領域有著廣泛應用[1-3]。隨著生產工藝的不斷提高,對電機控制的高效性和實時性也提出了更高的要求[4]。DSP作為一種高性能處理芯片,能高效地完成對電機的控制。為了滿足多電機控制性能和系統的協調運行,可構造雙DSP協同處理核心,共同完成對電機的控制。DSP之間的數據傳輸是實現多電機協同工作的關鍵,針對控制系統實時性要求,往往采用共享存儲器方式。共享存儲器方式就是多個處理器之間通過一個共有的存儲單元來完成數據的交互,其特點是實時性好、接口電路簡單、數據傳輸量大[5]。雙口RAM技術是一種數據共享的有效方式。
雙口RAM是具有兩組完全對稱的地址線、數據線和控制線的靜態RAM,同時還具有兩套獨立的中斷邏輯、“忙”邏輯信號。雙口RAM內部具有完善的仲裁邏輯電路,能很好地協調多處理器的讀/寫操作,十分便于多處理器系統的外部擴展應用。本文采用的雙口RAM為IDT7024,是IDT公司研制的4 k×16的低功耗COMS型雙端口靜態RAM,其工業級最大訪問時間為55 ns,非常適合芯片間高速、實時的數據通信要求,其功能框圖如圖1所示。

圖1 IDT7024功能框圖
DSP對雙口RAM的讀寫操作有如下4種情況:(1)兩端異步讀寫同一單元數據;(2)兩端同時讀同一單元數據;(3)兩端同時對同一單元讀寫數據;(4)兩端對同一單元分別進行讀寫操作。在第一、二種情況時,兩個端口的存取不會出現錯誤,第三種情況會出現寫入錯誤,第四種情況會出現讀出錯誤[6]。
BUSY方式主要是通過將雙口RAM的BUSY信號與DSP的READY信號相連,當一側DSP先訪問到雙口RAM時,會使另一側DSP產生響應等待信號,以達到同一時刻雙口RAM的單側使用。
中斷方式是將DSP的外部中斷源與雙口RAM的左右中斷信號相連。當一側DSP向指定單元寫入數據時,會使另一側產生中斷信號。此時DSP響應中斷,并再向上級數據單元寫入數據,從而釋放中斷。
旗語方式則是一種軟件和硬件相結合的控制分配方式。雙口RAM在硬件上提供了8個獨立于存儲器且具有鎖存功能的SEM單元。將與存儲器相連的地址線A0~A2經譯碼電路輸入到SEM端口,雙口RAM被分割成相互獨立的存儲單元。此時,數據最低位D0向雙口RAM發送“0”后,讀取SEM狀態,檢測存儲單元的使用狀態,從而制定相應的控制策略。在DSP使用完對應存儲單元后,再向此單元對應的SEM寫入“1”并釋放其所占用的資源。
多電機協同控制系統中,一般要求各電機按某種比例關系同步協調運轉,才能保證生產的正常運行。實際由于負載、干擾等因素使某些執行單元參數發生變化時,若協同控制中其他執行單元未及時響應,則會造成系統性能下降,甚至崩潰。
本文多電機控制系統實現四組異步電機系統的協同工作,系統原理圖如圖2所示。兩組DSP TMS320LF2407A構成控制核心,各DSP輸出的PWM控制信號通過經驅動模塊完成對電機的調速控制。電機的轉速、電流等反饋信號傳回到DSP,形成對電機的閉環控制,提高了控制系統的穩定性。上位機通過串口發送調速指令,完成對電機速度的在線調控,IDT 7024采用中斷仲裁方式實現DSP之間的數據傳輸。

圖2 多電機協同控制原理圖
雙DSP的控制核心,通過雙口RAM完成數據傳輸,其硬件接口電路連接如圖3所示。
DSP與雙口RAM之間需要進行電壓匹配。DSP TMS320LF2407A為3.3 V供電的COMS芯片,雙口RAM IDT7024為5 V供電的TTL芯片,這兩組芯片之間需要進行電平轉換,否則會造成數據無法識別。本系統基于SN74ALVC16244和SN74ALVC16245驅動DSP的地址線和數據線,以保證雙DSP系統擴展的可靠性。
DSP對雙口RAM讀寫操作時,要求讀寫操作與雙口RAM的存儲時間相匹配。若存儲器的存儲速度跟不上DSP的讀寫要求,則會造成數據丟失,從而使整個系統無法正常工作。本系統中的DSP讀寫一個字的時間約為100 ns、200 ns,雙口RAM IDT7024的讀寫存儲時間約為50 ns。雙口RAM存儲速度完全滿足DSP的讀寫需求,無需等待時序。

圖3 雙DSP硬件接口電路
軟件編制中,可將雙口RAM的存儲單元進行分割,以構造一個雙向數據通路。兩端DSP通過中斷響應完成相關數據的傳輸。分割存儲區可從根本上避免讀寫錯誤的發生,而且能提高數據傳輸效率。中斷響應過程中可將數據讀取到指定的數據區,以便于軟件控制且能保證DSP性能。
系統中使用的雙口RAM為IDT7024,為高速4×16 bit雙端口靜態RAM,其存取單元地址為0x000~0xFFF,為了保證系統的高效傳遞,將雙口RAM分割為兩個數據存儲區0x000~0x7FF和0x800~0xF00。
兩側DSP經過CPLD輸出雙口RAM片選信號EXCS2,其信號邏輯為 EXCS2≤‘0’WHEN A15=‘0’AND A14=‘0’AND A13=‘0’AND IOS=‘0’AND STRB=‘0’ELSE‘1’;雙口RAM存儲器在DSP中被擴展為外部IO空間,其數據區域為0x0000~0x1FFF。雙口RAM的存儲區完全被覆蓋,DSP對0x0000~0x0FFF操作就是對雙口RAM的空間進行操作,同時需對DSP的CMD文件中對應的IO區域進行相關定義,然后在DSP的集成開發環境中觀測IO數據區域0x0000~0x0FFF。若兩側數據一致,并且一側DSP修改數據時,另一側DSP可同時檢測數據發生變化,則說明兩側DSP已經通過雙口RAM連通。
兩側DSP通過中斷響應來完成數據讀寫及更新,數據傳輸如圖4所示。

圖4 采用雙口RAM的雙DSP數據傳輸
根據雙口RAM中斷工作方式,利用存儲區的0xFFF和0xFFE作為數據傳輸“信號”,以左側DSP的中斷響應,對數據傳輸過程進行說明。
(1)對兩側DSP進行初始化,包括DSP存儲器配置、外部I/O配置、中斷程序設置等。初始化完畢后,DSP運行主程序。
(2)若右側 DSP向雙口 RAM的0x000~0x7FF單元寫入數據后,向0xFFE單元寫入任意數據時,可使雙口RAM左側產生中斷信號。
(4)右側DSP對雙口RAM的中斷響應同上,其數據傳輸信號單元為0xFFF。
該電機協同控制系統中,其軟件流程如圖5所示。主程序中,系統起動時DSP輸出指定速度控制信號。當接收到上位機發送的調速指令后,DSP運算修改受控電機的調速信號,并將另一側DSP速度指令發送到雙口RAM的數據單元中,同時激活另一側DSP的數據接收中斷信號。DSP采用速度、電流閉環控制,保證了電機運行的穩定。
為驗證多電機協同控制系統速度調整的高效性和實時性。試驗采用了雙DSP同時控制4臺Y系列異步電機協同工作。起動時4組電機按一定比例關系運行。運行過程中,上位機通過串口在線修改4臺電機速度。定義左側DSP的PWM1~PWM6控制電機為電機1,PWM7~PWM12控制電機為電機2,同理定義右側電機為電機3和電機4。
電機控制過程中,DSP輸出電機控制信號為PWM波形。在系統調試過程中,可通過PWM波來檢測數據通信效果,將右側DSP的PWM參數傳輸到左側DSP后,令左側DSP輸出占空比比例為3∶4的PWM波形,其波形如圖6所示。

圖5 各DSP程序流程圖

圖6 雙DSP的PWM波形
此DSP控制的多電機調速控制系統中,各DSP輸出兩組SVPWM控制信號,經驅動模塊對電機進行調速控制,起始狀態時電機1~4的轉速比例為1∶2∶3∶6,電機 1 轉速為 50 r/min 時,電機2 ~4 分別為 100 r/min、150 r/min、300 r/min。穩定運行后,修改電機2和電機3轉速為60 r/min、1 00r/min。各組電機的電流數據可通過反饋通路實時采集到兩組DSP中,兩組DSP同時采集各組電機的A相電流數據,見圖7。

圖7 4組電機電流波形
(1)雙DSP的多電機控制系統,通過雙口RAM技術實現數據的高效傳輸,并通過速度、電流反饋調節,提高了電機控制的可靠性和穩定性;
(2)對雙口RAM進行內部區域分割操作,可實現數據的雙向傳遞,并從根本上解決了雙口RAM的讀寫錯誤;
(3)通過上位機向雙DSP發送速度控制信號后,各電機調節速度響應迅速,滿足控制系統的高效性和實時性。
[1]張承慧,石慶升,程金.一種多電機同步傳動模糊神經網絡控制器的設計[J].控制與決策,2007,22(1):30-34.
[2]張今朝,劉國海,潘天紅.多電機同步系統的多模型辨識[J].電機與控制學報,2009,13(1):138-142.
[3]孫文煥,程善美,王曉翔.多電機協調控制的發展[J].電氣傳動,1999(6):3-6.
[4]CASTRO R,ARAUJO R E,OLIVEIRA H.Control in multi-motor electric vehicle with a FPGA platform[J].IEEE International Symposium on Industrial Embedded Systems 2009,Lausanne,Switzerland,2009.
[5]朱傳雨,劉建國,陸亦懷,等.基于雙口RAM的高速大容量氣溶膠空氣動力學粒徑信息提取[J].儀器儀表學報,2010,31(3):2168-2172.
[6]唐宗軍,楊光,王維,等.基于DSP和單片機的高速數據采集與處理系統[J].儀器儀表學報,2004,25(08增刊):429-430.