歡迎您光臨本站 登入註冊首頁

Nios II在電機伺服控制中的應用

admin @ 2014-03-26 , reply:0

概述

1引言   NiosII系列32位RISC嵌入式處理器是Altera公司的第二代軟核嵌入式處理器,性能超過200DMIPSNiosII處理器是軟核,開發者能夠從無限的系統……

1 引言
    Nios II系列32位RISC嵌入式處理器是Altera公司的第二代軟核嵌入式處理器,性能超過200DMIPS Nios II處理器是軟核,開發者能夠從無限的系統配置組合中選擇滿足性能和成本目標的方案,而不必為系統級設計採用ASIC,這種開發方式非常適合設計針對網路、電信、數據通信、嵌入式和消費市場的各種嵌入式應用。本文採用Nios II嵌入式處理器為核心,結合其它功能模塊,充分利用高性能FPGA實現所需的控制邏輯,設計結構簡單、靈活、高性能的直流無刷電機控制系統,並將其成功應用於機器人多指仿人靈巧手系統。

2 基於Nios II內核的SOPC軟硬體開發
    採用Nios處理器開發設計與採用傳統的處理器開發設計不同,開發者必須先配置處理器結構、設置介面等內容 也就是說,開發者必須根據實際需求構建一個處理器,而傳統的處理器具有固定介面、片內RAM 和外部設備。應用SOPC Bulider(嵌入式開發套件)可以進行Nios II IP核的開發。構建嵌入式系統 SOPC Bulider中提供一個集成開發環境Eclipse,集成了硬體平台產生器、軟體平台產生器、模擬模型生成器、軟體編譯器和軟體調試工具等,方便用戶完成嵌入式系統開發的整個流程。具體步驟如圖1所示。
 
圖1 Nios II開發流程
    在FPGA上設計的嵌入式系統的層次結構分為3級。其中,第一級為定義處理器,在最低層硬體資源上開發IP核,定義處理器包括CPU、片內存儲器、片外存儲器、外圍設備等;第二級為構建處理器,軟體產生一個處理器后還需要配置CPU硬體選項包括數據匯流排寬度(32 or 16 bits)、乘法器和自定義指令用法、定義處理器啟動地址、為外圍設備和介面設置中斷優先順序、設置Avalon匯流排結構。第三級為系統驗證,任務是編寫測試文件對系統進行全面測試。
    軟體開發包括頭文件生成、外部設備驅動、用戶自定義庫、RTOS核的編寫等

3 Nios II 的嵌入式應用
    直流無刷電機由於其無電刷及換向火花、小轉動慣量、小體積、低雜訊、免維護等優點,在機器人領域中得到廣泛應用。在直流伺服控制系統中,目前國內外普遍採用的是以單片機或DSP作為控制系統的微處理器來實現電機的控制演算法,但是由於用單片機或DSP控制電機,佔用介面資源較多,所需周邊元器件也較多,對整個系統的穩定性和可靠性有較大影響。用FPGA設計直流無刷電機控制系統,能夠將大量邏輯功能集成於一個單片IC中,節省資源,可實現在線編程和擦除,使設計更靈活,可靠程度更高,而且系統結構極為緊湊,雖然FPGA在邏輯實現上具有無與倫比的優勢,但是運算能力低於DSP(數字信號處理器)。
    軟核處理器的出現彌補了這一缺陷,Nios II處理器指令執行速度最高可達200DMIPS,幾乎所有的指令都可以在5ns的單周期內執行完畢。這種高性能使複雜的電機控制演算法的實時執行成為可能,例如空間矢量控制和卡爾曼濾波等。本文中採用Nios II軟核處理器為核心,結合其它功能模塊,充分利用高性能FPGA實現所需的控制邏輯,通過軟核處理器完成軟體控制演算法,設計結構簡單靈活、高性能的直流無刷電機控制系統。
    單個關節的直流無刷電機伺服系統採用角度、角速度雙環從屬控制結構,如圖2所示。系統直流無刷電機作為伺服系統的執行元件,採用諧波減速器將電機軸高速運動轉化為與關節軸的低速轉動。驅動電路由直流無刷電機專用驅動晶元Si9979和MOSFET構成。控制電路由一片Altera的FPGA實現。整個系統可以通過由FPGA實現的串列介面與PC機通信。由於Si9979是一款高性能的直流無刷電機控制晶元,內部由輸入控制信號邏輯電路、功率放大電路、電源分離懸浮電路、斬波電路及電流反饋及硬體死區產生電路等構成,FPGA只需提供PWM信號、方向(DIR)信號、剎車(BRK)信號就可對電機進行控制。感測器模擬輸出信號通過串列AD轉換成串列數字信號,串列AD通過SPI匯流排與FPGA實現通信FPGA對這些信號進行處理產生PWM、方向和剎車控制信號,傳輸給Si9979驅動板,實現對直流無刷電機的驅動和靈巧手關節的力矩、位置閉環控制。
 
圖2 無刷直流電機伺服系統組成
    本文設計的直流無刷電機控制系統的整體結構如圖3所示
 
圖3 FPGA系統總體框圖
    FPGA的Nios軟核中的資源有:32位RISC架構CPU,4KByte的片上ROM,256Byte 的片上RAM。在處理器中加入定時器實現AD定時採樣及電機的實時控制。SPI模塊用來實現與串列AD7888的介面,電機控制模塊實現對直流無刷電機的控制。UART介面模塊實現與上位機的串列通信。完成人機交互。片上處理器和其它IP模塊之間通過Avalon片上匯流排相連,規定了主部件和從部件之間進行連接的埠和通信的時序。
    完成定製后,SOPC Builder將定製的處理器轉換為VHDL等具體的設計文件:除此之外SOPCBuilder還根據定製的結果,自動地生成針對特定硬體環境的C語言和彙編語言的頭文件以及函數庫。Nios程序的任務是在規定的控制周期內,通過SPI模塊控制AD晶元的同步採樣,將電機霍爾感測器、關節位置感測器、力矩感測器的數字量送至中央處理器32位CPU,CPU將各感測器信號進行預處理后,得到實時的電機速度、關節位置、關節力矩等狀態參數:通過UART模塊得到上位機發出的控制任務及控制參數,如期望關節位置、期望關節力矩等 由CPU實現直流無刷電機的閉環控制演算法並將控制信號(PWM、方向、剎車)送入電機控制模塊,實現實時控制,控制周期由Nios處理器中的硬體定時器決定,目前為200ms。實驗中不同占空比的PWM波形如圖4所示,效果良好,整個系統運行穩定。
 
圖4 PWM實際波形

4 結束語
    使用Nios II系列處理器進行嵌入式系統設計的突出優點是:CPU以軟核方式實現,其功能可根據需要定製,硬體設計快速靈活,提高了設計的可靠性並縮短了硬體開發周期 本文以直流無刷電機為設計對象,提出了基於Nios II軟核處理器的直流無刷電機伺服系統。該系統輸出波形穩定、規整,電機驅動平穩,已應用於機器人多指仿人靈巧手中,取得了良好效果。


[admin via 研發互助社區 ] Nios II在電機伺服控制中的應用已經有2281次圍觀

http://cocdig.com/docs/show-post-43028.html