首页 理论教育 Dallas公司的单总线扩展技术:单片机原理与应用技术

Dallas公司的单总线扩展技术:单片机原理与应用技术

时间:2023-10-28 理论教育 版权反馈
【摘要】:单总线是由Dallas公司推出的一种串行总线扩展专有技术,只需要一条信号线和一条地线进行单主多从式半双工串行通信。图4-36 单总线的基本信号时序写“1”时序 写“1”时序见图4-36b。如果单总线上保持的低电平超过480μs,所有器件将自动复位。

Dallas公司的单总线扩展技术:单片机原理与应用技术

单总线(1-WireBus)是由Dallas公司(2001年并入MAXIM公司)推出的一种串行总线扩展专有技术,只需要一条信号线和一条地线进行单主多从式半双工串行通信。由单条信号线传输时钟、数据并作为所挂接的单总线器件(称为从设备)的电源线,挂接量可达数百个。每个单总线器件内部固化了全球唯一的64位ID码(标识码,注册码),用作器件地址。具有技术先进、节省I/O口线、扩展和维护方便等特点,是测控系统总线发展的一种趋势。

单总线器件采用CMOS技术制造、功耗极低(静态电流达到μA级),有传统芯片封装和不锈钢外壳的iButton(信息纽扣)封装两类。前者型号有诸如DS2430(E2PROM)、DS18B20(温度传感器)等。后者外型坚固,适于接触式、可热拔插使用,型号有诸如DS1990A(电子标识)、DS1991(多页加密存储器,又称电子货币)和DS1972(E2 PROM)等。

1.单总线的连接和ID码

单总线主/从设备的电路连接方式见图4-33,可由单片机(称为主设备)的I/O口直接驱动,单总线器件由内部设置的寄生供电电路维持工作;数据传输速率一般为16.3kbit/s,最大可达142kbit/s,通常情况下采用100kbit/s以下的速率。主设备I/O口可直接驱动200m范围内的从设备(实际应用中用没有屏蔽的双绞线作为接入电缆)。如果主设备或从设备接入单总线的端口属漏极开路结构,设备不传送数据时能释放总线,则通常单总线需外接一个4.7kΩ左右的上拉电阻,使总线闲置状态为电平

978-7-111-49886-5-Chapter04-76.jpg

图4-33 单总线主/从设备的电路连接方式

每个单总线器件内部光刻有8字节ROM单元来储存ID码,64位ID码的组成见图4-34,属全球唯一,没有重复。

978-7-111-49886-5-Chapter04-77.jpg

图4-34 64位ID码的组成

第一个字节为8位家族码(产品分类标志),接着是48位地址序列号(总量可达248个,地址足够分配不会发生冲突)。最后是循环冗余校验码CRC(由内部硬件电路生成)。以DS1990A器件为例,关系是:CRC=X8+X5+X4+1(X为最后一字节除外的56位数据参与计算),主设备则是通过软件方法产生CRC校验码,实现数据的校验。

2.单总线信号传输时序

单总线器件有严格的通信时序。单总线接口基本通信流程见图4-35,包括:①初始化;②ROM命令传输;③功能命令传输。这些命令序列都是由复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”等几种基本时序组成。除了应答信号外,上述时序均由主设备发出,命令和数据字节的传输顺序是低位在前高位在后(与异步串行通信的顺序相同),在默认状态下以标准模式通信(另一种为高速模式)。

978-7-111-49886-5-Chapter04-78.jpg

图4-35 单总线接口基本通信流程

单总线的基本信号时序见图4-36。

(1)初始化时序 初始化时序见图4-36a,包括主设备复位脉冲和从设备应答脉冲。主设备拉低单总线480~960μs产生TX复位脉冲,然后释放总线产生上跳变、转为RX接收状态。从设备检测到该上跳变后延时15~60μs,拉低总线60~240μs产生应答脉冲。被主设备检测到之后(RX监测时间至少在480μs以上),便开始向从设备传输ROM命令和功能命令(随后另述)。

978-7-111-49886-5-Chapter04-79.jpg

图4-36 单总线的基本信号时序(www.xing528.com)

(2)写“1”时序 写“1”时序见图4-36b。主设备首先把总线拉低,1~15μs内释放总线并保持高电平至少60μs(上拉电阻把电平拉高)。从设备在15~60μs内读取总线电平,完成数据“1”的传输。两个独立时段之间的数据写入至少应有1μs的恢复时间。

(3)写“0”时序 写“0”时序见图4-36c。主设备首先把总线拉低,1~15μs后继续保持低电平至少60μs,从设备在15~60μs内读取总线电平,完成数据“0”的传输。两个独立时段之间的数据写入至少应有1μs的恢复时间。

(4)读“1”时序 读“1”时序见图4-36d。由主设备发起把总线拉低1~15μs。若从设备随后送出“1”,则总线变为高电平(有效时间15μs),主设备在该时段内对总线采样,然后从设备在大于15μs小于60μs的时间内释放总线为高电平(上拉电阻把电平拉高),完成读“1”的操作。两个独立时段之间的数据读出至少应有1μs的恢复时间。

(5)读“0”时序 读“0”时序见图4-36e。由主设备发起把总线拉低1~15μs。若从设备随后送出“0”,则总线变为低电平(有效时间15μs),主设备在该时段内对总线采样,然后从设备在大于15μs小于60μs的时间内释放总线为高电平(上拉电阻把电平拉高,见虚线),完成读“0”的操作。两个独立时段之间的数据传输至少应有1μs的恢复时间。

上述读时序需在主设备向从设备发出读数据的ROM命令后马上产生。主设备发出读时序后,从设备才开始发送“0”或“1”。如果单总线上保持的低电平超过480μs,所有器件将自动复位。

3.单总线的ROM命令

单总线的ROM命令有7个(均为1字节),主要用来管理和识别单总线器件,实现“片选”功能,对命令的支持程度视具体器件型号而定。主设备初始化检测到单总线的应答脉冲后,就可以发出ROM命令,且与各器件的ID码相关,能检测所连从设备的数量、类型,或是否处于报警状态。ROM命令及其功能简介如下:

(1)搜索ROM[命令码F0h] 系统上电后,主设备可通过循环执行搜索ROM命令,用排除法获取所有ID码从而知晓所挂从设备数量。循环搜索分三个步骤:读出一位;读该位的补码;向该位写入指定值。根据两次读得的状态值判断并选择不同的搜索分支,不匹配该值的从设备随后都不被搜索,重复执行直到第64位完毕。一次完整的ID码搜索就可检知某个从设备,重复同样的搜索可识别其余从设备,网上有具体方法可参考。

(2)读ROM[命令码33h] 适用于总线上只有一个从设备的场合。主设备无需执行搜索ROM过程,可以直接读出64位ID码。如果总线上接有多个从设备,会因同时送出数据而产生数据冲突。

(3)匹配ROM[命令码55h] 适用于总线上有多个从设备的场合。命令后面跟随64位ID码,对从设备进行寻址,只有ID码相符的从设备才会响应后续的功能命令,否则保持等待状态。

(4)跳跃ROM[命令码CCh] 适用于只有一个从设备的场合。主设备不需要发64位ID码,直接访问芯片进行数据交换。如果存在多个从设备,也会发生数据冲突。

(5)条件查找ROM[命令码ECh] 仅适用于有少量单总线器件的场合,等同于搜索ROM命令,允许主设备检测哪些从设备发生了条件报警(如欠电压、过温、欠温等)。

(6)超速跳跃ROM[命令码3Ch] 适用于只有一个从设备的场合。单总线设置为超速模式执行跳跃ROM命令,直接访问从设备。

(7)超速匹配ROM[命令码69h] 适用于有多个从设备的场合。单总线设置为超速模式执行匹配ROM命令,对从设备寻址。

4.单总线的功能命令

单总线功能命令跟随在ROM命令之后,对功能命令的支持程度视器件类型而定(可参阅具体器件手册),主要实现器件的读、写操作和数据交换。主设备发出ROM命令后,接着发出某个从设备的具体功能命令。例如,访问温度传感器DS18B20时,主设备发出跳跃ROM命令,接着发出温度转换命令[44h],就可进行温度转换。

51系列单片机与单总线器件的扩展应用示例祥见第8章第8.8节。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈