1寫在前面
前面文章是從大方向介紹了CAN網(wǎng)絡,讓大家對CAN網(wǎng)絡有一定的認識。本文將范圍縮小,講述整個CAN網(wǎng)絡其中的一個CAN收發(fā)器。如下圖標記出來的部分:
本文結(jié)合眾多初學者容易產(chǎn)生的疑問來講述CAN收發(fā)器相關(guān)的知識點,大概有如下幾點:
什么是CAN收發(fā)器?
CAN總線差分信號
CAN收發(fā)器芯片和485芯片差異
2
什么是CAN收發(fā)器?
CAN收發(fā)器在整個CAN網(wǎng)絡中所處的位置如上圖所示。CAN收發(fā)器就是一塊類似232或485的轉(zhuǎn)換芯片,它的主要功能是將CAN控制器的TTL信號轉(zhuǎn)換成CAN總線的差分信號。
2.1 什么CAN控制器TTL信號?
現(xiàn)在的CAN控制器一般都與MCU集成在一起,其發(fā)送和接收TTL信號就是MCU引腳(高或低)信號。
以前還有獨立的CAN控制器,一個CAN網(wǎng)絡節(jié)點會包含三塊芯片:MCU芯片、CAN控制器、CAN收發(fā)器?,F(xiàn)在是將前兩者集成在一起了(看文章開篇圖片)。
3
CAN總線差分信號
CAN總線信號從CAN收發(fā)器出來,為「兩線」「差分」信號,用隱形代表邏輯1,顯性代表邏輯0。
1.CAN收發(fā)器兩線
芯片引腳CAN_H、CAN_L
2.CAN_H和CAN_L電壓
電壓的大小根據(jù)芯片型號而定,一般常見的CAN收發(fā)芯片有3.3V和5V兩種芯片。
如上圖,為5V CAN收發(fā)芯片,在邏輯0和邏輯1時電壓情況:
邏輯0時:
顯性,CAN_H=3.5V,CAN_L=1.5V;
邏輯1時:
隱性,CAN_H=2.5V,CAN_L=2.5V;
當然,3.3V電壓芯片的總線電壓原理類似。而實際應用中,總線電壓并非絕對的像上面說的3.5V、2.5V、1.5V這種電壓,會受到導線電阻、外界干擾等影響。
3.隱性和顯性
學過生物都知道,基因有隱性和顯性。隱性的基因?qū)嶋H存在,但不會表現(xiàn)出來。有顯性的基因就會表現(xiàn)出來。
這里CAN總線隱性信號和顯性信號道理一樣,當總線兩種信號都有時,總線表現(xiàn)出來的就是顯性信號。
提示:我們這里說的顯性和隱性信號,指的是總線傳輸?shù)腷it位信號。
所以,CAN總線平時空閑表現(xiàn)為隱性狀態(tài)。如果想要發(fā)送的信號為隱性位,那么總線才會呈現(xiàn)出來隱性。否則,只要其它有一個節(jié)點發(fā)送顯性信號,你這個節(jié)點發(fā)送出來的隱性信號就無效。
4.CAN收發(fā)器R引腳
CAN收發(fā)器R引腳就是與CAN控制器接收相連的引腳。如下圖:
R引腳的信號是表示總線當前的信號,用于控制器實時監(jiān)測總線信號。主要兩個目的:
A.監(jiān)測其它節(jié)點發(fā)送出來的信號:別人給它發(fā)送數(shù)據(jù);
B.監(jiān)測自身節(jié)點發(fā)送出去的信號:自己發(fā)送是否失敗。就像上面說的,自己發(fā)送一個隱形信號,結(jié)果監(jiān)測出來是顯性信號,那就說明是別人在發(fā)送數(shù)據(jù)。
4
CAN收發(fā)器芯片和485芯片差異
CAN通信和485通信一樣,屬于半雙工。但是,為什么CAN總線相比485通信不管在速度和穩(wěn)定性上都具有明顯優(yōu)勢呢?
4.1 總線利用率
CAN收發(fā)器工作原理與485具有較大差異。從上面的差分信號可以看得出來,兩種芯片同時存在,只有顯性信號有效,而不會影響總線傳輸。簡單來說就是CAN總線具有自動仲裁功能,這樣就提高了總線的利用率。
RS485總線是一種常規(guī)的通信總線,它不能夠做總線的自動仲裁,也就是不能夠同時發(fā)送數(shù)據(jù)以避免總線競爭,所以整個系統(tǒng)的通信效率必然較低,數(shù)據(jù)冗余量較大,對于速度要求高的應用場所不適應用RS485總線。
提示:
CAN總線沒有被發(fā)送出去的隱性信號,會由CAN控制器后續(xù)發(fā)送出去。這里牽涉到CAN總線優(yōu)先級的問題,后續(xù)進一步講述。
當然,CAN相比485具有明顯優(yōu)勢,主要原因還是在于CAN控制器。
4.2 可以不使用CAN收發(fā)器嗎?
UART可以直接通過TX連接對方的RX引腳,利用TTL信號進行通信,那么CAN也可以嗎?
答案:單向傳輸可以,雙向傳輸就不行。
原因很簡單,上面說了,CAN控制器會實時監(jiān)測發(fā)送出去的信號是否正確。也就是說TX要與RX信號一致才行,否則CAN控制器認為你發(fā)送失敗。
-
控制器
+關(guān)注
關(guān)注
112文章
16411瀏覽量
178701 -
CAN
+關(guān)注
關(guān)注
57文章
2760瀏覽量
463993 -
CANopen
+關(guān)注
關(guān)注
8文章
267瀏覽量
43624
發(fā)布評論請先 登錄
相關(guān)推薦
評論