亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于fpga的具有并行處理結構的高速伺服控制器的制作方法

文檔序號:6292992閱讀:285來源:國知局

專利名稱::基于fpga的具有并行處理結構的高速伺服控制器的制作方法
技術領域
:本發(fā)明涉及一種伺服控制器,特別是指一種基于FPGA的具有并行處理結構的高速伺服控制器,屬于工業(yè)自動化控制
技術領域
,
背景技術
:在工業(yè)自動化控制領域,現(xiàn)有的伺服控制器大都采用軟件實現(xiàn)控制器計算。隨著工業(yè)控制行業(yè)的發(fā)展,對伺服控制器的運算速度有了越來越高的要求。然而,由于微處理器運行結構和計算能力的限制,傳統(tǒng)伺服控制器在進行控制計算時開銷較大,同時,A/D轉換、PID控制計算和D/A轉換需要順序執(zhí)行,造成傳統(tǒng)的伺服控制器已經(jīng)不能滿足很多場合對控制速度的要求。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種控制快速、適用范圍廣的基于FPGA的具有并行處理結構的高速伺服控制器。本發(fā)明的基于FPGA的具有并行處理結構的高速伺服控制器,其特征是包括現(xiàn)場可編程邏輯門陣列(FPGA),兩個A/D轉換器,D/A轉換器,晶振、鍵盤模塊、顯示模塊、FLASH存儲器、SDRAM存儲器和EEPROM存儲器,其中現(xiàn)場可編程邏輯門陣列集成有兩個A/D轉換控制模塊,D/A轉換控制模塊,用于控制計算的核心控制模塊,時鐘模塊,兩個雙口RAM和軟核處理器,兩個A/D轉換控制模塊分別與兩個A/D轉換器相連,兩個A/D轉換控制模塊的數(shù)據(jù)輸出端分別與核心控制模塊的數(shù)據(jù)輸入端相連,核心控制模塊的數(shù)據(jù)輸出端與D/A轉換控制模塊的數(shù)據(jù)輸入端相連,D/A轉換控制模塊的輸出端與D/A轉換器的輸入端相連,核心控制模塊的雙口RAM控制端口分別與第一雙口RAM和第二雙口RAM的一端相連,第一雙口RAM和第二雙口RAM的另一端分別與軟核處理器的雙口RAM控制端口相連,鍵盤模塊、顯示模塊、FLASH存儲器、SDRAM存儲器和EEPROM存儲器分別與軟核處理器相應的控制端口相連,晶振的輸出端分兩路,一路與軟核處理器的時鐘輸入端相連,另一路與時鐘模塊的時鐘輸入端相連,時鐘模塊的四個時鐘輸出端分別與第一、第二A/D轉換控制模塊,D/A轉換控制模塊和核心控制模塊的時鐘輸入端相連。本發(fā)明的工作過程晶振為軟核處理器和時鐘模塊提供穩(wěn)定的基本時鐘信號,時鐘模塊對基本時鐘信號進行處理,為兩個A/D轉換控制模塊和核心控制模塊以及D/A轉換控制模塊提供各自的時鐘信號。第一A/D轉換控制模塊負責控制第一A/D轉換器,獲得被控對象的狀態(tài)信息,包括位置、速度、加速度等;第二A/D轉換控制模塊負責控制第二A/D轉換器,獲得被控對象的設定值信息。核心控制模塊首先讀取第一雙口RAM,獲取控制器的參數(shù),然后從第一A/D轉換控制模塊和第二A/D轉換控制模塊分別獲得被控對象狀態(tài)信息和設定值信息,并根據(jù)兩者之間的偏差,應用經(jīng)典的增量式數(shù)字PID控制算法,計算出控制量,最后將包括控制量在內(nèi)的核心控制模塊的狀態(tài)信息寫入第二雙口RAM。D/A轉換控制模塊從核心控制模塊獲得控制量,并控制D/A轉換器將控制量輸出給調(diào)節(jié)機構,以調(diào)節(jié)被控對象的狀態(tài)。其中,兩個A/D轉換控制模塊、核心控制模塊和D/A轉換控制模塊是流水化并行工作的。當兩個A/D轉換控制模塊控制兩個A/D轉換器進行第N周期的外部信號采樣時,核心控制模塊使用第N-1周期的被控對象狀態(tài)信息和設定值信息進行控制計算,而D/A轉換控制模塊控制D/A轉換器輸出第N-2周期的控制量。軟核處理器負責完成刷新顯示模塊輸出、讀取鍵盤模塊輸入和讀寫兩個雙口RAM以實現(xiàn)與核心控制模塊之間的通訊。軟核處理器上所運行的軟件存儲在FLASH存儲器上,軟件運行過程中產(chǎn)生的臨時數(shù)據(jù)存儲在SDRAM存儲器上。EEPROM存儲器在控制器掉電時存儲控制器參數(shù)上。本發(fā)明的高速伺服控制器實現(xiàn)了PID控制計算的硬件化以及A/D轉換、控制計算和D/A轉換的流水線化并行處理,顯著縮短了控制周期;實現(xiàn)了軟核處理器對核心控制模塊的監(jiān)控和人機交互。本發(fā)明的伺服控制器具有極快的運算速度和高度的靈活性,可廣泛應用于工業(yè)自動化領域的伺服控制系統(tǒng)中,適用范圍廣。圖l本發(fā)明的結構框圖2是FPGA內(nèi)部模塊的具體電路示意圖3是伺服控制器流水化并行處理示意圖4是運行在軟核處理器上的程序流程圖。具體實施例方式下面結合附圖,對本發(fā)明作進一步說明。參見圖1,基于FPGA的具有并行處理結構的高速伺服控制器包括FPGA1,兩個A/D轉換器3、4,D/A轉換器5,晶振14、鍵盤模塊15、顯示模塊16、FLASH存儲器17、SDRAM存儲器18和EEPROM存儲器2,其中現(xiàn)場可編程邏輯門陣列1包括兩個A/D轉換控制模塊6、7,D/A轉換控制模塊8,用于控制計算的核心控制模塊9、時鐘模塊10、兩個雙口RAMll、12和軟核處理器13,兩個A/D轉換控制模塊6、7分別與兩個A/D轉換器3、4相連,兩個A/D轉換控制模塊6、7的數(shù)據(jù)輸出端分別與核心控制模塊9的數(shù)據(jù)輸入端相連,核心控制模塊9的數(shù)據(jù)輸出端與D/A轉換控制模塊8的數(shù)據(jù)輸入端相連,D/A轉換控制模塊8的輸出端與D/A轉換器5的輸入端相連,核心控制模塊9的雙口RAM控制端口分別與第一雙口RAM11和第二雙口RAM12的一端相連,第一雙口RAM11和第二雙口RAM12的另一端分別與軟核處理器13的雙口RAM控制端口相連,鍵盤模塊15、顯示模塊16、FLASH存儲器17、SDRAM存儲器18和EEPROM存儲器2分別與軟核處理器13相應的控制端口相連,晶振14的輸出端分兩路,一路與軟核處理器13的時鐘輸入端相連,另一路與時鐘模塊10的輸入端相連,時鐘模塊10的四個時鐘輸出端分別與兩個A/D轉換控制模塊6、7,D/A轉換控制模塊8和核心控制模塊9的時鐘輸入端相連。本發(fā)明中所說的SDRAM存儲器18可以選擇HY57V641620芯片;FLASH存儲器17可以選擇AM29LV320D芯片;兩個A/D轉換器3、4均可以選擇AD9220芯片;D/A轉換器5可以選擇AD420芯片;顯示模塊16可以選擇SED1335液晶模塊;EEPROM存儲器2可采用FM24CL64芯片。圖2是FPGA內(nèi)部模塊的具體電路示意軟核處理器13為可重配置32位處理器NIOSK,現(xiàn)按如下方式配置一個32位處理器核心、一個flash控制器、一個SDRAM控制器、一個I2C控制器、一個LCD控制器、一個鍵盤控制器和一個雙口RAM控制器。圖例中,引腳wr—n_flash、readn、cs—n—flash、data[15..0]、address[21.,l]為flash控制器的引出端口;弓|腳addr一sdram[ll..O]、ba—sdram[l..O]、cas—n一sdram、eke—sdram、cs—n—sdram、dq_sdram[15.0]、dqm_sdram[1.0]、ras—n_sdram、we—n_sdram為SDRAM控制器的引出端口;弓l腳12C[L.0]為I2C控制器的引出端口;弓l腳LCD—DATA[7..0]、LCD—CS、LCD_A0、LCD_RST、LCD_WR、LCD_RD為LCD控制器的引出端口;引腳KEY[8.,0]為鍵盤控制器的引出端口;引腳RAM1一DATA[15"0]、RAMI—戰(zhàn)CLK、RAM1一WR、RAM2—DATA[15"0]、RAM_ADDR[7..0]、RAM2—RDCLK為雙口RAM控制器的引出端口;elk是時鐘輸入端口。兩個雙口RAM模塊ll、12為可重構RAM存儲器,引腳^&(1(1^88[7..0]為讀地址端,引腳^15..0]為讀數(shù)據(jù)端、引腳^01(^為讀時鐘端、引腳^^(11^3[7..0]為寫地址端、引腳(1&1&[15..0]為寫數(shù)據(jù)端、引腳wrclock為寫時鐘端、引腳wren為寫使能端。核心控制模塊9,兩個A/D轉換控制模塊6、7,D/A轉換控制模塊8和時鐘控制模塊10由硬件描述語言VHDL(《用VHDL設計電子線路》,2000年出版,清華大學出版社)實現(xiàn),核心控制模塊9負責執(zhí)行控制計算,從兩個A/D轉換控制模塊6、7分別獲得被控對象的狀態(tài)信息和設定值信息,讀第一雙口RAM11獲得控制器參數(shù)信息,根據(jù)獲得的信息進行控制計算,將控制結果傳遞給D/A轉換控制模塊8,并將核心控制模塊的狀態(tài)信息寫入第二雙口RAM12。核心控制模塊9的端口配置如下引腳RAM1—data[15..0]、RAM2—data[15..0]、RAMl_addr[7..0]、RAM2—addr[7..0]、RAMI—clk和RAM2—elk為雙口RAM控制接口,用于讀寫兩個雙口RAMll、12;引腳feedbad^data[ll.,0]和s鄰oint—data[ll..O]為數(shù)據(jù)輸入端口,分別用于從第一A/D轉換控制模塊6和第二A/D轉換控制模塊7獲取數(shù)據(jù);弓|腳0)他01_£1由[15..0]為數(shù)據(jù)輸出端口,用于為D/A轉換控制模塊8提供數(shù)據(jù)。兩個A/D轉換控制模塊6、7分別控制兩個A/D轉換器3、4進行A/D轉換并獲得轉換結果。兩個A/D轉換控制模塊6、7的端口配置如下引腳clk為時鐘輸入端口;引腳ad一clkout和datain[ll..O]為A/D轉換控制接口,用于控制兩個A/D轉換器3、4;弓l腳dataout[ll..O]為數(shù)據(jù)輸出端口,用于為核心控制模塊提供A/D轉換結果。D/A轉換控制模塊8為D/A轉換器5提供待D/A轉換的數(shù)據(jù)并控制其進行轉換。D/A轉換控制模塊8的端口配置如下引腳clk為時鐘輸入端口;引腳血^11[15..0]為數(shù)據(jù)輸入端口,用于從核心控制模塊獲取待D/A轉換的數(shù)據(jù);引腳da一clk、da_data、da—cs為D/A轉換控制接口,用于控制D/A轉換器。時鐘控制模塊10為兩個A/D轉換控制模塊6、7及核心控制模塊9和D/A轉換控制模塊8提供各自的時鐘。時鐘模塊10的端口配置如下引腳clk時鐘輸入端口,用于從晶振獲得基本時鐘信號;引腳clk一ad、elk—da、clk—control均為時鐘輸出端口,用于為兩個A/D轉換控制模塊6、7及D/A轉換控制模塊8和核心控制模塊9提供時鐘信號。第一、第二A/D轉換控制模塊6、7的A/D轉換控制接口ad—dkout、datain[l1..O]分別與兩個A/D轉換器3、4所采用的AD9220芯片的時鐘輸入端clk和轉換結果輸出端BIT12BIT1相連,以控制A/D轉換并獲取轉換結果。核心控制模塊9的雙口RAM控制接口中的RAMl_data[15..0]、RAMl_addr[7..0;^t]RAMl—clk分別與第一雙口RAMll的讀數(shù)據(jù)端q[15..0]、讀地址端rdaddress[7.,0]和讀時鐘端rdclock相連;核心控制模塊9的雙口RAM控制接口中的RAM2—data[15..0]、RAM2—addr[7..0]、RAM2—clk和RAM2_en分別與第二雙口RAM12的寫數(shù)據(jù)端data[15..0]、寫地址端wraddress[7..0]、寫時鐘端wrclock和寫使能端wren相連;核心控制模塊9的被控對象狀態(tài)數(shù)據(jù)輸入端feedback一data[l1..O]與第一A/D轉換控制模塊6的數(shù)據(jù)輸出端dataout[l1..O]相連;核心控制模塊9的設定值數(shù)據(jù)輸入端3鄰01加_(1^[11..0]與第二A/D轉換控制模塊7的數(shù)據(jù)輸出端dataout[ll..O]相連;核心控制模塊9的控制量輸出端control—data[15.,0]與D/A轉換控制模塊8的數(shù)據(jù)輸入端€^^11[15..0]相連。D/A轉換控制模塊8的D/A轉換控制接口da—clk、da—data、da_cs分別與D/A轉換器5所采用的AD420芯片的時鐘信號輸入端CLK、待轉換數(shù)據(jù)輸入端DATA和轉換使能信號輸入端LATCH相連,從而為D/A轉換器5提供待D/A轉換數(shù)據(jù)并控制其進行轉換。軟核處理器13通過集成在其內(nèi)部的flash控制器、SDRAM控制器、I2C控制器、LCD控制器和鍵盤控制器控制FPGA外部的flash存儲器17、SDRAM存儲器18、EEPROM存儲器2、顯示模塊15和鍵盤模塊16;軟核處理器13通過集成在其內(nèi)部的雙口RAM控制器讀取第一雙口RAMll中的數(shù)據(jù),向第二雙口RAM12寫入數(shù)據(jù),以實現(xiàn)對核心控制模塊的監(jiān)控。軟核處理器13的時鐘輸入端口clk與晶振14相連;軟核處理器13中的flash控制器端口wr—n—flash、readn、cs—n—flash、data[15..0]、address[21,.l]分別與flash存儲器17所采用的AM29LV320D芯片的WE、OE、CE、DQ15DQ0、A20A0端口對應相連;軟核處理器13中的SDRAM控制器端口addr_sdram[11..0〗、ba一sdram[l..O]、cas—n_sdram、eke—sdram、cs_n—sdram、dq_sdram[15..0]、dqm一sdram[l..O]、ras—n一sdram、we_n—sdram分別與SDRAM存儲器18所采用的HY57V641620芯片的A11A0、BA1BA0、CAS、CKE、CS、DQ15DQ0、DQM1DQM0、RAS、WE端口對應相連;軟核處理器13中的I2C控制器端口12C[L.0]與EEPROM存儲器2所采用的FM24CL64芯片的DATA、CLK端口相連;軟核處理器13中的LCD控制器端口LCD—DATA[7.,0]、LCD一CS、LCD一A0、LCD_RST、LCD_WR、LCD_RD分別與顯示模塊16所采用的SED1335模塊的D7D0、CS、A0、RST、WR、RD對應相連;軟核處理器13中的鍵盤控制器端口KEY[8.,0]與鍵盤模塊15的數(shù)據(jù)端相連;軟核處理器13的雙口RAM控制器端口中的RAMI—DATA[15..0]、RAM—ADDR[7..0]、RAMI—WRCLK、RAMI—WR分別與第一雙口RAMll的data[15..0]、wraddress[7..0]、wrclock、wren端口對應相連;軟核處理器13的雙口RAM控制器端口中的RAM2—DATA[15..0]、RAM—ADDR[7..0]、RAM2—RDCLK分別與第二雙口RAM12的q[15..0]、rdaddress[7..0]、rdclock端口對應相連;軟核處理器13與核心控制模塊9通過連接在它們之間的兩個雙口RAM模塊11、12進行交互。軟核處理器13將控制器參數(shù)按照一定格式寫入第一雙口RAMll,用于設定控制器參數(shù);核心控制模塊9從第一雙口RAM11讀取控制參數(shù)進行控制計算,并將包括控制計算結果在內(nèi)的核心控制模塊9的狀態(tài)信息按照一定格式寫入第二雙口RAM12;軟核處理器13再從第二雙口RAM12讀取數(shù)據(jù),以獲得核心控制模塊狀態(tài)信息。第一雙口RAM中的數(shù)據(jù)格式如表1所示。config是控制器配置信息。config的具體說明如表2所示,其中en為數(shù)據(jù)有效信號,en為0表示第一雙口RAM中的信息正在被修改,即數(shù)據(jù)無效,en為1表示RAMI中的信息沒有在修改中,即數(shù)據(jù)有效;m/a為手操/自動信號,m/a為0表示控制器輸出由人工控制,即輸出手操信號,m/a為1表示控制器輸出自動控制信號;in/out為內(nèi)/外給定信號,in/out為0表示設定信號來自控制器內(nèi)部,即內(nèi)給定,in/out為1表示設定信號來自控制器外部,即外給定。value是手操信號,只有當config中的m/a為0時value才有效。set-point是內(nèi)給定信號,只有當config中的m/a為1且in/out為0時set-point才有效。ql、q2、q3分別為PID控制的參數(shù),只有當config中的m/a為1時ql、q2、q3才有效。第二雙口RAM中的數(shù)據(jù)格式如表3所示,en是數(shù)據(jù)有效標志,en為0表示第二雙口RAM中的信息正在被修改,即數(shù)據(jù)無效,en為1表示第二雙口RAM中的信息沒有在修改中,即數(shù)據(jù)有效。u為核心控制模塊計算出的控制輸出。position為被控對象狀態(tài)。alarm為報警信號,alarm為0表示核心控制模塊工作正常,alarm為1表示被控對象狀態(tài)信號丟失,alarm為2表示設定值非法。<table>tableseeoriginaldocumentpage8</column></row><table>表2<table>tableseeoriginaldocumentpage9</column></row><table>圖3是本發(fā)明流水化并行處理示意圖。其中,T為控制周期。當兩個A/D轉換控制模塊6、7控制兩個A/D轉換器3、4進行第N周期的外部信號采樣時,核心控制模塊9使用第N-l周期的被控對象狀態(tài)信息和設定值信息進行控制計算,而D/A轉換控制模塊8控制D/A轉換器5輸出第N-2周期的控制量。A/D轉換、控制計算和D/A轉換同時進行,從而實現(xiàn)了流水化并行處理。圖4是運行在軟核處理器13上的程序流程圖。該程序需要完成兩部分任務人機交互、核心控制模塊監(jiān)控。程序包括下列步驟a.系統(tǒng)初始化;b.讀取第二雙口RAM12中的數(shù)據(jù);c.根據(jù)第二雙口RAM12中的數(shù)據(jù)刷新顯示模塊;d.讀取鍵盤模塊15的輸入,如果沒有鍵盤輸入,那么直接返回步驟b,如果有鍵盤輸入,輸入的命令分兩種——修改控制器參數(shù)和保存控制器參數(shù),如果命令為修改控制器參數(shù),進入步驟e,如果命令為保存控制器參數(shù),進入步驟f。e.根據(jù)命令修改第一雙口RAM11中的相應內(nèi)容;f.將當前的控制器參數(shù)存入EEPROM存儲器2;g.返回步驟b。權利要求1.基于FPGA的具有并行處理結構的高速伺服控制器,其特征是包括現(xiàn)場可編程邏輯門陣列(1),兩個A/D轉換器(3)、(4),D/A轉換器(5),晶振(14)、鍵盤模塊(15)、顯示模塊(16)、FLASH存儲器(17)、SDRAM存儲器(18)和EEPROM存儲器(2),其中現(xiàn)場可編程邏輯門陣列(1)集成有兩個A/D轉換控制模塊(6)、(7),D/A轉換控制模塊(8),用于控制計算的核心控制模塊(9),時鐘模塊(10),兩個雙口RAM(11)、(12)和軟核處理器(13),兩個A/D轉換控制模塊(6)、(7)分別與兩個A/D轉換器(3)、(4)相連,兩個A/D轉換控制模塊(6)、(7)的數(shù)據(jù)輸出端分別與核心控制模塊(9)的數(shù)據(jù)輸入端相連,核心控制模塊(9)的數(shù)據(jù)輸出端與D/A轉換控制模塊(8)的數(shù)據(jù)輸入端相連,D/A轉換控制模塊(8)的輸出端與D/A轉換器(5)的輸入端相連,核心控制模塊(9)的雙口RAM控制端口分別與第一雙口RAM(11)和第二雙口RAM(12)的一端相連,第一雙口RAM(11)和第二雙口RAM(12)的另一端分別與軟核處理器(13)的雙口RAM控制端口相連,鍵盤模塊(15)、顯示模塊(16)、FLASH存儲器(17)、SDRAM存儲器(18)和EEPROM存儲器(2)分別與軟核處理器(13)相應的控制端口相連,晶振(14)的輸出端分兩路,一路與軟核處理器(13)的時鐘輸入端相連,另一路與時鐘模塊(10)的時鐘輸入端相連,時鐘模塊(10)的四個時鐘輸出端分別與第一、第二A/D轉換控制模塊(6)、(7),D/A轉換控制模塊(8)和核心控制模塊(9)的時鐘輸入端相連。2.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于SDRAM存儲器(18)為HY57V641620芯片。3.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于FLASH存儲器(17)為AM29LV320D芯片。4.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于EEPROM存儲器(2)為FM24CL64芯片。5.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于兩個A/D轉換器(3)、(4)均為AD9220芯片。6.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于D/A轉換器(5)為AD420芯片。7.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于顯示模塊(16)為SED1335液晶模塊。8.根據(jù)權利要求1所述的基于FPGA的具有并行處理結構的高速伺服控制器,其特征在于軟核處理器(13)為可重配置32位處理器NIOSII。全文摘要本發(fā)明公開的基于FPGA的具有并行處理結構的高速伺服控制器包括現(xiàn)場可編程邏輯門陣列(FPGA),兩個A/D轉換器,D/A轉換器,晶振、鍵盤模塊、顯示模塊、FLASH存儲器、SDRAM存儲器和EEPROM存儲器,其中現(xiàn)場可編程邏輯門陣列包括兩個A/D轉換控制模塊,D/A轉換控制模塊,用于控制計算的核心控制模塊、時鐘模塊、兩個雙口RAM和軟核處理器。該伺服控制器可以實現(xiàn)PID控制計算的硬件化以及A/D轉換、控制計算和D/A轉換的流水線化并行處理,顯著縮短了控制周期;實現(xiàn)軟核處理器對核心控制模塊的監(jiān)控和人機交互,具有極快的運算速度和高度的靈活性,可廣泛應用于工業(yè)自動化領域的伺服控制系統(tǒng)中,適用范圍廣。文檔編號G05B19/414GK101251753SQ20081006094公開日2008年8月27日申請日期2008年4月8日優(yōu)先權日2008年4月8日發(fā)明者劉希琳,宋執(zhí)環(huán),富一林,楊春節(jié),沈新榮申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1