如何使用单总线?
- 一、什么叫单总线?
- 二、单总线协议?
- 三、怎么使用单总线来做开发?
- IBUTTON 钥匙读取复制设备项目
一、什么叫单总线?
1.如下图,使用单总线的传感器DS18B20
2.使用单总线的储物柜钥匙
3.定义:采用单根数据线,即传输时钟,又传输数据的通信协议。
4.硬件结构及要求,单总线实际上是一根数据线,一根GND,共两根线实现数据的传输;在使用过程中,MCU作为主机,总线需要一个连接5KΩ的上拉电阻,使得总线在空闲时处于高电平。
5.单总线适用于一个主机控制一个从机或者多个从机的系统。
二、单总线协议?
1.单总线命令序列包括
(1)第一步:初始化
1)初始化包括主机发送复位脉冲和从机发送应答脉冲两部分组成;
2)主机 发送复位脉冲时拉低总线至少480us;
3)从机响应应答脉冲时,检测到总线被释放,并由5k上拉电阻拉高,从机检测到上升沿15-60us,拉低60-240us产生响应脉冲;
(2)第二步:ROM命令(跟随需要交换的数据)
(3)第三步:功能命令(跟随需要交换的数据)
2.主机每次访问单总线设备,严格按照此命令序列,当执行搜索ROM命令()和报警搜索命令时,第三步不能再执行,需要回到第一步。
3.单总线写数据包括向单总线器件写‘0’和写‘1’;
(1)写‘0’,主机在拉低总线后,保持低电平至少60us即可;
(2)写’1’,主机在拉低总线后,在15us内释放总线,由上拉电阻拉高电平;
4.单总线读数据
(1)主机发送读数据命令后,发送读请求(拉低总线至少1us,然后释放),总线被上拉电阻拉高,从机此时发送1,则保持总线为高电平,若发送0,则拉低总线;
(2)注意:读取的每一个0 或者1,都是在主机发送读请求(拉低总线至少1us,然后释放)之后,上拉电阻拉高总线,15us内,从机改变总线状态,拉低为0,拉高为1,自主机发送读请求开始计时15us内从机把0或者1放到总线上,15us后释放总线。每读一个0或者1,至少需要60us;