CAN協(xié)議,是Controller Area Network 的縮寫,最初這個協(xié)議是由汽車行業(yè)提出的,因為隨著汽車行業(yè)智能化的發(fā)展,汽車內(nèi)部越來越多的電子儀器,使得信號線布線越來越繁雜,迫切地需要一種簡單且可以掛載多個設(shè)備的總線協(xié)議出現(xiàn),來解決這一問題。于是在上世紀(jì)80年代末提出后,迅速發(fā)展并且于幾年后的1993年,正式成為ISO11898和ISO11519兩種國際標(biāo)準(zhǔn)協(xié)議(這兩種分別是高速應(yīng)用和低速應(yīng)用)。
既然前面提到是由汽車行業(yè)提出,并且在后來應(yīng)用中發(fā)展到其他行業(yè)的標(biāo)準(zhǔn)協(xié)議,那他就必須解決汽車行業(yè),內(nèi)部電子系統(tǒng)通信的痛點,也就是既需要通訊總線的數(shù)據(jù)線少,又需要總線能夠掛載多個設(shè)備,通訊之間的延遲不能大,還要具有能夠在復(fù)雜環(huán)境工作的能力(也就是所謂的抗干擾能力強),那么到底是如何實現(xiàn)的呢?
首先,最重要的就是CAN協(xié)議使用的兩線制(CANH/CANL)差分信號,了解485協(xié)議的應(yīng)該大致明白查分信號的意義,也就是由兩線的電壓差來表示邏輯0/1,從而傳達數(shù)據(jù),差分信號最大的好處就是抗干擾,因為干擾會導(dǎo)致兩線的電平發(fā)生類似變換,比如一個干擾在某一刻導(dǎo)致其中一條數(shù)據(jù)線電壓上升20mv,那么雙絞線中的另外一根數(shù)據(jù)線也會受到相同影響,但是兩線之間的電壓差是并沒有發(fā)生改變的,也就是并不會影響數(shù)據(jù)的正確性。同時兩線制由于數(shù)據(jù)線少,也就兼?zhèn)淞瞬季€簡潔和低成本的特點。
CAN的總線通信是通過5種類型的幀來進行的,分別是:
(1) 數(shù)據(jù)幀 :- 用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀。
(2) 遙控幀: - 用于接收單元向具有相同 ID 的發(fā)送單元請求數(shù)據(jù)的幀。
(3) 錯誤幀: - 用于當(dāng)檢測出錯誤時向其它單元通知錯誤的幀。
(4) 過載幀: - 用于接收單元通知其尚未做好接收準(zhǔn)備的幀。
(5) 幀間隔: - 用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開來的幀。
CAN總線是由信息仲裁過程的,當(dāng)所有的設(shè)備都接入到CAN總線上,前文說過,CAN總線是要能夠滿足多設(shè)備掛載的,那么就需要有一個完善的機制處理多個設(shè)備的信息收發(fā)。當(dāng)總線處于空閑時,最先發(fā)消息的單元將得到向總線發(fā)布信息的發(fā)送權(quán),而多個單元同時發(fā)送數(shù)據(jù)時,會從仲裁段的第一位開始仲裁,呈現(xiàn)顯性電平越多,則擁有更高的優(yōu)先級。
當(dāng)總線上出現(xiàn)相同ID的數(shù)據(jù)幀和遙控幀時,仲裁段的最后一位,也就是RTR位為顯性電平的數(shù)據(jù)幀將享有優(yōu)先權(quán)。
當(dāng)總線上出現(xiàn)相同ID的遙控幀或者擴展格式的數(shù)據(jù)幀在時,標(biāo)準(zhǔn)格式的 RTR 位為顯性位的將享有優(yōu)先權(quán)。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多CAN總線模塊和CAN總線網(wǎng)關(guān)產(chǎn)品的更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
1、can總線控制器局域網(wǎng)串行通信協(xié)議詳解
3、CH32FV系列32位CAN硬件過濾器應(yīng)用說明
4、CAN總線協(xié)議的技術(shù)詳解與應(yīng)用