了解了些can总线资料,发现和其他的协议还是有点不一样的,所以写篇文章记录下
首先如果用arduino实现CAN总线的话需要两个器件,CAN总线控制器和CAN总线收发器。
https://wenku.baidu.com/view/9dddcd1b0812a21614791711cc7931b765ce7b8f.html
大概的结构是这样,CAN控制器和单片机之间通讯,好像现有的是用SPI接口,然后控制器和收发器之间用UART通讯,然后收发器之间用双绞线通讯。
选型
看到三个方案,Arduino MKR的方案用的是MCP2515做控制器 TJA1049T做收发器
seeed用的是 MCP2515做控制器MCP2551做收发器
sparkfun用的是MCP2515 做控制器MCP2551 做收发器
看起来MCP2515是一定要用的,因为这样才有arduino的库。。。
2019年05月29日 UPDATE:
买了几个can总线模块,原理图是这个,can总线确实比较好,可以多个发多个收,每个包有一个ID,不过每个节点的成本都在10块左右。
2019年09月29日 UPDATE:
今天又重新关注量一下从机数量的问题,主要的影响因素和485类似,就是从机挂多了两根线之间的等效电阻太低会导致电压将下来,无法区分0和1,看这里
写的好像是100个左右,当然还和速度有关。
网友评论