用I2C总线实现AD7416的多点温控系统

发布者:晴天7777最新更新时间:2012-01-10 关键字:I2C总线  AD7416  多点温控系统 手机看文章 扫描二维码
随时随地手机看文章

  1 AD7416器件结构 AD7416采用节省空间的SO-8和小型SOIC封装。

  AD7416引脚说明 引脚号 名 称 说 明 1 SDA 数字I/O。双向数据串行总线,漏极开路输出 2 SCL 数字输入。串行总线时钟 3 OTI 数字输出。超温掉电输出(漏极开路) 4 GND 电源地 5~7 A2~A0 数字输入。串行总线地址可编程低3位 8 +VS 正电源电压,+2.7~+5.5V 2 系统软硬件设计

  2.1 硬件设计 用单片机AT89C2051来实现对AD7416的信号采集和输出控制,硬件设计简单可靠,系统温度节点可扩展性强。为确保系统不受电源波动的干扰,采用电源电压监视器TL7705A作系统复位控制器。如果AD7416要装在离电源较远处,AD7416必须用一个0.1μF的陶瓷电容接在+VS和地之间去耦。

  如所有的I2C兼容器件一样,AD7416有一个7位串行地址。这个地址的高4位设定为1001,而低3位可由用户通过将A2~A0脚连接到无论是+VS或GND来设置。通过它们不同的设定地址,可将多达8个AD7416接到一条串行总线,超过8个,则将与总线上的其它器件发生冲突。 如果需要采集更多的温度节点,可采用多条串行总线的形式来扩展。 此例中,AT89C2051的P1,1脚用作I2C串行总线的时钟信号线,P1.0脚用作双向串行数据总线。通过从硬件上将AD7416的地址引脚A0、A1、A2接至不同电平,从而实现对每片AD7416的编址。

  2.2 寄存器结构

  对AD7416编程要注意其内部寄存器的结构,每片AD7416有5个内部寄存器,其中4个是数字寄存器而1个是地址指针寄存器。地址指针寄存器是一个8位寄存器,储存指向4个数据寄存器之一的地址。AD7416每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。这个寄存器只须最低两位被用来选择一个数据寄存器,。

  地址指针寄存器 P7* P6* P5* P4* P3* P2* P1* 0 0 0 0 0 0 0 地址指针寄存器最低两位所选的数据寄存器。

  寄存器地址 P1 P0 寄存器 0 0 温度值(只读,上电缺省) 0 1 配置(读/写) 1 0 THYST(读/写) 1 1 TOTI(读/写) 温度值寄存器是一个16位只读寄存器,它的高10位以2的补码格式储存由A/D转换器送来10位温度读数,低6位未用。温度数据格式。


  温度数据格式 温度/℃ 数字输出 温度/℃ 数字输出 -75 10 1101 0100 +0.25 00 0000 0001 -50 11 0011 1000 +10 0 0001 01000 -25 11 1001 1100 +25 0 0011 00100 -0.25 11 1111 1111 +50 0 0110 01000 0 00 0000 0000 +75 0 1001 01100 配置寄存器是一个8位读/写寄存器,用来设置AD7416的工作方式。 TRYST设点寄存器是一个16位读/写寄存器,它的9个最高位储存以2的补码格式表示的低温度门限设点。 TOT1设点寄存器是一个16位读/写寄存器,它的9个最高位存储以2的补码格式表示的高温度门限设点。 AD7416上电时地址指针指向温度值寄存器,TOT1设点寄存器的值为80℃,THYST设点寄存器的值为75℃,这些缺省使得AD7416可以用于标准的恒温器而不需要与任何行总线连接。

   2.3 工作方式选择 AD7416有两种工作方式,方式的选择由系统工作情况来决定。 在工作方式1情况下,配置寄存器高3位D7~D5必须保持位0,最低位D0=0为正常工作方式。每400μs进行一次转换,旦转换结束,器件将部分地降低功耗(典型情况为350μA),直至下一次转换开始。 工作方式2由配置寄存器的最低位D0=1来启动,适合于比较慢的速率测温系统中。通过写AD7416使之进入一个在两次读操作之间处于全掉电状态,这样,器件的功耗可以更低。在全掉电时,电流消耗典型值为0.2μA。

  2.4 软件设计 软件设计采用虚拟I2C总线软件包VIIC[1],该软件包具有最佳包容性设计、归一化设计以及应用界面设计等特色。在此软件包为平台来进行软件设计可以不必了解I2C总线原理、协议和时序,只要了解该软件包的应用操作即可,使程序更具模块化、调试简单等优点。 软件包规定了读/写N字节数据子程序为惟一出口界面,因此,由调用该读/写子程序及满足调用操作的初始化操作的三条命令即构成软件包的应用界面,即 MOV SLA,#SLAW/SLAR ;寻址字节存放单元存放总线 ;上节点寻址并确定数据传送方向 MOV NUMBYT,#N ;传送字节数存储单元存放 ;需要传送的N字节 LCALL WRNBYT/RDNBYT:调用读/写N字节数据子程序 三条初始化命令决定了CPU对总线上节点的寻址和数据传送方向以及需要传送的字节数N。在具体应用该软件包时,只需要对软件包的应用界面进行操作即可,从而避免了设计者必须从I2C总线原理上对扩展的I2C总线外围器件进行繁琐的应用程序设计。 系统程序流程如图4所示。 读两字节的温度值寄存器时序。

  3 远程离温度数据采集的实现方法

  本实例中要求测量近20m的温度节点,为了简化系统硬件设计,没有使用缓冲器进行驱动;而通过加适当的上拉电阻,以获得一定的上拉电流使信号采集可靠。在实际应用系统中,上拉电阻值由I2C总线系统中信号所需的上升时间决定。近似地认为整修系统的时间常数为1μs。对于每个分别的总线,其上拉电阻计算式为 Rp=1μs/(Cd+Cw) 式中:Cd为连到每个总线上的器件电容的和;Cw为每个线上的全部导线电容和杂散电容。 系统中电容估算:I2C器件电容约为80 pF;杂散电容约为80 pF;导线电容约为1500 pF。因此,总线系统的上拉电阻为 Rp=1μs/(80pF+80pF+1500pF)=602Ω 为使数据采集可靠,选用了Rp=510Ω的电阻。由于上拉电阻受到最大拉电流限制,所以应检查上拉电流不超过30mA。本例上拉电流(5-0.4)V/Rp=9.02mA<30mA,检查通过。 调试中发现,降低上拉电阻阻值后大大改善了通信情况,但有时仍然会有误码现象出现,于是在软件上降低了通信的频率。将频率由400 kb/s降低到200 kb/s,通过放慢通信速度来提高通信可靠性。实际证明,处理之后的温度值读取稳定可靠。

  结束语 笔者用AD7416所设计的多路温湿度循环检测控制仪,温度检测准确可靠,不易受环境干扰,为整个系统的正常运行提供了可靠性保障。

关键字:I2C总线  AD7416  多点温控系统 引用地址:用I2C总线实现AD7416的多点温控系统

上一篇:工程设备CAN总线控制系统设计
下一篇:WinAC Basis V4.1 PROFINET接口

推荐阅读最新更新时间:2024-05-02 21:50

I2C总线的工作原理与在51单片机中的应用
I2C总线的工作原理与应用 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如 电源 和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了 电路 板的空间和芯片管脚的数量,降低了互联成本。总线的长
[单片机]
<font color='red'>I2C总线</font>的工作原理与在51单片机中的应用
I2C总线之(二)---时序
一、协议 1.空闲状态  I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 2.起始位与停止位的定义: 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。 停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。 3.ACK   发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经
[嵌入式]
I2C总线的读操作的流程
  M24Cxx的读操作模式及其各种模式的操作流程如图1、图2所示。   1.  当前地址读     EEPROM内部具有保持当前地址的寄存器。读取当前地址的数据时,不需要指定地址。只要单纯给出读指令就可读出数据。读取完毕后,内部所保持的当前地址将自动进位。   图1 I 2 C存储器的读操作(1)   图2 I 2 C存储器的读操作(2)   数据读操作后的ACK/NoACK信号由主机返回,但必须返回NoACK信号。   2.  随机读     随机读是由主机指定任意的地址读取的。利用写指令设定地址,如果赋予读指令则可以读出当前地址。所以,与字节写操作时相同,在第1字节的数据后面给出地址。在这里,一旦发送
[嵌入式]
实用的单片机模拟I2C总线控制EEPROM读写程序
之前写的EEPROM程序虽然能够软仿成功,但烧到单片机里的时候却不能用,无疑是时序的问题,今天修正了时序,总算硬仿成功了。对照上次的程序可以发现就是添加了头函数: intrins.h ,这样就可以通过 _nop_() 指令较为准确的控制时序。 上次那个问题依然没有解决:就是接收缓冲区的数据是从readbuf 开始的,以这个程序为例: readbuf 中存放0x96 readbuf 中存放0x84 readbuf 中存放0xd5 readbuf 中存放0x63 readbuf 中存放0x7c readbuf 中存放0x8c 其实我是想把收到的数据存放在readbuf ~ 中的,我也不知道为什么结果会这样,有知道的麻烦指教
[单片机]
在同一条I2C总线上挂接多个DS1859器件
引言 DS1859双路、温控电阻不允许用户通过外部引脚改变其I2C从地址。相反,器件为主存储器提供可编程I2C从地址。在具体应用中,一条I2C总线可能需要接多个DS1859器件。由于所有DS1859出厂时的缺省I2C从地址都相同,因此,这些器件与I2C总线连接时,必须改变其中一个或多个器件的从地址。 本应用笔记阐述了同一条I2C总线上接两个DS1859时,如何改变其中一个器件的I2C从地址。这一方法可推广应用于挂接多个器件的情况。本文假定用户可根据需要将DS1859的WPEN引脚转换为逻辑高电平或逻辑低电平。 DS1859的独特之处还在于每个器件有两个从地址,其中一个可编程地址用来访问主存储器,另一个固定地址(A0h)用来
[嵌入式]
模拟I2C总线多主通信研究与软件设计
摘要:介绍模拟I2C总线的多主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有I2C接口的普通微控制器(MCU)能够实现模拟I2C总线的多主通信,同时对I2C总线的推广起到了积极作用。 关键词:模拟I2C总线 仲裁 多主通信   I2C总线(Inter IC BUS)是Philips公司推出的双向两线串行通信标准。由于它具有接口少、通信效率高等优点,现已得到广泛的应用 。它除了可以进行简单的单主节点通信外,还可以应用在多主节点的通信系统中。在多主节点通信系统中,如果两个或者更多的主节点同时启动数据传输,总线具有冲突检测和仲裁功能,保证通信正常进行并防止数据破坏。现在许多微控制器(MCU)都具
[应用]
LTC4300A系列为背板I2C总线提供电容性缓冲
  LTC4301是一个不依赖电源、能够热插拔的双线总线缓冲器,能允许I/O线路卡插入带电的背板而不需考虑对数据总线(SDA)的以及时钟线(SCL)的信号破坏。该集成电路在背板和线路板的I2C总线之间提供了隔离缓冲,无论对应的电源电压是否不同。LTC4301热插拔双线总线缓冲器的独立于电源的特点免除了对背板电源电压专用针脚的需要,不必牺牲任何程度的I2C导通量。LTC4301除了能在带电的条件下拔除或插入线路板以外,其SDA和SCL的针脚还能经受10kV的ESD,从而在任何操作条件下都能保护线路板。组件极大地简化了双线总线配合使用网络服务器、桌上计算机或通信场合中的大量线路卡,无论其电源是否不同还是其电压高低不等。   SM总线和
[电源管理]
新型高度集成化的视频字符叠加系统的研究
1 引 言   视频字符及时间叠加器是在视频信号中混入字符或时间信号,从而在屏幕的特定位置上与图像信号同时进行显示的设备。这项技术是应用电视技术中的一个重要领域,在应用电视系统中发挥着重要的作用。从视频字符叠加器的工作方式及本身电路的构成来看,到目前为止已有三种不同的实现方案。   第一种方案是通用中小规模集成电路实现方案。即,全部采用逻辑门,计数器,移位寄存器等通用中小规模集成电路实现单路规模字符集时间叠加。   第二种方案是基于FPGA的多路实现方案。即,在共用字库ROM,一片CPU和实时时钟的前提下,利用FPGA集成若干路显示RAM计数的、独立的扫描电路,实现多路字符叠加。   第三种方案是主控机加显示执行机实现方案。可采用A
[模拟电子]
新型高度集成化的视频字符叠加<font color='red'>系统</font>的研究
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved