一线协议概述

异步通信 串行 半双工(分时) 电平信号

定义:主机和从机通过一根数据线进行通信,在一条总线上可以挂多个器件。

特点:①没有相应的时钟线,所以是异步通信

②只有一根总线,所以是串行传输数据

③这根总线既可以传输时钟又可以传输数据,可以双向传输,但是要分时,所以是半双工通信

④有参考电平线(GND),所以是电平信号

⑤单总线上所有的命令或数据的发送都是遵循低位先发送的原则

工作原理

顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。

设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图所示:

单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。

主机和从机之间的通信主要通过3个步骤完成,分别为:初始化1-wire器件、识别1-wire器件和交换数据

由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。

通信过程

1)初始化

初始化过程由主机发送复位脉冲和从机发送应答脉冲组成。

主机拉低总线480~960ns产生复位脉冲,然后释放总线,进入接收模式。主机释放总线时,产生上升沿,从机再检测到上升沿之后,保持高电平15~60ns,然后再拉低总线60~240us产生应答脉冲。主机接收从机的应答脉冲表示从机准备完毕,开始通信。

2)写间隙(写0间隙和写1间隙)

写间隙的时间:60us~120us

所有的写间隙至少需要60us以上120us以下,并且两次独立的写间隙至少需要1us的恢复时间,两种写间隙始于主机拉低总线。在写间隙开始的15~60us期间,单总线器件(从机)采样总线电平状态。如果为高电平,则写入1,如果为低电平,则写入0。

写1时,主机要先将数据线拉低保持至少1us~15us低电平,然后在写间隙开始后的15us内将数据线拉高(释放总线)直至120us时间结束。
写0时,主机必须要将数据线拉低并保持至少60us至多120us.

3)读间隙

读间隙的时间:60us以上

从机在主机发出读间隙(主机读间隙标志:总线拉低电平1us然后释放总线)的时候,才向主机 传输数据,所以当主机发出读数据命令后,必须马上产生读间隙,以便能够顺利读到数据。所有读间隙至少60us,且两次读间隙之间至少需要1us的恢复时间。

当主机拉低总线至少1us发起读间隙,此时从机才开始发送数据。从机发送1,则为高电平,从机发送0,则为低电平。

当从机发送0时,在该读间隙结束后释放总线,总线由上拉电阻拉至高电平。从机发出数据保持有效时间15us。所以主机在读间隙期间要释放总线(此时由从机控制),并且在读间隙起始的15us内采样总线状态,获取数据。

汇总时序图

文章来自论坛汇总,reference link:

1 WIRE 总线原理总结__Wayne_的博客-CSDN博客通信协议之一线协议(1-Wire)解析_Lyttt-的博客-CSDN博客_一线通协议

串口协议(1-Wire)解析相关推荐

  1. FPGA解析串口协议帧3.0版本,增加了错误重发功能,提供仿真文件以及源码

    FPGA解析串口协议帧已经发布2个版本了,分别如下: 版本1:点击查看版本1 版本1详细介绍了串口协议帧的帧组成和设计思想,但设计粗糙,注释不详细: 版本1:点击查看版本2 版本2优化了代码,添加了详 ...

  2. 支持自定义的离线语音模块WT516P6Core 串口协议使用说明

    很多开发爱好者在应用启明云端的WT516P6Core自定义离线语音模块时,遇到最多的就是串口问题:接好线没反应,串口数据没有等等 ,这里为大家整理了一份串口协议使用说明文档供大家参考! 离线语音-支持 ...

  3. ROS实现串口GPS数据的解析与通信(这篇文章所用的代码和我买的带有ROS功能包的GPS模块的功能包的代码一样)

    我发现这篇文章所用的代码和我买的带有ROS功能包的GPS模块的功能包的代码一样!!! https://gitee.com/maxibooksiyi/gps_driver 转载自:https://blo ...

  4. FPGA学习笔记_UART串口协议_串口接收端设计

    FPGA学习笔记 1. UART串口协议以及串口接收端设计 1 原理图 2 Verilog 代码 3 Modelsim仿真 4. FPGA板级验证 1.1 串口协议接收端设计 目标:FPGA接收其他设 ...

  5. 蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 --传统蓝牙串口协议SPP演示以及实现原理

    零. 概述 主要介绍下蓝牙协议栈开发板跑传统蓝牙串口协议SPP AT指令以及上位机操作步骤,以及原理 一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ...

  6. FPGA实现图像任意位置显示,串口协议控制显示位置,提供工程源码和技术支持

    目录 1.图像任意位置显示理论基础 2.设计思路和架构 3.OV5640图像采集 4.图像DDR3三帧缓存 5.图像任意位置输出显示 6.串口协议控制显示位置 7.vivado工程介绍 8.上板调试验 ...

  7. Modbus协议介绍及解析

    Modbus协议介绍及解析 1.Modbus简介 Modbus是一种广泛应用于工业控制领域串行通信协议,以其开放性.高可靠性.高效简单性.免费等优点,成为了工业领域通信协议的业界标准,是工业现场电子设 ...

  8. 自定义协议的命令解析器

    文章目录 前言 Switch...case类型命令解析的弊端 程序的改进目标 对命令解析器的分析 命令解析器的代码示例 用于代码工程需要解决的问题 可用于代码工程的命令解析器实现 一些新的认识 前言 ...

  9. 【题目】一个信道的比特速率为4Mbps,信号的传播延迟为20ms,数据帧的大小为10^4比特,采用滑动串口协议,不考虑帧的生成时间,支持捎带应答,那么帧序号应为多少bit?

    [题目]一个信道的比特速率为4Mbps,信号的传播延迟为20ms,数据帧的大小为10^4比特,采用滑动串口协议,不考虑帧的生成时间,支持捎带应答,那么帧序号应为多少bit? [答案] 以上答案为本人考 ...

  10. 流媒体-RTMP协议-rtmpdump-flv封装解析(一)

    流媒体-RTMP协议-rtmpdump-flv封装解析(一) 流媒体-RTMP协议-librtmp库学习(二) 流媒体-RTMP协议-librtmp库学习-c++多线程实现rtmp推流flv文件(三) ...

最新文章

  1. 计算机四级操作系统原理知识汇总,2015年全国计算机四级《操作系统原理》考试内容...
  2. boost::signals2::signal_type相关的测试程序
  3. 不带头结点链表,尾部插入法创建
  4. 龙芯3A5000初样顺利交付流片
  5. 2012-11-25学习笔记
  6. 大道至简——软件工程实践者的思想 读后感3
  7. GreenDao 配置和使用
  8. 兼容firstChild和firstElementChild
  9. 检测相机视野中的物体运动并用Mask显示
  10. 天锐绿盾加密软件支持域控吗?
  11. Linux下9种优秀的代码比对工具推荐
  12. 抑郁症患者在回忆自传体记忆时的脑电特征
  13. 饥荒无条件制作下载_饥荒巨人国无条件制造版
  14. 2019年西南交大计算机专硕
  15. 【消息中间件MQ分享】
  16. Excel怎么将加粗文本数据提取出来
  17. vue项目中解决打开新页浏览器拦截的问题
  18. 【linux命令】linux命令笔记
  19. MYSQL压力测试工具
  20. 数值分析——两点三次Hermite插值

热门文章

  1. Stretched link
  2. Amlogic T972 AOSP 编译服务器搭建
  3. matplotlib笔记三:表格样式
  4. hexo博客绑定自己的域名
  5. 【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
  6. FPGA量子类比机制-FPQA,将在量子运算设计中引发一场新的革命
  7. 控制键盘,python代码
  8. Python smtp发邮件提示错误554, b'DT:SPM 163 smtp1
  9. Linux int64类型,C++ 中_int64的用法
  10. 四字弟弟领衔主演的《长安十二时辰》数据可视化分析