




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要本课题设计的是一套计算机控制的温度、湿度实时监测与报警系统,可应用于多种需要采集温湿度数据的场合,本文完成了整个系统的软硬件设计。系统采用单总线传感器网络和 rs485 传输网络的设计思想。其中温度、湿度传感器都以智能终端的形式挂接到单总线上,多条单总线汇总到一起,由一台数据采集器集中控制,每台数据采集器负责一定区域内的温湿度监测。数据采集器的核心部件为单片机,主要完成对其所连接传感器件的测量与控制以及与主机的通信等功能。各采集器以网络结点的方式挂接到 rs485 传输网络上,传输距离远,还可有效的抑制共模干扰。设计中的 rs232/rs458 转换器用来实现 rs485 总线网络与主机 rs232 串口通信的相互转换。系统中为主机与各采集器之间的数据通信制定了完备的通信协议,采用主机调度工作形式,crc 技术校验数据,以保证通信的可靠性。用 delphi 开发了具有温湿度数据显示、告警、历史数据和曲线显示与打印等功能的主机用户管理软件。关键词: 单总线, 单片机, 循环冗余码校验, 通信协议abstractthis paper introduces a kind of real-time monitoring system for temperature and humidity controlled by computer, which is can be used for many applications. the paper completes both the software and hardware design.the system adopts 1- wire sensor net and rs485 transmission net technique. many sensors are connected to 1- wire bus as intelligent terminals. the data collection station gathers all buses. each data collector is responsible for a region. the kernel of data collector is mcu, which takes charge of measurement, control and communication with the host controller. the rs485 transmission net is made up of the data collection station, which can transmit for remote distance and restrain common mode interference. the rs232/rs485 converter is used for conversion between rs485 and rs232, which is used by the host controller, computer. a self-contained serial communication protocol is defined, which can help the host controller communicate with the data collector. the host controller works as a dispatcher. crc technology is adopted to verify data and guarantee the dependability in the communication. the delphi is used to design the user interface for display and monitoring of temperature and humidity information, showing and printing for historical records and curves etc.key words: 1- wire, mcu, crc, communication protocol目 录摘 要iabstractii1 绪论11.1 课题研究的目的和意义11.2 温度、湿度数据采集与监测技术的发展历程11.3 本课题的主要特点22 系统的总体设计32.1 系统功能32.2 系统主要技术指标32.3 系统的总体结构42.4 系统的工作过程53 单总线与温度、湿度传感器63.1 温度传感器 ds18b2063.1.1 ds18b20 简介63.1.2 ds18b20 的内部结构63.1.3 crc 校验原理与实现93.2 单总线系统103.2.1 单总线协议103.2.2 单总线系统中 rom 搜索算法的研究与实现133.3 湿度传感器选择及外围电路设计143.3.1 湿度传感器 hih3610143.3.2 单总线数字湿度传感器外围电路设计154 温湿度数据采集器与 rs232/rs485 转换器184.1 数据采集器的结构与电路设计184.1.1 单总线接口电路184.1.2 采集器地址选择开关电路194.1.3 rs485 总线接口电路204.1.4 供电电路204.2 数据采集器的软件设计214.2.1 数据采集器中单总线器件的预处理234.2.2 数据采集系统中对单总线器件的访问244.3 rs232/rs485 转换器284.3.1 w77e58284.3.2 rs232/rs485 转换器的实现285 delphi 与用户管理软件315.1 delphi 简介315.2 delphi 与 rs232/rs485 转换器的通信315.2.1 spcomm 通信控件315.2.2 通信协议325.3 用户管理软件335.3.1 监测数据的显示与处理335.3.2 历史数据查询34总结与展望35致 谢36参考文献37附录1 温湿度采集电路原理图39附录2 通信通路电路原理图40- 42 -1 绪论本章首先介绍了课题研究的目的和意义,温度、湿度数据实时采集与监测技术的发展历程,然后简要描述了温度、湿度监测与报警系统的组成,最后介绍本课题的主要特点。1.1 课题研究的目的和意义在现代工业现场,随着科技的进步和自动化水平的提高,电缆的用量越来越大,电缆的安全保护已成为不可忽视的问题。从国内外有关电缆火灾的统计资料看,许多电缆火灾是由电缆头击穿绝缘引起的。因此为电缆配置在线温度监测系统,对于电缆接头多,电缆密集的场所,就显得尤为重要。粮食是人类生存的必需品,温度与湿度是保存好粮食的先决条件,我国的公粮现均集中存放在国家或地方的仓库中,最大粮库方圆几公里,仓库库房数为数十个,测点可达数千个。按照国家粮食保护法则,必须定期抽样检查各点的粮食温度与湿度,以确保粮食的存储质量。档案馆中的档案资料同样会受到外界空气温湿度变化的影响,纸张纤维热胀冷缩,使强度降低,湿度过大会使霉菌和害虫滋长,以致造成资料质变。由此可见,温度、湿度监测在人们现实生活生产中应用已日渐广泛,在发电厂、纺织、食品、医药、仓库、农业大棚等众多的应用场所,对温度、湿度参量的要求都非常严格,因此能否有效对这些领域的温、湿度数据进行实时监测和控制是一个必须解决的重要前提。本课题即以上述问题为出发点,设计实现了温度、湿度的实时监测系统,该系统不仅能实时采集各抽样点的温度值与湿度值,而且能够迅速处理,友好的将数据结果显示给用户,并存储结果以方便以后的对比研究。1.2 温度、湿度数据采集与监测技术的发展历程最早的也是最简单的实现对温度、湿度的监测是采用人工的方式,这种方式不仅效率低,劳动时间长,而且会由于抽样的不具代表性使得监测结果失去其原有的意义。该方式还有一个弊端其应用场所有很大的局限性,工作人员不可能直接测量地下电缆的表面温度;去提取存有炸药、鞭炮等危险品仓库温湿度数据的工作人员还要承担一定的风险。后来随着电子技术的出现与进步,科研人员开始采用温度与湿度传感器代替原始的温度计与湿度计,开发了以单片机为核心的监测系统1 p285p287,并佐以接口芯片将结果显示在led 数码显示管上,单片机可直接控制打印监测数据。这种方式在很大程度上提高了工作效率,并扩展了应用范围。但其中所采用的温度、湿度传感器直接输出为模拟电压信号,该信号在传输过程中易损耗,影响系统精度,且传输距离较近,需要经过 a/d 转换芯片才能被单片机接收。每个测试点都需要各自独立的信号线,为了实现多点监测不仅需要成百上千条信号线,还需要多路模拟转换开关电路轮流对多个测试点进行连续监测,从而增加了整个系统的环节,使其难于维护,价格昂贵。近年来,伴随微处理器芯片和网络通信技术的发展,为了简化系统设计并降低成本,各公司及科研机构开始致力于相关领域的探索,使得温湿度数据监测数字化、网络化的实现成为可能。其中美国达拉斯半导体公司推出了 1-wire(单总线)接口协议,单总线技术与其它总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因此单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。该公司所提供的适用于单总线微网技术的单总线器件具有无需另附电源、在测试点直接将模拟信号数字化等特点,一方面减少了系统环节,另一方面保证了系统的精度。同时各软件公司开发的可视化软件开发工具,更是向着效率高、功能强大的方向努力,从而为获得良好的用户界面奠定了基础。1.3 本课题的主要特点本课题采用基于单总线网络的设计思想来设计温度、湿度实时监测与报警系统。系统的主机和多个数据采集器间采用 rs485 总线通信方式传输数据,管理各采集器和进行数据集中显示和处理的计算机主机采用的是 rs232 通信协议,在通信中制定了完备的通信协议,主机调度工作形式,并采用 crc 校验技术,以保证通信的可靠性。温度与湿度测量均采用单总线器件,器件送出的温度信号是数字信号,因此省去了外部 a/d 转换,简化了硬件电路,简化了系统的设计,提高了数据监测的智能化程度,器件采用恒压供电,响应速度快,重复性好,抗污染能力强。数据采集器采用双隔离供电方式,保证了系统能在恶劣的环境条件下工作。用 delphi7 开发了用户监测软件,全图形界面,力图画面美观,运行可靠,操作简便、直观。并且具有监测、报警、数据记录、历史显示与打印等多种功能。2 系统的总体设计本章首先介绍了该系统的功能,然后详细描述系统的总体设计,结合其结构框图说明了系统的工作过程。2.1 系统功能该系统的功能:1)一台主机可最多管理 32 台数据采集器,若增设中继器,可使系统扩展大于 32台采集器;2)一台数据采集器可管理 32 个测试点(温度测试点与湿度测试点合计),这样一般系统总的测试点个数可达 32321024 个;3)各温湿度测试点与其所属采集器的最远距离不超过 150 米;4)主机与采集器间可远距离通信,最大通信距离 1.2km,若增设中继器,可使最大通信距离超过 1.2km;5)delphi7 编写主机用户监测软件,全图形界面;6)可随时查询、以表格形式打印历史数据;7)可对每一个测试点设定单独的报警限值,且当采集到的数据超过其上下限时给出报警信号,同时显示测试点位置。可随时查询并可以表格形式打印报警数据。2.2 系统主要技术指标1)温度测量:(1)测量范围:-55 +125 ;(2)测量精度:0.5(-10 +85 );2.0(-55 +125 );(3)分辨率:0.1;2)湿度测量:(1)测量范围:199rh;(2)测量精度:5rh(25);(3)分辨率:1rh;2.3 系统的总体结构如图 2-1 所示,整个监测报警系统从结构上分为三层:第一层是由工控机等组成的用户监测层作为上位机;第二层是由单片机 at89c52 构成温湿度采集器作为下位机;最底层是由 ds18b20 构成的温度传感器结点和 ds2438 与 hih3610 构成的湿度传感器结点。其中温度结点和湿度结点均为满足 1-wire 通信规约的数字化结点。上位机与下位机之间的通信为总线结构的 rs485 通信网,下位机与数字化结点之间的通信由 1-wire 网络完成。 主机 ups 报警器 打印机 rs232 rs485网络 rs232/rs485转换器采集器1 采集器2 采集器3 采集器4 采集器n测试点 测试点 测试点2.1系统组成结构框图该系统的组成2 p25p27大体上可以分为三部分:一是温湿度参数的测量转换,二是测量数据的传输,三是数据的集中显示与处理3 p18p21。温湿度测量是系统的主要环节,由系统组成结构框图中温湿度采集器来完成数据的获取与处理。各数据采集器在得到温湿度数据后,加以简单处理,然后将其传送给主机,这之间的数据可靠传送是该系统中另一个要解决的关键问题。管理各采集器和进行数据集中显示和处理的计算机主机采用的是 rs232 通信协议,该协议只允许点对点通信最大通信距离为 15 米,而且驱动器只允许有 2500pf 的电容负载,通信距离也将受此电容限制。通过rs232/ rs485转换器将 rs232 转换成进行多点通信的 rs485 方式被应用到该系统中。rs485 具有带负载能力强,传输距离远(可达 1200 米),功耗小,传输速率高(最高可达 1mbps)等特点。此外,rs485 收发器采用平衡发送和差分接收,因此具有很强的抑制共模干扰能力。每块采集器所发送的数据采用的是 rs485 标准,主机发送数据采用的是 rs232 标准,将系统中完成两者之间转换的模块称为 rs485/rs232 模块。该系统的使用最终是要面向用户的,因此用户监测软件的开发将决定系统能否方便高效地运行。本系统采用美国 borland 公司优秀的面向对象开发工具 delphi7 编写用户界面,力图画面美观,运行可靠,操作简便、直观。用户软件功能一般包括数据读取与显示、报警参数的设置、数据记录、报表打印等。2.4 系统的工作过程系统中每台采集器都有一个唯一且固定的地址编码。由于系统的主机与下位机之间采用半双工的 rs485 通信标准,所以主机采用问答式的通信方式,通过不同的地址编码逐一同下层的采集器通信。作为主机的工控机以命令的方式对下层的采集器统一管理,这些命令包括:采集器搜索底层传感器的 64 位 rom 序列码,采集器启动温度传感器和湿度传感器的数据转换,采集器上传采集到的温湿度数据,主机与各采集器之间的通信通道校验等,它们均要求被主机选中的采集器上传应答信号,以确保通信。上位机把采集到的温度值与湿度值通过应用程序管理界面显示给用户,用户可通过该界面设置每一个测试点的报警上限和下限。当采集回来的温湿度值超过其对应测试点的报警上下限时,系统给出报警信号。为了实现该系统的实时性,主机是定时向各采集器发出温湿度数据采集与读回命令的,传送回来的温湿度数据以动态刷新的形式直观的显示在主机的用户管理界面上,用户可根据需要在界面上直接设置发送采集数据与读回命令以及数据刷新的时间间隔。为了保证传输数据的可靠性,所有的命令和数据传输都制定了严格的通信协议,并采取了crc 校验方式。系统会定时将采集结果存储到数据库中,以供今后的数据分析使用,该记录时间间隔也可由用户根据需要在界面上直接设置。3 单总线与温度、湿度传感器 该系统的特点之一是测量温湿度数据的传感器均采用 dallas 公司的单总线器件,单总线器件的数据传输严格遵守单总线协议。本章首先介绍由单总线温度传感器ds18b20 组成的温度采集结点,然后介绍了单总线系统,其中详细描述了单总线器件严格遵守的单总线协议,最后设计与实现了由单总线 a/d 转换器 ds2438 与湿度传感器hih3610 构成的湿度采集结点,该湿度采集结点同样遵守单总线协议。3.1 温度传感器 ds18b20系统中温度测试点的数据采集由 dallas 公司的单总线数字温度传感器 ds18b20 完成4p1p7。3.1.1 ds18b20 简介(1)独特的单线接口方式,只需一个接口引脚即可通信;(2)每一个 ds18b20 都有一个唯一的 64 位 rom 序列码;(3)在使用中不需要任何外围元件;(4)可用数据线供电,电压范围:+3.0v+5.5 v;(5)测温范围:-55 +125 ,在-10+85范围内精度为0.5,分辨率 0.0625。等效的华氏温度范围是-67f+257f;(6)通过编程可实现 912 位的数字读数方式。温度转换成 12 位数字信号所需时间最长为 750ms,而在 9 位分辩模式工作时仅需 93.75ms;(7)用户可自设定非易失性的报警上下限值;(8)告警搜索命令可识别和定位那些超过报警限值的 ds18b20;(9)支持多点组网功能,多个 ds18b20 可以并联在惟一的三线上,实现多点测温。(10)电源极性接反时,ds18b20 不会因发热而烧毁,但不能正常工作。3.1.2 ds18b20 的内部结构ds18b20 采用 3 引脚 to92 小体积封装,其内部结构如图 3-1 所示,主要由 4 部分组成:64 位 rom 序列码、温度传感器、非易失性的温度报警触发器 th 和 tl、配置寄存器。图 3-1 ds18b20 的内部结构rom 中的 64 位序列码是出厂前被光刻好的,它可以看作是该 ds18b20 的地址序列码,每个 ds18b20 的 64 位序列码均不相同。如图 3-2 所示,64 位光刻 rom 的排列是:开始 8 位是单线产品系列编码(比如 ds18b20 的编码是 28h,ds1820 的编码是 10h,ds2438 的编码是 26h),同一型号的单总线器件的编码相同。接着的 48 位是该 ds18b20唯一的序列号,最后 8 位是前面 56 位的循环冗余校验码(crc=x8+x5+x4+1)。单总线器件的序列号唯一性特点,保证了在一根总线上可以挂接多个单总线器件的实现。8位crc编号48位序列号8位产品系列编码msb lsb msb lsb msb lsb(最高有效位) (最低有效位)图 3-2 64 位 rom 结构示意图如图 3-3 所示,ds18b20 的内部存储器包括一个高速暂存(便笺式)ram 和一个非易失性 eeprom(高温触发器 th、低温触发器 tl 和配置寄存器)。暂存存储机制有利于在单线通信时确保数据的完整性。数据通常首先写入暂存存储器,在那里它可以被读回。当数据被校验后,复制暂存存储器的命令把数据传送到非易失性 eeprom。这一过程确保了更改存储器时数据的完整性。同时非易失性 eeprom 也保证了 th、tl 与配置寄存器内容的掉电不丢失,器件每一次上电时这三个字节的内容被重置到高速暂存 ram 对应的空间。图 3-3 ds18b20 的存储器组织高速暂存存储器是按 9 个 8 位字节存储器来组织的。其中第 0、1 个字节为只读型字节,分别包含测得温度信息的低位和高位字节,第 2 和第 3 个字节是 th 和 tl 的易失性拷贝,在每一次上电复位时被刷新。如果在使用 ds18b20 的过程中不对其施加告警搜索命令,则第 2 和第 3 个字节可用作通用用户存储器,在本系统中即作为通用存储器使用,定义这两个字节存储该温度传感器在系统中的序号,为每个温度传感器分配的序号在系统中是唯一的。第 4 个字节为配置寄存器,接着的三个字节为器件内部使用而保留,不可对其施加写命令。第 8 个字节为只读型字节,它是前面所有 8 个字节的循环冗余校验字节(crc)bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 r1 r0 1 1 1 1 1图 3-4 配置寄存器其中配置寄存器的结构如图 3-4,r1 和 r0 用于确定温度值的数字转换分辨率,ds18b20 工作时按此寄存器中的分辨率将温度转换为相应精度的数值。如表 3-1 所示(ds18b20 出厂时被设置为 12 位)。表 3-1 r1 和 r0 模式表r1r0分辨率最大的温度转换时间009-bit93.75ms0110-bit187.5ms1011-bit375ms1112-bit750ms由表 3-1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。本系统中对于各 ds18b20 的配置寄存器都没有进行修改,即采用其出厂时的配置,使得采集到的温度值分辨率可达到 12bit。当 ds18b20 接收到温度转换命令后,开始启动转换。转换完成后的温度值以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 0,1 字节。主机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以 0.0625 /lsb 形式表示。3.1.3 crc 校验原理与实现crc 的英文全称为 cyclic redundancy check(code),它是一类重要的线性分组码。crc 校验的基本思想是利用线性编码理论5,6,将要发送的数据比特序列当作一个多项式f(x)的系数,在发送方用双方预先约定的生成多项式 g(x)去除,求得一个发送余数多项式。将发送余数多项式加到数据多项式之后发送到接收端,接收端用同样的生成多项式 g(x)去除接收数据多项式 f(x),得到接收余数多项式。如果接收余数多项式与发送余数多项式相同,则表示传输无差错,否则表示传输有差错,由发送方重发数据,直至正确为止。crc 检错能力强,容易实现,是目前应用最广的检错码编码方法之一。crc 生成多项式 g(x)由协议规定,目前已有多种生成多项式列入国际标准中,例如:crc-12 g(x) = x12 + x11 + x3 + x2 + x +1crc-16 g(x) = x16 + x15 + x2 +1crc-ccitt g(x) = x16 + x12 + x5 +1器件ds18b20在两个方面应用了crc校验的理论4p7。其中一方面是存储在64位rom最高有效字节内的 8 位 crc,该 crc 校验字节的作用是:总线上的主机可以根据 64 位rom 的前 56 位计算 crc 值并把它与该校验字节进行比较,用来确定主机搜索回来的 rom信息是否正确。crc 生成多项式的函数为: g(x) = x8 + x5 + x4 +1 (3-1)另一方面ds18b20也利用上述的多项式函数产生一个crc校验字节放在高速暂存存储器的第九个字节,并把此值提供给总线的主机以确认数据字节的传送。在使用 crc 来确认数据传送的每一种情况中,总线主机必须使用上面给出的多项式函数计算 crc 值,并把计算所得的值或者与存储在 64 位 rom 中的 crc 值,或者与高速暂存存储器中的 crc值进行比较。crc 值的计算、比较和是否继续操作都由总线主机来决定。在本系统中,为了减少系统的硬件开销,采用软件来实现 crc 校验过程。作为单总线上主机的单片机中有相应的程序段供 crc 校验调用。用汇编语言实现的 crc 校验的源程序代码段如下:crc: nopmov a,r1push bmov b,#08hcrc_loop:push accxrl a,temprrc apop accrr apush accmov a,tempjnc zeroxrl a,#18h zero:rrc amov temp,apop accdjnz b,crc_loopmov a,temppop bret该程序段实现的是对一个字节数据的校验,其中 r1 作为间址寄存器,即 r1 中为待检测字节所在单元的地址,temp 为移位寄存器的值,b 寄存器记录移位寄存器向右移动的次数。对若干个连续字节的值进行校验时,只需要设置一个循环,循环次数由字节个数决定,每一次循环中改变 r1 寄存器的值,然后调用该程序段即可实现。3.2 单总线系统单总线(1-wire)技术是近年来由美国 dallas 半导体公司研发的一种总线技术7,8。与 spi、i2c 等多种标准串行数据通信方式不同,它采用单根信号线传输时钟和数据,以其具有的节约 i/o 资源、结构简单、成本低廉、便于总线扩展和维护等优点越来越多的被广泛应用于民用电器、工业控制领域。单总线适用于单个主机(master)控制一个或多个从机(slave)设备的系统。当只有一个从机设备时,系统可按单节点系统操作,当有多个从机设备时,系统可按多节点系统操作。其中主机可以是微控制器,从机为单总线器件。在 dallas 的产品中,这类单总线器件有温度传感器 、一线存储器、a/d 转换器、可寻址开关等。与其它如并行、串行及专用总线相比,单总线突出的特点是主机控制器件的地址线、数据线和控制线合成为一条信号线与从机设备进行双向的数据交换。所以在有多路多个测控对象时,系统的布线简单、方便。但是较小的硬件开销需要相对复杂的软件设计进行补偿。本数据采集系统即为单总线系统,系统中的主机为单片机,从机为单总线器件。3.2.1 单总线协议经过单线接口访问单总线器件有严格的单总线命令序列如下4p8p11:1)初始化2)rom 操作命令3)存储器操作命令(功能命令)4)数据传输每次访问单总线器件,都必须严格遵守这个命令序列。如果出现序列混乱,则单总线器件不会响应主机。初始化:基于单总线的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道总线上有从机设备且准备就绪。rom 命令:当主机检测到应答脉冲后,就可以发出 rom 命令。存储器操作命令(功能命令):通过 rom 操作命令使得总线主机与总线上某些或某一从机设备确定了通信关系之后,主机发出的功能命令便可以驱动从机设备进行相应的动作,当需要进行数据的传输时,从机设备会把主机要求的信息以串行传输的方式送到单总线上。系统中采用的单总线测温器件 ds18b20 的命令码功能说明见表 3-2。表 3-2 ds18b20 的 rom 命令和存储器操作命令表命令指令码功能说明rom功能命令读rom匹配rom快速搜索rom搜索rom报警搜索33h55hcchf0hech直接读ds18b20的rom信息寻找与指定rom相匹配的ds18b20直接访问总路线上的ds18b20识别总路线上所以ds18b20的romw信息搜索有报警的ds18b20存储操作命令温度转换写便笺式ram读便笺式ram复制笺式ram读eeprom读供电标识位44h4ehbeh48hb8hb4h启动温度转换写th tl和配置寄存器读便笺式ram(含crc共9各个字节)把th tl和配置寄存器复制到eeprom读eeprom中的数据到th tl和配置寄存器0:寄生电源供电; 1:外部电源供电在执行温度转换和拷贝便笺式 ram 数据至 eeprom 功能期间,主机必须在单总线上允许强上拉,并且在此期间,总线上不能进行其它数据传输。通过发出复位脉冲,主机可以在任何时候中断数据传输。所有的单总线器件要求采用严格的通信协议来确保数据的完整性。其协议中规定的信号4p14p16类别有:复位脉冲,应答脉冲、写 0、写 1、读 0 和读 1。所有这些信号,除了应答脉冲之外,均由总线主机产生。并且发送所有的命令和数据都是字节的低位在前。协议中给出了各种信号严格的操作时序,该系统中,使用晶振为 11.0592mhz,根据其初始化时序编写的初始化子程序如下:int2:nop;以 p0.2 口连接单总线器件为例clrea;关闭允许中断位push bint20: clrp0.2;主机发出复位脉冲至少持续480smovb,#200int21: clrp0.2djnz b,int21setb p0.2;主机给出正脉冲持续1560smovb,#30int22: djnz b,int22movb,#100int23: clrcorlc,p0.2jncint24 djnz b,int23;等待从属器件的应答脉冲,低电平持续时间为60240sint24: movb,#80int25: orlc,p0.2jc int26 ;若应答脉冲出现,其持续一定时间后总线应恢复为高电平djnz b,int25 ;否则主机再发出复位脉冲,进入新一轮的初始化sjmp int20int26: movb,#100int27: djnz b,int27popbret根据其读时序编写的读数据子程序如下:read2: nop ;仍以p0.2口连接单总线器件为例,读一个字节的数据push bmov b,#8re21:push bclr p0.2 ;主机将总线拉至低电平开始读时序,至少持续1smovb,#4nopnopnopsetb p0.2 ;主机将总线拉到高电平,准备对总线上数据的采样re22:djnzb,re22movc,p0.2;主机采样rrcamovb,#27re23:djnz b,re23;延迟一段时间以满足读时序最短持续期限60ssetb p0.2movb,#10re24:djnz b,re24;读时序时两位数据之间的间隔最少为1spopbdjnz b,re21;循环8次,接收完一个字节的数据之后,返回popbserb p0.2ret根据其写时序编写的写数据子程序如下:write2: nop;仍以p0.2口连接单总线器件为例,写一个字节的数据push bmovb,#8wri21: push bsetb p0.2movb,#9;主机将总线从高电平拉至低电平开始写时序rrca clrp0.2;低电平至少持续15swri22: djnz b,wri22movp0.2,cmovb,#20wri23: djnz b,wri23;将数据“0”或“1”放到总线上,持续时间最少为45ssetb p0.2movb,#10;写时序时两位数据之间的间隔最少为1swri24: djnz b,wri24popbdjnz b,wri21;循环8次,写完一个字节的数据之后,返回popbsetb p0.2ret3.2.2 单总线系统中 rom 搜索算法的研究与实现在单总线系统中,当有多路多个单总线器件都并联在信号线上时,意味着这些单总线器件必须能够分别在合适的时间驱动该总线,而实现分时驱动和控制的前提是主机能够区分出各个不同的从者,即主机能够获取各器件的 64 位 rom。若要对某一个从属器件进行操作(存储器操作),主机必须首先发送该器件 64 位 rom 序列码到总线上,这时总线上所有的从属器件均会收到此序列,但只有具有同样 rom 序列的从属器件才进行响应,而且此后的所有操作都是针对该器件的,直到下一个复位脉冲到来。在本系统的开发过程中,即以二叉树的理论为基础,研究得出一种对单总线器件 rom 的搜索方法,并用单片机的汇编语言得以实现。rom 搜索过程是简单三步过程的重复9p12:读一位,读该位的补码,写所需要的那一位的值。总线主机将在 rom 的每一位上完成这一简单的三步过程。在全部过程完成以后,总线主机便知道一个器件中 rom 的内容。完整的搜索过程开始于总线主机发出复位脉冲以启动初始化序列,所有的从属器件将对该指令作出反应,即向主机送回存在脉冲,然后总线主机在单线总线上发出搜索rom 的命令字节。收到该指令后,所有的从属器件通过把它们各自 rom 数据的第一位放到单线总线上来作出响应。由单总线的特性决定,当所有从属器件同时响应时,最后的结果为所有位的逻辑与,由此得到一位数据,然后总线主机读另一位。因为搜索rom 命令正在执行,所以单线总线上所有器件通过把它们各自 rom 数据第一位的补码放到单线总线上来对第二个读作出响应。总线上逻辑与之后便得到第二位数据。对两次读的四种可能情况,其具体含义如下:00 有器件连接,参与搜索的 rom 相应位既有 0 又有 1。01 有器件连接,参与搜索的 rom 相应位均为 0。10 有器件连接,参与搜索的 rom 相应位均为 1。11 没有器件与单线总线相连。对于第二、第三种情况,表示所有从属器件的 rom 数据在该位上是相同的,那么总线主机分别写 0、写 1 之后便可进入下一个简单三步过程。对于第一种情况,表示从属器件的 rom 数据在该位上有冲突,搜索过程在该位置出现了分支,那么总线主机必须通过写 0 或者写 1 的操作将在该位上冲突的从属器件区分开来,即选择一个分支以保证能够继续下一个简单三步过程,而该点的另一个分支必须保证在以后的某个完整的搜索过程中能够得到遍历。用二叉树的数据结构对 rom 搜索的建模11 p62p64可表述如下:现假设单总线上挂接 8 个单总线器件,则其相应的二叉树结构中有 1 个根节点、8个终端结点,结点层数均为 65,从每个终端结点到根节点的路径长度为 64,与搜索到的每个单总线器件 64 位 rom 地址码相对应。根据二叉树结构的性质:若终端结点数为 8,则度为 2 的结点数为 8-1=7,这里表示在这 7 个结点上同时出现了左子树和右子树,其他结点则只有左子树或右子树,或没有子树(终端结点)。约定左子树写 0,右子树写 1,那么从根节点分别到 8 个终端结点的遍历就可得到 8 个单总线器件的 rom地址码。3.3 湿度传感器选择及外围电路设计3.3.1 湿度传感器 hih3610该系统的湿度检测采用了美国 honeywell 公司生产的相对湿度传感器 hih3610。hih3610 的管脚排列如图 3-5,三管脚的外部结构使得其应用起来非常方便。其线性的电压输出可使器件直接与控制器或其它器件相连,驱动电流小使它适合于电池供电,hih3610 的性能指标如表 3-3 所示,并且厂方单独为每只 hih3610 提供了标定数据。图 3-5 hih3610 的管脚排列图表 3-3 hih3610 湿度传感器性能指标参数指标rh精度2%rh.,0100%rh非凝结,25(供电电压=vdc)rh互换性5%rh,060%rh;8%90%rhrh线性0.5%rh典型值rh迟滞1.2%rh最大量程rh重复性0.5%rhrh反应时间30s, 慢流动的空气中(1/e25)rh稳定性1%rh典型值,50%rh,5年时间内供电电压49vdc(传感器在5vdc下标定)消耗电流0.2ma,5vdc, 2ma 典型值 9vdc3.3.2 单总线数字湿度传感器外围电路设计由于系统中采用的 hih3610 湿度传感器,其输出量仍然是模拟电压量,因此在本系统的设计过程中为了实现全数字化的单总线网络,使用 dallas 公司单总线器件 ds2438配合 hih3610 设计一种单总线湿度传感器,使之可以直接挂接到单总线上。由本章第二节的内容可知,挂在单总线上的器件必须满足以下几方面的要求12 p21p24:低功耗:单总线网络中的器件一般是从总线上窃取电源,不用本地电源供电,因此要求单总线器件必须满足低功耗的特性。具有唯一的身份码:单总线是通过身份码来识别挂在同一总线上的不同器件的,因此要求每个单总线器件均具有全球唯一的 64 位 rom 识别码。必须满足单总线器件的时序要求。dallas 公司生产的 ds2438 满足上述要求,利用 ds2438 的 a/d 转换功能,设计出的单总线数字湿度传感器的原理图如图 3-6 所示。 图 3-6 单总线湿度传感器原理图ds2438 是 dallas 公司推出的智能电池监视器13,14。该器件是为了解决便携式电子产品电池工作状态的实时监测而推出的,主要性能特点如下:单总线器件,仅需 1 根口线实现电源及双向数据传输;片内 13 位精度温度传感器,最小分辨率 0.03125;片内 10 位二通道电压 a/d 转换器,最小分辨率为 10mv;片内 10 位电流 a/d 转换器;片内 40 字节非易失性用户存储器;单电源工作,低功耗特性;工作温度范围为-40+80。ds2438 采用 soic 表面贴装封装形式,其外形及引脚排列如图 3-7 所示。图 3-7 ds2438 的外形及管脚排列图ds2438 的内部结构如图 3-8 所示,主要由单总线接口、电压 a/d 转换器、电流 a/d转换器、温度传感器、时钟电路、40 字节的 eeprom 及与上述硬件相关的寄存器组成。其中的电压 a/d 转换器的输入,可编程为由 vdd 电源端输入或 vad 输入端输入,以满足vdd 电源端及外部输入模拟量 vad 的测量要求。图 3-8 ds2438 的内部结构ds2438 的存储空间有 8 页,页地址为 0007h,每页 8 个字节,共 64 个字节,每一页都有对应的高速暂存页,因此存储器包括 ram 高速暂存器和 sram/eeprom(掉电保护)两部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绩效咨询方案
- 数字孪生技术助力2025年航空航天发动机装配效率提升报告
- 粘土截水墙施工方案
- 电瓶车充电安全培训会课件
- 线性元素建筑分析方案设计
- 电焊工安全理论培训课件
- 加装闸阀施工方案怎么写
- 测量长度和时间的课件
- 电炸炉安全使用培训课件
- 电流的磁效应实验课件
- 2025年第一届安康杯安全生产知识竞赛试题题库及答案(完整版)
- 贵州省贵阳市2026届高三上学期摸底考试数学试卷含答案
- 公司年度员工安全教育培训计划
- 生育津贴相关管理办法
- 2023-2025年中考语文试题分类汇编:记叙文阅读(辽宁专用)解析版
- 2025年杭州市上城区望江街道办事处 编外人员招聘8人考试参考试题及答案解析
- 百果园水果知识培训资料课件
- 2025年公路检测工程师《水运结构与地基》试题及答案
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 叙事医学培训课件
- 智能电子储物柜控制系统方案
评论
0/150
提交评论