单总线协议详解
单片机学习(十二)1-Wire通信协议和DS18B20温度传感器

单⽚机学习(⼗⼆)1-Wire通信协议和DS18B20温度传感器⽬录⼀、DS18B201. DS18B20简介DS18B20是⼀种常见的数字温度传感器,其控制命令和数据都是以数字信号的⽅式输⼊输出,相⽐较于模拟温度传感器,具有功能强⼤、硬件简单、易扩展、抗⼲扰性强等特点测温范围:-55°C 到 +125°C通信接⼝:1-Wire(单总线)其它特征:可形成总线结构、内置温度报警功能、可寄⽣供电2. 电路原理图其中1和3号引脚分别连接GND和VCC,⽽⼆号引脚则⽤于使⽤1-Wire(单总线)接⼝进⾏通信。
即:3. 内部结构内部完整结构框图64-BIT ROM:作为器件地址,⽤于总线通信的寻址SCRATCHPAD(暂存器):⽤于总线的数据交互EEPROM:⽤于保存温度触发阈值和配置参数其中配置寄存器可以配置温度变化的精度值。
存储器结构当我们希望修改EEPROM中存储的内容时,我们需要先将数据写⼊到暂存器中,然后再发送⼀条指令使从机将暂存器中的数据写⼊到EEPROM中。
⼆、单总线(1-Wire BUS)由于DS18B20使⽤的通信接⼝是1-Wire,因此我们需要学习1-Wire相关的通信协议,这样才能使单⽚机和它进⾏通信。
1. 单总线简介单总线(1-Wire BUS)是由Dallas公司开发的⼀种通⽤数据总线⼀根通信线:DQ异步、半双⼯单总线只需要⼀根通信线即可实现数据的双向传输,当采⽤寄⽣供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线2. 电路规范设备的DQ均要配置成开漏输出模式DQ添加⼀个上拉电阻,阻值⼀般为4.7KΩ左右若此总线的从机采取寄⽣供电,则主机还应配⼀个强上拉输出电路3. 单总线的时序结构①初始化:主机将总线拉低⾄少480us然后释放总线,等待15~60us存在的从机拉低总线60~240us以响应主机最后从机将释放总线对应的信号时序图:②发送⼀位:主机将总线拉低60~120us,然后释放总线,表⽰发送0;主机将总线拉低1~15us,然后释放总线,表⽰发送1。
单总线协议详解

单总线协议详解单总线协议详解单总线即one-wire总线,是美国DALLAS公司推出的外围串行扩展总线技术。
与SPI、IC串行数据通信方式不同.它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
单总线是DALLAS公司研制开发的种协议由一个总线主节点、或多个从节点组成系统,通过根信号线对从芯片进行数据的读取。
每一个符合OneWire协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的家族代码和8位的CRC代码。
主芯片对各个从芯片的寻址依据这64位的不同来进行。
单总线利用一根线实现双向通信。
因此其协议对时序的要求较严格,如应答等时序都有明确的时间要求。
,基本的时序包括复位及应答时序、写一位时序、读一位时序。
在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读固或写出数据。
单总线适用于单主机系统,能够控制一个或多个从机设备。
主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。
当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。
单总线工作原理单总线器件内部设置有寄生供电电路(Parasite Power Circuit)。
当单总线处于高电平时,一方面通过二极管VD向芯片供电,另方面对内部电容C(约800pF)充电;当单总线处于低电平时,二极管截止,内部电容c向芯片供电。
由于电容c的容量有限,因此要求单总线能间隔地提供高电平以能不断地向内部电容C充电、维持器件的正常工作。
这就是通过网络线路窃取电能的寄生电源的工作原理。
要注意的是,为了确保总线上的某些器件在工作时(如温度传感器进行温度转换、E2PROM写人数据时)有足够的电流供给,除了上拉电阻之外,还需要在总线上使用MOSFET(场效应晶体管)提供强上拉供电。
SBus总线协议

SBus 总线协议一:概述SBus 总线是豪恩安全科技自行研发的一种单总线防区探测协议,使用两条线进行通信,一条是地线,一条信号线。
总线的电气参数如下:二:物理层协议时钟是单独由主机控制产生的,数据是主机和从机都可以产生。
SBus OUT 是由时钟和数据线叠加而成的,数据的发送是先发送高位,然后再发送低位。
主机和从机发送数据的时序如下图所示。
主机发送数据的时序图SCL :是周期为1200us 的PWM 信号。
主机发送:当时钟信号在高电平的时候,它也为高电平,在时钟信号为低的时候,它先拉低100us ,然后再根据当前的数据信号来进行判断是拉高电平还是拉低电平。
为0就拉低电平,为1就提高电平。
在主收从发的时候,它要在时钟的下降沿后把数值拉低100us,然后释放总线。
从机发送:是在接收完主机的地址和命令后,而进行发送的。
当时钟下降沿时,在主机的Master_SDA 拉底100us 后,Slave_SDA 再把它相应的数值发送到数据线上去。
OUT :是SDA 和SCL 叠加后的信号。
三:数据层协议SBus 是由地址,命令,校验,数值组成的。
具体所包含的位如下图所示类型模式 地址 数据 校验 回复 长度3bit 6bit 8bit 8bit 2bit类型 模式 地址 数据 校验 回复说明 距离单向距离1600m ,双向可以达到3200m 传输速率800 Bit/s 电压直流12V 电流800(mA)长度3bit 6bit 8bit 8bit 2bit●前导位:时钟,信号都为低,代表数据传输的开始。
●模式:001 模式空闲状态011 主机查询模式101 主发从收模式110 从机有发模式111 从机无发模式●地址组号组成员0 0,1,2,3,4,5,6,78 8,9,10,11,12,13,14,15高4位表示组号,低4位表示组员●数据:就是来区分现在是来进行什么查询。
命令内容如下列的对应表:数值含义0x17 不报警0x10 防拆报警0x11 入侵报警….. 保留……保留….. 保留●校验:由地址、数据(N*8 bits)所有数据累加和,取余0x7F运算后的值作为检验字节●回复:01 接收正确10 接收不正确11 从机不在。
单总线协议

单总线协议与其他所有的数据通信传输方式一样,单总线芯片在数据传输过程要求采用严格的通信协议,以保证数据的完整性。
单总线芯片在数据传输过程中,每个单总线芯片都拥有唯一的地址,系统主机一旦选中某个芯片,就会保证通信连接直到复位,其他器件则全部脱离总线,在下次复位之前不参与任何通信。
为了说明单总线数据传输的过程,以下将分4个部分对单总线数据通信传输过程进行介绍,它们分别是单总线通信信号类型,单总线通信初始化,单总线通信的ROM命令以及单总线通信的功能命令。
1.1单总线通信信号类型单总线通信协议定义了如下几种类型,即复位脉冲、应答脉冲、写0、写1、读0和读1,除了应答脉冲外,所有的信号都由主机发出同步信号,并且发送的所有的命令和数据都是字节的低位在前。
单总线通信协议中不同类型的信号都采用一种类似脉宽调制的波形表示,逻辑0用较长的低电平持续周期表示,逻辑1用较长的高电平持续周期表示。
在单总线通信协议中,读写时隙的概念十分重要,当系统主机向从设备输出数据时产生写时隙,当主机从从机设备读取数据时产生读时隙,每一个时隙总线只能传输一位数据。
无论是在读时隙还是写时隙,它们都以主机驱动数据线位低电平开始,数据线的下降沿是从设备触发其内部的延时电路,使之与主机同步。
在写时隙内,该延迟电路决定从设备采样数据线的时间窗口。
单总线通信协议中存在两种写时隙:写1和写0。
主机采用写1时隙向从机写入1,而采用写0时隙向从机写入0,。
所有写时隙至少要60us,且在两次独立的写时隙之间至少需要1us的恢复时间。
两种写时隙均起始于主机拉低数据总线。
产生1时隙的方式:主机拉低总线后,接着必须在15us之内释放总线,由上拉电阻将总线拉至高电平;产生写0时隙的方式为在主机拉低后,只需要在整个时隙间保持低电平即可(至少60us)。
在写时隙开始后15us~60us期间,单总线器件采样总电平状态。
如果在此期间采样值为高电平,则逻辑1被写入器件;如果为0,写入逻辑0。
单总线协议-以DS18B20举例

单总线协议-以DS18B20举例一、概述1-wire 单总线是Maxim 全资子公司Dallas 的一项专有技术。
与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE 不同,它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。
它具有节省I/O 口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
1-wire 单总线适用于单个主机系统,能够控制一个或多个从机设备。
当只有一个从机位于总线上时,系统可按照单节点系统操作;而当多个从机位于总线上时,则系统按照多节点系统操作。
为了较为全面地介绍单总线系统,将系统分为三个部分讨论:硬件结构、命令序列和信号方式信号类型和时序。
二、硬件结构顾名思义,单总线只有一根数据线。
设备(主机或从机)通过一个漏极开路或三态端口,连接至该数据线,这样允许设备在不发送数据时释放数据总线,以便总线被其它设备所使用。
单总线端口为漏极开路其内部等效电路如图1 所示。
单总线要求外接一个约5k 的上拉电阻;这样,单总线的闲置状态为高电平。
不管什么原因,如果传输过程需要暂时挂起,且要求传输过程还能够继续的话,则总线必须处于空闲状态。
位传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态(高电平)。
如果总线保持低电平超过480us,总线上的所有器件将复位。
另外在寄生方式供电时,为了保证单总线器件在某些工作状态下(如温度转换期间EEPROM写入等)具有足够的电源电流,必须在总线上提供强上拉(如图1所示的MOSFET )。
三、命令序列典型的单总线命令序列如下:第一步:初始化第二步:ROM命令(跟随需要交换的数据)第三步:功能命令(跟随需要交换的数据)每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。
但是,这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。
单总线通信协议原理

单总线通信协议原理
单总线通信协议是一种用于在电子设备之间进行通信的协议。
它通常用于连接多个设备,例如传感器、执行器或其他外围设备,以便它们可以相互通信并与主控制器进行数据交换。
单总线通信协议的原理涉及到以下几个方面:
1. 物理连接,单总线通信协议通常使用一根物理线路来连接所有设备。
这意味着所有设备都共享同一根线路来发送和接收数据。
这种物理连接方式可以减少硬件成本和连接复杂度。
2. 数据传输,在单总线通信协议中,数据是通过时间分割的方式进行传输的。
每个设备在特定的时间段内可以发送或接收数据。
这种时间分割的机制可以确保不同设备之间的通信不会发生冲突。
3. 碰撞检测,由于多个设备共享同一根物理线路,可能会出现数据碰撞的情况,即两个设备同时发送数据导致数据混乱。
单总线通信协议通常会包含碰撞检测机制,以便在发生碰撞时能够及时发现并进行处理。
4. 协议规范,单总线通信协议还包括了数据帧的格式、地址分
配、错误检测和纠正等规范。
这些规范确保了设备之间可以按照统
一的标准进行通信,提高了通信的可靠性和稳定性。
总的来说,单总线通信协议的原理是通过共享一根物理线路、
时间分割的数据传输、碰撞检测和协议规范来实现设备之间的通信。
这种协议在一些特定的应用场景下具有一定的优势,但也需要注意
碰撞和数据混乱等问题。
单总线协议辅助分析工具

非标准单总线协议辅助分析工具WYT一、探究背景从事电子行业的朋友,特别是从事嵌入式工作的朋友,都知道逻辑分析仪这个工具,用它来抓协议是非常方便可靠的。
基本上所有的标准总线协议,逻辑分析仪都能分析出来。
但是,对于非标准的协议,逻辑分析仪就无能为力了。
因为逻辑分析仪所分析的协议是标准的、已知的、预编程分析的。
所以,有必要对非标准的协议进行处理。
接下来,我会在本文中讨论和制作一种非标准单总线协议辅助工具。
二、单总线的特点单总线,就是主机和从机在一根线上来回传输数据。
由于只有一根线,所以数据和时钟都包含在内,它的传输时“半双工”的,即可以主机发从机收或者从机发主机收。
有两种方向但不能同时进行,所以称为“半双工”。
还有就是,总线空闲时,一定是高电平,一般需要外接上拉电阻把总线拉高。
主机和从机的通信端口一般都是配置为输入悬浮,即端口本身不接上拉电阻和下拉电阻,端口本身的电平是不确定的,所以需要外接一个上拉电阻将总线拉高。
在通信时,发送方端口被配置为输出模式来拉低电平,端口被配置为输入悬浮来释放总线;接收方的端口配置为输入悬浮、下降沿中断来检测和获取数据。
值得注意的是,单总线对时序比较敏感,如果传输的数据时序稍微有偏差,通信往往就失败。
DS18B20温度传感器就是标准单总线协议通信的,这个比较典型,网上也有很多例程和讲解,单总线入门可以从DS18B20开始。
三、非标准单总线分析的难点虽然是非标准的单总线,但其硬件方面还是跟标准的单总线一样。
不同的地方就是是传输协议了,有许多产品采用非标准单总线协议来识别自家产品,比如日本的数码相机电池、PSP掌机电池、部分手机电池等。
它们采用非标准协议主要是防止别人生产兼容产品,而且价格也是比较高的,当然对消费者是不利的。
以相机和电池通信为例。
把相机和电池的通信端子和它们的负极用线引出来,都接到逻辑分析仪上,我们会看到一大堆高低电平通信,而且还不是标准的单总线协议,根本无从下手。
单总线协议

单总线协议单总线协议简介单总线协议(Single Bus Protocol)是一种用于在电子设备中进行通信的协议。
它使用一个共享的总线来传输数据和命令,并支持多个设备同时连接到总线上。
单总线协议具有简单、低成本和灵活性等优点,因此在许多应用中得到广泛采用。
单总线协议的基本原理是将数据和命令放置在总线上进行传输。
在传输过程中,总线上的信号被不同的设备监听和解析。
由于总线上只包含一个信号线,因此所有设备必须共享这个信号线来进行通信。
这就需要在协议中定义一种机制来处理冲突,以确保各个设备能够正确地接收数据和命令。
在单总线协议中,各个设备的工作方式被划分为两种模式:主模式和从模式。
主设备负责发出命令和发送数据,而从设备负责接收命令和接收数据。
在总线上,主设备会发送一个起始位作为命令的开始,从设备会发送一个应答位作为命令的确认。
通过在总线上发送和接收不同的位和字节,设备之间可以进行复杂的数据交互。
由于单总线协议的灵活性,它可以应用于各种不同的领域。
例如,它可以在计算机系统中用于处理外围设备的通信,或者在物联网设备中用于传输传感器数据。
此外,由于单总线协议的简单性,它还可以用于一些低成本的应用,如家电控制系统和智能家居系统。
然而,单总线协议也存在一些挑战和限制。
由于所有设备共享同一个总线,因此总线的带宽可能会成为瓶颈。
此外,在数据传输过程中可能会发生冲突和错误,需要采取合适的机制来解决这些问题。
同时,由于总线上的信号线只有一个,如果其中一个设备发生故障或出现通信问题,可能会影响到其他设备的正常工作。
总之,单总线协议是一种用于电子设备通信的简单、低成本和灵活性较高的协议。
它使用一个共享的总线来传输数据和命令,并支持多个设备同时连接到总线上。
虽然它具有一些挑战和限制,但在许多应用中仍然得到广泛采用。
随着技术的不断发展,相信单总线协议将在未来发挥更重要的作用,为更多领域的设备通信提供解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单总线协议详解
单总线即one-wire总线,是美国DALLAS公司推出的外围串行扩展总线技术。
与SPI、IC串行数据通信方式不同.它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
单总线是DALLAS公司研制开发的种协议由一个总线主节点、或多个从节点组成系统,通过根信号线对从芯片进行数据的读取。
每一个符合OneWire协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的家族代码和8位的CRC代码。
主芯片对各个从芯片的寻址依据这64位的不同来进行。
单总线利用一根线实现双向通信。
因此其协议对时序的要求较严格,如应答等时序都有明确的时间要求。
,基本的时序包括复位及应答时序、写一位时序、读一位时序。
在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读固或写出数据。
单总线适用于单主机系统,能够控制一个或多个从机设备。
主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。
当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。
单总线工作原理单总线器件内部设置有寄生供电电路(Parasite Power Circuit)。
当单总线处于高电平时,一方面通过二极管VD向芯片供电,另方面对内部电容C(约800pF)充电;当单总线处于低电平时,二极管截止,内部电容c向芯片供电。
由于电容c的容量有限,因此要求单总线能间隔地提供高电平以能不断地向内部电容C充电、维持器件的正常工作。
这就是通过网络线路窃取电能的寄生电源的工作原理。
要注意的是,为了确保总线上的某些器件在工作时(如温度传感器进行温度转换、E2PROM写人数据时)有足够的电流供给,除了上拉电阻之外,还需要在总线上使用MOSFET(场效应晶体管)提供强上拉供电。
单总线的数据传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s。