本發(fā)明涉及工業(yè)自動化與通信,具體涉及一種基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng)。
背景技術(shù):
1、在工業(yè)4.0的發(fā)展趨勢下,工業(yè)現(xiàn)場存在著大量不同類型的設(shè)備和系統(tǒng),它們各自遵循不同的工業(yè)協(xié)議進行通信,如modbus、profibus、ethernet/ip等;這種工業(yè)協(xié)議的異構(gòu)性給工業(yè)數(shù)據(jù)的集成和交互帶來了巨大挑戰(zhàn)。
2、目前,現(xiàn)有的工業(yè)協(xié)議處理方案主要是基于通用處理器(cpu)或?qū)S眉呻娐?asic),其中,基于cpu的方案雖然具有較高的靈活性,但其處理速度有限,難以滿足工業(yè)現(xiàn)場實時性要求較高的應(yīng)用場景;而asic方案雖然處理速度快,但缺乏靈活性,一旦設(shè)計完成,很難對其功能進行修改和擴展,無法適應(yīng)不斷變化的工業(yè)協(xié)議標(biāo)準(zhǔn);由此,基于前述不足,如何提供一種使用靈活性高且處理速度快的基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng),已成為了一個亟待解決的問題。
技術(shù)實現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題是工業(yè)協(xié)議處理靈活性和處理速度無法兼得的問題,目的在于提供一種基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng),解決了傳統(tǒng)技術(shù)中基于cpu的工業(yè)協(xié)議處理方案處理速度有限,以及基于asic的工業(yè)協(xié)議處理方案缺乏靈活性的問題。
2、本發(fā)明通過下述技術(shù)方案實現(xiàn):
3、第一方面,提供了一種基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng),包括:
4、協(xié)議解析模塊,用于接收工業(yè)設(shè)備發(fā)送的工業(yè)數(shù)據(jù),并生成對應(yīng)的協(xié)議解析任務(wù);
5、異構(gòu)加速引擎,用于接收協(xié)議解析模塊發(fā)送的協(xié)議解析任務(wù),并根據(jù)所述協(xié)議解析任務(wù),確定出處理所述協(xié)議解析任務(wù)的最佳協(xié)議解析單元,其中,所述最佳協(xié)議解析單元為fpga芯片中處理協(xié)議解析的軟件單元和硬件單元中負載最低的軟件單元和硬件單元;
6、協(xié)議解析模塊,還用于調(diào)用所述最佳協(xié)議解析單元,識別出所述工業(yè)數(shù)據(jù)的通信協(xié)議類型,并從存儲的協(xié)議狀態(tài)表中匹配出與所述通信協(xié)議類型相對應(yīng)的解析規(guī)則,以根據(jù)匹配出的解析規(guī)則對所述工業(yè)數(shù)據(jù)進行解析,得到數(shù)據(jù)解析結(jié)果;
7、其中,所述協(xié)議解析模塊配置有協(xié)議寫入端口,以便通過所述協(xié)議寫入端口,向所述協(xié)議狀態(tài)表中寫入新通信協(xié)議類型相對應(yīng)的解析規(guī)則。
8、基于上述公開的內(nèi)容,本發(fā)明所提供的基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng),設(shè)置有協(xié)議解析模塊,其中,協(xié)議解析模塊配置有協(xié)議寫入端口,該協(xié)議寫入端口,用于向協(xié)議解析模塊中的協(xié)議狀態(tài)表內(nèi)寫入新通信協(xié)議類型相對應(yīng)的解析規(guī)則;如此,本發(fā)明采用可配置的協(xié)議狀態(tài)表來進行協(xié)議解析,可根據(jù)不同的工業(yè)協(xié)議標(biāo)準(zhǔn)動態(tài)調(diào)整解析規(guī)則,基于此,使得本發(fā)明能夠靈活地處理不同類型的工業(yè)協(xié)議,從而增加了使用的靈活性;同時,本發(fā)明還設(shè)置有異構(gòu)加速引擎,其可根據(jù)不同的任務(wù)類型,來確定出fpga中處理該任務(wù)的軟硬件單元中負載最低的軟硬件,并調(diào)度該負載最低的軟硬件來進行協(xié)議解析;由此,通過軟硬件加速的協(xié)同工作,可實現(xiàn)工業(yè)協(xié)議的高效處理,進而提高了處理速度。
9、通過上述設(shè)計,本發(fā)明提供了一種全新的工業(yè)協(xié)議處理方案,其具備協(xié)議解析擴展功能,可靈活地處理不同類型的工業(yè)協(xié)議,并能夠同時實現(xiàn)多種工業(yè)協(xié)議處理的高效加速,基于此,可提高工業(yè)系統(tǒng)的整體穩(wěn)定性和可靠性,從而非常適用于大規(guī)模應(yīng)用與推廣。
10、在一個可能的設(shè)計中,異構(gòu)加速引擎,用于根據(jù)所述協(xié)議解析任務(wù),從所述fpga芯片中確定出處理所述協(xié)議解析任務(wù)相對應(yīng)的所有硬件單元和所有軟件單元,以組成運行單元集合;
11、異構(gòu)加速引擎,用于計算出所述運行單元集合中各個硬件單元和各個軟件單元的資源利用率,并從所述運行單元集合中篩選出資源利用率小于利用率閾值的硬件單元和軟件單元,以組成備選單元集合;
12、異構(gòu)加速引擎,還用于計算出所述備選單元集合中各個備選硬件單元和各個備選軟件單元的負載均衡指標(biāo),并基于各個備選硬件單元和各個備選軟件單元的負載均衡指標(biāo),確定出所述最佳協(xié)議解析單元,其中,任一備選硬件單元和任一備選軟件單元的負載均衡指標(biāo)越大,表征該任一備選硬件單元和該任一備選軟件單元的負載越低。
13、在一個可能的設(shè)計中,對于任一硬件單元,異構(gòu)加速引擎,用于獲取該任一硬件單元的第一當(dāng)前處理任務(wù)量和最大運算量,并基于所述第一當(dāng)前處理任務(wù)量和所述最大運算量,計算出所述任一硬件單元的資源利用率;
14、對于任一軟件單元,異構(gòu)加速引擎,用于獲取所述任一軟件單元的第二當(dāng)前任務(wù)量以及性能指標(biāo),并基于性能指標(biāo)和第二當(dāng)前任務(wù)量,計算出所述任一軟件單元的資源利用率;
15、對于任一備選硬件單元,異構(gòu)加速引擎,還用于求和所述任一備選硬件單元的資源利用率和負載均衡系數(shù),得到求和結(jié)果,并將負載均衡系數(shù)與求和結(jié)果之間的比值,作為所述任一備選硬件單元的負載均衡指標(biāo)。
16、在一個可能的設(shè)計中,所述最佳協(xié)議解析單元中的硬件單元包括:crc計算ip核,且所述協(xié)議狀態(tài)表中的各個解析規(guī)則處于加密狀態(tài);其中,協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,檢測得到所述工業(yè)數(shù)據(jù)中的前導(dǎo)碼,并調(diào)用所述最佳協(xié)議解析單元,解析所述前導(dǎo)碼,得到數(shù)據(jù)幀頭;
17、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元解析所述數(shù)據(jù)幀頭,得到所述工業(yè)數(shù)據(jù)對應(yīng)的通信協(xié)議類型,并從所述協(xié)議狀態(tài)表中匹配出與所述通信協(xié)議類型相對應(yīng)的加密解析規(guī)則,以便對加密解析規(guī)則進行解密處理,得到與所述通信協(xié)議類型相對應(yīng)的解析規(guī)則;
18、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,并通過狀態(tài)機和所述解析規(guī)則,對所述工業(yè)數(shù)據(jù)進行解析,得到解析數(shù)據(jù)字段;
19、協(xié)議解析模塊,還用于調(diào)用所述crc計算ip核,對所述解析數(shù)據(jù)字段進行數(shù)據(jù)校驗處理,并在數(shù)據(jù)校驗通過后,利用所述解析數(shù)據(jù)字段,生成所述數(shù)據(jù)解析結(jié)果。
20、在一個可能的設(shè)計中,協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,提取出所述工業(yè)數(shù)據(jù)的第一特征數(shù)據(jù)以及指定數(shù)據(jù)的第二特征數(shù)據(jù),其中,所述指定數(shù)據(jù)為協(xié)議解析模塊在第t-τ時刻所接收到的由工業(yè)設(shè)備發(fā)送的數(shù)據(jù),且第t時刻為所述工業(yè)數(shù)據(jù)的接收時刻,τ表示時間延遲參數(shù);
21、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元獲取設(shè)備物理位置編碼,并根據(jù)第一特征數(shù)據(jù)、第二特征數(shù)據(jù)和設(shè)備物理位置編碼,生成工業(yè)數(shù)據(jù)的第一協(xié)議特征向量;
22、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,并利用所述協(xié)議特征向量,識別得到所述工業(yè)數(shù)據(jù)的通信協(xié)議類型;或
23、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,對所述工業(yè)數(shù)據(jù)進行特征提取處理,以得到所述工業(yè)數(shù)據(jù)的幀頭特征、幀結(jié)構(gòu)特征和語義特征;
24、協(xié)議解析模塊,用于調(diào)用所述最佳協(xié)議解析單元,對所述幀頭特征、所述幀結(jié)構(gòu)特征和所述語義特征進行特征整合,以得到第二協(xié)議特征向量;
25、協(xié)議解析模塊,還用于調(diào)用所述最佳協(xié)議解析單元,將所述第二協(xié)議特征向量輸入至協(xié)議類型識別模型,以得到所述工業(yè)數(shù)據(jù)的通信協(xié)議類型。
26、在一個可能的設(shè)計中,所述協(xié)議解析模塊包括:雙口ram、配置控制器和協(xié)議解析單元;
27、所述雙口ram配置有協(xié)議讀取端口和所述協(xié)議寫入端口,其中,所述配置控制器,用于通過所述協(xié)議寫入端口獲取協(xié)議描述包,并將所述協(xié)議描述包寫入雙口ram中的協(xié)議狀態(tài)表,且所述協(xié)議描述包中包含有新通信協(xié)議類型相對應(yīng)的解析規(guī)則;
28、協(xié)議解析單元,用于通過所述協(xié)議讀取端口,并基于基址指針訪問雙口ram中的協(xié)議狀態(tài)表,以從所述協(xié)議狀態(tài)表中讀取出與所述工業(yè)數(shù)據(jù)的通信協(xié)議類型相對應(yīng)的解析規(guī)則。
29、在一個可能的設(shè)計中,還包括:數(shù)據(jù)緩存與調(diào)度模塊;
30、數(shù)據(jù)緩存與調(diào)度模塊,用于接收所述協(xié)議解析模塊發(fā)送的數(shù)據(jù)解析結(jié)果,并確定出所述數(shù)據(jù)解析結(jié)果的處理時效;
31、數(shù)據(jù)緩存與調(diào)度模塊,用于在判斷出所述處理時效小于時效閾值時,按照多級緩存策略,將所述數(shù)據(jù)解析結(jié)果進行片上緩存,或在判斷出所述處理時效大于等于所述時效閾值時,將所述數(shù)據(jù)解析結(jié)果進行片外緩存;
32、數(shù)據(jù)緩存與調(diào)度模塊,用于計算出片上緩存和片外緩存中的各個存儲數(shù)據(jù)的調(diào)度優(yōu)先級;
33、數(shù)據(jù)緩存與調(diào)度模塊,用于獲取調(diào)度任務(wù)需求,并根據(jù)調(diào)度任務(wù)需求,從片上緩存和/或片外緩存中篩選出與所述調(diào)度任務(wù)需求相對應(yīng)的至少一個存儲數(shù)據(jù),以作為調(diào)度數(shù)據(jù);
34、數(shù)據(jù)緩存與調(diào)度模塊,還用于按照調(diào)度優(yōu)先級從高到低的順序,從片上緩存和/或片外緩存中讀取各個調(diào)度數(shù)據(jù)進行傳輸,并從片上緩存和/或片外緩存中移除各個調(diào)度數(shù)據(jù);
35、其中,當(dāng)各個調(diào)度數(shù)據(jù)的調(diào)度優(yōu)先級相同時,數(shù)據(jù)緩存與調(diào)度模塊,用于按照各個調(diào)度數(shù)據(jù)的緩存順序,從片上緩存和/或片外緩存中讀取各個調(diào)度數(shù)據(jù)進行傳輸。
36、在一個可能的設(shè)計中,所述數(shù)據(jù)緩存與調(diào)度模塊包括:數(shù)據(jù)緩存單元;
37、數(shù)據(jù)緩存單元,用于在判斷出所述處理時效小于時效閾值時,按照混合緩存策略,將所述數(shù)據(jù)解析結(jié)果存儲至片上緩存區(qū)中的一級緩存中;
38、數(shù)據(jù)緩存單元,用于計算出所述一級緩存中存儲的各個數(shù)據(jù)的緩存優(yōu)先級,其中,所述一級緩存中存儲的數(shù)據(jù)包括所述數(shù)據(jù)解析結(jié)果;
39、數(shù)據(jù)緩存單元,還用于基于緩存優(yōu)先級和混合緩存策略,將所述一級緩存中存儲的各個數(shù)據(jù)遷移至片上緩存區(qū)中的二級緩存內(nèi),并進行數(shù)據(jù)存儲,其中,一級緩存中緩存優(yōu)先級越高的數(shù)據(jù),在二級緩存中的緩存列表中的位置越靠前,且位置越靠前,訪問速度越快。
40、在一個可能的設(shè)計中,數(shù)據(jù)緩存單元,用于將一級緩存和二級緩存均劃分為fifo緩存區(qū)和lru緩存區(qū);
41、數(shù)據(jù)緩存單元,用于判斷一級緩存中的fifo緩存區(qū)是否存在空閑空間,并在判斷出一級緩存中的fifo緩存區(qū)不存在空閑空間時,判斷一級緩存中的lru緩存區(qū)是否存在空閑空間;
42、數(shù)據(jù)緩存單元,用于在判斷出所述一級緩存中的lru緩存區(qū)不存在空閑空間時,則從所述一級緩存中的lru緩存區(qū)內(nèi)篩選出第一目標(biāo)數(shù)據(jù)或從所述一級緩存中的fifo緩存區(qū)內(nèi)篩選出第二目標(biāo)數(shù)據(jù),并使用所述數(shù)據(jù)解析結(jié)果替換所述第一目標(biāo)數(shù)據(jù)或所述第二目標(biāo)數(shù)據(jù),以在替換后,完成所述數(shù)據(jù)解析結(jié)果的緩存;
43、其中,所述第一目標(biāo)數(shù)據(jù)為所述一級緩存中的lru緩存區(qū)內(nèi)使用次數(shù)小于次數(shù)閾值的數(shù)據(jù),所述第二目標(biāo)數(shù)據(jù)為所述一級緩存中的fifo緩存區(qū)內(nèi)最先寫入的數(shù)據(jù)。
44、在一個可能的設(shè)計中,還包括:網(wǎng)絡(luò)接口模塊;
45、網(wǎng)絡(luò)接口模塊,用于接收工業(yè)協(xié)議異構(gòu)加速系統(tǒng)中的數(shù)據(jù)緩存與調(diào)度模塊發(fā)送的調(diào)度數(shù)據(jù),并生成數(shù)據(jù)傳輸任務(wù)發(fā)送至異構(gòu)加速引擎;
46、異構(gòu)加速引擎,用于確定出處理所述數(shù)據(jù)傳輸任務(wù)的最佳數(shù)據(jù)處理單元,其中,所述最佳數(shù)據(jù)處理單元包括用于進行協(xié)議轉(zhuǎn)換和數(shù)據(jù)壓縮的軟件單元;
47、網(wǎng)絡(luò)接口模塊,用于調(diào)用所述最佳數(shù)據(jù)處理單元,對接收到的調(diào)度數(shù)據(jù)進行協(xié)議轉(zhuǎn)換和數(shù)據(jù)壓縮處理,以得到待傳輸數(shù)據(jù);
48、網(wǎng)絡(luò)接口模塊,還用于通過傳輸接口,將所述待傳輸數(shù)據(jù)發(fā)送至接收設(shè)備,其中,所述傳輸接口包括以太網(wǎng)接口、can總線接口和/或wifi接口。
49、第二方面,提供了一種基于fpga的工業(yè)協(xié)議異構(gòu)加速方法,其中,所述方法采用基于fpga的工業(yè)協(xié)議異構(gòu)加速系統(tǒng)執(zhí)行,且所述方法包括:
50、協(xié)議解析模塊接收工業(yè)設(shè)備發(fā)送的工業(yè)數(shù)據(jù),并生成對應(yīng)的協(xié)議解析任務(wù);
51、異構(gòu)加速引擎接收協(xié)議解析模塊發(fā)送的協(xié)議解析任務(wù),并根據(jù)所述協(xié)議解析任務(wù),確定出處理所述協(xié)議解析任務(wù)的最佳協(xié)議解析單元,其中,所述最佳協(xié)議解析單元為fpga芯片中處理協(xié)議解析的軟件單元和硬件單元中負載最低的軟件單元和硬件單元;
52、協(xié)議解析模塊調(diào)用所述最佳協(xié)議解析單元,識別出所述工業(yè)數(shù)據(jù)的通信協(xié)議類型,并從存儲的協(xié)議狀態(tài)表中匹配出與所述通信協(xié)議類型相對應(yīng)的解析規(guī)則,以根據(jù)匹配出的解析規(guī)則對所述工業(yè)數(shù)據(jù)進行解析,得到數(shù)據(jù)解析結(jié)果;
53、其中,所述協(xié)議解析模塊配置有協(xié)議寫入端口,以便通過所述協(xié)議寫入端口,向所述協(xié)議狀態(tài)表中寫入新通信協(xié)議類型相對應(yīng)的解析規(guī)則。
54、第三方面,提供了一種基于fpga的工業(yè)協(xié)議異構(gòu)加速裝置,以裝置為電子設(shè)備為例,包括依次通信相連的存儲器、處理器和收發(fā)器,其中,所述存儲器用于存儲計算機程序,所述收發(fā)器用于收發(fā)消息,所述處理器用于讀取所述計算機程序,執(zhí)行如第二方面或第二方面中任意一種可能設(shè)計的所述基于fpga的工業(yè)協(xié)議異構(gòu)加速方法。
55、第四方面,提供了一種存儲介質(zhì),所述存儲介質(zhì)上存儲有指令,當(dāng)所述指令在計算機上運行時,執(zhí)行如第二方面或第二方面中任意一種可能設(shè)計的所述基于fpga的工業(yè)協(xié)議異構(gòu)加速方法。
56、第五方面,提供了一種包含指令的計算機程序產(chǎn)品,當(dāng)指令在計算機上運行時,使所述計算機執(zhí)行如第一方面或第一方面中任意一種可能設(shè)計的所述基于fpga的工業(yè)協(xié)議異構(gòu)加速方法。
57、本發(fā)明與現(xiàn)有技術(shù)相比,具有如下的優(yōu)點和有益效果:
58、(1)本發(fā)明提供了一種全新的工業(yè)協(xié)議處理方案,其具備協(xié)議解析擴展功能,可靈活地處理不同類型的工業(yè)協(xié)議,并能夠同時實現(xiàn)多種工業(yè)協(xié)議處理的高效加速,基于此,能夠滿足工業(yè)現(xiàn)場實時性要求較高的應(yīng)用場景,從而可提高工業(yè)系統(tǒng)的整體穩(wěn)定性和可靠性,由此,本發(fā)明非常適用于大規(guī)模應(yīng)用與推廣。
59、(2)本發(fā)明采用多級緩存結(jié)構(gòu),包括片上緩存和片外緩存,其中,片上緩存用于暫存近期處理的數(shù)據(jù)(即處理時效小于時效閾值的數(shù)據(jù)),以提高數(shù)據(jù)訪問速度;而片外緩存則用于存儲大量時效性較低的數(shù)據(jù),從而滿足工業(yè)現(xiàn)場大數(shù)據(jù)量的存儲需求;同時,數(shù)據(jù)緩存與調(diào)度模塊還能夠根據(jù)數(shù)據(jù)的優(yōu)先級要求,對緩存中的數(shù)據(jù)進行調(diào)度,如此,可確保重要數(shù)據(jù)能夠及時處理和傳輸;基于此,多級緩存與智能調(diào)度策略能夠有效應(yīng)對工業(yè)現(xiàn)場大數(shù)據(jù)量的存儲和處理需求,可避免數(shù)據(jù)的積壓和丟失,進而提高了數(shù)據(jù)處理的效率和可靠性。
60、(3)本發(fā)明所提供的網(wǎng)絡(luò)接口模塊采用多網(wǎng)口的集成設(shè)計,如此,使得架構(gòu)能夠根據(jù)工業(yè)現(xiàn)場的網(wǎng)絡(luò)環(huán)境和需求,選擇合適的網(wǎng)絡(luò)接口進行數(shù)據(jù)傳輸;如此,可適應(yīng)不同的網(wǎng)絡(luò)環(huán)境,從而提高了系統(tǒng)的通用性和可擴展性。
61、(4)相比于傳統(tǒng)的基于cpu或asic的工業(yè)協(xié)議處理方案,本發(fā)明基于fpga的架構(gòu)具有更高的性價比,即fpga的可重構(gòu)性使得系統(tǒng)可以根據(jù)不同的需求進行靈活配置和升級,從而降低了開發(fā)和維護成本。