第二章-1-Wire通信协议复习课程

合集下载

1-WIRE总线详解

1-WIRE总线详解

1-WIRE总线详解。

讯号线会连接一个4.7K 欧姆的Pull-High 电阻,电阻再接到电源(3V 到5.5V)。

1-WIRE 总线传输使用的速度有标准速度与高速两种。

每个1-WIRE 总线有独立的64 位辨识码以供装置辨识用,因此最多可以连接1.8*1019 个装置,几乎是无限制。

1-WIRE 常见的应用是在EEPROM 上与一些传感器界面上。

1- WIRE 的速度有标准:1MHz(1us),高速:5MHz(0.2us).1-WIRE 有四种数据包:1.Reset:每个通讯周期都是由Reset 讯号开始。

Master 会先发送Reset Pulse 让所有在1-WIRE 上的Slave 装置进入辨别状态,当一个Slave 或很多个Slave 接收到Reset Pulse 讯号之后,Slave 会回传一个Presence Pulse 讯号,用来表示接收到。

2.Write 0:发送一个0bit 给Slave(Write 0 time slot)。

3.Write 1:发送一个1bit 给Slave(Write 1 time slot)。

4.Read Data:Read Data Sequences 很像Write 1 Time Slot,但是在Master 释放总线线并且从Slave 装置读回数据后,Master会取样Bus 的状态,透过这种方法Master 可以从Slave 读回任何0 或1 的bit。

Reset:一开始Master 要跟Slave 做任何通讯时,Master 会先传送一个低准位的Reset Pulse(TX)of(标准速度:480us;高速:48us)的一段时间。

接着Master 会释放出总线线并进入接收模式(RX),1-WIRE Bus 会透过上拉电阻将准位拉回High 状态。

然后Master 在Data Line 上会侦测到Rising Edge,此时任何一个Slave 会等待一段时间()(标准速度:15-60us;高速:2-6us)并且传回一个Presence Pulse()(标准速度:60-240us;高速:8-24us)给Master。

wire总线的基本通信协议protues

wire总线的基本通信协议protues

wire总线的基本通信协议protues Wire总线的基本通信协议——ProteusProteus是一款功能强大的电子设计自动化(EDA)软件,广泛应用于电子电路设计、仿真和调试等领域。

在Proteus中,Wire总线是常用的通信协议之一。

本文将介绍Wire总线的基本通信协议以及在Proteus中的应用。

一、Wire总线的基本通信协议Wire总线是一种串行通信协议,常用于短距离通信和连接多个设备。

它采用两根传输线,分别为SCL(串行时钟线)和SDA(串行数据线),通过数据的时序传输来完成通信任务。

在Wire总线中,通信的发送和接收是由主设备(Master)和从设备(Slave)之间的交互完成的。

主设备负责发起通信并控制通信的时序,从设备则被动响应主设备的指令并提供相应的数据。

具体的通信流程如下:1. 主设备发送起始信号(Start):主设备将SDA线从高电平拉低,然后将SCL线拉低,表示开始一次通信。

2. 主设备发送从设备地址和读/写信号:主设备将从设备的地址通过SDA线发送,并指定是读操作还是写操作。

3. 从设备响应主设备信号:从设备接收到地址后,将ACK信号(应答信号)通过SDA线发送给主设备,表示接收到地址。

4. 主设备发送数据:主设备将要发送的数据通过SDA线发送给从设备。

5. 从设备响应主设备信号:从设备接收到数据后,通过SDA线发送ACK信号给主设备,表示接收到数据。

6. 主设备发送停止信号(Stop):主设备将SDA线由低电平拉回高电平,然后将SCL线拉高,表示通信结束。

通过以上的通信流程,主设备和从设备可以实现数据的交互和控制的传输。

Wire总线的通信协议简单易懂,适用于各种场景。

二、Wire总线在Proteus中的应用在Proteus软件中,我们可以通过添加Wire总线来模拟电子电路中的通信过程。

下面将以一个简单的实例来介绍Wire总线在Proteus中的应用。

假设我们需要设计一个由主控芯片和多个从设备组成的系统。

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

单片机学习(十二)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。

1-Wire总线技术的通信特点及其应用

1-Wire总线技术的通信特点及其应用

Th mm u ia in a a t r t f - i sT c n lg e Co nc t sCh r ce i i o W r Bu e h oo y o sc 1 e
GU O i LIBi Le , n
( c o l f tmainW u a i . f e h, h n4 0 7 , ia) S h o Auo t h nUnv o T c . o o Wu a 3 0 0Chn
Ab t a t s r c :DALLAS Co p r to ’ 1 W ie b st c n l g a n o r o a i n S - r u e h o o y h s i c mp r b e a p i a i n p o pe tb c u e isc r u ti i l .n a a l p lc to r s c e a s t ic i ss mp e a d wih f we ,h r wa e e p n e .1 W ie b s t c ol g a e u e n t e c r e s s e a d f ri e t i a i n o e t e r a d r x e s s 一 r u e h o y c n b s d i h ha g y t m n o d n i c to f t f h i e t y 1 W ie Sc d n i . 一 r ’ ommu i a i n i e i b e a d smpl , t p l a i n e a t n c to sr la l n i e isa p i to x mpl sa s r s n e n t e p p r c e i lo p e e t d i h a e . Ke wo d :1 W ie b s c mm u i a i n p o o o ; u c s i n; S1 b 0 y r s 一 r u ; o n c to r t c l s c e so D 8 2

用软件实现1-Wire-通信

用软件实现1-Wire-通信

摘要:在没有专用总线主机(如DS2480B、DS2482)的情况下,微处理器可以轻松地产生1-Wire 时序信号。

本应用笔记给出了一个采用…C‟语言编写、支持标准速率的1-Wire主机通信基本子程序实例。

1-Wire总线的四个基本操作是:复位、写“1”、写“0”和读数据位。

字节操作可以通过反复调用位操作实现,本文提供了通过各种传输线与1-Wire器件进行可靠通信的时间参数。

引言在没有专用总线主机的情况下,微处理器可以轻松地产生1-Wire时序信号。

本应用笔记给出了一个采用C语言编写、支持标准速率的1-Wire主机通信基本子程序实例。

此外,本文也讨论了高速通信模式。

要使该实例中的代码正常运行,系统必须满足以下几点要求:1. 微处理器的通信端口必须是双向的,其输出为漏极开路,且线上具有弱上拉。

这也是所有1-Wire总线的基本要求。

关于简单的1-Wire主机微处理器电路实例,请参见应用笔记4206:"为嵌入式应用选择合适的1-Wire主机"中的1类部分。

2. 微处理器必须能产生标准速度1-Wire通信所需的精确1µs延时和高速通信所需要的0.25µs延时。

3. 通信过程不能被中断。

1-Wire总线有四种基本操作:复位、写1位、写0位和读位操作。

在数据资料中,将完成一位传输的时间称为一个时隙。

于是字节传输可以通过多次调用位操作来实现,下面的表1是各个操作的简要说明以及实现这些操作所必须的步骤列表。

图1为其时序波形图。

表2给出了通常线路条件下1-Wire主机与1-Wire器件通信的推荐时间。

如果与1-Wire主机相连的器件比较特殊或者线路条件比较特殊,则可以采用最值。

请参考可下载的工作表中的系统和器件参数,确定最小值和最大值。

表1. 1-Wire操作图1. 1-Wire时序图表2. 1-Wire主机时序计算这些值的工作表可供下载。

代码实例下面代码实例都依赖于两个通用的'C'函数outp和inp,从IO端口读写字节数据。

1-wire总线的基本通信协议(protues)

1-wire总线的基本通信协议(protues)

1-Wire总线的基本通信协议作为一种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。

为了不引起逻辑上的冲突,所有从器件的1-Wire总线接口都是漏极开路的,因此在使用时必须对总线外加上拉电阻(一般取5k>左右)。

主机对1-Wire总线的基本操作分为复位、读和写三种,其中所有的读写操作均为低位在前高位在后。

复位、读和写是1-Wire总线通信的基础,下面通过具体-程序详细介绍这3种操作的时序要求。

(程序中DQ代表1-Wire 总线,定义为P1.0,uchar定义为unsigned char)11-Wire总线的复位复位是1-Wire,总线通信中最为重要的一种操作,在每次总线通信之前主机必须首先发送复位信号。

如程序1.1所示,产生复位信号时主机首先将总线拉低480-960μs然后释放,由于上拉电阻的存在,此时总线变为高电平。

1-Wire总线器件在接收到有效跳变的15-60μs内会将总线拉低60>240μs,在此期间主机可以通过对DQ采样来判断是否有从器件挂接在当前总线上。

函数Reset()的返回值为0表示有器件挂接在总线上,返回值为1表示没有器件挂接在总线上。

程序1.1总线复位在DS18820中共有三种存储器,分别是ROM、RAM、EEPROM,每种存储器都有其特定的功能,可查阅相关资料。

31-Wire总线ROM功能命令在DS18820内部光刻了一个长度为64bit的ROM编码,这个编码是器件的身份识别标志。

当总线上挂接着多个DS18820时可以通过ROM编码对特定器件进行操作。

ROM功能命令是针对器件的ROM编码进行操作的命令,共有5个,长度均为8bit(1Byte)。

①读ROM(33H)当挂接在总线上的1-Wire总线器件接收到此命令时,会在主机读操作的配合下将自身的ROM编码按由低位到高位的顺序依次发送给主机。

总线上挂接有多个DS18820时,此命令会使所有器件同时向主机传送自身的ROM编码,这将导致数据的冲突。

1-Wire(单线)概述

1-Wire(单线)概述
达拉斯半导体公司的 1-Wire 总线是一种简单的信号交换方式,它是在主机与外围器件 之间通过一条线路进行双向通信。所有的 1-Wire 总线器件都具有一个共同的特征:无论是 芯片内还是 iButton 内,在出厂时每个器件都有一个与其它任何器件互不重复的固定的序列 号。也就是说,每一个器件都是唯一的。这就使得在众多连到同一总线的器件中可以选择出 任意一个器件。因为一个、二个甚至几十个 1-Wire 器件能共用一条线路进行通信,所以可 采用对半检索法依次查找每一个器件。一旦器件的序列号已知,通过访问序列号,任何器件 都可被唯一地选出以用于通信。
会话 分时使用总线。这对于操作系统或几个进程或线程要求同时使用总线的情况下是非 常重要的。当多项操作在同一器件上运行而又不能被打断的时候,需要独占总线的使用 权。
链路 基本的 1-Wire 总线通信功能。所有的 1-Wire 总线的通信功能可以归结为:复位 所有的器件和读写位。这也包括设置总线电特性的功能,如提供专用的 EPROM 编程脉 冲或进行供电。
选定 1-Wire 器件
执行一个特定器件操作
每个受控器件的序列号的整数部分是一个 8 位的家族代码。这个代码对器件模型来说是 特定的。因为每种器件模型执行不同的功能,所以可以用代码来选择用于控制或者查询器件 的协议。表 1 是达拉斯半导体公司的器件型号的家族代码。
家族代码对照 表 1
家族代码
器件型号()iButton 封装
(DS1921Z)22 NhomakorabeaDS1822
23
(DS1973), DS2433
24
(DS1904), DS2415
26
DS2438
27
DS2417
28
DS18B20

one-wire 的标准电压

one-wire 的标准电压

一、简介在电子工程领域中,one-wire总线是很常见的一种通信协议,它只需要一根数据线和一根地线,因此成本较低,应用广泛。

二、one-wire通信原理1. one-wire总线采用单独的一根线来传输数据和提供电源。

在通信过程中,控制器可以通过改变电压来控制数据传输。

2. one-wire通信采用时间分割多路复用的方式,节省了硬件成本,提高了系统的可靠性。

3. one-wire总线采用了独特的通信协议,可以在一个单一的总线上连接多个设备进行通信,因此在一些特定场景下具有一些独特的优势。

三、标准电压1. 标准电压是one-wire通信中一个非常重要的参数。

根据one-wire 协议规范,标准电压一般为3.3V或5V。

2. 标准电压的选择取决于具体的硬件设计和应用场景。

一般来说,3.3V的电压可在功耗上有更好的表现,而5V则能提供更远的通信距离及更强的抗干扰能力。

3. 在实际应用中,需根据物联网设备的功耗和通信距离来选择合适的标准电压。

四、标准电压的影响1. 电压的选择对one-wire总线的通信速率和稳定性有着直接的影响。

一个合适的电压可以保证通信的可靠性。

2. 标准电压也与one-wire设备的供电、传输距离、抗干扰能力等方面息息相关。

在进行物联网设备设计时,需要充分考虑标准电压。

五、调试和验证1. 在设计one-wire设备时,选择合适的标准电压后,需要进行调试和验证。

使用示波器或逻辑分析仪可以观测电压变化及数据传输情况,以确保通信的稳定性和可靠性。

2. 一些相关的测试设备也可以帮助验证设备对电压的适应性,以进一步保证设备的可靠性和稳定性。

六、结语在物联网设备设计中,one-wire总线的通信协议以及标准电压的选择对设备的稳定性、传输距离和抗干扰能力有着重要的影响。

在设计和调试时,需要充分考虑这些因素,以保证设备的性能和可靠性。

随着物联网技术的不断发展,我们也期待能够有更多的优秀的硬件和软件方案能够应用到更多的实际场景中,为人们的生活带来更多的便利和乐趣。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1 初始化序列
主机初始化过程,主机通过拉低单总线至少480μs,以 产生(Tx)复位脉冲。接着,主机释放总线,并进入 接收模式(Rx)。
当总线被释放后,5k上拉电阻将单总线拉高。在单总 线器件检测到上升沿后,延时15-60μs,接着通过拉低 总线60-240μs,以产生应答脉冲
3.1 初始化序列
8-BIT F-CMD
R/W DATA
DEVICE(S) PRESENCE PULSE MASTER RESET PULSE
RESET SEQUENCE
2 单总线命令序列
每次访问单总线器件,必须严格遵守这 个命令序列,如果出现序列混乱,则单 总线器件不会响应主机者中任何一条命令 之后,主机不能执行其后的功能命令, 必须返回至第一步。
4.5 读时序
单总线器件仅在主机发出读时隙时,才向主机传输数 据,在主机发出读数据命令后,必须马上产生读时隙, 以便从机能够传输数据。
读时隙至少需要60μs,且在两次独立的读时隙之间至 少需要1μs的恢复时间。
每个读时隙都由主机发起,至少拉低总线1μs。在主机 发起读时隙之后,单总线器件才开始在总线上发送0或 1。
4 读/写时隙
在写时隙期间,主机向单总线器件写入 数据;而在读时隙期间,主机读入来自 从机的数据。在每一个时隙,总线只能 传输一位数据
4 读/写时隙
Write 1 Write 0
M
Slave device(s) sample line
M
Slave device(s) sample line
Read 1
2 单总线命令序列
主机发起读写命令并控制整个过程。 读写命令分三个阶段: ✓ 初始化 ✓ ROM命令(跟随需要交换的数据) ✓ 功能命令(跟随需要交换的数据)
RESET SEQUENCE ROM CMD SEQUENCE FUNCTION SEQUENCE
8-BIT ROM CMD
ROM ID
第二章-1-Wire通信协议
1 概述
单总线要求外接一个约5k的上拉电阻 ;
1 概述
单总线的闲置状态为高电平 ; 传输过程需要暂时挂起,且要求传输过
程还能够继续的话,则总线必须处于空 闲状态 ; 总线保持低电平超过480μs,总线上的所 有器件将复位; 位传输之间的恢复时间没有限制,只要 总线在恢复期间处于空闲状态。
M
S0…SN
Recovery
Legend:
Pull Up Master
Slave
Reset Pulse > 480uS
Presence Pulse
15uS<T<60uS 60uS<4T<240uS 45uS<3T<180uS
3.2 复位和应答脉冲
unsigned char ow_reset(void) { unsigned char presence; DQ = 0; //pull DQ line low delay(29); // leave it low for 480μs DQ = 1; // allow line to return high delay(3); // wait for presence presence = DQ; // get presence signal delay(25); // wait for end of timeslot return(presence); // presence signal returned } // presence
Legend:
Pull Up Master
Slave
Read 0
M
Master samples line at 15uS
M
S0 … SN overdrive resistor
15uS < T < 60uS
T=0 T=15
T=60
4.1 写时隙
存在两种写时隙:“写1”和“写0”。 主机采用写1时隙向从机写入1,而采用写0时隙向从机
若从机发送1,则保持总线为高电平;若发送0,则拉 低总线。当发送0时,从机在该时隙结束后释放总线, 由上拉电阻将总线拉回至空闲高电平状态。从机发出 的数据在起始时隙之后,保持有效时间15μs,因而, 主机在读时隙期间必须释放总线,并且在时隙起始后 的15μs之内采样总线状态。
平状态。如果在此期间采样为高电平,则逻辑1被写入 该器件;如果为0,则写入逻辑0
4.2 写时序
4.3 写时序
void write_bit(char bitval) { DQ = 0; // pull DQ low to start timeslot if(bitval==1) DQ =1; // return DQ high if
写入0。 写时隙至少需要60μs,且在两次独立的写时隙之间至
少需要1μs的恢复时间。 产生写1时隙的方式:主机在拉低总线后,接着必须在
15μs之内释放总线,由5k上拉电阻将总线拉至高电平; 而产生写0时隙的方式:在主机拉低总线后,只需在整
个时隙期间保持低电平即可(至少60μs)。 在写时隙起始后15-60μs期间,单总线器件采样总线电
write 1 delay(5);// hold value for remainder of
timeslot DQ = 1; }// Delay provides 16μs per loop, plus 24μs Therefore, delay(5) = 104μs
4.4 写时序
void write_byte(char val) { unsigned char i; unsigned char temp; for (i = 0; i < 8; i++) // writes byte, one bit at a time { temp = val>>i; // shifts val right ‘i’ spaces temp &= 0x01; // copy that bit to temp write_bit(temp); // write bit in temp into } delay(5) }
相关文档
最新文档