淺談嵌入式技術(shù)與整車網(wǎng)絡系統(tǒng)的實現(xiàn)
一、
隨著市場需求和電子技術(shù)的發(fā)展,整車電氣系統(tǒng)經(jīng)歷著電器化、電子化和網(wǎng)絡化三個階段性發(fā)展。嵌入式技術(shù)執(zhí)行專用功能并被內(nèi)部計算機控制的設備或者系統(tǒng)。嵌入式系統(tǒng)不能使用通用型計算機,而且運行的是固化的軟件,用術(shù)語表示就是固件(firmware),終端用戶很難或者不可能改變固件。盡管絕大多數(shù)嵌入式系統(tǒng)是用戶針對特定任務而定制的,但它們一般都是由下面幾個模塊組成的: 一臺計算機或者微控制器,字長可能是可憐的4位或者8位、16位、32位甚至是64位。 用以保存固件的ROM(非揮發(fā)性只讀存儲器)。 用以存程序數(shù)據(jù)的RAM(揮發(fā)性的隨機訪問存儲器)。 連接微控制器和開關(guān)、按鈕、傳感器、模數(shù)轉(zhuǎn)化器、控制器、LED(發(fā)光二極管)和顯示器的I/O端口。 一個輕量級的嵌入式操作系統(tǒng),一般是自行編寫的。 專門的單片微控制器是大多數(shù)嵌入式系統(tǒng)的核心。通過把若干個關(guān)鍵的系統(tǒng)組成部分集成到單個芯片上,系統(tǒng)設計者就可以得到小而便宜、可以操作較少外圍電子設備的計算機。 嵌入式系統(tǒng)的一般模型并不足以定義嵌入式系統(tǒng)本身。例如,某些嵌入式系統(tǒng)常常比標準PC機箱小不了多少。這類設備有: 信息查詢以及銷售點終端。 某些工業(yè)控制系統(tǒng)。游戲控制臺(例如基于x86和Windows的Xbox)。
二、概述
整車網(wǎng)絡是指將多個具有一定獨立工作能力的汽車電子系統(tǒng)通過總線實現(xiàn)資源共享和數(shù)據(jù)通信的分布式實時嵌入系統(tǒng)。由此定義可見,整車網(wǎng)絡以總線整合汽車電子系統(tǒng)的形式存在,但本質(zhì)仍然是由軟硬件構(gòu)成的嵌入式系統(tǒng)。
整個開發(fā)過程可被分為系統(tǒng)開發(fā)和零部件實施兩個應用層面,其中貫穿著算法設計、軟件工程等基礎(chǔ)技術(shù)。由于種種原因,自主汽車電子產(chǎn)業(yè)存在著重零部件輕系統(tǒng)、重應用輕基礎(chǔ)的問題。需要指出的,基礎(chǔ)技術(shù)涉及的建模、仿真、軟件構(gòu)架等均來源于主流的嵌入式技術(shù)體系,并不固定從屬于系統(tǒng)開發(fā)或零部件實施的具體領(lǐng)域。在系統(tǒng)開發(fā)過程中,應用相應的基礎(chǔ)技術(shù),結(jié)合上游用戶需求與下游零部件實施約束,才能完成嵌入式系統(tǒng)的集成設計與驗證。
三、架構(gòu)開發(fā)
在軟件工程中,架構(gòu)設計的作用在于三方面:1、行業(yè)應用架構(gòu),行業(yè)架構(gòu)師往往是行業(yè)專家,了解行業(yè)應用需求,其架構(gòu)行為主要是將需求進行合理分析布局到應用模型中去,偏向于應用功能布局;2、應用系統(tǒng)技術(shù)體系架構(gòu),技術(shù)架構(gòu)師往往是技術(shù)高手中的高手,掌握各類技術(shù)體系結(jié)構(gòu)、掌握應用設計模式,其架構(gòu)行為考慮軟件系統(tǒng)的高效性、復用性、安全性、可維護性、靈活性、跨平臺性等;3、規(guī)范架構(gòu)設計是通過多年磨礪或常年苦思頓悟后把某一類架構(gòu)抽象成一套架構(gòu)規(guī)范,當然也有專門研究規(guī)范而培養(yǎng)的規(guī)范架構(gòu)設計者。
架構(gòu)開發(fā)容易與總線開發(fā)混淆。雖然同屬系統(tǒng)層面開發(fā),前者基于而高于后者。在架構(gòu)設計中,總線僅是最主要的信息交互方式,其特點必須在設計過程中合理運用。
3.1工程需求捕捉(圖2)
從用戶角度,工程需求不同于常見的市場需求:后者主要從市場用戶出發(fā),關(guān)注的是網(wǎng)絡系統(tǒng)的外在使用價值而不是具體的構(gòu)架、技術(shù)和零部件;除此之外,整車壽命周期內(nèi)還有開發(fā)工程師、制造工程師、售后工程師等內(nèi)部用戶的需求。上述諸多用戶的需求同時也包含約束,例如法規(guī)、標準、成本、質(zhì)量、工程策略等等。從時間角度上。上述需求在項目周期中不同程度地動態(tài)變化。
工程功能(圖3)作為工程需求的基本載體,貫穿著整個開發(fā)過程。由于不同整車的需求差異,對工程功能的具體劃分不盡相同。一般而言,工程功能被分為用戶工程功能和非用戶工程功能:前者會被用戶直接感受到,例如燈光;后者不會被用戶直接感受到,一般是前者的支撐,例如總線喚醒,通常也被稱為系統(tǒng)功能。對于每個工程功能的需求,也分為功能性需求和非功能性需求:前者主要定義不同狀態(tài)下輸入輸出等外在行為邏輯,通常是可復用在不同車型上。
對需求的捕捉中,需求的驗證是重要環(huán)節(jié)之一。上述需求數(shù)量浩大甚至相互矛盾,產(chǎn)生的需求風險將嚴重影響下游的開發(fā)。建立系統(tǒng)層面的功能性需求模型,不僅可以解決需求沖突問題,也是對下游功能分配的必要約束。
3.2功能分配(圖4)
對于嵌入式軟硬件實現(xiàn)的工程功能,往往需要分布到多個零部件實現(xiàn)以滿足工程需求,因此合理的功能分配設計尤為關(guān)鍵。從實現(xiàn)角度而言,需要從邏輯、物理和機械布置層面進行平衡。嵌入式系統(tǒng)和外界交互需要一定形式的通用設備接口,如A/D、D/A、I/O等,外設通過和片外其他設備的或傳感器的連接來實現(xiàn)微處理器的輸入/輸出功能。每個外設通常都只有單一的功能,它可以在芯片外也可以內(nèi)置芯片中。外設的種類很多,可從一個簡單的串行通信設備到非常復雜的802.11無線設備。
邏輯層面的分配,需要在保證關(guān)鍵資源、延遲、供電狀態(tài)、安全等非功能性需求前提下進行。例如:某功能的子功能被分配到某控制器,除了需要傳感器/執(zhí)行器等硬件外,控制器能否提供足夠的存儲空間、運算能力、供電狀態(tài)也同樣重要;子功能之間可通過總線、硬線進行交連,但是連接方式必須確保功能本身的實時性、可靠性。
3.3架構(gòu)整合
功能分配僅針對單個工程功能,而功能與功能、系統(tǒng)與零部件存在的關(guān)聯(lián)和由此產(chǎn)生的沖突。因此,系統(tǒng)層面上針對功能、零部件的平衡是架構(gòu)整合的基本內(nèi)容。同時。合格的架構(gòu)不僅必須滿足成本要求,還需要與開發(fā)人力、可靠性、技術(shù)風險和可配置性進行折中。
作為分布式嵌入式系統(tǒng),網(wǎng)絡系統(tǒng)的架構(gòu)(圖5)存在著更分布還是更集中的爭議。在更分布式的系統(tǒng)中,諸多功能盡可能按功能分布在不同的控制系統(tǒng)實現(xiàn),系統(tǒng)的可配置性好、可靠性高但物料成本較高;在更集中的系統(tǒng)中,諸多功能盡可能按區(qū)域分布在同一的控制系統(tǒng)實現(xiàn),系統(tǒng)的物料成本較低但可配置性差、可靠性低。在實際工程應用中,由于不同整車系統(tǒng)、不同功能領(lǐng)域的需求差異,更分布和更集中架構(gòu)往往是折中的。
四、總線開發(fā)
總線是指連接控制器的數(shù)字、雙向傳輸、多分支結(jié)構(gòu)的通信系統(tǒng),通常一條或多條總線和網(wǎng)關(guān)構(gòu)成整車網(wǎng)絡。常見的總線如CAN、LIN,以及MOST、FlexRay。
總線可被視為滿足分布式功能需要的用于數(shù)據(jù)交換的非用戶工程功能,依托節(jié)點的嵌入式軟硬件分布式實現(xiàn)的。因此,運用總線時必須考慮其資源占用、時延、可靠性、線束布局等需求;反之,這些也是總線技術(shù)升級換代的驅(qū)動力。總線(Bus)是計算機各種功能部件之間傳送信息的公共通信干線,它是由導線組成的傳輸線束, 按照計算機所傳輸?shù)男畔⒎N類,計算機的總線可以劃分為數(shù)據(jù)總線、地址總線和控制總線,分別用來傳輸數(shù)據(jù)、數(shù)據(jù)地址和控制信號。總線是一種內(nèi)部結(jié)構(gòu),它是cpu、內(nèi)存、輸入、輸出設備傳遞信息的公用通道,主機的各個部件通過總線相連接,外部設備通過相應的接口電路再與總線相連接,從而形成了計算機硬件系統(tǒng)。在計算機系統(tǒng)中,各個部件之間傳送信息的公共通路叫總線,微型計算機是以總線結(jié)構(gòu)來連接各個功能部件的。
4.1物理層(圖6)
物理層指構(gòu)成總線硬件的線束、接插件及板級收發(fā)電路。作為硬件部分,主要的難點在于設計偏差認可和一致性保證。前者主要是存在于沿用其他總線設計的控制系統(tǒng),硬件的設計偏差認可與否很大程度上影響了方案最終確定;后者是指批量情況下全壽命周期的性能一致性保證,為避免散差、老化造成的質(zhì)量問題。
4.2通信層(圖7)
通信層介于物理層和應用軟件之間,是通信協(xié)議的主體,主要包含通信策略和信號配置。
通信策略定義了通信機制的傳輸模型和時延模型,本質(zhì)上服務于功能內(nèi)部的數(shù)據(jù)交換需求,并屬于后者的抽象。例如人機類功能一般屬于開環(huán)控制類,事件觸發(fā)的傳輸模式即可滿足數(shù)據(jù)交換需要,總體時延要求在200毫秒以上。通信策略不僅可以直接作為通信層軟件開發(fā)需求,也是通過總線進行功能分配的重要參考依據(jù)。
信號配置是與架構(gòu)設計直接相關(guān),也是總線設計中最直觀的部分。信號配置本質(zhì)上是把信號根據(jù)協(xié)議特性和架構(gòu)需求進行組幀的過程。從邏輯角度,信號配置必須滿足架構(gòu)中的流向關(guān)系、幀裝載字長和帶寬等限制;從時序角度,分配后信號的傳輸時延應確保滿足功能的總體時延分配。
4.3網(wǎng)絡管理
網(wǎng)絡管理主要完成啟動/停止、休眠/喚醒、錯誤處理和版本控制等功能。網(wǎng)絡管理通常包含節(jié)點管理和系統(tǒng)管理(狹義網(wǎng)絡管理),前者限于節(jié)點本地的通訊管理,后者協(xié)調(diào)節(jié)點間的系統(tǒng)級行為。
作為解決方案,可以直接引入包含網(wǎng)絡管理算法的嵌入式軟件,進一步定義網(wǎng)絡管理策略的時間參數(shù)設定、網(wǎng)絡管理底層策略與應用層的接口和應用層對網(wǎng)絡管理的具體需求。網(wǎng)絡管理包括對硬件、軟件和人力的使用、綜合與協(xié)調(diào),以便對網(wǎng)絡資源進行監(jiān)視、測試、配置、分析、評價和控制,這樣就能以合理的價格滿足網(wǎng)絡的一些需求,如實時運行性能、服務質(zhì)量等。網(wǎng)絡管理常簡稱為網(wǎng)管。網(wǎng)絡管理,是指網(wǎng)絡管理員通過網(wǎng)絡管理程序?qū)W(wǎng)絡上的資源進行集中化管理的操作,包括配置管理、性能和記賬管理、問題管理、操作管理和變化管理等。一臺設備所支持的管理程度反映了該設備的可管理性及可操作性。而交換機的管理功能是指交換機如何控制用戶訪問交換機,以及用戶對交換機的可視程度如何。通常,交換機廠商都提供管理軟件或滿足第三方管理軟件遠程管理交換機。一般的交換機滿足SNMP MIB I / MIB II統(tǒng)計管理功能。而復雜一些的交換機會增加通過內(nèi)置RMON組(mini-RMON)來支持RMON主動監(jiān)視功能。有的交換機還允許外接RMON探監(jiān)視可選端口的網(wǎng)絡狀況。
4.4網(wǎng)關(guān)
網(wǎng)關(guān)實現(xiàn)不同總線的不同類型的數(shù)據(jù)交換,不僅包括常見的信號數(shù)據(jù),還包含喚醒/休眠、啟動/停止等管理指令。網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。網(wǎng)關(guān)在傳輸層上以實現(xiàn)網(wǎng)絡互連,是最復雜的網(wǎng)絡互連設備,僅用于兩個高層協(xié)議不同的網(wǎng)絡互連。網(wǎng)關(guān)既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。 網(wǎng)關(guān)是一種充當轉(zhuǎn)換重任的計算機系統(tǒng)或設備。在使用不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間,網(wǎng)關(guān)是一個翻譯器。與網(wǎng)橋只是簡單地傳達信息不同,網(wǎng)關(guān)對收到的信息要重新打包,以適應目的系統(tǒng)的需求。同時,網(wǎng)關(guān)也可以提供過濾和安全功能。大多數(shù)網(wǎng)關(guān)運行在OSI 7層協(xié)議的頂層--應用層。
網(wǎng)關(guān)的功能性需求來源于架構(gòu)設計,越復雜越分布,系統(tǒng)的網(wǎng)關(guān)復雜度越大。從實現(xiàn)角度,網(wǎng)關(guān)功能增加了系統(tǒng)的可配置性但降低了可靠性,需要在架構(gòu)設計中進行合理平衡。
五、診斷開發(fā)
診斷系統(tǒng)能實時監(jiān)控功能運行,并通過總線接口與外部用戶設備實現(xiàn)數(shù)據(jù)交換,滿足法規(guī)、開發(fā)、制造、售后甚至信息服務的需求。從法規(guī)角度,通常排放相關(guān)的診斷內(nèi)容是強制性標準化的。
5.1功能自診斷(圖9)
任何嵌入式方式實現(xiàn)均存在軟硬件失效的可能,因此實時在線的功能自診斷是必要的保障手段。功能診斷包括面向應用功能的自診斷和面向系統(tǒng)功能的自診斷,后者通常是指操作系統(tǒng)、總線等基礎(chǔ)或者內(nèi)核部分。功能自診斷通常針對對物理輸入輸出和邏輯輸入輸出,前者通過相關(guān)電路特性判斷是否存在物理失效,后者對邏輯信號的數(shù)值、變化特性進行可信度判斷。
5.2診斷管理
診斷管理的主要內(nèi)容是故障管理。系統(tǒng)運行期間,功能自診斷因為隨機失效會產(chǎn)生相當數(shù)量的故障指示,不加處理容易造成虛警;對于正常的故障診斷,故障信息存儲也容易受到非易失性存儲資源的限制。故障管理將處理本地所有功能自診斷的故障指示,根據(jù)故障特性進行“識別-確認-退出”的過程管理;存在多個故障時進行類似堆棧的處理,保證高優(yōu)先級故障信息的存儲;根據(jù)診斷協(xié)議的指令輸出或清空故障信息。
5.3診斷通信
區(qū)別于總線的在線通信,診斷通信被稱為離線通信,蓋因其非常在線特點。其服務層為診斷功能提供國際通用和自定義兩種診斷服務支持。診斷服務層為上層屏蔽具體通信特征,使其只考慮功能應用方面。每條診斷服務作為控制器功能的觸發(fā)條件或入口點。診斷服務層提供診斷服務(service)的軟件實施效率是保證控制器能夠及時響應外部診斷診斷請求的重要因素之一。其會話層控制器與診斷工具之間的通信使能,打開或斷開雙方的通信。當診斷工具與控制器間的應用服務無法維持時關(guān)閉這些服務。將所有服務功能分布到合適session中,滿足診斷功能分級是該設計目的。其傳輸層設計實現(xiàn)塊數(shù)據(jù)的傳遞功能,為大數(shù)據(jù)量的傳遞提供通信通道。此外還需定義傳輸層與上、下層之間的軟件接口,優(yōu)化匹配參數(shù)
5.4 配置系統(tǒng)(圖10)
基于市場、工程等多方面需要,整車網(wǎng)絡存在大量的通過診斷進行的信息配置。在項目的不同階段,對上述配置進行正確無誤的快速處理是配置系統(tǒng)的主要功能。
六、集成測試(圖11)
不同于零部件實施的測試,集成測試關(guān)注的是系統(tǒng)層面的測試驗證。
6.1基礎(chǔ)測試
基礎(chǔ)測試針對系統(tǒng)中總線、診斷等系統(tǒng)功能:控制器是否能夠及時地通過總線將采集到的傳感器信號傳遞給其他控制器,是否能夠及時響應其他控制器通過總線傳遞的指令并驅(qū)動執(zhí)行機構(gòu);網(wǎng)關(guān)實現(xiàn)的功能是否正確(滿足設計要求);所有控制器是否能按規(guī)定進入/退出睡眠模式(網(wǎng)絡管理策略是否滿足設計規(guī)范);控制器網(wǎng)絡的電流消耗是否在規(guī)定的范圍之內(nèi);總線負載是否符合設計要求;在線診斷功能是否符合設計要求。
6.2功能測試
根據(jù)系統(tǒng)架構(gòu)、功能需求等設計規(guī)范,結(jié)合測試平臺結(jié)構(gòu)和測試環(huán)境特點生成測試規(guī)范。測試規(guī)范詳細定義了測試要求和步驟,包括點火開關(guān)狀態(tài)、功能實現(xiàn)的條件、功能結(jié)果、具體描述及注意事項等。
根據(jù)上述測試規(guī)范進行詳細的功能測試,以確認集成效果是否滿足設計規(guī)范。測試解決方案建立在標準系統(tǒng)框架基礎(chǔ)上,通過開放式接口提供完整的模型設計、測試設計、診斷和標定設計,虛擬試驗環(huán)境、實時仿真模型、試驗和試驗參數(shù)可在不同設計階段和項目中得以復用。
七、總結(jié)
本文對整車網(wǎng)絡開發(fā)和系統(tǒng)開發(fā)工作進行了詳細描述,結(jié)合嵌入式理論介紹了基于功能面向需求的架構(gòu)設計方法以及總線、診斷、集成測試的工作重點。