CAN和I2C哪个更好用一些
CAN和I2C哪个更好用一些 各有优缺点吧,看下实际应用适合哪种通信方式,再考虑成本因素,综合考虑下。 https://blog.csdn.net/ic2121/article/details/131115378可以参考下这里的说明 根据不同的场合选择 板内通讯IIC,板间通讯CAN dirtwillfly 发表于 2024-1-24 07:50板内通讯IIC,板间通讯CAN
精辟 dirtwillfly 发表于 2024-1-24 07:50
板内通讯IIC,板间通讯CAN
现在做了一个项目,网关和16块IO模块,本来已经用CAN设计好,结果有个大领导让用IIC,因为便宜,后来找了很多信息去佐证,发现IIC真心不适合用来做板间通讯。先不说速率问题,CAN的特性决定了他更安全更可靠,而且CANOPEN协议栈的支持让它更有闪光点。 I2C只能轮询,单主机;CAN可以抢先,不需要主机询问 这个看个人习惯吧 你的应用的话还是CAN好一点。
I2C一般用于 板内通信,CAN用于 设备间通信下图为 矿井的CAN通信模块,总的通信距离为 2000米,20KBPS
学习了,谢谢 I2C总线上通常连接的设备数量较少,一般不超过16个;而CAN总线上可以连接多达110个设备,适用于节点数量较多的系统。 相较于I2C,CAN总线协议较为复杂,开发调试需要更多专业知识。 标准I2C总线速度为100kbps,快速模式下可达400kbps,高速模式下可达3.4Mbps。 I2C协议所需的硬件成本低,只需两根信号线。 CAN协议相对I2C来说更复杂,需要更多的硬件支持,如CAN控制器和收发器。I2C则相对简单,只需要两根线即可实现通信,适用于简单的数据交换。 I2C协议简单,只需要两根线 在选择通信协议时,还需要考虑系统的可靠性、成本、复杂性和兼容性等因素。 如果你的应用需要高可靠、高速且能在电磁干扰较强的环境中稳定工作的通信总线,那么CAN总线可能是更好的选择。
另一方面,如果你的系统需要一种简单、低成本且易于实现的通信协议,并且通信速率不需要非常快,那么I2C总线可能更适合。