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命令,报警搜索命令除外)。
单主机多节点示意图
单总线硬件接口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)