我想让Arduino在一个CAN网络中运作。为Arduino提供OSI模型网络层的软件存在吗?我可以想象用GPIO/ADC检测HI/低电平,并用DAC将信号发送到网络。如果没有任何额外的硬件连接,那将是很好的。我不介意有一个终端电阻要求的CAN网络,尽管。
我指的是他们中的任何一个。我的意图是保持发展环境。
如果这样的软件不存在,是否有任何技术障碍,如有限的闪存大小(同样,我不是指特定的板与某些Atmega芯片)。
发布于 2014-02-28 10:00:59
你可以写一点敲击可以驱动,但它有许多限制。
首先是时间问题,很难实现比特计时,也很难实现仲裁。
您将能够获得10 of,甚至50 of,但这将消耗大量的cpu时间。
代码本身就是一种痛苦。
您必须动态计算CRC (容易),但要实现碰撞检测和所有的时间参数是不容易的。
有一次,我为一家公司做了这件事,但这确实是个坏主意。
最好买一个芯片1欧元,并高兴。
发布于 2014-02-28 12:40:00
有几个CAN总线屏蔽板可用(例如:这和这),这将是一个更好的解决方案。这不仅仅是控制器芯片的问题,总线接口、线路驱动和电源都需要考虑。如果你有资源和技能,你当然可以用更少的钱创建你自己的棋盘或面包板。
即使你通过GPIO咬它,你将需要一些硬件mods,我相信处理总线争用检测,它将非常缓慢,可能无法与总线上的“真正的”CAN控制器互操作。
如果您的目标是在您自己设计的设备之间进行通信,而不是现成的可以使用的设备,那么您就不需要CAN了,一些专有的设备就足够了,而UART的执行速度会更快。
发布于 2014-02-28 08:59:04
我不认为这样的软件存在。CAN总线比I2C更复杂。基本上,您必须实现CAN控制器和CAN收发器的功能。有关更多细节,请参见此线程 (德文)。
或者,您可以使用其中一个罐头盾牌。另一种选择是使用BeagleBone和适当的罐头斗篷。
还请看一下AVR-CAN。
https://stackoverflow.com/questions/22089689
复制相似问题