首页 » 互联网 » 详解单总线及其应用_总线_主机

详解单总线及其应用_总线_主机

乖囧猫 2025-01-13 15:33:56 0

扫一扫用手机浏览

文章目录 [+]

图12-1 单总线多节点系统示意图

单总线硬件构造

顾名思义,单总线即只有一根数据线,系统中的数据交流、掌握都由这根线完成。
设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以许可设备在不发送数据时能够开释总线,而让其他设备利用总线,其内部等效电路如图12-2所示。

详解单总线及其应用_总线_主机 详解单总线及其应用_总线_主机 互联网

图12-2 单总线硬件接口示意图

详解单总线及其应用_总线_主机 详解单总线及其应用_总线_主机 互联网
(图片来自网络侵删)

单总线哀求外接一个约5k的上拉电阻:这样,单总线的闲置状态为高电平。
不管什么缘故原由,如果传输过程须要暂时挂起,且哀求传输过程还能够连续的话,则总线必须处于空闲状态。
位传输之间的规复韶光没有限定,只要总线在规复期间处于空闲状态(高电平)。
如果总线保持低电平超过480μs,总线上的所有器件将复位。
其余,在寄生办法供电时,为了担保单总线器件在某些事情状态下(如温度转换期间、EEPROM写入等)具有足够的电源电流,必须在总线上供应强上拉(如图中所示的MOSFET(metal-oxide semiconductor field-effect transistor,金属氧化物半导体场效应晶体管))。

单总线通信事理

主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交流数据。
由于单总线是主从构造,只有主机呼叫从机时,从性能力应答,因此主机访问1-wire器件都必须严格遵照单总线命令序列,即初始化、ROM命令和功能命令。
如果涌现序列混乱,1-wire器件将不相应主机(搜索ROM命令、报警搜索命令除外)。

(1)初始化

基于单总线上的所有传输过程都因此初始化开始的,初始化过程由主机发出的复位脉冲和从机相应的应答脉冲组成。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。

(2)ROM命令

在主机检测到应答脉冲后,就可以发出ROM命令。
这些命令与各个从机设备的唯一64 位ROM代码干系,许可主机在单总线上连接多个从机设备时,指定操作某个从机设备。

这些命令还许可主机能够检测到总线上有多少个从机设备以及其设备类型,或者有没有设备处于报警状态。
从机设备一样平常支持5种ROM命令(实际情形与详细型号有关)每种命令长度为8位,如表12-1所示。
主机在发出功能命令之前,必须送出得当的ROM命令。

表12-1 ROM命令解释

(3)功能命令

在主机发出ROM命令后,接着就可以发出某个功能命令。
功能命令则根据详细1-wire器件所支持的功能来确定。

单总线的旗子暗记办法

所有的单总线器件哀求采取严格的通信协议,以担保数据的完全性。
该协议定义了几种旗子暗记类型:复位脉冲、应答脉冲、写0、写1、读0和读1。
所有这些旗子暗记,除了应答脉冲以外,都由主机发出同步旗子暗记。
并且发送所有的命令和数据都是字节的低位在前,这一点与多数串行通信格式不同(多数为字节的高位在前)。

(1)初始化序列——复位和应答脉冲

单总线上的所有通信都因此初始化序列开始,包括:主机发出的复位脉冲及从机的应答脉冲,如图12-3所示。
当从机发出相应主机的应答脉冲时,即向主机表明它处于总线上,且事情准备就绪。
在主机初始化过程,主机通过拉低单总线至少480μs,以产生(Tx)复位脉冲。
接着主机开释总线,并进入吸收模式(Rx)。
当总线被开释后,5k上拉电阻将单总线拉高。
在单总线器件检测到上升沿后,延时15~60μs,接着通过拉低总线60~240μs,以产生应答脉冲。

图12-3 复位和应答脉冲

提示

玄色实线代表系统主机拉低总线,玄色虚线代表上拉电阻将总线拉高。

(2)读/写时隙

在写时隙期间,主机向单总线器件写入数据;而在读时隙期间,主机读入来自从机的数据。
在每一个时隙,总线只能传输一位数据。

① 写时隙

存在两种写时隙:“写1”和“写0”。
主机采取写1时隙向从机写入1,而采取写0时隙向从机写入0。
所有写时隙至少须要60μs,且在两次独立的写时隙之间至少须要1μs的规复韶光。
两种写时隙均起始于主机拉低总线(如图12-4所示)。
产生写1时隙的办法:主机在拉低总线后,接着必须在15μs之内开释总线,由5k上拉电阻将总线拉至高电平;而产生写0时隙的办法;在主机拉低总线后,只需在全体时隙期间保持低电平即可(至少60μs)。

在写时隙起始后15~60μs期间,单总线器件采样总线电平状态。
如果在此期间采样为高电平,则逻辑1被写入该器件;如果为0,则写入逻辑0。

图12-4 单总线通信协议中写时隙时序图

② 读时隙

单总线器件仅在主机发出读时隙时,才向主机传输数据,以是,在主机发出读数据命令后,必须立时产生读时隙,以便从机能够传输数据。
所有读时隙至少须要60μs,且在两次独立的读时隙之间至少须要1μs的规复韶光。
每个读时隙都由主机发起,至少拉低总线1μs(如图12-5所示)。
在主机发起读时隙之后,单总线器件才开始在总线上发送0或1。
若从机发送1,则保持总线为高电平;若发送0,则拉低总线。
当发送0时,从机在该时隙结束后开释总线,由上拉电阻将总线拉回至空闲高电平状态。
从机发出的数据在起始时隙之后,保持有效韶光15μs,因而,主机在读时隙期间必须开释总线,并且在时隙起始后的15μs之内采样总线状态。

图12-5 单总线通信协议中读时隙时序图

单总线器件

常日把挂在单总线上的器件称之为单总线器件,单总线器件内一样平常都具有掌握、收发、存储等电路。
为了区分不同的单总线器件,厂家生产单总线器件时都要烧录一个64位的二进制ROM代码,以标志其ID号。
目前,单总线器件紧张有数字温度传感器(如DS18B20)、A/D转换器(如DS2450)、门标、身份识别器(如DS1990A)、单总线掌握器(如DS1WM)等。

12.1.2 单总线器件DS18B20

(一)DS18B20性能特点

图12-6 DS18B20引脚图

DS18B20是DALLAS公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻比较,他能够直接读出被测温度并且可根据实际哀求通过大略的编程实现9~12位的数字值读取。
可分别在93.75 ms和750 ms内完成9位和12位的温度数字量转换,从DS18B20读出信息或写入信息仅须要一根数据线。
读写温度、变换功率可来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而利用DS18B20可使系统构造更趋大略,可靠性更高。

DS18B20的引脚如图12-6所示。

(1)GND为电源端;

(2)DQ为数字旗子暗记输入输出端;

(3)V DD 为外接供电电源输入端(在寄生电源接线办法时接地)。

(二)DS18B20的内部构造及紧张功能部件

DS18B20的总体构造如图12-7所示,由64位光刻ROM及串行接口、高低温度传感器、高低温触发器、配置寄存器、8位CRC发生器、电源检测和寄生电容等各部分组成。

(1)64位ROM

64位光刻ROM是出厂前被光刻好的,它由8位产品系列号,48位产品序号和8位CRC编码组成,DS18B20的产品系列号均为28H,每个器件的48位产品序号各不相同,利用产品序号可以识别一线上的挂载的不同DS18B20器件。

图12-7 DS18B20内部构造框图

(2)配置寄存器

配置寄存器用于设置DS18B20的转换精度,配置寄存器的各位如表12-2所示。

表12-2 DS18B20配置寄存器

低5位一贯为1;TM是测试模式位,用于设置DS18B20在事情模式还是在测试模式,在出厂时该位被设置为0,用户不要去改动;R1和R2决定温度转换的精度位数。

DS18B20的温度转换韶光与温度转换的精度位数(即温度转换的分辨率)干系,当温度转换的分辨率越高,转换须要的韶光越长,其关系如表12-3所示。

表12-3 温度分辨率和最大转换韶光关系表

(3)高温触发器TH和低温触发器TL

高温触发器TH中存在最高温度报警下限,低温触发器TL中存在最低温度报警下限,用户可通过软件写入。

(4)温度传感器

DS18B20中的温度传感器可完成对温度的丈量,温度值用16位符号扩展的二进制补码读数形式供应,以0.0625℃/B形式表达,个中S为符号位,在12位转化情形下温度高低字节存放形式如表12-4所示。

表12-4 DS18B20温度的高低字节存放

二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值须要取反加1再乘于0.0625才能得到实际温度。

在12位分辨率下温度-数字量输出的关系表如表12-5所示。

表12-5 温度-数据关系表

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若值高于TH或低于TL,则将该器件的报警标志位置位,并对主机发出报警搜索命令作出相应。

(三)DSl8B20事情过程

DSl8B20事情过程中的协议如下:

1. 初始化

单总线上的所有处理均从初始化开始;

2. ROM操作命令

总线主机检测到DSl8B20的存在便可以发出ROM操作命令,ROM操作命令如表12-6所示。

表12-6 DS18B20的ROM操作命令

3. 存储器操作命令

在实行ROM操作命令后实行存储器操作命令,存储器操作命令如表12-7所示。

表12-7 DS18B20的存储器操作命令

运用实例:8051单片机与DS18B20构成的测温系统

由DS18B20开拓的一线式温度传感用具有接口大略、丈量精度高档优点,广泛的运用到工业、仪器仪表、医疗电器等各个领域。

这里我们模拟一线式温度计的事情事理,以8051单片机(假设系统外接的是12MHz的晶振,即机器周期为1us)作为掌握芯片,来读取DS18B20的温度值,并通过2位数码管显示被测工具的温度值。
系统的构造如图12-8所示。

图12-8 8051单片机与DS18B20测温系统框图

程序设计解释:

1. 定义存放读取温度的变量TEMPER_L、TEMPER_H以及转换后的温度值变量TEMPER_NUM;定义单片机的P3.7口作为与DS18B20的数据通信口。
定义位变量flag为判断DS18B20是否存在的标志。

2. 主程序通过循环调用读取温度程序、温度转换程序和数码管显示程序实现温度读取、转换和显示等功能。

3. 获取温度程序uint ReadTemperature(void),通过调用INIT_1820判断是否与DS18B20联结上。
若联结上,接下来按照一定的时序发送命令,通过READ_18200程序读取温度值的高八位和低八位分别存放到TEMPER_H和TEMPER_L单元中。

4. 温度转换程序为void TemperConvert(void),显示程序为Display(void)。

C51源程序如下:

标签:

相关文章

CAN总线若何规范的布线?_分支_波特率

1.接通电源后约1分钟韶光液晶屏不亮,此时是系统启动状态。等待启动完成后将会听到蜂呜器的响声,如接有音箱或耳机会听到“叮”一声响声...

互联网 2025-01-15 阅读0 评论0