本發(fā)明涉及嵌入式控制和船舶動力定位系統(tǒng),更具體地說,涉及一種基于ARM和FPGA的船舶動力定位控制系統(tǒng)。
背景技術:
隨著海洋資源的勘探和利用,以及航??茖W技術和船舶海洋工程的發(fā)展,人類的步伐逐步由淺海邁進深海領域,這對船舶動力定位系統(tǒng)的要求越來越高,同時也促進了動力定位的相關技術快速發(fā)展。
船舶動力定位系統(tǒng),目的是用來保持船舶的位置和航向,系統(tǒng)不借助于錨泊系統(tǒng),根據(jù)實時的風浪流的方向,利用自身的推進器產(chǎn)生推動力和力矩抵消去抵抗外界環(huán)境的干擾,自動地調(diào)節(jié)船舶的艏向到最優(yōu)的期望位置。動力定位系統(tǒng)相比錨泊系統(tǒng),具有部署容易、定位精度高、安全性高、成本不會隨水深增加而增加等優(yōu)點,因此得到了廣泛研究、推廣和應用。
隨著微電子技術、計算機科學技術和傳感器技術的不斷進步,以及先進控制算法和策略的不斷涌現(xiàn),使得動力定位系統(tǒng)的體系結(jié)構(gòu)日益復雜。同時,動力定位系統(tǒng)的穩(wěn)定性和可靠性提出了更為苛刻的要求,如船級社定義的DP-3等級將逐漸成為主流。船舶動力定位控制系統(tǒng)安全性要求非常高,一旦出現(xiàn)故障,將帶來巨大的經(jīng)濟損失和安全問題。所以對控制器中的數(shù)據(jù)采集通信的精確度和可靠性以及系統(tǒng)的容錯能力提出了極高的要求。
傳統(tǒng)的定位系統(tǒng)所用的控制器,往往使用PLC或工控機,采用分立的采集模塊或功能卡,集成度不高、運算能力不強,不利于應用如多傳感器數(shù)據(jù)融合、分布式計算等技術,限制了控制器的適應性和高性能化。此外,PLC和工控機的架構(gòu),平臺依賴性強、軟硬件接口封閉、操作系統(tǒng)實時性不強,安全性和可靠性很難達到高冗余等級的設計級別,難以滿足強電磁干擾、高振動、高濕溫度的船舶應用環(huán)境。
技術實現(xiàn)要素:
本發(fā)明提供一種基于ARM和FPGA的船舶動力定位控制系統(tǒng),解決現(xiàn)有的定位系統(tǒng)軟硬件接口封閉、安全性和可靠性未達到高冗余等級設計的問題。
為實現(xiàn)上述目的,本發(fā)明采用如下技術方案:
一種基于ARM和FPGA的船舶動力定位控制系統(tǒng),包括主控機、采集模塊、操縱臺控制器、推進器。主控機、采集模塊和操縱臺控制器通過第一網(wǎng)絡相互連接,操縱臺控制器還連接至第二網(wǎng)絡,操縱臺控制器和推進器通過第二網(wǎng)絡相互連接。采集模塊將傳感器數(shù)據(jù)和推進器數(shù)據(jù)傳輸給主控機,主控機根據(jù)傳感器數(shù)據(jù)計算船舶位置,并根據(jù)推進器數(shù)據(jù)計算推進量。操縱臺控制器讀取操縱臺上的實際操縱信息和推進器的推進量,讀取推進器的狀態(tài)并反饋至主控機。
進一步地,第一網(wǎng)絡和第二網(wǎng)絡均為POWERLINK網(wǎng)絡,且第一網(wǎng)絡和第二網(wǎng)絡分別為雙網(wǎng)冗余網(wǎng)絡。主控機包括第一主控機和第二主控機,第一主控機和第二主控機均作為POWERLINK網(wǎng)絡的主站并形成主站冗余。
進一步地,主控機以ARM處理器為主處理器、FPGA為協(xié)處理器,主處理器和協(xié)處理器之間通過GPMC高速接口和SPI低速接口的組合方式連接。
進一步地,GPMC工作在獨立的地址總線和數(shù)據(jù)總線線的同步模式,采用8位數(shù)據(jù)總線、10根地址線、FPGA連接到ARM的片選GPMC_CS2和GPMC_CS3上,使得FPGA作為ARM的外擴存儲空間,在ARM端地址范圍為0x10000000-0x100003FF,0x10000400-0x100007FF。
進一步地,ARM芯片的外圍連接64M SPI Flash、兩路RS232、RS422和RS485接口,兩路CAN接口,兩路以太網(wǎng)接口,10路DI和DO接口。
進一步地,F(xiàn)PGA芯片的外圍連接10路RS422、RS485串行接口,2路Profibus、3路POWERLINK,10路AD和DA接口。
相對于現(xiàn)有技術,本發(fā)明的優(yōu)點在于:
(1)本發(fā)明提出的基于ARM和FPGA的船舶動力定位控制系統(tǒng)包含豐富的硬件接口和工業(yè)總線協(xié)議,可靈活地接入各種接口形式的傳感器或設備。控制器從設計上可滿足節(jié)點冗余和組網(wǎng)冗余的要求,整體架構(gòu)可符合船級社的DP-3等級,拓展能力強、可靠性好。
(2)本發(fā)明采用ARM和FPGA的雙處理器結(jié)構(gòu),ARM主處理器負責控制相關的計算任務,F(xiàn)PGA協(xié)處理器用作協(xié)議網(wǎng)關轉(zhuǎn)換和數(shù)據(jù)采集轉(zhuǎn)換的功能,兩者分工明確、通信效率高、系統(tǒng)響應速度快。
(3)本發(fā)明的處理器架構(gòu)中,將FPGA協(xié)處理器設計為ARM主處理器的外設,使用內(nèi)存映射到ARM的地址空間中,這樣減少了處理器間交換數(shù)據(jù)而產(chǎn)生的額外開銷。此外,ARM與FPGA之間還留有SPI的接口,用作頻繁的小數(shù)據(jù)交換,進一步提高兩者間的通信效率。
(4)本發(fā)明的FPGA中,集成了常用的工業(yè)總線Profibus和POWERLINK協(xié)議,采用模塊化硬核的設計思想,層次分明,可按需配置成主站或從站模式。在ADC和DAC模塊中,采取FIFO和狀態(tài)機的模式進行,工作效率較高。
附圖說明
圖1是本發(fā)明的船舶動力定位控制器的應用示意圖;
圖2是本發(fā)明的船舶動力定位控制器的硬件架構(gòu)示意圖;
圖3是本發(fā)明的主處理器ARM和協(xié)處理器FPGA間的互聯(lián)示意圖;
圖4是本發(fā)明的協(xié)處理器FPGA內(nèi)部拓撲示意圖。
具體實施方式
下面結(jié)合附圖和實施例進一步說明本發(fā)明的技術方案。
參照圖1,本發(fā)明公開一種基于ARM和FPGA(Field-Programmable Gate Array,即現(xiàn)場可編程門陣列)的船舶動力定位控制系統(tǒng),其主要包括主控機、采集模塊、操縱臺控制器、推進器。主控機、采集模塊和操縱臺控制器通過第一網(wǎng)絡相互連接,操縱臺控制器還連接至第二網(wǎng)絡,操縱臺控制器和推進器通過第二網(wǎng)絡相互連接。采集模塊將傳感器數(shù)據(jù)和推進器數(shù)據(jù)傳輸給主控機,主控機根據(jù)傳感器數(shù)據(jù)計算船舶位置,并根據(jù)推進器數(shù)據(jù)計算推進量。操縱臺控制器讀取操縱臺上的實際操縱信息和推進器的推進量,讀取推進器的狀態(tài)并反饋至主控機。在本發(fā)明中,第一網(wǎng)絡和第二網(wǎng)絡均為POWERLINK網(wǎng)絡,且第一網(wǎng)絡和第二網(wǎng)絡分別為雙網(wǎng)冗余網(wǎng)絡。主控機包括第一主控機和第二主控機,第一主控機和第二主控機均作為POWERLINK網(wǎng)絡的主站并形成主站冗余。
具體來說,系統(tǒng)中有兩個主控制器和一個備用的控制站。備用控制站的位置與主控制系統(tǒng)之間采用A-60級標準分艙隔離,有獨立的位置參考系統(tǒng)和傳感器系統(tǒng),并獨立于主控制系統(tǒng)回路??刂破髋c數(shù)據(jù)采集器之間采用冗余的POWERLINK組網(wǎng),控制器與上層的顯控平臺采用雙冗余以太網(wǎng)組網(wǎng),推進器在主控回路和備用控制器回路分別進行POWERLINK通信。這樣的設計可確保系統(tǒng)在任何單個故障不會導致整個動力定位系統(tǒng)的崩潰引起的停止運行,保障了系統(tǒng)的可靠性。
繼續(xù)參照圖1,整個船舶動力定位控制系統(tǒng)的網(wǎng)絡主要分為四部分:
第一部分是顯控平臺與主控機之間的網(wǎng)絡,即以太網(wǎng)-A和以太網(wǎng)-B,組成雙網(wǎng)冗余以太網(wǎng)網(wǎng)絡;
第二部分是以主控機和采集模塊為主的數(shù)據(jù)采集控制部分,采集模塊和采集器分別將傳感器數(shù)據(jù)和推進器數(shù)據(jù)給主控機,主控機根據(jù)船舶位置及運行情況計算推進量。主控機、采集模塊和操縱臺控制器之間的網(wǎng)絡,即POWERLINK-A和POWERLINK-B,組成多主雙網(wǎng)冗余網(wǎng)絡。主控機1和主控機2均是POWERLINK主站,正常狀態(tài)下主控機1處于活動工作狀態(tài),主控機2處于監(jiān)聽狀態(tài),若主控機1發(fā)生故障時,主控機2自動接管主控機1的狀態(tài),從而完成主站冗余功能;
第三部分是操縱臺控制器與推進器連接的網(wǎng)絡,即POWERLINK-C。操縱臺控制器獲取用戶實際操作操縱臺的信息,而且通過網(wǎng)絡獲取推進器的控制量給推進器,并讀取推進器的狀態(tài)通過網(wǎng)絡反饋給主控機;
第四部分是備份主控與推進器系統(tǒng)互聯(lián)的POWERLINK-D網(wǎng)絡,與POWERLINK-C組成雙冗余的POWERLINK網(wǎng)絡。備份主控機需要備份多個采集器的數(shù)據(jù)。當主控機1和主控機2均失效時,備份主控機能夠接管網(wǎng)絡,保證系統(tǒng)運行。
此外,主控1、主控機2和備份主控機留有Profibus總線接口,可將傳感器、定位過程信息等傳送給PLC系統(tǒng),便于上層操縱系統(tǒng)對定位模塊的監(jiān)控和跟蹤。
進一步地,ARM和FPGA之間通過GPMC(General Purpose Memory Controller,通用內(nèi)存控制器)接口連接,并輔助以SPI(Serial Peripheral interface)協(xié)議通信。ARM分別工作在GPMC和SPI接口的主模式,F(xiàn)PGA作為從模式。在FPGA芯片外圍,集成10路RS422、RS485串行接口,2路Profibus、3路POWERLINK,10路AD(模數(shù)轉(zhuǎn)換)和DA(數(shù)模轉(zhuǎn)換)接口。在ARM芯片外圍,集成了64M SPI Flash、兩路RS232、RS422和RS485接口,兩路CAN接口,兩路以太網(wǎng)接口,10路DI(數(shù)字輸入)和DO(數(shù)字輸出)接口。硬件接口RS232、RS422、RS485和CAN、以太網(wǎng)、DI和DO均采用電或磁的隔離方式,保證了系統(tǒng)的抗干擾性。ARM和FPGA中的256M DDR3 SDRAM模塊,是對芯片內(nèi)部RAM的擴展,用于程序運行、數(shù)據(jù)緩存和數(shù)據(jù)交換,512M NAND Flash模塊,用于存儲程序代碼、文件系統(tǒng)和靜態(tài)數(shù)據(jù)等,SPI FLASH用來存儲核心的數(shù)據(jù)或日志信息。
本發(fā)明的ARM和FPGA,功能上FPGA用作協(xié)議網(wǎng)關轉(zhuǎn)換和數(shù)據(jù)采集轉(zhuǎn)換的功能,ARM主要用作算法處理功能。控制器的工作過程為:FPGA協(xié)處理器實時讀取動力定位系統(tǒng)中的各傳感器信號(包括風浪流、深度計、電羅盤、傾角儀、陀螺羅經(jīng)、平臺運動、位置、推進器狀態(tài)等信號),然后通過數(shù)據(jù)總線傳遞給ARM主處理器,主處理器接收到這些信號后,根據(jù)融合定位算法,最后主處理器將計算出的推進器控制量信號給到協(xié)處理器,協(xié)處理器通過網(wǎng)絡將數(shù)據(jù)傳送至推進器系統(tǒng)運作,以此過程循環(huán)往復,實現(xiàn)定位的流程。
針對動力定位中傳感器接口的要求以及主控機、數(shù)據(jù)采集、操縱臺控制器的不同功能需求,本發(fā)明設計了一套控制器方案。圖2是船舶動力定位控制器的硬件架構(gòu),是一種ARM和FPGA組合方式的控制器方案。主處理器ARM是TI公司的AM4379,集成單核ARM Cortex-A9和可編程實時單元子系統(tǒng)、工業(yè)通信子系統(tǒng)(PRU-ICSS)。PRU-ICSS與ARM內(nèi)核分離,允許單獨操作和計時,以實現(xiàn)更高的效率和靈活性。PRU-ICSS支持如EtherCAT、PROFINET、EtherNet/IP、PROFIBUS、Ethernet Powerlink、Sercos、EnDat等實時協(xié)議,還可應用于實時控制算法。協(xié)處理器FPGA是Xilinx的公司的XC7Z030,ZYNQ芯片內(nèi)包含一個豐富特性的基于雙核ARM Cortex-A9的處理子系統(tǒng)(Processing System,PS)和可編程邏輯(Programmable Logic,PL)。PS除了ARM核心外,還包括片上存儲器、外部存儲器接口以及大量外設連接接口。
整個硬件模塊是雙冗余24V供電,提供1.325、1.0、3.3、2.5、1.8、1.1V等電壓,采用ISPPAC-POWR1014A芯片進行電壓管理、監(jiān)控和上電時序控制。在ARM芯片外圍,集成了64M SPI Flash、兩路RS232、RS422和RS485接口,兩路CAN接口,兩路以太網(wǎng)接口,10路DI和DO接口。在FPGA芯片外圍,集成10路RS422、RS485串行接口,2路Profibus、3路POWERLINK,10路AD和DA接口。RS422和RS485接口的物理層采用帶隔離的ADM2682芯片,RS232接口采用帶隔離的LTM2882芯片,CAN接口采用帶隔離的ADUM1201的CAN收發(fā)器,DI和DO均采用TLP185隔離。ARM和FPGA中的DDR3 SDRAM均采用MT41J128M16HA芯片,采用兩塊級聯(lián),形成32位的地址總線,總?cè)萘窟_到256M字節(jié);NAND Flash采用S34ML04G100芯片,總?cè)萘?56M字節(jié)。以太網(wǎng)接口使用RGMII(Reduced Gigabit Media Independent Interface)方式,采用88E1111千兆以太網(wǎng)物理層芯片,ARM中的兩個以太網(wǎng)接口在功能上用作雙冗余以太網(wǎng)功能,F(xiàn)PGA的以太網(wǎng)接口主要用作調(diào)試和與動力定位系統(tǒng)外的設備互聯(lián)。
ARM和FPGA之間采用高速接口與低速接口的組合方式,以適應不同應用場景下的需求組合。GPMC通用內(nèi)存控制器接口可進行大數(shù)據(jù)量的交互,而SPI協(xié)議通信適合小數(shù)據(jù)量而頻繁的數(shù)據(jù)交換。ARM作為主處理器,都工作在GPMC和SPI接口的主模式,F(xiàn)PGA在從模式。ARM與FPGA之間的連接如圖3所示,本發(fā)明的GPMC工作在獨立的地址總線和數(shù)據(jù)總線線的同步模式,采用8位數(shù)據(jù)總線,10根地址線,F(xiàn)PGA連接到ARM的片選GPMC_CS2和GPMC_CS3上。這種連接方式相當于把FPGA作為ARM的外擴存儲空間,在ARM端地址范圍為0x10000000-0x100003FF,0x10000400-0x100007FF。ARM對FPGA的操作,采用訪問內(nèi)存的方法,定義好指向上述地址空間的指針,即可完成對FPGA的讀寫操作。其他信號線,如GPMC_CLK是同步時鐘信號,頻率達到100MHZ,GPMC_ALE是地址鎖存信號,GPMC_WEN是寫是能信號(低電平有效),GPMC_OE_REN是輸出使能信號(低電平有效),GPMC_WPN是寫保護信號(低電平有效),GPMC_WAIT是外部忙等待信號。此外,ARM與FPGA互聯(lián)兩根普通I/O,即GPMC_ZYNQ_INT和GPMC_ARM_INT,用作異步中斷信號。如果ARM或FPGA準備好數(shù)據(jù),就會通過中斷信號,通知對方。如果ARM想輪詢讀取FPGA的數(shù)據(jù),也可以通過讀取FPGA映射內(nèi)存的標志位方式,判斷數(shù)據(jù)的有效完整性。通過同步GPMC+異步中斷的設計方式,可以方便有效地完成ARM與FPGA之間的便捷、高速的大數(shù)據(jù)量通信,協(xié)處理器可更有效地協(xié)助主處理器工作。SPI的信號線如SPI_CS0、SPI_CS1表示片選信號,SPI_CLK是時鐘信號,SPI_D0是SPI主發(fā)送給從的數(shù)據(jù),SPI_D1是從設備發(fā)送給主設備的數(shù)據(jù),ARM作為SPI的主站可以訪問協(xié)處理器FPGA中小數(shù)據(jù)量的數(shù)據(jù)。FPGA內(nèi)部對SPI的訪問采用FIFO結(jié)構(gòu),可緩存有效數(shù)據(jù),防止數(shù)據(jù)因訪問速度不一致,產(chǎn)生丟失或錯誤。
圖4是定位控制器中FPGA部分的結(jié)構(gòu)圖,PS部分集成了雙核ARM Cortex-A9,內(nèi)部通過AXI(Advanced eXtensible Interface)互聯(lián)。PS通過MIO多功能IO接口,連接有DDR3內(nèi)存、GPIO、SPI、UART、以太網(wǎng)等模塊。擴展EMIO,屬于ZYNQ的PS部分,通過連接到PL的引腳連到芯片外面,實現(xiàn)數(shù)據(jù)輸入輸出。PL中主要集成了兩路Profibus網(wǎng)絡、AD和DA IP核、兩組POWERLINK接口。
Profibus協(xié)議的實現(xiàn)采用赫優(yōu)訊公司COMX 100CN-DP模塊,F(xiàn)PGA中的Profibus IP核與模塊間,采用并行的16位地址線和16位數(shù)據(jù)線連接。Profibus模塊可以靈活地配置GSD通信配置文件,可工作在主站模式或從站模式。
ADC和DAC的驅(qū)動采用SPI接口,ADC采用8通道、12位分辨率、500kbps采樣率的AD7327芯片,DAC采用8通道、12位分辨率的AD5308芯片,數(shù)據(jù)的發(fā)送和采集均采用高速FIFO緩存結(jié)構(gòu),根據(jù)多狀態(tài)機的模式跳轉(zhuǎn)。
兩組POWERLINK網(wǎng)絡接口,提供三個網(wǎng)口接口,如圖4中依次編號為RJ45-1、RJ45-2、RJ45-3,簡稱為網(wǎng)口1、網(wǎng)口2、網(wǎng)口3。網(wǎng)口1和網(wǎng)口2組合使用,兩者通過集線器HUB連接到同一個MAC核中,工作在雙網(wǎng)冗余的狀態(tài)。網(wǎng)口3工作在獨立的POWERLINK網(wǎng)絡,有單獨的HUB和MAC。本設計中的POWERLINK協(xié)議棧,采用FPGA硬核方案,硬件接口層采用MII接口,與LAN8710芯片連接。POWERLINK硬核中集成了OPENHUB和集成OPENMAC。OPENHUB提供了類似以太網(wǎng)物理層的集線器功能。OPENMAC提供了POWERLINK協(xié)議的MAC功能,采用時間槽通信網(wǎng)絡管理機制(slot communication network management,SCNM),將通訊按時間槽劃分為同步和異步階段,避免了無效的沖突,有效地保證了數(shù)據(jù)通信的實時性、確定性。OPENMAC中的Filter過濾功能,可自動過濾非POWERLINK的數(shù)據(jù)幀,這樣POWERLINK網(wǎng)絡免受非POWERLINK設備的干擾,避免通信中的沖突。同時,OPENMAC具備AutoResponse功能,當POWERLINK從節(jié)點工作于請求/應答模式(Preq/Pres)時,從節(jié)點接收到來自主站的請求數(shù)據(jù)幀(Preq),會向網(wǎng)絡發(fā)送一個應答數(shù)據(jù)幀(Pres),此過程不需要CPU來干預,提高了POWERLINK的響應速度。
兩組POWERLINK協(xié)議棧,單獨運行在獨立的Microblaze處理器中,軟件包含用戶應用程序、系統(tǒng)調(diào)用API庫和POWERLINK協(xié)議棧。POWERLINK協(xié)議棧借鑒了CANopen對象字典的思想,需要通過配置主站或從站的對象字典映射來完成組網(wǎng)通信。對象字典中,包含了主站或從站節(jié)點的ID、通信周期、最大數(shù)據(jù)通信量、等待超時時間等必要的POWERLINK通信參數(shù)。用戶使用openCONFIGURATOR工具生成設備的對象字典信息的二進制的cdc文件。主站會根據(jù)這個cdc文件來配置網(wǎng)絡主站的參數(shù),以及各個從站的網(wǎng)絡參數(shù)和映射數(shù)以及循環(huán)周期等。Microblaze核與POWERLINK硬核間采用AXI總線連接,Microblaze核與PS核之間采用同步信號+DPRAM的方式通信。DPRAM是雙口乒乓RAM,需要通過POWERLINK的同步信號來進行翻轉(zhuǎn)。PS核心會根據(jù)DPRAM發(fā)送給GIC中斷控制器的同步信號,在中斷服務程序中,完成POWERLINK數(shù)據(jù)讀取和寫入工作。
ARM與FPGA的數(shù)據(jù)交互,需經(jīng)過FPGA內(nèi)部的GPMC IP核和SPI接口,所有的數(shù)據(jù)均通過FPGA中的PS核進行轉(zhuǎn)發(fā)或處理。在PS核心中,需要建立統(tǒng)一編址的內(nèi)存表緩存區(qū),包含POWERLINK、Profibus、ADC、DAC和串行接口等數(shù)據(jù)。
本技術領域中的普通技術人員應當認識到,以上的實施例僅是用來說明本發(fā)明,而并非用作為對本發(fā)明的限定,只要在本發(fā)明的實質(zhì)精神范圍內(nèi),對以上所述實施例的變化、變型都將落在本發(fā)明的權利要求書范圍內(nèi)。