本公開涉及數據通信,尤其涉及一種數據訂閱方法、裝置及系統。
背景技術:
1、隨著現代通信和網絡技術與汽車產業的融合,汽車不斷向智能化和網絡化發展,汽車的智能座艙、自動駕駛等功能的多樣性、豐富性、安全性等需求變得越來越高,從而汽車內部通信的數據量逐漸增大。soa(service-oriented?architecture,面向服務的架構)是一種高層級的架構設計理念,可通過在網絡上使用基于通用通信語言的服務接口,讓軟件組件可重復使用。因此,基于soa架構要將汽車內部的ecu(electronic?control?unit,電子控制單元)作為提供服務的節點。
2、但是,車輛當中存在很多沒有以太網功能的ecu,這些ecu并不包含于現有的soa架構,抓取這些ecu的數據相關技術一般采用兩種方法。第一種是選用帶有以太網的控制器芯片的硬件,升級ecu的芯片使得其能運行中間件軟件進行訂閱、發布,但是該方法所需成本太高;第二種是在軟件中設置一個用于數據代理轉發的中間件,即some/ip(scalableservice-oriented?middleware?overip,位于ip協議層以上的一種面向服務的可伸縮的中間件),通過can/canfd/lin等總線將數據發給some/ip機制,some/ip機制再去對這些數據進行代理轉發,這一應用雖然解決了can網絡的廣播式通信造成帶寬的過多占用的問題,但是該機制只定義了比較基礎的規范,應用互操作性難以得到保證。例如,專利202010307595.0提供了車載交互方法、裝置和存儲介質,其方法要求通過some/ip的服務發現機制獲取所述車載系統中支持交互服務的被控制設備,其要求在進行交互的設備都需要采用some/ip機制并且服務已事先定義好,對于不采用some/ip通信的傳統ecu,仍然無法采用基于some/ip機制的服務發現機制進行交互。
技術實現思路
1、本公開提供了一種數據訂閱方法、裝置、電子設備和存儲介質。
2、根據本公開的第一方面,提供了一種數據訂閱方法,該方法包括:接收第一ecu控制模塊發送的數據訂閱或發布請求,第一ecu控制模塊支持第一數據格式;響應于數據訂閱請求,從第二ecu控制模塊獲取數據,第二ecu控制模塊支持第二數據格式;將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊。
3、在本公開中,響應于數據訂閱請求,從第二ecu控制模塊獲取數據包括:從數據訂閱請求中獲取數據類型標識,其中數據類型標識用于標記不同的指定功能請求;根據數據類型標識,從第二ecu控制模塊獲取數據類型標識對應的數據。
4、在本公開中,該方法還包括:根據數據類型標識,確定第二ecu控制模塊的標識,第二ecu控制模塊的標識用于唯一標記第二ecu控制模塊。
5、在本公開中,從第二ecu控制模塊獲取數據包括:通過第二ecu控制模塊的標識,識別第二ecu控制模塊對應的通信接口,通信接口包括can、can?fd、lin中的至少一個;通過通信接口,獲取第二數據格式的數據。
6、在本公開中,將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊包括:將第二數據格式的數據,轉換為dds或some?ip格式;將dds或some?ip格式的數據,通過以太網通信發送至第一ecu控制模塊。
7、在本公開中,從第二ecu控制模塊獲取數據包括:通過第二ecu控制模塊的標識,識別第二ecu控制模塊對應的以太網接口;通過以太網接口,獲取第二數據格式的數據,第二數據格式為dds或some?ip格式。
8、在本公開中,將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊包括:對dds或some?ip格式的數據進行解析,以獲取第一數據格式的數據;通過can、can?fd、lin接口中的至少一個,將第一數據格式的數據發送至第一ecu控制模塊。
9、在本公開中,將格式轉換后的數據發送至第一ecu控制模塊包括:根據路由表,確定第一ecu控制模塊接收數據的接口標識,路由表中包括交換機的數據接收接口標識和數據發送接口標識之間的對應關系;通過接口標識對應的接口,將數據發送至第一ecu控制模塊。
10、綜上,通過接收第一ecu控制模塊發送的數據訂閱或發布請求,第一ecu控制模塊支持第一數據格式;響應于數據訂閱請求,從第二ecu控制模塊獲取數據,第二ecu控制模塊支持第二數據格式;將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊,將接收到不支持以太網功能的數據格式轉換為支持以太網功能的數據格式,達到低時延效果。
11、根據本公開的第二方面,提供了一種數據訂閱裝置,該裝置包括:接收單元,用于接收第一ecu控制模塊發送的數據訂閱或發布請求,第一ecu控制模塊支持第一數據格式;響應單元,用于響應于數據訂閱請求,從第二ecu控制模塊獲取數據,第二ecu控制模塊支持第二數據格式;發送單元,用于交換機將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊。
12、綜上,通過數據訂閱裝置,通過接收第一ecu控制模塊發送的數據訂閱請求,第一ecu控制模塊支持第一數據格式;響應于數據訂閱請求,從第二ecu控制模塊獲取數據,第二ecu控制模塊支持第二數據格式;將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊,將接收到不支持以太網功能的數據格式轉換為支持以太網功能的數據格式,達到低時延的效果。
13、根據本公開的第三方面,提供了一種數據訂閱系統,該系統應用于車輛基于soa架構的多個ecu控制模塊數據通信場景下的數據格式轉換,該系統包括:第一ecu控制模塊,第一ecu控制模塊支持第一數據格式;第二ecu控制模塊,第二ecu控制模塊支持第二數據格式;交換機;其中,第一ecu控制模塊向交換機發送數據訂閱或發布請求,響應于數據訂閱請求,交換機從第二ecu控制模塊獲取數據,將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊。
14、在本公開中,該系統還包括:存儲器,存儲器存儲有路由表,路由表中包括交換機的數據接收接口標識和數據發送接口標識之間的對應關系。
15、根據本公開的實施例,通過數據訂閱系統,基于交換機的ecu控制模塊實現將接收到不支持以太網功能的數據格式轉換為支持以太網功能的數據格式,達到低時延的效果。
16、根據本公開的第四方面,提供了一種電子設備,包括:
17、至少一個處理器;以及
18、與至少一個處理器通信連接的存儲器;其中,
19、存儲器存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行前述第一方面的方法。
20、根據本公開的第五方面,提供了一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,計算機指令用于使計算機執行前述第一方面的方法。
21、根據本公開的第六方面,提供了一種計算機程序產品,包括計算機程序,計算機程序在被處理器執行時實現如前述第一方面的方法。
22、綜上所述,通過接收第一ecu控制模塊發送的數據訂閱或發布請求,第一ecu控制模塊支持第一數據格式;響應于數據訂閱請求,從第二ecu控制模塊獲取數據,第二ecu控制模塊支持第二數據格式;將數據由第二數據格式轉換為第一數據格式,并將格式轉換后的數據發送至第一ecu控制模塊,將接收到不支持以太網功能的數據格式轉換為支持以太網功能的數據格式,提高了基于can協議傳輸的ecu與基于車載以太網傳輸的ecu之間信息交互地靈活性,根據不同ecu控制模塊的訂閱功能需求或者發布功能需求快速作出不同的響應,從而可以方便實現不同ecu之間的輕量級數據交互,達到低延時、高可靠的效果,且可在多數據、高并發地應用場景下靈活應用。
23、應當理解,本部分所描述的內容并非旨在標識本技術的實施例的關鍵或重要特征,也不用于限制本技術的范圍。本技術的其它特征將通過以下的說明書而變得容易理解。