1-Wire器件与8051系列单片机的软件接口

网友投稿 260 2022-10-31

1-Wire器件与8051系列单片机的软件接口

关键词:1-Wire总线,软件接口,CRC校验

1 引言

2 1-Wire总线简述

2.1 硬件配置

2.2 通信规程

1-Wire总线采用主从式、位同步、半双工串行方式通信,如图3所示,分以下三步:

(1)总线初始化,主控器先复位脉冲,然后从器件发应答脉冲。

(2)ROM指令,主控器通过ROM指令来读取各从器件的ROM识别码,以选择1-Wire总线上的某一器件,其余器件忽略主控器的后续指令。

(3)RAM指令,通过对从器件RAM的读写操作,让外围器件实现某一功能。

所有1-Wire器件与主控器之间的通信都符合上述规程,但不同类型的1-Wire器件的结构和功能不同,8比特的ROM指令和RAM指令会略有不同,系统设计时查器件数据手册即可。

3 接口时序及软件模拟

如图4所示,1-Wire总线上的数据传输是通过1-Wire总线协议最底层的操作时隙完成的。每个通信周期起始于主控器发出复位脉冲,然后,1-Wire器件以应答脉冲做出响应。当主控器将总线从空闲状态的逻辑高拉为逻辑低时,即启动了一个读写时隙。在写“0”时隙中,主控器在整个时隙期间将总线拉低;而后在15us之内释放总线为高。在读时隙中,主控器将总线拉低1us,接头释放总线,这样,1-Wire从器件就能够接管总线,输出有效数据。所有的读写时隙在60us至120us内完成,并且每个时隙之间至少需要1us的恢复时间。

在上述时序模拟子函数的基础上,建立读、写一个子节函数,根据1-Wire协议的要求,传送数据时低位在前高位在后。

其硬件生成器如图5所示。

上述的总线初始化函数START、字节读写函数RDBYTE、WRBYTE和CRC校验函数就构成了8051系列单片机与1-Wire器件通信的软件平台,在设计时只需按规程调用这4个函数,就可轻松构建起一个1-Wire总线扩展的单片机应用系统。

4 软件接口应用

数片DS1822按图1连接到AT89C51的P1.0脚,按图3的1-Wire总线通信规程,调用上述软件接口,即可构成一个简单实用的温度测控系统DS1822是一种精度可调的(9至12比特)的1-Wire数字温度传感器,其RAM结构如图6所示,最低两字节只读,用于保存每次采集温度值;Th寄存器和T1寄存器分别用于设定温度传感器告警的最高和最低温度;设置寄存器用于设定温度传感器的采和最低温度;设置寄存器用于设定温度传感器的采样精度;对应的EEPROM用于掉电时保存用户设置。

DS1822的指令字及其功能如表1所示。

系统从主控器片内RAM30H至37H单元中读取事先存储的ROM号,从总线上选择该器件,启动温度变换,再读取温度于70H、71H中的程序如下:

5 结束语

1-Wire总线连线简捷,1-Wire器件种类多样,功能丰富,必将得到日益广泛的应用。本文详细阐述了目前普遍使用的8051单片机与1-Wire总线的软件接口,为单片机应用系统的串行扩展提供了一种行之有效的参考方案,它还可以方便地移植到其它系统中。

参考文献

2 丁元杰.单片微机原理及应用.北京:机械工业出版社,1999

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【华为云·云筑2020】云学院考卷答案
下一篇:广成usb-can接口卡功能讲解(1)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~