单总线(1-Wire)问题

单总线(1-Wire)问题,第1张

DDRD=set1(DDRD,PD2)

PORTD=set1(PORTD,PD2)

_delay_us(1)

PORTD=set0(PORTD,PD2)

_delay_us(2)//保持至少1us

DDRD=set0(DDRD,PD2)//释放数据线

_delay_us(8)//延时使主机再15us的后阶段读取数据线

if(PIND&0x04)

顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图所示。单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。

单主机多节点示意图

单总线硬件接口


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11156752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存