我要做的是使ATTiny IC成为1-wire总线上的从设备,并具有自己的S / N和特定功能的命令列表。
我想知道的是,是否可以使用来自arduino站点的一个线库作为从属发送数据。
例如,您可以在一个房间中有一个从属设备,其中有多种类型的传感器,它们会向主设备报告所请求的信息,或者主设备可以告诉它控制诸如百叶窗之类的东西。
问题 我是否必须监视总线并响应主机发出的请求,还要考虑普通传感器发送数据的方式?我应该以什么频率运行从站以获得最佳功能?
请注意,我不会使用寄生电源。
我要做的是使ATTiny IC成为1-wire总线上的从设备,并具有自己的S / N和特定功能的命令列表。
我想知道的是,是否可以使用来自arduino站点的一个线库作为从属发送数据。
例如,您可以在一个房间中有一个从属设备,其中有多种类型的传感器,它们会向主设备报告所请求的信息,或者主设备可以告诉它控制诸如百叶窗之类的东西。
问题 我是否必须监视总线并响应主机发出的请求,还要考虑普通传感器发送数据的方式?我应该以什么频率运行从站以获得最佳功能?
请注意,我不会使用寄生电源。
Answers:
据我所知,您在问题中链接的1-wire库仅允许充当主机,而不能充当从机。
我刚刚发布了一个库,可以将Arduino板变成1-wire从站,在这里:https : //github.com/neuoy/OneWireArduinoSlave(编辑:移到这里https://gitea.youb.fr/youen/OneWireArduinoSlave)。我在自定义的家庭自动化系统中使用了它,并且在我的设置中可以完美地工作(1线主设备DS9490R通过USB连接到笔记本电脑,并且还为Arduino(即Arduino Uno)供电。该库处理低级细节:匹配rom,字节发送和接收(实际上很难正确处理,如果没有逻辑分析仪,这几乎是不可能的)。其余的取决于您。
它完全用中断实现,所有通信都在后台执行,您可以照常并行执行其他代码,并在收到字节等时通过回调通知。将字节发送到主机也是异步的。
我还知道至少存在另一个库,https://github.com/MarkusLange/OneWireSlave,正如Ryu_hayabusa上面评论的那样。它对我不起作用(不知道是由于我的硬件设置还是其他原因),但它肯定对其他人有用,因此也值得一试。似乎该库未使用中断实现,因此您的程序在等待主机活动时被阻塞(在许多情况下完全可以接受)。