一种基于DS18B20的温度采集新方案
用寄存器代替累加器,避免了传统的累加器与存储器之间的数据传送,可在一个时钟周期内执行一条指令来访问两个独立的寄存器,代码效率比常规CISC微控制器快十倍。高效的读写速度,更适合于对及时性要求高的场合。b.性价比高。c.工作电压范围宽(2.7~6V)、抗干扰能力强,这样更适合在各种条件下处理测量温度值。总之,AVR单片机在一个芯片内将增强性能的RISC 8位CPU与可下载的FLA-SH相结合使其成为适合于许多要求、具有高度灵活性和低成本的嵌入式高效微控制器。
图4给出了DS18B20采用外部电源供电方式时,与Atmega16单片机的硬件连接图。
3 DS18B20更新问题的解决方案
本课题在深入研究了数字传感器工作机理的基础上,通过硬件设计和软件编程,提出了解决数字传感器更换的方案,并应用在了通过无线传感器网络远程控制传感器的设计中,而且在硬件平台上实现了仿真。图5是通过Proteus 7单片机软件仿真系统设计的,单片机控制DS18-B20并显示测试结果的电路图。
3.1 硬件设计
单片机通过I/O口控制DS18B20,每个I/O口外接60个DS18B20,同时单片机通过SPI串行接口外接外部存储器EEPROM,如图6所示。
本课题中,外部存储器EEPROM选用意法半导体(ST)生产的M95128;选用Atmega16单片机。DS18B20采用外部电源供电方式,所以VCC接外部电源,GDN接地。
M95128芯片采用MLP8微型封装技术,因此,可以大大节省产品的空间和成本;待机功耗低于3μA,也是该芯片的一大特点;四线的SPI接口支持最高 2 Mbit/s的通信速率,除提供标准的硬件写保护功能外,还支持软件写保护。外部存储器EEPROM用来存放单片机控制的所有DS1-8B20的序列号,和对应的逻辑地址。一个DS18B20的序列号占八个字节,所以一路数据线上所接DS18B20温度传感器的个数与外部存储器EEPR-OM的存储空间有关。M95128芯片的容量达128kbit,可以存储13107个DS18B20的序列号和对应的逻辑地址,足以满足本课题的需要。
单片机Atmega16的PB5(MOSI)口接EEPROM的DI(数据输入)口,PB6(MISO)口接DO(数据输出)口,PB7(SCK) 口接SK(读写时钟信号输入引脚)。单片机读到每个DS18B20的序列号后,通过PB5口将序列号和对应的逻辑地址写入EEPROM中。需要某个逻辑地址对应的序列号时,EEPROM通过DO口将序列号传入单片机中。
3.2 软件设计
本课题设计使单片机每次上电时,都重新读取每根数据线上的每个DS18B20的序列号和温度报警器中的内容,I/O端口号+温度报警触发器中的层信息即为该DS18B20的逻辑地址。单片机将读取到的各DS18B20的序列号与其对应的逻辑地址,通过MOSI引脚保存在外部存储器EEP-ROM中。在控制模块的固化程序中,只涉及传感器的逻辑地址。当需要访问某个传感器时,单片机会根据固化程序中的逻辑地址在EEPROM中查找该逻辑地址对应的 DS18B20序列号,从而找到需要访问的传感器。在更换了某个DS18B20时,只需给单片机重新上电,微控制会更新EEPRO-M,而不需修改控制模块中的固化程序。
本课题中,使用ICCAVR编译器作为软件开发环境,编译C语言程序代码。向EEPROM中保存序列号的程序流程图如图7所示。
根据控制模块中涉及的逻辑地址,单片机在EEPROM中查找对应的DS18B20的序列号的程序流程如图8所示。
4 结语
无线测温系统的应用前景非常广阔。本课题提出的通过外接EEPROM存储器,保存DS18B20的序列号和对应的逻辑地址的方案,解决了 DS-18B20的更新问题。可以极大地提高技术人员及工作人员的工作效率;同时,由于在通信链路中传输的是逻辑地址,所以减少了链路中的冗余信息,增加有效信息的传输,提高无线传输效率。因此,本课题设计的温度采集系统具有运行速率快、性能稳定、数字化程度高、便于维护等特点。此系统在各类数字通信、环境监测、安防系统等多个领域具有广泛的应用价值。并且已经在CX-AT16硬件平台上实现了仿真。
- 基于单片机的高精度温度测量系统设计(05-07)
- 基于DS18B20的家用温度测量器设计(09-18)
- 电池温度智能监测系统的是设计(11-01)
- 电池温度智能监测系统(10-25)
- 串联锂离子电池组监测(11-28)
- 基于AT89C52单片机的超声波测距仪的设计(02-01)