滿足汽車電子應用需求 MCU實現CAN安全機制

2009-03-31
近幾年各國政府對行車安全的關注有增無減,除了針對胎壓、E911緊急救援愈加重視外,也在安全氣囊、電動助力轉向系統上多所著墨。而微控制器由於左右相關系統好壞,因此也成為業界大力布局的所在。
近期在各國政策帶動之下,專門用於車輛安全相關應用的微控制器(MCU)需求也隨之水漲船高。特別是安全氣囊與電動助力轉向系統(Electric Power Steering, EPS)的應用,皆需高精度微控制器的協助,才能達到保護駕駛與乘客的目標,因此業界對此也極為重視。  

對車主來說,安全汽囊雖是維繫生命之重要配備,但若在不當時機啟動,甚至反而可能帶來更大危機;而EPS同樣與駕駛與乘客安全息息相關。  

日前業界推出一款新微控制器產品,該產品設計以具高度可升級性、軟、硬體的重覆使用,以及與整體汽車電子安全系統的相容性為著眼。該微控器家族系列產品使用一個高效的中央處理器(CPU)與一個完整的周邊組件。再加上多重控制區域網路(MultiCAN)模組,可有效支援安全應用,再利用硬體加以補強,以達成特定軟體與CAN軟體的特定安全要求。  

多重控制區域網路強化網路節點控制  

在此微控制器系列產品加入的MultiCAN模組(圖1),該模組為一個可以升級的模組,單一模組可以提供最高總數四個並符合ISO 11898 CAN的節點。如此一來,訊息物件總數即可以到達一百二十八個,並經由CAN的節點分享完整傳遞訊息。  

圖 1 已問世之微控制器MultiCAN模組,具有最多可達四個的節點,可以處理多達一百二十八個訊息物件。

在實作中,多使用一個連結清單將訊息分派給一個特定的節點,這使得系統規畫具有較高彈性。而相互連結的訊息物件則用以建立獨立自主的閘道功能;沒有分配給特定節點的訊息則可以使用先進先出(FIFO)結構來分配訊息。所有節點均支援分析器的功能,可以依此連接到母線系統,成為系統的被動元件。  

先進先出加速訊息仲裁  

至於彈性的先進先出結構,則可以指定訊息至特定節點,以加速訊息仲裁。一般來說,所有經由CAN節點所分享的訊息物件,均可以個別且獨立的分派到某一個清單,而每個節點有其特定的清單。例如清單1連結到節點0、清單2連結到節點1等。清單0則是容納所有未被分派訊息的另一份額外清單。  

在設計中,這些清單通常以雙鏈結的清單結構來建置。這樣的安排使得不同的控制區域網路節點上使用訊息物件具有高度的彈性。同時,尚未使用的訊息物件,則可用於先進先出結構。這些先進先出的訊息物件可以指定給特定的控制區域網路節點,也可以指定到一個未使用節點的清單。這樣可以加速訊息物件的仲裁,因為進入一個節點的訊息只與指定於特定清單的訊息物件比較以進行匹配。當然,這些使用先進先出方式分類的訊息必須連結到特定的節點。  

閘道功能降低CPU負載  

許多車輛系統設計人員,經常在一個內嵌式的應用中搭建多個CAN,並依據不同的應用以不同的速率執行。有些訊息須要由一個母線系統傳送到另一個,因此該功能應用若使用閘道功能,將是一項有趣的功能,而且閘道功能也可以與先進先出功能合併使用。  

如自高速的CAN母線傳送一筆高頻率的訊息到低速的CAN母線就是一例,如此一來,統合的使用閘道與先進先出功能,可以在無任何額外CPU負載的情況下傳送這些訊息(圖2)。  

圖 2 經由閘道的功能自主的傳送CAN訊息毋需額外的CPU負載。

分析器模式延伸偵測功能  

通常連結到一個CAN的所有節點均參與其通訊模式,也就是須進行訊息回應。

但在分析器模式中,CAN節點毋須加入並可主動參與通訊協定,而延伸出監聽主線訊息之功能。這個功能對於許多應用具有其價值。  

例如,該節點可在不干擾母線的狀態下偵測傳輸速率,也可以用於作用中CAN實體的接點之上。還有其他有利的功能,如同步化分析、驅動器延遲的測量等。

此乃用於測量真實影框時效,並且允許在實體的CAN母線應用時調整時間值。

還可取得偵得錯誤的詳細資料,這為系統開發人員解釋發生錯誤的可能原因。在實作上,由於可提供所有錯誤紀錄的可讀取資料,並簡化錯誤警示層次,因此即能輕易得知最後錯誤碼(LEC)的字元欄位,協助找出錯誤。  

除此之外,安全應用的分析器模式也同受重視。由於安全應用的特別要求包含重要路徑的備援元件,且CAN的重要路經中具有節點與接收器,因此若經由節點移轉的訊息中斷,或是母線上其他節點的通訊可能被干擾,就需要獨立節點使用不同的設定以偵測錯誤。  

市面上已有業者推出四個獨立節點的微控制器產品,該產品使用兩個CAN節點與兩個獨立的CAN收發器(圖3),可偵得由實體CAN母線傳送的錯誤。第二個CAN則以分析器模式監聽母線,但沒有主動的參與協定。這種配置的好處為由收發器造成錯誤也可以測得;壞處則是成本較高。

圖 3 完整的備源路徑可以分析器模式偵測,包括CAN收發器中的中斷或受干擾的移轉訊息。

反之,另一種配置方式是不考慮第二個CAN收發器(圖4)。雖然此種配置成本比較經濟,但是卻無法偵測收發器的錯誤。在兩種情況下,節點均以不同步的方式運作,因為內部的通訊協定處理器多半依序從訊息物件要求資料,因此為測試接收的資訊是否正確,可以使用軟體比較兩個不同訊息物件。分析器模式甚至可以找出協定處理器與訊息記憶間的問題。  

圖 4 具備成本效益的的備源路徑,可以分析器模式偵測中斷或受干擾的移轉訊息。

硬體配置有助提升安全性

在一個嵌入式的安全應用裡,軟體具有重要的地位。 因為軟體總能處置「不被信任的特別議題」,並進而達成安全需求。其他整合入微控器的特定硬體元件也須支援此一需求的達成,硬體功能列舉如下:  

記憶保護單元
  記憶保護單元(MPU)用以分離個別的軟體工作,使其在各自分配的記憶體空間中執行。並將避免使用其他未經分配給該工作的記憶體,且可啟動監控器為外部的監控者,可中斷發生問題的工作、中斷安全路徑甚或重設微控器等進一步的安全防護方式。微處理器(MPU)用於分離程式的記憶體空間,並在資料與輸入/輸出(I/O)記憶體空間控制讀入、寫入與執行記憶體的取用。

循環冗餘檢查碼/記憶體檢查模組
  為確保儲存資料,如程式的完整性,使用循環冗餘檢查碼(CRC)是必要的。一般作法是,計算一個資料區塊的CRC數值,並儲存在安全的位置,一旦須要檢查資訊的正確性時,即重新計算CRC,並與原先儲存的CRC值比對。這項工作可以在啟動時進行,或在程式執行時定期進行。

當然,CRC也可以用於CAN中,用以取得一個資料通訊,或者當需要最大資料完整性時取得單一安全的重要資料。CRC計算可以使用特定軟體以加快其運算速度,並且減輕CPU的負荷,例如與直接資料存取(DMA)共同使用。至於CRC檢查,除啟動周邊設備外,也可以在背景執行而毋需CPU的參與。

快閃與隨存記憶體錯誤更正碼
  當在一記憶體空間使用CRC機制,並且由CPU啟動,以CRC取得記憶體的內容時,可以經由在記憶模組中自行加入這個機制,以繼續CRC之運作。儲存的每筆單一資料均由另外儲存的錯誤修正碼(ECC)進行多項式計算,並加以保護。

使用多項式計算封包內容所計算出來的值,一旦發現無意的資料改變,即可進行偵測,並且在資料傳送給CPU之前自動修正資料,這也正是CRC與ECC間的主要差異。例如偵測出兩個字元錯誤,而可修正其中一個字元。這取決於使用的多項式與記憶體中儲存的ECC值。

在記憶體寫入的過程中,產生一ECC資料值,除了寫入資料也另行儲存。在任何讀出作業中,資料的值將被重新計算,然後自動與記憶體中儲存的資料值進行比對。這個機制是經由硬體加入,沒有占用系統所看的到的額外母線迴路。目前ECC通常使用於快閃記憶體,但若是有安全需求,也可以應用於隨取記憶體。

良好的微控器產品須支援多個並聯的CAN網路,可以為安全性要求高的系統量身訂做。閘道的功能讓不同的CAN網路可以相互連結,而MultiCAN分析器模式則可用於擴大備援機制,以偵測潛在錯誤。幾項額外功能如最後錯誤碼字元欄位、所有錯誤記錄器均可讀取,並可彈性地簡化錯誤警示層次、提供潛在錯誤的可見度。其他重要的功能如MPU、CRC與ECC等,亦可用於偵測重要危害,以讓程式安全執行。

因此,唯有整合多種軟、硬體的完整系統,才能保證CAN系統適用於汽車電子應用的需求。

 

(本文作者任職於英飛凌)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!