開頭先來比較一下CAN、SPI、I2C 的差異

image

可以看出就速度上,CAN明顯低於SPI和I2C,而且屬於非同步式的

 

MCP2515

MCP2515簡單說就是SPI跟CAN中間的橋樑。如果你用的MCU沒有CANBUS模組,那就得需要一顆MCP2515。

詳細資料可以直接看MCP2515,本文章只是整理一些重點內容。 

CANBUS很適合用在汽車電子這種雜訊干擾很大的場合,因為Canbus的通訊偵測屬於差動式,

還記得以前讀電子學OPA為什麼用差動放大嗎???  也是為了避開雜訊干擾,

當你兩條走線很近的時候,雜訊不會只挑一條走線干擾,而是兩條一起受到干擾,

如下圖, CANH CANL受到雜訊干擾時,電位差保持不變~~

image

 

下圖是MCP2515的方塊圖

包含 CAN Protocol、SPI Interface 、 TX 、RX Buffers Masks and Filters、重點在於CAN Module這一塊

 

image

 

 

下圖是CANBus系統配置, 可以發現CANBus通訊只用兩條, CANH、CANL 

而且沒有像I2C那樣的Master、Slave主從式,

個人認為主從式最大的缺點就是Master掛掉 ,就完了。

就像web一樣, server掛掉你就連不上了。

 

image

 

 

下表示 MCP2515 的 PINOUT DESCRIPTION。 

TX0RTS、TX1RTS、TX2RTS : 分別代表TXB0、TXB1、TXB2    Request-to-Send(要求封包)~

RX1BF、RX0BF :接受RXB1、RXB0中斷或者當作數位輸出。

SCK、SO、SI、CS : SPI介面

image

 

如果將數個單元接再一起,溝通的順序和規劃就很重要,例如一堆人同時和你說話,你最多也只能先回復一個人。

 

image

再來看Standard Data Frame(標準資料框架),說倒底CANBus跟UART一樣都是通訊方式,只是protocol 不一樣而已。

 

SOF : Start of Frame 總也得有個開始~

ID : 識別信號提供不同的優先級

RTR: 遠程傳輸需求

Control:提供傳送之總位數

DATA:數據

CRC:檢查位

ACK:回應,讓傳訊息的人知道你有收到了

EOF:總得有個結束

image

 

 

 

 

 

 

持續更新~~~~~

arrow
arrow
    文章標籤
    MCU Microchip MCP0
    全站熱搜

    小影 發表在 痞客邦 留言(0) 人氣()