一種基于Xilinx Zynq技術的大規模PLC系統的制作方法
【技術領域】
[0001]本發明涉及一種基于Xilinx Zynq技術的大規模PLC系統。
【背景技術】
[0002]隨著電子技術、計算機技術、通信網絡控制技術和工業自動化控制技術的飛速發展和日益普及,在工業控制系統領域中,誕生于上世紀60年代的可編程邏輯控制器(PLC)的功能日益強大,已經由傳統的單機PLC控制/網絡通信朝向網絡化大規模PLC系統發展,在軌道交通、石化等領域已出現萬點以上大規模PLC系統的應用需求。
[0003]隨著PLC技術的發展,PLC的表現形式和功能都已經得到了很大的發展,從過去比較單一的獨立單元結構發展到了現在的模塊化、網絡化、分布式控制。大規模PLC系統1/0點數在1024點以上,用戶程序存儲器容量在幾MB以上。由于大規模PLC具有比中小型PLC更強大的功能,因此一般用于大規模工業混合控制和大型工廠自動化應用等場合。
[0004]大規模PLC除了具有基本運算能力,即邏輯運算、定時、計數、移位等功能,一般還具有整數及浮點運算、數制轉換、PID調節、中斷控制及聯網功能,可用于復雜的邏輯運算及閉環控制場合。部分大型PLC還可以進行矩陣運算和函數運算,完成數據管理工作,具有較強的數據處理、模擬調節、特殊功能函數運算、監視、記錄、打印、通信聯網、中斷控制、智能控制和遠程控制等功能,可以和其他計算機構成分布式生產過程綜合控制管理系統。
[0005]由于大規模PLC系統對CPU的運算速度,總線帶寬的數據吞吐量,中斷響應時延,任務調度周期等關鍵指標都有苛刻的要求,普通的嵌入式系統的解決方案難以勝任。大規模PLC系統除了要求極高的串行數據運算能力,由于系統帶寬較高,單周期內的數據吞吐量極高,因此對并行處理能力要求較高。
【發明內容】
[0006]本發明的技術方案是一種基于Xilinx Zynq SoC處理器架構的大規模PLC系統,通過在Zynq的ARM硬件部分進行邏輯運算來完成PLC系統的控制功能,在Zynq的并行處理單元進行數據處理來完成中央處理模塊與現場高速10模塊的高速數據吞吐。
[0007]為了實現上述技術目的,本發明的技術方案是,一種基于Xilinx Zynq技術的大規模PLC系統,包括FPGA核心電路、CPU核心電路、DDR內存,Flash存儲器和FIFO ;
[0008]所述的FPGA核心電路由Xi 1 inx Kintex-7系列FPGA和相關的時鐘電路和濾波電路組成,硬件邏輯模塊包括系統仲裁模塊以及分別與系統仲裁模塊通信連接的PC1-Express數據收發模塊、PC1-Express協議解析模塊、DMA控制模塊、DDR控制模塊、Flash控制模塊和FIFO控制模塊;PC1-Express數據收發模塊通過金手指與PCI Express背板總線物理層電路相連,分別完成接收PC1-Express數據包和發送用戶程序處理結果;PC1-Express協議解析模塊接收端點設備發送的數據包,按照接口標準解析數據包獲取事務數據;DMA控制模塊控制數據格式的打包解包和數據的搬運;DDR控制模塊通過FPGA接口與片外的DDR內存相連接,對DDR內存實現配置、讀寫數據,DDR內存為處理結果數據緩存;Flash控制模塊通過FPGA接口與片外Flash存儲器相連接,對Flash存儲器實現配置、讀寫數據和擦除等操作,Flash存儲器為數據備份存儲器;FIFO控制模塊通過FPGA接口與片外FIFO相連接,對FIFO實現配置、讀寫數據,FIFO為FPGA與CPU間的數據交換橋;系統仲裁模塊協調各個硬件邏輯模塊之間的數據交換;
[0009]所述的CPU核心電路包括基于ARM Cortex_A9硬核處理器的ARM核心及外圍電路與處理器連接的時鐘、濾波電路,用于運行用戶程序處理從FPGA處獲取的事務數據;所述的ARM核心用于運行實時操作系統,完成所有的軟件邏輯運算,以及任務調度、中斷響應、資源管理和FPGA的配置與重配置工作。
[0010]所述的一種基于Xi 1 inx Zynq的大規模PLC系統,所述的CPU核心電路運行實時操作系統,完成系統所有的軟件控制工作,所述的FPGA核心電路作為一個硬件協處理單元存在,在FPGA核心電路上構建PCI Express根結點,CPU核心電路與FPGA核心電路通過AXI總線互聯,CPU核心電路能夠訪問FPGA實時數據。
[0011]所述的一種基于Xilinx Zynq的大規模PLC系統,FPGA上面構建PCI Express根結點的接口標準為Gen2x4,生成的IP核心在ARM啟動時進行下載配置,配置完成后ARM上運行的實時Linux操作系統將通過FPGA采集10模塊的數據,處理完成后通過10模塊進行輸出,10模塊通過PCI Express總線接口與根結點進行連接。當接口資源不足時,可通過PCI Express橋進行拓展。
[0012]所述的一種基于Xilinx Zynq的大規模PLC系統,PLC系統的CPU核心電路采用了雙核ARM Cortex-A9處理器。
[0013]所述的一種基于Xilinx Zynq的大規模PLC系統,PLC系統背板總線支持動態通信協議,通過在操作系統上下載新的通信協議IP核來添加新的通信協議支持。
[0014]本發明的技術效果在于,采用FPGA核心電路和CPU核心電路的雙核設計,實現了兩個并行處理單元通過AXI系統總線片上互聯,使用硬件描述語言可動態、自由的修改硬件電路的邏輯結構,且由ARM處理器來控制FPGA單元的配置工作。FPGA單元中構建PCIExpress根結點控制器來與高速背板10模塊進行交互,數據的輸入與輸出和協議的實現均由FPGA硬件單元完成,有效的提高了 PLC系統的工作效率,且運行靈活方便,能夠較好的提升PLC系統的總體運行水平。
[0015]下面結合附圖對本發明作進一步說明。
【附圖說明】
[0016]圖1為本發明的結構示意圖;
[0017]圖2為本發明的系統硬件設計方案頂層圖;
[0018]圖3為本發明的系統軟件功能模塊圖。
【具體實施方式】
[0019]參見圖1,本發明通過在Zynq的ARM硬件部分進行邏輯運算來完成PLC系統的控制功能,在Zynq的FPGA硬件部分進行數據處理來完成中央處理模塊與現場高速10模塊的高速數據吞吐,具體的實現方案如下圖:
[0020]本發明中的大規模PLC系統由中央處理模塊與高速10模塊構成,中央處理模塊與高速10模塊間通過PCI Express總線進行數據輸入與輸出。中央處理模塊包含了一塊Xilinx Zynq SoC處理器,在處理器上實現了芯片級的Cortex_A9雙核處理器和Kintex-7FPGA并行處理單元互聯,兩個硬核處理單元通過標準協議AXI系統總線互聯。
[0021]中央處理模塊包括FPGA核心電路,CPU核心電路,DDR,Flash,FIFO ;其中FPGA核心電路由一塊FPGA及其外圍電路、與FPGA連接的時鐘電路和濾波電路組成,程序基于硬件描述語言和Xilinx提供的IP核進行開發,硬件邏輯模塊包括系統仲裁模塊以及分別與系統仲裁模塊通信連接的PC1-Express數據收發模塊、PC1-Express協議解析模塊、DMA控制模塊、DDR控制模塊、Flash控制模塊和FIFO控制模塊;PC1-EXpreSS數據收發模塊通過金手指與PC1-Express背板總線物理層電路相連,分別完成接收PC1-Express數據包和發送用戶程序處理結果;PC1-Express協議解析模塊接收端點設備發送的數據包,按照接口標準解析數據包獲取事務數據;DMA控制模塊控制數據格式的打包解包和數據的搬運;