CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由研發(fā)和生產汽車電子產品著稱的德國BOSCH公司開發(fā)了的,并最終成為國際標準(ISO11898)。是國際上應用最廣泛的現場總線之一。到目前為止,世界上已經擁有20多家CAN總線控制器芯片生產商,110多種CAN總線協(xié)議控制器芯片和集成CAN總線協(xié)議控制器的微處理器芯片。在北美和西歐,CAN總線協(xié)議已經成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網的標準總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機械車輛設計的J1939協(xié)議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。
近年來,隨著汽車電子技術的不斷發(fā)展,現代汽車中所使用的電子控制系統(tǒng)和通訊系統(tǒng)越來越多,如發(fā)動機電控系統(tǒng)、 自動變速器控制系統(tǒng)、防抱死制動系統(tǒng)(ABS)、自動巡航系統(tǒng)(ACC)和車載多媒體系
統(tǒng)等,這些系統(tǒng)之間,系統(tǒng)和汽車的顯示儀表之間,系統(tǒng)和汽車故障診斷系統(tǒng)之間均需要進行數據交換,如此巨大的數據交換量,如仍然采用傳統(tǒng)數據交換的方法,即用導線進行點對點的連接的傳輸方式將是難以想象的。CAN作為汽車環(huán)境中的微控制器通訊總線解決了這一問題,它在車載各電子控制裝置 ECU 之間交換信息,形成汽車電子控制網絡,作為一種多主方式的串行通訊總線,基本設計規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10Km時,CAN總線仍可提供高達5Kbps的數據傳輸速率。CAN用作汽車中的數據和控制通信的網絡,具有不可比擬的優(yōu)越性。據統(tǒng)計,目前CAN總線在汽車動力總成中占了85%的市場份額,2008年全球主要汽車生產廠商生產歐Ⅲ/歐Ⅳ排放標準以上的汽車后,采用CAN總線的汽車將超過95%。
一直以來,富士通就在16位微控制器和32位微控制器中集成了CAN控制器。為了滿足各種應用需求,提供了多通道類型的CAN:1-channel CAN(稱為單CAN), 2-channel CAN (稱為雙CAN),3-channel CAN(稱為三CAN)。 以下列出了富士通的CAN MCU (Microcontroller Unit)產品系列:
所有這些微控制器都配有閃存,并且有各種容量閃存的控制器可提供。而且,這些微控制器允許對閃存進行10,000次以上的重寫操作,以便滿足終端用戶對系統(tǒng)升級和數據變更的需要。配有閃存的微控制器和內置的CAN macro允許在閃存內通過CAN總線對閃存內的程序進行重寫。
以上數據顯示了CAN的特殊功能,它們作為車載控制器局域網絡受到了業(yè)內的關注。
這些特殊功能包括:
快速訪問 盡管總線訪問取決于數據傳輸速率,CAN卻支持1 Mbps的數據傳輸速率。這對于控制局域網比較適度。
錯誤檢測能力 CAN提升了錯誤檢測能力:它可以在傳輸過程中檢測到2個錯誤,在接收過程中可以檢測到3個錯誤。
短消息 因為消息比較短(從0到8個字節(jié)), 重復傳輸的時間也就相應地縮短了。
多主配置 使用多主設備進行的通信被用于數據傳輸。
設置總線訪問優(yōu)先級 在總線訪問中,給予最低ID No.的總線最高的優(yōu)先級。
CAN控制器的錯誤檢測
1. 發(fā)送
位錯誤(Bit Error)
單元在發(fā)送位的同時也對總線進行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時間里檢測到一個位錯誤。但是在仲裁場(ARBITRATION FIELD)的填充位流期間或應答間隙(ACK SLOT)發(fā)送一“隱性”位的情況是例外的—— 此時,當監(jiān)視到一“顯性”位時,不會發(fā)出位錯誤。當發(fā)送器發(fā)送一個被動錯誤標志但檢測到“顯性”位時,也不視為位錯誤。
應答錯誤(Acknowledgment Error)
只要在應答間隙(ACK SLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會檢測到一個應答錯誤。
2.接受
填充錯誤(Stuff Error)
如果在使用位填充法進行編碼的信息中,出現了第6
個連續(xù)相同的位電平時,將檢測到一個填充錯誤。
CRC 錯誤(CRC Error)
CRC 序列包括發(fā)送器的CRC 計算結果。接收器計算CRC 的方法與發(fā)送器相同。如果計算結果與接收到CRC 序列的結果不相符,則檢測到一個CRC 錯誤。
形式錯誤(Form Error)
當一個固定形式的位場含有1 個或多個非法位,則檢測到一個形式錯誤。(備注:接收器的幀末尾最后一位期間的顯性位不被當作幀錯誤)
富士通CAN控制器的節(jié)點狀態(tài)處理
節(jié)點狀態(tài)
NS1,NS2 (Node status bits)
無論是工業(yè)系統(tǒng)還是自動化系統(tǒng),一直以來,大多數CAN總線網絡系統(tǒng)都要求有操作系統(tǒng)。在眾多普遍使用的操作系統(tǒng)中,OSEK作為使用CAN通信的系統(tǒng)的操作系統(tǒng),近來獲得了廣泛的認可。
具有內置CAN 的富士通微控制器支持OSEK/VDX操作系統(tǒng)。日本Vector有限公司發(fā)售有osCAN 16LX和osCAN FR兩套OSEK/VDX操作系統(tǒng)。osCAN系列系統(tǒng)由一個操作系統(tǒng)的內核和車載控制單元所需的通信軟件模塊等構成。
CAN總線以其組網自由,擴展性強;自動錯誤界定,簡化了電控單元對通信的操作;可根據數據內容確定優(yōu)先權,解決通信的實時性問題等優(yōu)點,不僅在汽車控制和通信網絡中被廣泛采用,在工業(yè)控制中也將有廣闊的應用前景。