Pages

CAN BUS - 特色與應用實例

智慧型網路設備 CAN BUS特色與應用實例 

由於汽車產業不斷追求安全可靠 、極致性能、 舒適方便 以及低成本等需求 ,而汽車內高複雜的系統網路,使得線束過於龐大,導致成本提高且網路架構也難以持續提升。
於是德國 Bosch在 1985年提出 CAN BUS(Controller Area Network),不但解決車內線束持續增加的問題,還為日後可靠且有效率的網路系統墊定了基礎。 1993年更制定為標準化 (ISO-11898) ,由於具有高可靠性和錯誤檢測能力,也被廣泛應用在船舶、航空電子、大眾交通 、 農用設備、醫療設備 、 工業控制等等。

自成一格的標準化設定

CAN BUS 的架構與特色 CAN BUS 是一種串列雙線式差動傳輸的技術規格 (圖 1) , MCU( Machine Control Unit ) 負責運算資料,經由 CAN Controller處理運算後的資料並傳送位元「 0」或「 1」,透過 CAN Transceiver的轉換由 CAN High和 CAN Low產生差動訊號 (圖 2),其中 CAN High電壓減 CAN Low電壓小於 0.5V代表邏輯狀態為「 1」,而 CAN High電壓減 CAN Low電壓大於 0.9V代表邏輯狀態為「 0」,所以圖 2中傳送位元串為 101。藉由差動的方式可以避免雜訊的產生,而終端電阻 120歐姆則是防止訊息傳送後反射造成的干擾。

CAN BUS 上最小單位為節點 (Node) ,每個節點都可以主動發送訊息到匯流排上,也可以要求特定節點回傳訊息,並不限定於只有一個主控端。每個訊息 (Message)都是以識別子欄位 (ID Field )為起頭,以識別值決定發送訊息的優先權,數值越小優先權越高。所以訊息的傳遞並不是定義在節點,而是定義在訊息上,由於是串接的架構加上識別子 (ID)的判定機制,所以軟硬體不需要做修正就能夠輕易增加或移除節點,不但降低了佈線成本也降低了維護的複雜度,這種多主控端架構成就更完整的智慧型網路設備。
訊息傳遞可透過節點上的設定,使訊息可以被每個節點接收至緩衝器內,也可以選擇對該訊息置之不理。 CAN BUS也支援遠端數據請求,當該訊息識別值符合節點內部的識別值,且該訊息是遠端訊息 (Remote Message)時,指定的節點會將相符的資料傳送出去。用戶便可利用這功能,來進行節點與節點間的溝通。
在 CAN BUS 上,傳輸速度最快可達 1Mbps ,用戶可藉由修改位元時序設定來修改傳輸速度,而傳輸距離隨通訊速度增加而遞減,例如當通訊速度 40Kbps 時 , 通訊距離可達 1 公里 ; 當通訊速度 1Mbps 時,通訊距離最遠可達 40 公尺,據此用戶可依照本身的應用做調配。

值得信賴的幫手

強大的容錯能力 CAN BUS 協定具有相當可靠的錯誤處理和檢錯機制,這些都是屬於硬體自動偵測反應,在此種機制下 , 網路訊息的傳輸不但有效率且使用起來更加方便 。
  • 自動重傳
    當匯流排上的節點偵測到錯誤時,硬體會自動重新發送該訊息到匯流排上,直到該訊息有任何節點回應 ACK (Acknowledged) 後,該訊息才會停止發送。
  • 錯誤偵測
    CAN BUS 提供了五種錯誤偵測機制,分別為位元錯誤 (Bit Error) ,填充位錯誤 (Stuff Error) ,循環冗餘碼校驗 (CRC Error) ,格式錯誤 (Form Error) ,回應錯誤 (Ack Error) ,利用這些錯誤偵測機制,使得匯流排上的傳輸更加穩定,而不需用戶介入。
  • 錯誤通知
    偵測到錯誤發生時,節點會發送錯誤訊息( Error Message )到匯流排上,使得匯流排上的所有節點都知道此時有錯誤發生,以便作出相對的反應,包括重傳或停止發送等。
  • 錯誤恢復與排除
    在 CAN 協定中規範了每個節點都有傳送錯誤記數器 (TEC: Transmit Error Counter) 和接收錯誤記數器 (REC: Receive Error Counter) ,根據 TEC 和 REC 的值來決定目前節點為何種狀態,一旦 TEC 大於 255 ,硬體會讓該節點離線且暫時不接收與發送訊號到匯流排上,待特定情況發生時,用戶才可將該節點重新初始化,並重新開始監控匯流排上的訊號,如此一來,可避免因各別節點使匯流排發生嚴重錯誤,影響其他節點的傳輸。

無限可能的應用系統 CAN BUS 的應用實例

  • 電梯系統( Elevator )
    傳統的電梯系統採用繼電器邏輯線路,有著線束過多且維護不便等問題,改換成以 CAN 建構系統,不僅大幅減少線束,增加系統可靠度,更有著建構簡單,便於系統偵錯等優點。
  • 橋樑應變規( Strain Gage )
    有鑑於天然災害頻傳,所以藉由橋樑應變規來監控橋樑的健康度,以避免人員及車輛傷亡。但傳統應變規多半置於橋上,需要人員到場而無法遠端監控。利用 CAN BUS 低速時傳輸距離長的特性,可將規劃區域內的橋樑上放置應變規,並連接至 CAN BUS 以回傳監控中心監控橋樑情形,大幅減少人力成本。
  • 車用監控系統( Recorder with car information )
    由於車禍肇事頻傳,使用行車紀錄器掌握前方路況,作為車禍佐證的功能。但監視器只能錄取前方路況影像,而無法有效掌控本身行車內部的資訊,如目前車速,油門狀態等。運用 CAN 處理行車資訊,再由 SPI(Serial Peripheral Interface) 、 I2C(Inter-Integrated Circuit) 等高速介面傳給錄影監視器,便可在每段錄影畫面加上目前車內資訊,成為車禍事端更有利的證據。
  • 車用診斷系統( OBDII )
    OBDII (On Board Diagnosis - II ) 為一種車輛發生故障時,產生故障警示訊號,提醒駕駛人進廠維修的協議。我們可以使用支持 CAN 的 MCU 來實現,利用 USB(Universal Serial Bus) 裝置和 CAN 來建構診斷系統,可隨時將 OBDII connector 接上汽車匯流排,並將其接收訊息透過 USB 傳送到電腦,配合電腦端程式來診斷汽車內部異常訊號,進而加速汽車維修速度。

使用方便簡單 CAN BUS 示範系統

因為 CAN BUS具有高擴充性 、高可靠度且即時性強和低成本等特性,不僅成為車用網路系統發展技術的核心關鍵,更在其他產業發揮了強大而顯著的技術能力。為了能更瞭解 CAN BUS整體的運作, 在此使用普遍常見的 M0 MCU,示範一個以 CAN BUS傳遞控制命令與狀態訊息的馬達控制系統 (圖 3),其中 NUC140 Tiny Board、 Learning Board No.1/No/2和 Motor Driving Board分別為 CAN匯流排上不同的節點,利用電腦 USB連接 NUC140 Tiny Board,透過 NUC140微處理器解碼轉換成 CAN的訊息,以實現電腦與 CAN BUS的連結,而各節點可發送與接收系統運作狀態和控制命令。因此在示範系統中,透過 CAN BUS的連結與 NUC140微處理器的轉換,各節點均可接收到馬達的即時狀態訊息,並顯示在板子上的 LCD螢幕或者電腦上的人機介面,實際運作情形可連 http://www.youtube.com/watch?v=rpJ60b9mzOk 觀看示範影片 (本連結引用自 YouTube)。
 (作者: 新唐科技微控產品軟體設計二部 工程師 張中禹)
Contact us:NuMicro@nuvoton.com
從 Evernote 傳送記事

沒有留言: