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