基于FPGA的電機智能驅(qū)動控制系統(tǒng)設(shè)計
根據(jù) PLC 的組合以及智能驅(qū)動器的類型(CAN 或 EtherCAT),工業(yè)網(wǎng)絡(luò)或為串行總線,或為標準的100Mb 以太網(wǎng)接口。對這兩種解決方案,該原型在 PLC 和電機之間均使用直接連接,或為用于 CAN 的雙線串行接口,或為用于 EtherCAT 的標準 RJ45 100Base-TX 以太網(wǎng)連接。
電機控制 PCB 板一般是智能驅(qū)動器中眾多 PCB 板之一,專門用于根據(jù)來自 PLC 的命令對電機進行控制。該電機控制 PCB 板可以讓 FPGA 充分發(fā)揮其靈活性。與常規(guī) ASIC/微處理器方案中采用的單接口、單電機控制算法解決方案不同,Spartan-6 FPGA 可以用專用網(wǎng)絡(luò)和電機控制 IP 模塊和控制軟件重新編程,以滿足客戶的特定需要。采用這種方式,一塊 FPGA PCB 板就可以實現(xiàn)多塊 ASIC 板才能實現(xiàn)的功能。同時,它還提供了可以根據(jù)最新標準更新 IP核的機制,實現(xiàn)面向未來的智能驅(qū)動器。
該電機控制板的設(shè)計無需從頭開始,賽靈思設(shè)計服務部采用目標設(shè)計平臺概念,通過把賽靈思 Spartan-6 SP605 評估套件、NetMot FMC 板和工業(yè)網(wǎng)絡(luò)和電機控制 IP 核結(jié)合在一起,集成了客戶想要的所有元件,這樣在客戶完成新 PCB 板之前就交付了這款概念驗證原型。圖2 顯示了如何把各個組件結(jié)合在一起,實現(xiàn)原型開發(fā)平臺。最終,客戶的集成工作大為簡化,無需對最終設(shè)計進行重新工程設(shè)計,就能夠探求最佳的設(shè)計選擇。
圖2:基于 Spartan-6 FPGA 的電機控制板原型
圖2 中文字:
SP605 基礎(chǔ)目標設(shè)計平臺是一種通用 FPGA 平臺,在業(yè)經(jīng)驗證的設(shè)計實現(xiàn)中集成了一個 Spartan-6 LX45T 和許多常用外設(shè),比如 DDR3 RAM、程序/比特流存儲用閃存、調(diào)試用 UART 以及 FPGA 編程用 JTAG。SP605 及所有最新賽靈思開發(fā)板的另一個關(guān)鍵元件是 FPGA 夾層卡 (FMC) 接插件,它可以讓設(shè)計人員使用定制的功能和接口擴展基礎(chǔ)開發(fā)板。
SP605 的這種特性使我們能夠使用 QDeSys NetMot FMC(www.qdesys.com)的功能來擴展這個基本平臺。QDeSys NetMot FMC 具有電機控制所需要的電力電子元件,比如電壓逆變器,以及用于采集傳感器數(shù)據(jù)的模數(shù)轉(zhuǎn)換器 (ADC)??梢园央姍C直接與圖 2 所示的輸入/輸出端相連。NetMot FMC 還通過添加兩個 CAN 接口和兩個以太網(wǎng)物理層接口,擴展了 SP605 的工業(yè)網(wǎng)絡(luò)連接功能。它們通過 FMC 接插件和 PLC,通過標準接口訪問FPGA。
測試用 PC 機一方面用作 PLC 軟件的主機,另一方面通過 UART 和 JTAG 接口,用作 FPGA編程/調(diào)試平臺。此外,我們還在這臺測試用 PC 機上用賽靈思 ISE?12.1 設(shè)計套件為 SP605的 LX45T PFGA 開發(fā) MicroBlazeTM 嵌入式處理器系統(tǒng)。該嵌入式系統(tǒng)負責處理來自 PLC 的命令并相應地對電機進行控制。
圖 2 所示的 MicroBlaze 軟件應用、網(wǎng)絡(luò)和電機控制 IP 模塊代表隨接口(EtherCAT 或 CATopne)和選擇的電機類型會發(fā)生變化的設(shè)計模塊。賽靈思設(shè)計服務部面臨的主要挑戰(zhàn)之一是要確保這些選項之間的切換盡量簡化,從而保證客戶能夠在將來把相同的方法重復用于諸如 Profinet 更先進的工業(yè)網(wǎng)絡(luò)類型以及新型電機中。
3 實現(xiàn)細則
讓我們來詳細查看 Spartan-6 嵌入式系統(tǒng)的各個組成部分。如圖 3 所示,我們使用的電機控制 IP 模塊——賽靈思電機控制庫 (XMCLIB) 在兩個設(shè)計版本中是完全相同的。這個定制 IP 核可以直接插在賽靈思嵌入式開發(fā)套件 (SDK) 上,讓 FPGA 控制 NetMot FMC 的電機電力電子系統(tǒng)。這樣我們就可以把 IP 核添加到 Xilinx Platform Studio (XPS) 項目的嵌入式設(shè)計中,并對其進行配置,使之適用于通過 FMC 接插件連接到 FPGA 的電機。XMCLIB 軟件驅(qū)動程序是一套底層功能,使電機控制應用能夠訪問 XMCLIB 寄存器接口。
圖3:CAN/EtherCAT 嵌入式系統(tǒng)
另一方面,網(wǎng)絡(luò) IP 核也是兩個系統(tǒng)版本的不同之處。對于 CAN 版設(shè)計,我們選擇標準的 LogiCORETM IP XPS 控制器區(qū)域網(wǎng)絡(luò),該網(wǎng)絡(luò)隨同 ISE 12.1 設(shè)計套件提供,并由博世公司許可。對于 EtherCAT 版設(shè)計,我們使用倍福公司針對賽靈思 FPGA 開發(fā)的 EtherCAT 從控制器IP核 (www.beckhoff.com)。兩種 IP 核在 XPS 工具的 IP 目錄標簽上都有提供,使設(shè)計的集成和配置工作異常簡單明了。在本案例中,我們沒有使用簡單的驅(qū)動程序來提供對網(wǎng)絡(luò) IP 核的訪問,我們使用了Port 公司 (www.port.de) 提供的 CANopen 和 EtherCAT 協(xié)議棧解決方案。該解決方案提供了功能齊全的開箱即用型協(xié)議實施方案。
最終,我們設(shè)計出了一種定制嵌入式軟件應用,可以在運行于 MicroBlaze 處理器系統(tǒng)的 Micrium(www.micrium.com)μC/OS-II 上運行。μC/OS-II 是一種嵌入式操作系統(tǒng),可增強原型系統(tǒng)的實時功能,并提供多任務、消息隊列和信號量等功能。
我們還意識到,應該讓應用的結(jié)構(gòu)能夠適用于多種不同的網(wǎng)絡(luò)接口。為此,我們設(shè)計了一個接口抽象層,可以讓我們封裝通信和軟件的電機控制組件。
在這個接口的一側(cè)(圖 4),我們實現(xiàn)了一個網(wǎng)絡(luò)模塊(Port 公司的 CANopen 或 EtherCAT),用以管理系統(tǒng)中可用網(wǎng)絡(luò) IP 核的通信。這些模塊可以無縫地插入我們的接口抽象層上。在這些協(xié)議棧的頂層,我們把通信和控制數(shù)據(jù)(比如 PDO、SDO 和 NMT 狀態(tài)交易)傳輸?shù)匠橄髮又?,然后抽象層將?shù)據(jù)進行轉(zhuǎn)譯并以諸如啟動/停止、以特定速率旋轉(zhuǎn)或旋轉(zhuǎn)到特定位置之類的命令提交給電機控制應用。
圖4:接口抽象層
為了為接口抽象層確定一組通用信息和命令,我們研究了工業(yè)網(wǎng)絡(luò)領(lǐng)域現(xiàn)有的專著,研讀了 IEC 61800-7 標準。對現(xiàn)有的現(xiàn)場總線技術(shù),有幾種用于標準化與驅(qū)動設(shè)備通信的方案(比如 CANopen 使用的 CiA-402、Profinet 使用的 PROFIdrive)。IEC 68000-7 標準提出了驅(qū)動器的通用表達,并計劃提供這種通用表達與現(xiàn)有驅(qū)動器特性之間的一組映射。
IEC 68000-7 標準提出的概念為我們開發(fā)接口抽象層奠定了基礎(chǔ),使我們能夠?qū)ο到y(tǒng)的網(wǎng)絡(luò)組件進行封裝。我們因此可以更改系統(tǒng)中的網(wǎng)絡(luò)接口,而這只需要對軟件稍加定制修改,就可以讓其與現(xiàn)有的電機控制應用兼容。
4 展望未來
這款智能驅(qū)動控制系統(tǒng)原型的成功交付清晰地展現(xiàn)了 FPGA 在工業(yè)以太網(wǎng)網(wǎng)絡(luò)、現(xiàn)場總線和電機控制領(lǐng)域的發(fā)展?jié)摿?。雖然要開發(fā)出功能齊全的產(chǎn)品還有一些工作要做,但賽靈思設(shè)計服務部已為客戶量身定制了一款目標設(shè)計平臺,并通過性能增強,打造出了一款能夠顯著降低最終工程產(chǎn)品的開發(fā)工作量與風險的定制解決方案。下一步賽靈思設(shè)計服務部將考慮擴展該目標設(shè)計平臺,以支持 Profinet IP 核和協(xié)議棧,向客戶展現(xiàn)賽靈思設(shè)計服務部采用的模塊方案和設(shè)計實踐的效果。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論