了解了些can總線資料,發(fā)現(xiàn)和其他的協(xié)議還是有點(diǎn)不一樣的,所以寫篇文章記錄下
首先如果用arduino實(shí)現(xiàn)CAN總線的話需要兩個(gè)器件,CAN總線控制器和CAN總線收發(fā)器。
https://wenku.baidu.com/view/9dddcd1b0812a21614791711cc7931b765ce7b8f.html

大概的結(jié)構(gòu)是這樣,CAN控制器和單片機(jī)之間通訊,好像現(xiàn)有的是用SPI接口,然后控制器和收發(fā)器之間用UART通訊,然后收發(fā)器之間用雙絞線通訊。
選型
看到三個(gè)方案,Arduino MKR的方案用的是MCP2515做控制器 TJA1049T做收發(fā)器
seeed用的是 MCP2515做控制器MCP2551做收發(fā)器
sparkfun用的是MCP2515 做控制器MCP2551 做收發(fā)器
看起來MCP2515是一定要用的,因?yàn)檫@樣才有arduino的庫(kù)。。。
2019年05月29日 UPDATE:
買了幾個(gè)can總線模塊,原理圖是這個(gè),can總線確實(shí)比較好,可以多個(gè)發(fā)多個(gè)收,每個(gè)包有一個(gè)ID,不過每個(gè)節(jié)點(diǎn)的成本都在10塊左右。

2019年09月29日 UPDATE:
今天又重新關(guān)注量一下從機(jī)數(shù)量的問題,主要的影響因素和485類似,就是從機(jī)掛多了兩根線之間的等效電阻太低會(huì)導(dǎo)致電壓將下來,無法區(qū)分0和1,看這里
寫的好像是100個(gè)左右,當(dāng)然還和速度有關(guān)。