目录
- 单总线
- 单总线电路规范
- 单总线时序结构
- 初始化
- 发送一位
- 接收一位
- 发送或接收一个字节
单总线
单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线。其特点如下:
- 一根通信线:DQ
- 异步、半双工
单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电通信只需要DQ和GND两根线。
单总线电路规范
- 设备的DQ均要配置成开漏输出模式
- DQ添加一个上拉电阻,阻值一般为5.7kΩ左右
- 若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路。(下图,接了一个MOS管)
单总线时序结构
初始化
主机将总线拉低至少480us,然后释放总线,等待15-60us后,存在的从机会拉低总线60~240us以响应主机,之后从机将释放总线。(使用绝对时间,而不是上升沿或者下降沿)
图中弯地上升是电阻弱上拉过去的。
发送一位
主机将总线拉低60-120us,然后释放总线,表示发送0;主机将总线拉低1-15us,然后释放总线,表示发送1。从机将在总线拉低30us后(典型值),整个时间片应大于60us
阴影是指在阴影这个时间段内都可以释放总线
接收一位
主机将总线拉低1~15us,然后释放总线,并在拉低后15us内读取总线电平(尽量贴近15us的末尾),读取为低电平则为接收0,读取为高电平则为接收1,整个时间片应大于60us。
当主机拉低准备读取,假设从机发的是低,那么整个总线还是低电平,15us以内读取,然后总线又被弱上拉;如果从机发的高,那会在主机拉低后,会被上拉。