本發(fā)明涉及電子工程應用,尤其是fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線。
背景技術:
fpga憑借其硬件并行處理能力的高計算性能、io資源豐富,可重復配置,研發(fā)周期短、成本低以及可以長期維護的優(yōu)點,使其在航空航天、通信、軍事等關鍵領域得到了廣泛應用。rapidio作為一種高性能、低引腳數(shù)的基于數(shù)據(jù)包交換的互連體系結構,是唯一得到官方授權的嵌入式互連標準。采用基于rapidio的互聯(lián)架構是fpga之間以及fpga與其它嵌入式設備之間互聯(lián)技術發(fā)展的必然趨勢。當前,altera和xilinx兩大fpga廠商都已經(jīng)發(fā)布了其可配置的rapidioip軟核。在fpga中使用首先需要購買rapidioip核,然后使用廠商所提供的例化工具(如xilinx的coregenerator)定制符合要求的ip核,最后應用到自己的邏輯設計中去。其典型的應用場景是利用fpga系統(tǒng)采集數(shù)據(jù)后,經(jīng)過簡單的處理,通過rapidio高速總線把數(shù)據(jù)傳送給后續(xù)平臺進一步處理。
在fpga系統(tǒng)的開發(fā)過程中發(fā)現(xiàn),由于fpga架構下應用系統(tǒng)設計方法和手段較為底層,各應用系統(tǒng)所采用的接口與應用邏輯直接對應,造成其接口數(shù)量眾多且與硬件緊密耦合,在與其他嵌入式系統(tǒng)(如fpga、powerpc等)集成時往往面臨著適配異構的接口和數(shù)據(jù)格式的問題,給系統(tǒng)集成帶來了巨大的工作量和技術難度。此外,fpga系統(tǒng)開發(fā)需要深入了解傳輸協(xié)議(如rapidio)才能使用對應的ip核,導致應用系統(tǒng)的開發(fā)者浪費大量精力去學習專有的傳輸協(xié)議,極大地增加了fpga應用系統(tǒng)的開發(fā)周期。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是:針對上述存在的問題,提供一種為fpga系統(tǒng)的集成屏蔽了復雜rapidio通信接口的靈活性高、可擴展性好的fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線。
本發(fā)明采用的技術方案如下:
fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線,具體包括rapidio通信模塊、網(wǎng)絡操作模塊、主題管理模塊和應用組件,同一fpga系統(tǒng)中的應用組件對應連接主題管理模塊,主題管理模塊通過網(wǎng)絡操作模塊對應連接rapidio通信模塊,不同fpga系統(tǒng)中的不同rapidio通信模塊通過rapidio通信鏈路互連,所述應用組件通過所述主題管理模塊和所述網(wǎng)絡操作模塊與所述rapidio通信模塊進行雙向數(shù)據(jù)傳輸。
進一步地,本地應用組件發(fā)送數(shù)據(jù)的過程包括步驟:
(1-1)本地應用組件將待發(fā)送數(shù)據(jù)傳遞給主題管理模塊;
(1-2)主題管理模塊對接收到的數(shù)據(jù)進行封裝,并將封裝后的報文發(fā)送給網(wǎng)絡操作模塊;
(1-3)網(wǎng)絡操作模塊向底層rapidio通信模塊發(fā)起數(shù)據(jù)傳輸請求;
(1-4)rapidio通信模塊響應數(shù)據(jù)傳輸請求,并將從網(wǎng)絡操作模塊接收到的報文發(fā)送至指定接收應用組件所在fpga系統(tǒng)的rapidio通信模塊。
進一步地,接收遠程應用組件發(fā)來的數(shù)據(jù)的過程包括步驟:
(2-1)rapidio通信模塊將從其他fpga系統(tǒng)接收到的報文傳遞給網(wǎng)絡操作模塊;
(2-2)網(wǎng)絡操作模塊從接收到的報文中剝離出有效負載報文,并將有效負載報文轉發(fā)給主題管理模塊;
(2-3)主題管理模塊對接收到的有效負載報文進行解析,并將有效負載報文投遞給指定接收應用組件。
進一步地,所述主題管理模塊也用于整個fpga系統(tǒng)中應用組件的注冊信息和主題發(fā)布/訂閱信息的管理。
進一步地,所述注冊信息包括組件注冊和取消組件注冊,所述主題發(fā)布/訂閱信息包括主題訂閱、取消主題訂閱、主題發(fā)布和取消主題發(fā)布。
進一步地,主題管理模塊響應應用組件的組件注冊請求后,該應用組件能通過主題管理模塊進行數(shù)據(jù)傳輸;主題管理模塊響應應用組件的取消組件注冊請求后,該應用組件不能通過主題管理模塊進行數(shù)據(jù)傳輸。
進一步地,主題管理模塊響應應用組件的主題訂閱請求后,該應用組件能夠接收主題管理模塊發(fā)送的該主題數(shù)據(jù);主題管理模塊響應應用組件的取消主題訂閱請求后,該應用組件不能接收主題管理模塊發(fā)送的該主題數(shù)據(jù)。
進一步地,主題管理模塊響應應用組件的主題發(fā)布請求后,該應用組件能夠通過主題管理模塊發(fā)送該主題數(shù)據(jù);主題管理模塊響應應用組件的取消主題發(fā)布請求后,該應用組件不能通過主題管理模塊發(fā)送該主題數(shù)據(jù)。
進一步地,本地應用組件發(fā)送數(shù)據(jù)前,主題管理模塊首先驗證該應用組件是否具有通過主題管理模塊發(fā)送數(shù)據(jù)的資格,當本地應用組件所發(fā)數(shù)據(jù)為主題數(shù)據(jù)時,主題管理模塊還需驗證該應用組件是否具有通過主題管理模塊發(fā)送該主題數(shù)據(jù)的資格。
進一步地,在接收遠程應用組件發(fā)來的數(shù)據(jù)前,主題管理模塊首先驗證指定接收應用組件是否具有通過主題管理模塊接收數(shù)據(jù)的資格,當遠程應用組件所發(fā)數(shù)據(jù)為主題數(shù)據(jù)時,主題管理模塊還需驗證指定接收應用組件是否具有通過主題管理模塊接收該主題數(shù)據(jù)的資格。
綜上所述,由于采用了上述技術方案,本發(fā)明的有益效果是(1)本發(fā)明為fpga系統(tǒng)的集成屏蔽了復雜的rapidio通信接口,使得開發(fā)者無需浪費大量精力去學習rapidio通信協(xié)議,極大地提升了fpga系統(tǒng)的集成效率。(2)本發(fā)明采用發(fā)布/訂閱式的數(shù)據(jù)傳輸機制,使得fpga應用組件之間以松耦合的方式進行通信,顯著提高了fpga應用的靈活性和可擴展性。
附圖說明
本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1為本發(fā)明實施例提供的fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線結構圖。
具體實施方式
本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
圖1為本發(fā)明實施例提供的fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線結構圖,如圖1所示,fpga環(huán)境下基于rapidio的發(fā)布/訂閱式軟件總線,具體包括rapidio通信模塊、網(wǎng)絡操作模塊、主題管理模塊和應用組件,同一fpga系統(tǒng)中的應用組件對應連接主題管理模塊,主題管理模塊通過網(wǎng)絡操作模塊對應連接rapidio通信模塊,不同fpga系統(tǒng)中的不同rapidio通信模塊通過rapidio通信鏈路互連,所述應用組件通過所述主題管理模塊和所述網(wǎng)絡操作模塊與所述rapidio通信模塊進行雙向數(shù)據(jù)傳輸。
本地應用組件發(fā)送數(shù)據(jù)的過程包括步驟:
(1-1)本地應用組件將待發(fā)送數(shù)據(jù)傳遞給主題管理模塊;
(1-2)主題管理模塊對接收到的數(shù)據(jù)進行封裝,并將封裝后的報文發(fā)送給網(wǎng)絡操作模塊;
主題管理模塊對數(shù)據(jù)進行封裝的方式包括根據(jù)自定義報文格式對數(shù)據(jù)進行封裝。報文是網(wǎng)絡中交換與傳輸?shù)臄?shù)據(jù)單元,即站點一次性發(fā)送的數(shù)據(jù)。
(1-3)網(wǎng)絡操作模塊向底層rapidio通信模塊發(fā)送數(shù)據(jù)傳輸請求;
網(wǎng)絡操作模塊根據(jù)底層rapidio通信模塊提供的rapidio接口為主題管理模塊發(fā)來的每個數(shù)據(jù)報文發(fā)起數(shù)據(jù)傳輸請求。網(wǎng)絡操作模塊作為中間層,為主題管理模塊屏蔽了rapidio的接口細節(jié),使得主題管理模塊可以聚焦于發(fā)布/訂閱邏輯的處理,而無需關注底層傳輸協(xié)議的實現(xiàn)。
(1-4)rapidio通信模塊響應數(shù)據(jù)傳輸請求,并將從網(wǎng)絡操作模塊接收到的報文發(fā)送至指定接收應用組件所在fpga系統(tǒng)的rapidio通信模塊。
不同fpga系統(tǒng)的rapidio通信模塊通過rapidio通信鏈路進行數(shù)據(jù)傳輸,從而實現(xiàn)不同fpga系統(tǒng)的應用組件間的數(shù)據(jù)通信。
接收遠程應用組件發(fā)來的數(shù)據(jù)的過程包括步驟:
(2-1)rapidio通信模塊將從其他fpga系統(tǒng)接收到的報文傳遞給網(wǎng)絡操作模塊;
(2-2)網(wǎng)絡操作模塊從接收到的報文中剝離出有效負載報文,并將有效負載報文轉發(fā)給主題管理模塊;
(2-3)主題管理模塊對接收到的有效負載報文進行解析,并將有效負載報文投遞給指定接收應用組件。
所述主題管理模塊也用于整個fpga系統(tǒng)中應用組件的注冊信息和主題發(fā)布/訂閱信息的管理。所述注冊信息包括組件注冊和取消組件注冊,所述主題發(fā)布/訂閱信息包括主題訂閱、取消主題訂閱、主題發(fā)布和取消主題發(fā)布。
主題管理模塊響應應用組件的組件注冊請求后,該應用組件能通過主題管理模塊進行數(shù)據(jù)傳輸;主題管理模塊響應應用組件的取消組件注冊請求后,該應用組件不能通過主題管理模塊進行數(shù)據(jù)傳輸;主題管理模塊響應應用組件的主題訂閱請求后,該應用組件能夠接收主題管理模塊發(fā)送的該主題數(shù)據(jù);主題管理模塊響應應用組件的取消主題訂閱請求后,該應用組件不能接收主題管理模塊發(fā)送的該主題數(shù)據(jù);主題管理模塊響應應用組件的主題發(fā)布請求后,該應用組件能夠通過主題管理模塊發(fā)送該主題數(shù)據(jù);主題管理模塊響應應用組件的取消主題發(fā)布請求后,該應用組件不能通過主題管理模塊發(fā)送該主題數(shù)據(jù)。
基于rapidio的軟件總線采用發(fā)布/訂閱式數(shù)據(jù)傳輸機制,使得fpga系統(tǒng)應用組件間以松耦合方式進行通信,顯著提高了fpga系統(tǒng)應用的靈活性和可擴展性。
優(yōu)化地,本地應用組件發(fā)送數(shù)據(jù)前,主題管理模塊首先驗證該應用組件是否具有通過主題管理模塊發(fā)送數(shù)據(jù)的資格,當本地應用組件所發(fā)數(shù)據(jù)為主題數(shù)據(jù)時,主題管理模塊還需驗證該應用組件是否具有通過主題管理模塊發(fā)送該主題數(shù)據(jù)的資格。
優(yōu)化地,在接收遠程應用組件發(fā)來的數(shù)據(jù)前,主題管理模塊首先驗證指定接收應用組件是否具有通過主題管理模塊接收數(shù)據(jù)的資格,當遠程應用組件所發(fā)數(shù)據(jù)為主題數(shù)據(jù)時,主題管理模塊還需驗證指定接收應用組件是否具有通過主題管理模塊接收該主題數(shù)據(jù)的資格。
本發(fā)明并不局限于前述的具體實施方式。本發(fā)明擴展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。