一线总线器件以其硬件接口简单在各个领域越来越广泛地得到应用,其读写都必须按照严格的时序要求。本文给出了一线总线的标准软件接口及其
源代码。该软件接口已在实际工程项目中应用,数据读取和写入准确,可靠。
关键词:一线总线 软件接口 � 一线总线(1—Wire)是Dallas半导体公司推出的外围串行扩展总线标准,采用单根数据线和地线构成
半双工通讯。一线总线只有一根数据输入输出线DQ,总线上所有的器件都挂在DQ上。这些测控器件由该公司提供,每个器件都有全球唯一的64位ROM序列号,确保挂在总线上能被唯一标识,实现对象的控制。将其应用于低速(约100kbps以下)的测控系统中,将大大简化线路结构和减少硬件开销。��1硬件配置
一线总线向所有的器件既提供通讯连接,又提供工作电源。总线电源经由一个连接于3V至5�5V电源端的4.7kΩ
上拉电阻提供。特别注意的是,温度传感器件18B20在两线应用时,应将IC的VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器会只送+85�0℃的温度值。
2软件控制
一线总线上控制器与总线器件的通讯是通过操作时序完成总线上的数据传输。一线总线有严格的时序要求,具体的时序要求可以参考有关手册或参考文献[1]。为了精确控制一线总线的特殊时序要求,必须先建立几个关键的函数。延时函数是必需的,它是所有读和写控制的组成部分。这个函数完全依赖与
微处理器的速度。以下为C51的延时原型函数。�
每个通讯周期起始于控制器发出的复位脉冲,其后紧跟器件的应答脉冲。因此复位函数也是必不可少的。以下为C51的复位函数,复位时隙为480us。
时序图如图1a所示,产生复位脉冲后微处理器释放总线,总线上的器件通过拉低总线来指示其是否在线。如果总线上有多个器件,则同时发出应答脉冲。
读时隙起始于微处理器将总线拉低lus,接着释放总线,这样总线上的器件就能接管总线,输出有效数据。时序图如1b所示。
在读取1字节数据时,所有读时隙必须在60us至120us内完成,且在每个循环之间至少需要1us的恢复时间。
当主机将总线从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。在写0时隙期间,微控制器在整个时隙中将总线拉低;在写1时隙期间,微处理器将总线拉低,然后在时隙起始后15us之内释放总线。时序如图1c所示。
在写一个字节数据时,所有的写时隙必须在60us至120us内完成,且在每个循环之间于少需要1us的恢复时间。
3 典型应用
下图为一个由一线总线的构成的分布式温度监控系统。该系统若干个一线总线数字温度传感器DS18s20一起挂在一线总线上,
单片机通过I/O口,应用本文的软件接口实现对各点温度的读取。在实际应用中,总线上应有上拉电阻。4 参考文献
[1]龚荣盛,张阿卜,等.信息钮扣及其在安全巡检管理系统中的应用[J].
微型机与应用,2002年第7期
[2]Auromatic Identification Data Book[R],Dallas Semiconduc-tor Corporation,1998