安全實(shí)現(xiàn)汽車電子實(shí)時(shí)性能
用戶對(duì)特性和功能的要求仿佛永不滿足,這迫使汽車制造商在汽車中安裝越來越多的電控裝置(ECU),以至于汽車電子網(wǎng)絡(luò)已復(fù)雜到無以復(fù)加的地步。一些特性純粹是為了提高舒適性或便捷性(如導(dǎo)航、高級(jí)音響、自動(dòng)空調(diào)等系統(tǒng)),而其他系統(tǒng)則是法律強(qiáng)制要求的(如胎壓監(jiān)測(cè)、高級(jí)氣囊、車輛穩(wěn)定性控制等系統(tǒng))。為了管理這種與日俱增的復(fù)雜度,汽車電氣架構(gòu)(Boardnetz)被劃分為具體的域,包括:動(dòng)力系、車身、底盤、安全系統(tǒng)和信息娛樂系統(tǒng)。每個(gè)子域都通過信息網(wǎng)關(guān)連接至高速主干總線,實(shí)現(xiàn)不同電子控制裝置集群之間的信息共享。(圖1)目前采用的主干總線通常是FlexRay技術(shù),不過未來也有可能采用以太網(wǎng)技術(shù)。下一步發(fā)展計(jì)劃是通過提供“域控制器”來替代子域中的一系列電子控制裝置,從而大幅減少各個(gè)子域中的電控裝置的數(shù)量。這些域控制電控裝置提供了高性能的計(jì)算平臺(tái),能夠并行托管諸多應(yīng)用,從而取代大量小型電子控制裝置和簡化系統(tǒng)。這種方法具有許多誘人的優(yōu)點(diǎn),如節(jié)省安裝空間、縮短裝配時(shí)間、降低線束復(fù)雜度、降低網(wǎng)絡(luò)復(fù)雜度和降低功耗等。就系統(tǒng)成本和研發(fā)投資而言,這種方法也能節(jié)省大筆資金。不過,隨之而來的是對(duì)計(jì)算平臺(tái)提出了許多新的要求,以支持在域控制電控裝置中的一顆單片機(jī)上,同時(shí)托管不同廠商提供的軟件和應(yīng)用。
圖1:用于簡化網(wǎng)絡(luò)連接的域控制器“Boardnetz”,可將若干有關(guān)應(yīng)用集成到高性能域控制電子控制裝置中
不同應(yīng)用之間的干擾免除
一個(gè)關(guān)鍵問題是,確保平臺(tái)上運(yùn)行的所有不同應(yīng)用之間的“干擾免除”。這意味著,對(duì)各個(gè)進(jìn)程在資源使用上強(qiáng)制執(zhí)行預(yù)先定義的限定,包括CPU處理時(shí)間、中斷時(shí)延、代碼執(zhí)行范圍、RAM占用量、外設(shè)訪問和服務(wù)使用(如操作系統(tǒng)功能、EEPROM處理程序、總線網(wǎng)絡(luò)驅(qū)動(dòng)程序和類似的共享功能)等。這些保障措施在采用多核單片機(jī)上需要審慎地考慮。這些多核單片機(jī)將具備若干個(gè)CPU,以運(yùn)行多個(gè)AUTOSAR操作系統(tǒng)(操作系統(tǒng)應(yīng)用)實(shí)例,并分享同一套硬件資源。傳統(tǒng)的分享共用計(jì)算資源方法涉及利用“管理程序”層來抽象化硬件。這種管理程序避免了操作系統(tǒng)直接訪問物理硬件,代之以收集這些訪問,排列整理確定其優(yōu)先級(jí)和權(quán)限,從而拒絕或同意訪問請(qǐng)求。將這一思路引入汽車領(lǐng)域,則意味著在每個(gè)CPU上運(yùn)行若干個(gè)“AUTOSAR虛擬機(jī)”,并由特定管理程序?qū)觼砉芾硎褂霉蚕碣Y源的權(quán)限和沖突。然而,汽車電控裝置尚不可支持這種程度的抽象,因?yàn)檫@種深度嵌套的實(shí)時(shí)系統(tǒng)的主要缺點(diǎn)是會(huì)大幅延長所有外設(shè)訪問的時(shí)延的。為了成功實(shí)現(xiàn)資源共享,AUTOSAR版本4提供了一種合作共享模式,它規(guī)定了一種操作系統(tǒng)應(yīng)用間通信(IOC)機(jī)制,借以將某個(gè)特定內(nèi)核上不能服務(wù)的基本軟件模塊(BSW),重新定向至可提供服務(wù)的內(nèi)核。這種機(jī)制依賴于內(nèi)核之間的協(xié)作,其不足之處是有可能某個(gè)內(nèi)核收到大量IOC請(qǐng)求,因而影響其執(zhí)行其他任務(wù)的能力。必須審慎地檢查通過這種合作機(jī)制實(shí)現(xiàn)的不同內(nèi)核上的應(yīng)用之間的“干擾免除”,并且必須對(duì)可能造成的潛在附加負(fù)荷加以限制。
要將域控制器理念付諸實(shí)踐,更為務(wù)實(shí)的第一步是直接將兩個(gè)電控裝置合二為一。即便這個(gè)小小之舉,也能在封裝、電控裝置基礎(chǔ)結(jié)構(gòu)(電路板、接頭、電源、總線轉(zhuǎn)發(fā)器、貼裝和測(cè)試)以及線束等方面帶來大幅節(jié)省。最簡單的解決方案是將兩顆原裝單片機(jī)并排貼裝在一張電路板上,然而,最好能有一顆多核單片機(jī)為兩個(gè)應(yīng)用分別提供專用資源,以進(jìn)一步降低復(fù)雜度和節(jié)省元件成本。不過,如果有一個(gè)或多個(gè)涉及安全問題的應(yīng)用(即,在意外運(yùn)行中可能造成人身傷害的應(yīng)用),那么,必須按照最近發(fā)布的《ISO26262功能安全標(biāo)準(zhǔn)》的規(guī)定,進(jìn)行嚴(yán)格的分析、工程設(shè)計(jì)、考量和論證?!禝SO26262功能安全標(biāo)準(zhǔn)》要求硬件必須具備足夠的故障檢測(cè)能力,并且將違背任何安全目標(biāo)的可能性降到極低,才能用于這樣的安全系統(tǒng)。汽車安全完整性等級(jí)D(ASILD)的最高要求對(duì)經(jīng)濟(jì)和能耗方案是一個(gè)有趣的挑戰(zhàn)。要實(shí)現(xiàn)99%以上的單點(diǎn)故障(SPF)指標(biāo),通常要求冗余計(jì)算能力、數(shù)據(jù)失效檢測(cè)邏輯、定時(shí)器和內(nèi)存保護(hù)單元、時(shí)鐘監(jiān)測(cè)、電壓監(jiān)測(cè)和專用自檢機(jī)制。如果要靠應(yīng)用程序員來解決所有這些與硬件有關(guān)的問題,那么在運(yùn)行時(shí)執(zhí)行真實(shí)性檢查和測(cè)試就要消耗大量處理能力。如果單片機(jī)上具備多個(gè)處理內(nèi)核,則必須采取額外的措施來檢測(cè)其他CPU以及諸如DMA引擎和任何其他內(nèi)部總線主控器等其他器件對(duì)某個(gè)CPU造成的干擾。
當(dāng)安全遇上性能
通過與市場(chǎng)領(lǐng)先的一流廠商密切合作,英飛凌推出了一個(gè)全新的多核TriCore處理器家族,以滿足在計(jì)算性能、更高內(nèi)存容量、安全性和汽車質(zhì)量等方面日益增長的需求。這個(gè)命名為AURIX的全新處理器家族,是繼大獲成功的AUDO和AUDOMAX家族的后起之秀。全新設(shè)計(jì)的AURIX家族旨在以高能效、高性能的方式,提供最先進(jìn)的處理能力。TriCore內(nèi)核被重新設(shè)計(jì)為兩種不同的版本:一個(gè)是超標(biāo)量版本,可實(shí)現(xiàn)行業(yè)領(lǐng)先的300Mz性能;另一個(gè)是標(biāo)量版本,在200MHz頻率上,可實(shí)現(xiàn)最低電流消耗和最小尺寸空間,是適用于中端應(yīng)用的最高效的解決方案。這兩個(gè)版本的TriCore CPU都可實(shí)現(xiàn)鎖步,為ASIL D安全系統(tǒng)提供卓越的故障檢測(cè)能力和快速響應(yīng)時(shí)間。AURIX家族在性能、內(nèi)存容量和封裝方面的靈活擴(kuò)展性支持在不同器件之間共享一套共用安全實(shí)例,既允許在較小的器件上托管單個(gè)應(yīng)用,也允許在較大的器件上同時(shí)托管多個(gè)應(yīng)用,而無需更改軟件架構(gòu)或安全策略。這在一定程度上是由于在每個(gè)外設(shè)和每個(gè)內(nèi)部總線受控器中集成了一個(gè)獨(dú)一無二的功能,使之僅接受來自規(guī)定資源的訪問。這種機(jī)制(被稱為寄存器訪問保護(hù))(圖2)能夠永久地阻斷或允許任何CPU、DMA或其他總線主控器訪問(或可能破壞)任何內(nèi)部共享資源(SRAM、外設(shè)、IO)的狀態(tài)。這樣,用戶就可以將任何外設(shè)和內(nèi)存組合,專用于各個(gè)CPU和DMA。許多外設(shè)也實(shí)現(xiàn)了雙配置,以便托管的各個(gè)應(yīng)用擁有自己的專用資源,確保“干擾免除”,而不受任何內(nèi)存保護(hù)機(jī)制或其他與操作系統(tǒng)有關(guān)的封裝機(jī)制的影響。對(duì)主控制器軟件工程和集成分析而言,節(jié)省空間的潛力很大(~30%),因?yàn)榛旌闲团R界系統(tǒng)可以在一個(gè)內(nèi)核上為ASILD應(yīng)用托管一個(gè)AUTOSAR OS,并同時(shí)在另一個(gè)核上托管一個(gè)不啟用本地內(nèi)存或定時(shí)保護(hù)的非AUTOSAR OS,該,使得非安全應(yīng)用不可能干擾單片機(jī)的與安全有關(guān)的行為。如果想要實(shí)現(xiàn)多個(gè)ASIL D應(yīng)用,那么AURIX也可托管多個(gè)AUTOSAR操作系統(tǒng)應(yīng)用,并完全支持合作模式。全新臨時(shí)保護(hù)系統(tǒng)在CPU內(nèi)核上執(zhí)行任務(wù)時(shí)間預(yù)算監(jiān)管和中斷率監(jiān)測(cè)上提供了輔助。這樣一來,ASIL C和ASIL D系統(tǒng)也可以實(shí)現(xiàn)AUTOSAR IOC,因?yàn)橛布梢员O(jiān)測(cè)內(nèi)核之間的任何相互作用,并將之限制在預(yù)先規(guī)定的限度內(nèi)。硬件強(qiáng)制執(zhí)行封裝邊界,允許在將監(jiān)測(cè)功能集成到現(xiàn)有系統(tǒng)中時(shí),進(jìn)行直截了當(dāng)?shù)陌踩撟C,因?yàn)榭梢灾苯油茢喑?ldquo;干擾免除度”。這些機(jī)制共同提供了實(shí)現(xiàn)“半虛擬化”所需的切入點(diǎn)。“半虛擬化”是朝著全“虛擬化”和管理程序邁出的務(wù)實(shí)的第一步。因?yàn)槿缃竦钠噾?yīng)用事實(shí)上并不能提供,也不嚴(yán)格要求運(yùn)行“虛擬機(jī)”的能力。[!--empirenews.page--]
圖2:寄存器訪問保護(hù)系統(tǒng)允許向特定CPU和DMA靈活分配外設(shè)和系統(tǒng)資源,強(qiáng)制封裝好后而不受操作系統(tǒng)內(nèi)存保護(hù)機(jī)制的影響
現(xiàn)在,英飛凌最新推出的AURIX家族控制器實(shí)現(xiàn)了許多創(chuàng)新技術(shù)和機(jī)制,(圖3)是一個(gè)可靈活擴(kuò)展的解決方案,既能滿足最高性能計(jì)算應(yīng)用的要求,同時(shí)又為硬件帶來了諸多安全特性,而不再依賴于應(yīng)用級(jí)軟件。隨著汽車電子控制功能和特性不斷呈指數(shù)級(jí)增長,在一顆單片機(jī)上托管多個(gè)產(chǎn)自不同廠商、具備不同安全危險(xiǎn)程度的應(yīng)用的能力,將開啟通往新的域控制器架構(gòu)的大門,在提高系統(tǒng)可靠性的同時(shí),降低復(fù)雜度。
圖3:AURIX超集框圖顯示了兩對(duì)鎖步TriCore CPU和一個(gè)高性能TriCore,可在統(tǒng)一片上系統(tǒng)架構(gòu)中實(shí)現(xiàn)最優(yōu)性能和安全性