【連載三】基於PREEvision的智能網聯EE架構開發
4 人贊了文章
在上篇連載中我們聊到面對汽車智能網聯化浪潮帶來的一系列技術革新,傳統CAN遠遠不能滿足車載網路通信的需求。面對車載通信的新使命,乙太網與汽車深度擁抱的契機已經來臨。並且介紹了在乙太網的設計過程中採用面向服務的架構設計(Service-Oriented Architecture,簡稱SOA)的開發流程。
乙太網SOA基於服務,而服務通過標準化的介面提供功能,這種開發方式的優勢:
- 在新平台,服務的高度可重用性
- 通過系統抽象,減少了廣泛服務使用的複雜性
- 降低了軟體開發成本
- 更加靈活
面和大家分享如何應用PREEvision進行基於Ethernet的SOA設計。
SOA開發流程PREEvision遵循乙太網面向服務的方法論,以UML Diagram, Service等提供遵循SOA架構開發環境。
基於Ethernet的SOA設計流程,如下圖所示:
主要包含以下6部分內容:
- 服務定義
- 軟體設計
- 硬體拓撲設計
- 服務部署
- 信號路由
- 乙太網通信詳細參數定義
PREEvision提供了一種基於表格的形式逐步引導設計人員完成SOA設計過程並提供了自動化操作的敏捷開發體驗。下面我們將一個視頻播放的功能抽象成一個Video Player的服務,並在PREEvision中進行設計。
1.1 服務定義
通過服務定義,服務以標準化的介面提供功能。
在Service Definition 中可以點擊相應表格進行定義服務相關內容:
Step1:在Service Definition Editor定義服務(Service):Video Player
- 服務提供者(Service Provider) : Video Player Provider
- 服務消費者(Service Consumer) : Video Player Consumer
- 服務介面(Service Interface):Video Player Interface
Step1注釋:SOA基於服務,而服務通過標準化的介面提供功能。在設計初期對需求進行分析階段,我們可能更感興趣這些服務怎麼被使用以及他們之間的交互關係。在此處我們定義了有哪些參與者、參與者之間有什麼關係,即Who (Provider) provides What(Service) to
Whom(Consumer) and How(Service Interface)。
Step2: 在Service Interface Editor定義服務介面(Service Interface):包含具體的服務內容
- 方法(Method): VideoPlayerControlCmd
- 事件(Event): CurrentPlayingTime
- 域(Field) : VideoInfo
Step2注釋:服務以標準化的介面提供功能,介面包含具體的服務內容。Method 指一種被調用的方法、過程、功能或常式;Event類似CAN匯流排中的信號,可以周期發送/事件觸發/使能;Field 可以簡單理解成Method和Event的組合。
Step3:在Service Interface ID Editor定義報文ID(Message ID ): 包括服務ID(Service ID) 和方法ID(Method ID)/ 事件ID(Event ID)
- Service ID : 0x64
- Method ID:0x0015
- Event ID:0x0001
Step3注釋:報文ID 類似於CAN ID,報文ID 由 服務ID 和方法ID/事件ID組成。在PREEvision中通過定義服務ID和方法ID/事件ID後即可自動計算出報文ID。服務ID 是唯一標誌不同服務,方法ID/事件ID 用來區分不同的方法/事件。
Step4:在Service Interface Data Type Editor定義服務介面的數據類型(Service Interface Data Type)
- 應用數據類型(ApplicationDataType)
- 實現數據類型(ImplementDataType)
- 基本類型(BaseType)
Step4注釋:每個服務介面都需要定義其數據類型,開發人員應根據具體服務介面定義相關數據類型。應用數據類型是從應用的角度定義所有的數據屬性,用於在兩個軟體部件之間交換應用數據;實現數據類型從實現的角度進行定義,用於基礎軟體內的介面的描述和數據;基本數據元素是實現數據類型的基礎。
1.2 軟體設計
服務的實現離不開應用軟體和硬體資源的支持。
在完成服務定義後進行軟體設計時,PREEvision提供了一種合成功能。通過點擊Service
Implementation按鈕,將創建實現 服務(Service)和服務介面(Service
Interface)的 應用軟體部件類型(ApplicationSW Component Type)和介面(Interface)、數據元素(Dataelement)。注釋:應用軟體之間的信息交互,是通過軟體部件的埠(Port)進行傳輸信息(Interface)。通過服務實施,實現服務的軟體部件設計完成。
1.3 硬體拓撲設計
定義帶有Switch的乙太網網路拓撲結構,設置匯流排類型為Ethernet。
1.4 服務部署
在完成實現服務的軟體設計以及硬體拓撲設計後,將服務部署到具體的ECU內。
通過服務部署,實現服務的軟體組件映射到相應的ECU內。
1.5 信號路由
在將服務部署到具體的ECU後,通過信號路由的方式自動創建乙太網通信相關的一系列構件:
- Socket Address
- Socket Connection Bundle
- Socket Connection
- Signal
- Signal Transmissions
- …
注釋:通過信號路由,將實現服務的軟體部件間的通信轉變成真實的匯流排通信。
本期由於篇幅原因,就先分享到這。下一篇我們將提到SOA乙太網通信是通過IP地址、MAC地址建立節點間的連接,採用UDP/TCP傳輸協議通過埠Port實現具體通信。精彩不容錯過,歡迎您持續關注。
推薦閱讀:
※ISO14229 翻譯
※最初的心愿
※汽車電子軟體-MCU篇1
※汽車電子漫談之三:ADAS處理器
TAG:汽車電子 | 乙太網Ethernet |