CAN是控制器區域網絡(Controller Area Network, CAN)的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,並最終成為國際標準(ISO 11898),是國際上應用最廣泛的現場匯流排之一。can地址的分配標準是各個網路之間不相互衝突,彼此之間能夠有效配合,佈局區域性化。
CAN匯流排的工作原理
CAN匯流排使用序列資料傳輸方式,可以1Mb/s的速率在40m的雙絞線上執行,也可以使用光纜連線,而且在這種總線上匯流排協議支援多主控制器。CAN與I2C匯流排的許多細節很類似,但也有一些明顯的區別。
當CAN總線上的一個節點(站)傳送資料時,它以報文形式廣播給網路中所有節點。對每個節點來說,無論資料是否是發給自己的,都對其進行接收。每組報文開頭的11位字元為識別符號,定義了報文的優先順序,這種報文格式稱為面向內容的編址方案。在同一系統中識別符號是唯一的,不可能有兩個站傳送具有相同識別符號的報文。當幾個站同時競爭匯流排讀取時,這種配置十分重要。
當一個站要向其它站傳送資料時,該站的CPU將要傳送的資料和自己的識別符號傳送給本站的CAN晶片,並處於準備狀態;當它收到匯流排分配時,轉為傳送報文狀態。CAN晶片將資料根據協議組織成一定的報文格式發出,這時網上的其它站處於接收狀態。每個處於接收狀態的站對接收到的報文進行檢測,判斷這些報文是否是發給自己的,以確定是否接收它。
由於CAN匯流排是一種面向內容的編址方案,因此很容易建立高水準的控制系統並靈活地進行配置。我們可以很容易地在CAN匯流排中加進一些新站而無需在硬體或軟體上進行修改。當所提供的新站是純資料接收裝置時,資料傳輸協議不要求獨立的部分有物理目的地址。它允許分佈過程同步化,即總線上控制器需要測量資料時,可由網上獲得,而無須每個控制器都有自己獨立的感測器。
CAN匯流排的應用
怎麼會為can匯流排節點分配地址
1.汽車製造中的應用
應用CAN匯流排,可以減少車身佈線,進一步節省了成本,由於採用匯流排技術,模組之間的訊號傳遞僅需要兩條訊號線。佈線區域性化,車上除掉匯流排外其他所有橫貫車身的線都不再需要了,節省了佈線成本。CAN匯流排系統資料穩定可靠,CAN匯流排具有線間干擾小、抗干擾能力強的特點。CAN匯流排專為汽車量身定做,充分考慮到了汽車上惡劣工作環境,比如點火線圈點火時產生的強大的反充電壓,電渦流緩衝器切斷時產生的浪湧電流及汽車發動機倉100℃左右的高溫。
2.大型儀器裝置中的應用
大型儀器裝置是一種參照一定步驟對多種資訊採集、處理、控制、輸出等操作的複雜系統。過去這類儀器裝置的電子系統往往是在結構和成本方面佔據相當大的部分,而且可靠性不高。採用CAN匯流排技術後,在這方面有了明顯改觀。
3.工業控制中的應用
隨著計算機技術、通訊技術和控制技術的發展,傳統的工業控制領域正經歷著一場前所未有的變革,而工業控制的網路化,更拓展了工業控制領域的發展空間,帶來新的發展機遇。在廣泛的工業領域,CAN匯流排可作為現場裝置級的通訊匯流排,而且與其他的匯流排相比,具有很高的可靠性和效能價格比。這將是CAN技術開發應用的一個主要的方向。
4.智慧家庭和生活小區管理中的應用
小區智慧化是一個綜合性系統工程,要從其功能、效能、成本、擴充能力及現代相關技術的應用等多方面來考慮。基於這樣的需求,採用CAN技術所設計的家庭智慧管理系統比較適合用於多表遠傳、防盜、防火、防可燃氣體洩漏、緊急救援、家電控制等方面。
CAN節點
CAN節點是指能夠掛接在CAN總線上的單元,並能透過CAN匯流排實現各個節點間的通訊,以實現複雜的控制過程,當前主要用於汽車的眾多感測器間通訊。
構建CAN節點
構建節點,實現相應控制,由底向上分為四個部分:CAN節點電路、CAN控制器驅動、CAN應用層協議、CAN節點應用程式。
雖然不同節點完成的功能不同,但是都有相同的硬體和軟體結構。
CAN收發器和控制器分別對應CAN的物理層和資料鏈路層,完成CAN報文的收發;功能電路,完成特定的功能,如訊號採集或控制外設等;主控制器與應用軟體按照CAN報文格式解析報文,完成相應控制。
CAN硬體驅動是執行在主控制器(如P89V51)上的程式,它主要完成以下工作:基於暫存器的操作,初始化CAN控制器、傳送CAN報文、接收CAN報文;
如果直接使用CAN硬體驅動,當更換控制器時,需要修改上層應用程式,移植性差。在應用層和硬體驅動層加入虛擬驅動層,能夠遮蔽不同CAN控制器的差異。
一個CAN節點除了完成通訊的功能,還包括一些特定的硬體功能電路,功能電路驅動向下直接控制功能電路,向上為應用層提供控制功能電路函式介面。特定功能包括訊號採集、人機顯示等。
CAN收發器是實現CAN控制器邏輯電平與CAN總線上差分電平的互換。實現CAN收發器的方案有兩種,一是使用CAN收發IC(需要加電源隔離和電氣隔離),另一種是使用CAN隔離收發模組。推薦使用第二種。
CAN控制器是CAN的核心元件,它實現了CAN協議中資料鏈路層的全部功能,能夠自動完成CAN協議的解析。CAN控制器一般有兩種,一種是控制器IC(SJA1000),另一種是整合CAN控制器的MCU(LPC11C00)。
MCU負責實現對功能電路和CAN控制器的控制:在節點啟動時,初始化CAN控制器引數;透過CAN控制器讀取和傳送CAN幀;在CAN控制器發生中斷時,處理CAN控制器的中斷異常;根據接收到的資料輸出控制訊號;
介面管理邏輯:解釋MCU指令,定址CAN控制器中的各功能模組的暫存器單元,向主控制器提供中斷資訊和狀態資訊。
傳送緩衝區和接收緩衝區能夠儲存CAN匯流排網路上的完整資訊。
驗收濾波是將儲存的驗證碼與CAN報文識別碼進行比較,跟驗證碼匹配的CAN幀才會儲存到接收緩衝區。
CAN核心實現了資料鏈路的全部協議。
CAN匯流排如何設定本節點識別符號
can協議中有規定,在某幾位傳送目的站的地址,目的站可以透過對這幾位進行選擇,自行決定是否接受該訊息,是自變成設定的。一般CAN通訊晶片都可以在暫存器裡設定自己需要接受的識別符號等A要和B通訊,A要指導B的識別符號,然後發出去,B發現識別符號正確接受,C和D讀完識別符號後選擇丟棄。
要實現CAN通訊,選擇一個合適的can控制晶片和驅動晶片即可。
怎樣為CAN總線上的節點分配地址
CAN報文裡是有ID場的,標準幀11位,擴充套件幀29位, 我設計時使用的是擴充套件幀。CAN是以資料包方式傳送資料的,通常,一包資料13位元組,第一個位元組是控制上用的,比如定義了遠端幀還是別的幀,定義了接收資料的位元組數,接下來就是ID位了,共4位元組,餘下的8位元組是資料用。以上可以認為是CAN2.0底層通訊協議所規定的。
CAN是控制器區域網絡(Controller Area Network, CAN)的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,並最終成為國際標準(ISO 11898),是國際上應用最廣泛的現場匯流排之一。can地址的分配標準是各個網路之間不相互衝突,彼此之間能夠有效配合,佈局區域性化。
CAN匯流排的工作原理
CAN匯流排使用序列資料傳輸方式,可以1Mb/s的速率在40m的雙絞線上執行,也可以使用光纜連線,而且在這種總線上匯流排協議支援多主控制器。CAN與I2C匯流排的許多細節很類似,但也有一些明顯的區別。
當CAN總線上的一個節點(站)傳送資料時,它以報文形式廣播給網路中所有節點。對每個節點來說,無論資料是否是發給自己的,都對其進行接收。每組報文開頭的11位字元為識別符號,定義了報文的優先順序,這種報文格式稱為面向內容的編址方案。在同一系統中識別符號是唯一的,不可能有兩個站傳送具有相同識別符號的報文。當幾個站同時競爭匯流排讀取時,這種配置十分重要。
當一個站要向其它站傳送資料時,該站的CPU將要傳送的資料和自己的識別符號傳送給本站的CAN晶片,並處於準備狀態;當它收到匯流排分配時,轉為傳送報文狀態。CAN晶片將資料根據協議組織成一定的報文格式發出,這時網上的其它站處於接收狀態。每個處於接收狀態的站對接收到的報文進行檢測,判斷這些報文是否是發給自己的,以確定是否接收它。
由於CAN匯流排是一種面向內容的編址方案,因此很容易建立高水準的控制系統並靈活地進行配置。我們可以很容易地在CAN匯流排中加進一些新站而無需在硬體或軟體上進行修改。當所提供的新站是純資料接收裝置時,資料傳輸協議不要求獨立的部分有物理目的地址。它允許分佈過程同步化,即總線上控制器需要測量資料時,可由網上獲得,而無須每個控制器都有自己獨立的感測器。
CAN匯流排的應用
怎麼會為can匯流排節點分配地址
1.汽車製造中的應用
應用CAN匯流排,可以減少車身佈線,進一步節省了成本,由於採用匯流排技術,模組之間的訊號傳遞僅需要兩條訊號線。佈線區域性化,車上除掉匯流排外其他所有橫貫車身的線都不再需要了,節省了佈線成本。CAN匯流排系統資料穩定可靠,CAN匯流排具有線間干擾小、抗干擾能力強的特點。CAN匯流排專為汽車量身定做,充分考慮到了汽車上惡劣工作環境,比如點火線圈點火時產生的強大的反充電壓,電渦流緩衝器切斷時產生的浪湧電流及汽車發動機倉100℃左右的高溫。
2.大型儀器裝置中的應用
大型儀器裝置是一種參照一定步驟對多種資訊採集、處理、控制、輸出等操作的複雜系統。過去這類儀器裝置的電子系統往往是在結構和成本方面佔據相當大的部分,而且可靠性不高。採用CAN匯流排技術後,在這方面有了明顯改觀。
3.工業控制中的應用
隨著計算機技術、通訊技術和控制技術的發展,傳統的工業控制領域正經歷著一場前所未有的變革,而工業控制的網路化,更拓展了工業控制領域的發展空間,帶來新的發展機遇。在廣泛的工業領域,CAN匯流排可作為現場裝置級的通訊匯流排,而且與其他的匯流排相比,具有很高的可靠性和效能價格比。這將是CAN技術開發應用的一個主要的方向。
4.智慧家庭和生活小區管理中的應用
小區智慧化是一個綜合性系統工程,要從其功能、效能、成本、擴充能力及現代相關技術的應用等多方面來考慮。基於這樣的需求,採用CAN技術所設計的家庭智慧管理系統比較適合用於多表遠傳、防盜、防火、防可燃氣體洩漏、緊急救援、家電控制等方面。
CAN節點
CAN節點是指能夠掛接在CAN總線上的單元,並能透過CAN匯流排實現各個節點間的通訊,以實現複雜的控制過程,當前主要用於汽車的眾多感測器間通訊。
構建CAN節點
構建節點,實現相應控制,由底向上分為四個部分:CAN節點電路、CAN控制器驅動、CAN應用層協議、CAN節點應用程式。
雖然不同節點完成的功能不同,但是都有相同的硬體和軟體結構。
怎麼會為can匯流排節點分配地址
CAN收發器和控制器分別對應CAN的物理層和資料鏈路層,完成CAN報文的收發;功能電路,完成特定的功能,如訊號採集或控制外設等;主控制器與應用軟體按照CAN報文格式解析報文,完成相應控制。
CAN硬體驅動是執行在主控制器(如P89V51)上的程式,它主要完成以下工作:基於暫存器的操作,初始化CAN控制器、傳送CAN報文、接收CAN報文;
如果直接使用CAN硬體驅動,當更換控制器時,需要修改上層應用程式,移植性差。在應用層和硬體驅動層加入虛擬驅動層,能夠遮蔽不同CAN控制器的差異。
一個CAN節點除了完成通訊的功能,還包括一些特定的硬體功能電路,功能電路驅動向下直接控制功能電路,向上為應用層提供控制功能電路函式介面。特定功能包括訊號採集、人機顯示等。
怎麼會為can匯流排節點分配地址
CAN收發器是實現CAN控制器邏輯電平與CAN總線上差分電平的互換。實現CAN收發器的方案有兩種,一是使用CAN收發IC(需要加電源隔離和電氣隔離),另一種是使用CAN隔離收發模組。推薦使用第二種。
CAN控制器是CAN的核心元件,它實現了CAN協議中資料鏈路層的全部功能,能夠自動完成CAN協議的解析。CAN控制器一般有兩種,一種是控制器IC(SJA1000),另一種是整合CAN控制器的MCU(LPC11C00)。
MCU負責實現對功能電路和CAN控制器的控制:在節點啟動時,初始化CAN控制器引數;透過CAN控制器讀取和傳送CAN幀;在CAN控制器發生中斷時,處理CAN控制器的中斷異常;根據接收到的資料輸出控制訊號;
怎麼會為can匯流排節點分配地址
介面管理邏輯:解釋MCU指令,定址CAN控制器中的各功能模組的暫存器單元,向主控制器提供中斷資訊和狀態資訊。
傳送緩衝區和接收緩衝區能夠儲存CAN匯流排網路上的完整資訊。
驗收濾波是將儲存的驗證碼與CAN報文識別碼進行比較,跟驗證碼匹配的CAN幀才會儲存到接收緩衝區。
CAN核心實現了資料鏈路的全部協議。
CAN匯流排如何設定本節點識別符號
can協議中有規定,在某幾位傳送目的站的地址,目的站可以透過對這幾位進行選擇,自行決定是否接受該訊息,是自變成設定的。一般CAN通訊晶片都可以在暫存器裡設定自己需要接受的識別符號等A要和B通訊,A要指導B的識別符號,然後發出去,B發現識別符號正確接受,C和D讀完識別符號後選擇丟棄。
要實現CAN通訊,選擇一個合適的can控制晶片和驅動晶片即可。
怎樣為CAN總線上的節點分配地址
CAN報文裡是有ID場的,標準幀11位,擴充套件幀29位, 我設計時使用的是擴充套件幀。CAN是以資料包方式傳送資料的,通常,一包資料13位元組,第一個位元組是控制上用的,比如定義了遠端幀還是別的幀,定義了接收資料的位元組數,接下來就是ID位了,共4位元組,餘下的8位元組是資料用。以上可以認為是CAN2.0底層通訊協議所規定的。