引言
BLM(双层脂质膜)是生物膜的基本结构,是嵌人生物活性成分及化学修饰剂的理想材料。实验表明,在这种新型生物材料中嵌入不同功能的生物活性分子或化合物(如酶、蛋白质、色素等),即可使BLM具有不同的功能。由于BLM及内嵌物质有一定的活性,为使BLM能够比较稳定地工作,需要实时检测BLM的工作温度情况。而传统的温度传感器在布线上比较困难,且远距离传输会引起较大的误差。本文用单总线式温度传感器DS18B20,配合单片机及无线通信模块PTR8000进行无线数据传输,使得布线工作大大简化,并可以达到实时监控的日的。
1 系统设计
根据实际需要,本系统由上位机(PC机)、收发模块及数据采集终端组成点对点的无线传输。PC机与采集终端之间采用433 MHz的频段作为载波频率。系统的工作方式采用命令应答方式,PC机将采集数据指令下达给主收发器,从收发器对主收发器发出的地址信息进行处理,若与本机地址柏符则执行命令。采集终端将DS18B20温度传感器采集的数字信号由单片机传送到无线收发模块,PTR8000将接收到的数据按照一定的协议进行打包,加入字头和CRC(循环冗余校验),发送给主收发模块,最后由单片机通过RS-232将数据传送到PC机,由PC机处理分析。
无线传输系统的实现框图如图1所示。
2 系统硬件设计
系统的采集端主要由DS18B20数字温度传感器及AT89LV51单片机组成。无线传输部分主要由单片机控制PTR8000的收发。
2.1 PTR8000收发模块
与PTR2000相比,PTR8000性能更优越。它是以nRF905为核心的一款无线收发模块,工作在433/868/915 MHz的ISM(工业、科学、医疗)频段,由一个完全集成的频率调制器、一个带解调器的接收器、一个功率放大器、一个晶体振荡器和一个调节器组成。最大传输速率可达到100 kbit/s。通道切换时间小于650μs,可工作在ShockburstTM模式下(自动处理前缀,地址和CRC),可以很容易通过SPI接口进行编程配置。工作电压为1.9 V~3.6 V,处于接收模式时电流为12.5 mA,在掉电模式时工作电流仅25μA,功耗很低。图2给出PTR8000的用户接口。
该接口由10个数字I/O组成,按照工作可分为3组:
a) 模式控制:PTR8000的工作模式由TRX_CE,TXEN,PWR来设置,如表1所示。
b) SPI接口:由SCK、MISO、MOSI和CSN组成。在配置模式下,单片机通过SPI接口配置PTR8000的工作参数;在发射/接收模式下,单片机通过SPI接口发送和接收数据。
c) 状态输出接口:在RX模式中,地址匹配(AM)和数据准备就绪(DR)信号通知MCU一个有效的地址和数据包已经各自接收完成。在TX模式中,nRF905自动产生前导码和CRC码,DR信号通知MCU数据传输已经完成。
2.2 PTR8000模块硬件连接
在本设计中,AT89LV51单片机不具有SPI接口,因此用I/O口软件模拟SPI接口。硬件如图2所示。
2.3 DS18B20
DS18B20是美国DALLAS公司生产的单总线数字温度传感器,与传统的热敏电阻等测温元件相比,DS18B20能直接读出被测温度,并可根据实际需要通过简单的编程实现9~12位的数字值读数方式。由于每一个DS18B20出厂时都刻有唯一的一个序列号并存入其ROM中,因此CPU用简单的通信协议就可以识别,从而节省了大量的引线和逻辑电路,具有微型化、低功耗、高性能、抗干扰能力强等优点。其主要特性如下:
a) 独特的单线接口仅需要一个端口引脚进行通信;
b) 多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
c) 可以通过数据线供电,电压范围为3.0V~5.5 V;
d) 测温范围为-55℃~125 ℃;
e) 温度以9或12位数字量读出;
f) 分辨率为12位时,温度转换时间为750 ms;
g) 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
DS18B20可以采用两种供电方式:一种是采用电源供电方式,GND接地,数据线与单片机的I/O 口相连;另一种是寄生电源供电方式,此时VDD和GND接地,数据线接单片机I/O口。无论是寄生电源方式还是外部供电方式,I/O口线都要接5 kΩ左右的上拉电阻。这是由于温度转换和写入E2PROM时要求电流较大、持续时间较长,因此要求数据线在此期间要强制上拉。本设计中采用外接电源方式。
DS18B20与MCU的连接方式如图3所示。
3 软件设计
主要介绍单片机对测温芯片的数据采集和发送程序。当从收发器接收到主收发器传送的采集命令时,单片机就启动温度传感器进行数据采集。
3.1 数据采集程序设计
DS18B20的工作严格遵守单总线器件的通信协议,以保证数据的完整性。单总线协议定义了复位脉冲、应答脉冲、写0、写1、读0和读1等几种类型的信号,所有的单总线命令序列都是由这些基本的信号类型组成。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。在本设计中,总线上只有一个温度传感器,转换精度为12位。这里只给出其读温度的流程如图4所示。
所涉及到的ROM操作命令及作用如下:
a) 跳过ROM,命令字为[CCH]:这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。
b) 启动温度转换,命令字为[44H]:这条命令启动一次温度转换而无需其他数据。温度转换命令被执行后,DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出时问隙,而DS18B20又忙于做时间转换,则DS18B20将在总线上输出0,若温度转换完成,则输出1。
c) 读存储器,命令字为[BEH]:这条命令用于读取暂存器的内容。读取将从第1个字节开始,一直进行下去,直到读完9个字节。若不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。
3.2 温度数据的处理方法
在采用12位转换精度时,温度寄存器中的值是以0.062 5为步进的,即温度值为温度寄存器中的二进制值乘以0.062 5,就是实际的十进制温度值。实际上,将二进制高字节的低半字节和低字节的高半字节组成一个字节,这个字节转化为十进制后,就是温度值的整数部分。而剩下的低字节的低半字节化成十进制后,就是温度的小数部分。小数部分因为是半个字节,所以二进制范围是0~F,转换成十进制后小数值是0.062 5的整数倍。在实际应用过程中,不必有这么高的精度,将小数部分四舍五入,可以将温度精确到0.1℃。表2是二进制和十进制的近似对应关系。
例如:从DS18B20读出的数据为1111 1111 01011110。高字节的前5位为符号位,因此测得的温度值为负值,先将补码变成原码为0000 0000 1010 0010。按照上面的方法得出温度的整数部分为0000 1010,化为十进制数为10;数部分为0010,化为十进制为2,再乘以0.062 5,得出0.125,近似为0.1,因此该温度近似为-10.1℃,与真实温度-10.125 ℃相比,误差很小。
3.3 无线收发器程序设计
在整个系统中,无线传输为主要部分。上电后,从收发器首先进入待机模式配置RF-Register,RF-Regis-ter的配置字内容可以决定PTR8000的工作特性。RF-Register共有10个字节,包括频率、发送功率、地址、有效字节长度等重要信息,应根据实际情况进行配置。PTR8000的所有配置都是由SPI接口进行的。然后,从收发器进入接收模式,以便接收主收发器的命令。接收到有效指令后,单片机启动温度传感器采集温度信号。再从收发器进人发射状态,将数据传输出去。该部分流程图如图5所示。
3.4 PTR8000发射及接收过程
当PTR8000设置成发射模式时,会自动加入前导码及CRC码,经过GFSK调制以100 kbit/s发送数据,然后DR被置高。
当处于接收状态时,PTR8000负责载波信号的检测、地址匹配和数据包的解码和接收。发射和接收流程图如图6和图7所示。
4 结束语
本文采用低价格的单片机与无线收发模块PTR8000相结合构成的无线传输系统,具有功耗低、误码率低、工作稳定等优点。若将数据采集端稍加改进,构成点对多点双向数据传输通道,可广泛应用于环境监测、无线抄表等领域中,具有很好的推广价值。 |