本發(fā)明涉及通信中間件,特別涉及一種基于開放式架構(gòu)的通信中間件構(gòu)建方法及其系統(tǒng)。
背景技術(shù):
1、數(shù)據(jù)分發(fā)服務(wù)中間件(dds),是設(shè)置在車輛的域控制器和mcu內(nèi),負(fù)責(zé)對(duì)域控制器和mcu上的數(shù)據(jù)進(jìn)行傳輸?shù)钠脚_(tái)。目前,一些企業(yè)或組織通常將dds中間件封裝成軟件,部署在車輛域控制器的操作系統(tǒng)上,或者將dds中間件直接裸機(jī)運(yùn)行在資源受限的車輛mcu上。但是,dds中間件在微控制器(mcu)上裸機(jī)運(yùn)行時(shí)效率較低,實(shí)時(shí)性能差,不能充分發(fā)揮mcu的性能,導(dǎo)致車輛資源浪費(fèi),并且裸機(jī)運(yùn)行缺乏操作系統(tǒng),導(dǎo)致通信系統(tǒng)魯棒性較差。汽車開放式系統(tǒng)架構(gòu)經(jīng)典平臺(tái)(autosar)是車輛mcu通常使用的標(biāo)準(zhǔn)軟件架構(gòu),但是目前autosar?cp缺乏對(duì)dds中間件的適配,特別是對(duì)輕量化dds中間件的適配支持。
技術(shù)實(shí)現(xiàn)思路
1、基于此,本發(fā)明的目的是提供一種基于開放式架構(gòu)的通信中間件構(gòu)建方法及其系統(tǒng),以至少解決上述技術(shù)中的不足。
2、本發(fā)明提出一種基于開放式架構(gòu)的通信中間件構(gòu)建方法,包括:
3、獲取構(gòu)建輕量化通信中間件所需要的開放式架構(gòu)模型;
4、將所述輕量化通信中間件的數(shù)據(jù)通信結(jié)構(gòu)修改為基于所述開放式架構(gòu)模型的數(shù)據(jù)通信接口,其中,所述數(shù)據(jù)通信接口所采用的通信傳輸層協(xié)議包括用戶數(shù)據(jù)報(bào)協(xié)議和傳輸控制協(xié)議;
5、在所述開放式架構(gòu)模型中部署所述輕量化通信中間件的基礎(chǔ)數(shù)據(jù)處理和通信功能,并構(gòu)建所述輕量化通信中間件在所述開放式架構(gòu)模型的上層服務(wù)接口,利用所述上層服務(wù)接口實(shí)現(xiàn)所述開放式架構(gòu)模型的軟件組件具體調(diào)用,其中,所述上層服務(wù)接口包括所述輕量化通信中間件的初始化服務(wù)接口和數(shù)據(jù)發(fā)布服務(wù)接口。
6、進(jìn)一步的,獲取構(gòu)建輕量化通信中間件所需要的開放式架構(gòu)模型的步驟包括:
7、基于開放式架構(gòu)獲取對(duì)應(yīng)的tcp/ip協(xié)議棧,并配置所述tcp/ip協(xié)議棧的單播地址及其與上層套接字適配器soad模塊的通信接口;
8、配置所述套接字適配器soad模塊與復(fù)雜驅(qū)動(dòng)模塊cdd的通信接口,以得到對(duì)應(yīng)的開放式架構(gòu)模型。
9、進(jìn)一步的,將所述輕量化通信中間件的數(shù)據(jù)通信結(jié)構(gòu)修改為基于所述開放式架構(gòu)模型的數(shù)據(jù)通信接口的步驟包括:
10、根據(jù)平臺(tái)類型確定傳輸協(xié)議標(biāo)識(shí),并將發(fā)送數(shù)據(jù)地址和長(zhǎng)度進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,以轉(zhuǎn)換成soad通用發(fā)送接口所需要的pdu信息類型;
11、調(diào)用所述soad通用發(fā)送接口將所述pdu信息類型傳遞給下層tcp/ip協(xié)議棧,以實(shí)現(xiàn)所述輕量化通信中間件的接口數(shù)據(jù)的發(fā)送。
12、進(jìn)一步的,將所述輕量化通信中間件的數(shù)據(jù)通信結(jié)構(gòu)修改為基于所述開放式架構(gòu)模型的數(shù)據(jù)通信接口的步驟包括:
13、將接收到的pdu數(shù)據(jù)進(jìn)行解析并暫存其數(shù)據(jù)起始指針和數(shù)據(jù)長(zhǎng)度信息;
14、判斷所述輕量化通信中間件的初始化是否完成,若所述輕量化通信中間件的初始化完成,則將所述pdu數(shù)據(jù)傳遞給上層應(yīng)用,由上層應(yīng)用調(diào)用所述輕量化通信中間件所對(duì)應(yīng)的接口進(jìn)行報(bào)文的反序列化和服務(wù)數(shù)據(jù)提取;
15、若所述輕量化通信中間件的初始化未完成,則直接在soad傳遞接口中進(jìn)行報(bào)文的讀取處理。
16、進(jìn)一步的,構(gòu)建所述輕量化通信中間件在所述開放式架構(gòu)模型的上層服務(wù)接口的步驟包括:
17、按照主題格式構(gòu)建所述輕量化通信中間件的待發(fā)送數(shù)據(jù),并通過序列化接口對(duì)所述待發(fā)送數(shù)據(jù)進(jìn)行序列化處理,以得到序列化數(shù)據(jù);
18、將所述序列化數(shù)據(jù)放入輸出流中,調(diào)用所述通信中間件的協(xié)議棧的推流接口將所述輸出流的內(nèi)容發(fā)布。
19、本發(fā)明還提出一種基于開放式架構(gòu)的通信中間件構(gòu)建系統(tǒng),包括:
20、模型構(gòu)建模塊,用于獲取構(gòu)建輕量化通信中間件所需要的開放式架構(gòu)模型;
21、接口修改模塊,用于將所述輕量化通信中間件的數(shù)據(jù)通信結(jié)構(gòu)修改為基于所述開放式架構(gòu)模型的數(shù)據(jù)通信接口,其中,所述數(shù)據(jù)通信接口所采用的通信傳輸層協(xié)議包括用戶數(shù)據(jù)報(bào)協(xié)議和傳輸控制協(xié)議;
22、數(shù)據(jù)處理模塊,用于在所述開放式架構(gòu)模型中部署所述輕量化通信中間件的基礎(chǔ)數(shù)據(jù)處理和通信功能,并構(gòu)建所述輕量化通信中間件在所述開放式架構(gòu)模型的上層服務(wù)接口,利用所述上層服務(wù)接口實(shí)現(xiàn)所述開放式架構(gòu)模型的軟件組件具體調(diào)用,其中,所述上層服務(wù)接口包括所述輕量化通信中間件的初始化服務(wù)接口和數(shù)據(jù)發(fā)布服務(wù)接口。
23、進(jìn)一步的,所述模型構(gòu)建模塊包括:
24、第一接口配置單元,用于基于開放式架構(gòu)獲取對(duì)應(yīng)的tcp/ip協(xié)議棧,并配置所述tcp/ip協(xié)議棧的單播地址及其與上層套接字適配器soad模塊的通信接口;
25、第二接口配置單元,用于配置所述套接字適配器soad模塊與復(fù)雜驅(qū)動(dòng)模塊cdd的通信接口,以得到對(duì)應(yīng)的開放式架構(gòu)模型。
26、進(jìn)一步的,所述接口修改模塊包括:
27、類型轉(zhuǎn)換單元,用于根據(jù)平臺(tái)類型確定傳輸協(xié)議標(biāo)識(shí),并將發(fā)送數(shù)據(jù)地址和長(zhǎng)度進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,以轉(zhuǎn)換成soad通用發(fā)送接口所需要的pdu信息類型;
28、接口調(diào)用單元,用于調(diào)用所述soad通用發(fā)送接口將所述pdu信息類型傳遞給下層tcp/ip協(xié)議棧,以實(shí)現(xiàn)所述輕量化通信中間件的接口數(shù)據(jù)的發(fā)送。
29、進(jìn)一步的,所述接口修改模塊具體用于:
30、將接收到的pdu數(shù)據(jù)進(jìn)行解析并暫存其數(shù)據(jù)起始指針和數(shù)據(jù)長(zhǎng)度信息;
31、判斷所述輕量化通信中間件的初始化是否完成,若所述輕量化通信中間件的初始化完成,則將所述pdu數(shù)據(jù)傳遞給上層應(yīng)用,由上層應(yīng)用調(diào)用所述輕量化通信中間件所對(duì)應(yīng)的接口進(jìn)行報(bào)文的反序列化和服務(wù)數(shù)據(jù)提取;
32、若所述輕量化通信中間件的初始化未完成,則直接在soad傳遞接口中進(jìn)行報(bào)文的讀取處理。
33、進(jìn)一步的,所述數(shù)據(jù)處理模塊具體用于:
34、按照主題格式構(gòu)建所述輕量化通信中間件的待發(fā)送數(shù)據(jù),并通過序列化接口對(duì)所述待發(fā)送數(shù)據(jù)進(jìn)行序列化處理,以得到序列化數(shù)據(jù);
35、將所述序列化數(shù)據(jù)放入輸出流中,調(diào)用所述通信中間件的協(xié)議棧的推流接口將所述輸出流的內(nèi)容發(fā)布。
36、本發(fā)明還提出一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的基于開放式架構(gòu)的通信中間件構(gòu)建方法。
37、本發(fā)明還提出一種計(jì)算機(jī),包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述的基于開放式架構(gòu)的通信中間件構(gòu)建方法。
38、本發(fā)明當(dāng)中的基于開放式架構(gòu)的通信中間件構(gòu)建方法及其系統(tǒng),將輕量化dds部署在autosar?cp中,dds中間件相比于autosar?cp中傳統(tǒng)的基于ip的以服務(wù)為中心的通信中間件增強(qiáng)了服務(wù)質(zhì)量的保障;另一方面,本技術(shù)提出的輕量化dds中間件在autosar?cp中實(shí)時(shí)處理報(bào)文的通信機(jī)制可以有效結(jié)合dds和autosar?cp,降低mcu執(zhí)行任務(wù)的阻塞時(shí)間,減少dds在mcu端的資源占用;最后,本技術(shù)所實(shí)現(xiàn)的部署在autosar?cp下的輕量化dds在上層swc幾乎無感,在少量修改應(yīng)用服務(wù)層的代碼的前提下實(shí)現(xiàn)對(duì)輕量化dds模塊的調(diào)用。