|
摘要: 为了实现对药品冷藏运输及配送过程中温度变化的实时记录,介绍了一种低功耗冷链温度记录仪的软硬件设计方法。温度记录仪硬件包括温度数据采集、数据读取及处理、数据存储3个部分,其功能分别由数字温度传感器STTS75、低功耗微控制器STM8L101F3,以及具有I2C和RF双接口的数据存储器M24LR64完成。软件编程采用模块化思想,通过对STTS75、STM8L101F3工作模式配置可以实现系统低功耗运行。M24LR64内存储的温度数据在需要时可以通过射频方式读出。
关键词: M24LR64;冷链;温度记录仪;低功耗
中图分类号: TP216文献标识码: A
Application of M24LR64 in Cold Chain Temperature Logger
Yu Conghua, Zhao Zhenhua(School of Electrical and Information Engineering, Wuhan Institute of Technology, Wuhan 430074, China)
Abstract: This paper introduces a kind of software and hardware design for lowpower cold chain temperature logger in order to record temperature data in realtime during the refrigerated transport and distribution of drugs. The hardware of temperature logger includes collecting, reading and processing, and storing temperature data, whose functions complete by digital temperature sensor STTS75, lowpower microcontroller STM8L101F3 and data memory M24LR64 with I2C and RF interface respectively. Software design uses modular process to make sure of low power consumption for system operation through configuring the register mode of STTS75 and STM8L101F3. The temperature data stored in the M24LR64 can be read by the RF reader when needed.
Key words: M24LR64;cold chain;temperature logger;lowpower
引言
随着工业化技术的不断发展,疫苗、生物制剂和药品等对温度敏感的商品在加工、储存、运输、销售等过程中,需要对各个过程中的温度参数进行记录跟踪,以保证产品质量,这就是冷链体系。药品冷链由冷冻加工、冷冻贮藏、冷藏运输及配送、冷冻销售4个方面构成,而在冷藏运输及配送环节最容易出现问题。药品冷藏运输及配送需要温度保持在2~8 ℃范围内,而原有监测技术手段滞后是最大的技术瓶颈[12]。为了保证在药品冷藏运输及配送环节实现温度监控,克服实时性差、监管脱节、取证和责任界定困难的不足,本文设计了一种可实现温度数据自动存储、非接触式读出的冷链温度记录仪。
1 系统总体结构及功能
1.1 系统总体结构
冷链温度记录仪主要由温度传感器、微控制器和数据存储器组成,如图1所示。整个系统基本工作流程是:首先温度传感器利用内部A/D转换器将采集的温度值转换后得到相对应的数字量,接收到微控制器发出的串行时钟脉冲(SCL)和读数据指令后通过I2C总线将数据传送至微控制器,微控制器对温度传感器传送的数据进行相应处理,然后微控制器向存储器发出串行时钟脉冲(SCL)和写数据指令,通过I2C总线将数据存储于数据存储器内。
图1 系统总体结构
1.2 系统功能
冷链温度记录仪应用在药品冷藏运输及配送环节,需要考虑产品的耐温性能、续航时间、数据存储能力,因此器件选择需要考虑器件适用温度范围、数据传输方式和速度、功耗等多方面因素。温度记录仪应当具有以下功能:
◆ 测量温度范围2~8 ℃,测量精度±0.5 ℃。
◆ 系统功耗低,续航时间长。
◆ 数据存储空间大,数据读取方便。
◆ 体积小,便于安装。
◆ 更换电池方便,价格低,可循环使用。
2 硬件电路设计
2.1 器件选型
(1) 温度传感器
温度传感器选用ST(意法半导体)公司生产的STTS75数字温度传感器,它内置一个9~12位A/D转换器,温度测量范围-55~125 ℃,供电电压为2.7~5.5 V,在3.3 V电压下工作电流为75 mA。STTS75有8个引脚,A2、A1、A0三个引脚可实现8个传感器共用同一条总线而不会发生地址冲突(地址为1001A2A1A0),SCL、SDA通过I2C总线可以将传感器配置为比较模式、中断模式、关闭模式和单发模式。在单发模式下,通过对数据的间歇性采集,可以达到降低功耗的目的。首先将传感器设置为关闭模式(shutup mode,电流只有1 μA),当微控制器发送信号启动单图2冷链温度记录仪硬件电路发模式后采集一次温度数据,数据采集完成后自动进入关闭模式,即传感器处于休眠状态[3]。
(2) 微控制器
微控制器选用ST公司的8位低功耗单片机STM8L101F3,它具有16 MHz RC振荡器和38 kHz RC振荡器,8 KB Flash,3种低功耗模式,具有自动唤醒功能,供电电压1.65~3.6 V[4]。STM8L101F3具有5.1 μA低功耗工作模式、3.0 μA低功耗等待模式、1.2 μA暂停模式、350 nA停止模式4种电源管理模式。在暂停模式下可以利用自动唤醒单元(AWU)设置自动唤醒时间间隔。
(3) 数据存储器
数据存储器选用ST公司2010年新推出的M24LR64,它是一款内置标准I2C串口和ISO15693标准RF接口的EEPROM存储器,供电电压1.8~5.5 V,具有64位唯一标识符(UID),I2C传输频率为400 kHz,RF传输载波频率13.56 MHz,存储器容量64 KB,采集数据可保留40年[5]。M24LR64有8个引脚,SCL、SDA通过I2C总线实现数据的存储,E1、E0为器件选择码(b2b1位),在不接的情况下默认为0,AC0、AC1为天线线圈连接端。M24LR64提供一个ISO15693标准的 RF接口,可与RFID阅读器进行无线通信。ISO15693是一种无源RFID标准,能同时从RF系统获取电能和数据。在RF模式下,读写M24LR64不需要电源,从而节省板上电源,轻松、便捷地无线存取电子产品参数。
2.2 硬件系统工作原理
冷链温度记录仪由温度传感器、微控制器和数据存储器组成,硬件电路如图2所示。温度传感器STTS75、微控制器STM8L101F3和数据存储器M24LR64都是低功耗产品,3 V纽扣电池即可实现冷链温度记录仪系统供电。系统上电后,微控制器STM8L101F3首先实现初始化操作,通过I2C总线向STTS75内部配置寄存器(Configuration Register)写入配置信息,使其工作模式为关闭模式、模/数转换为9位模式,然后STM8L101F3向配置寄存器写入数据使STTS75处于单发模式。STTS75进行一次温度数据采集,在数据转换完成后将自动进入关闭模式,等待下一次唤醒。接着STM8L101F3从温度寄存器(Temperature Register)内读取温度数据,进行数据处理,继而通过I2C总线将处理后的数据写入M24LR64内,最后进入暂停模式。经过AWU设置的延时时间后,STM8L101F3将自动唤醒,向STTS75发送配置信息使其进入单发模式,然后读取数据、处理数据,并将处理后数据存入M24LR64的下一空间内,接着进入暂停模式。周而复始即可实现温度数据在固定时间间隔内的采集、处理和存储。
图2 冷链温度记录仪硬件电路
3 软件设计
软件开发环境选用ST Visual Develop (STVD) IDE,软件设计采取模块化思想,主要由温度数据采集、数据处理和数据存储3个部分组成。系统上电后首先进行传感器和M24LR64的初始化,然后对传感器进行配置,数据转换结束后进行数据读取,然后将数据存储于M24LR64内,数据存储完成后进入暂停模式,AWU功能启用,延时一段时间后将自动唤醒微控制器重复以上操作,具体流程如图3所示。
图3 冷链温度记录仪软件流程
冷链温度记录仪程序主要由传感器初始化函数、M24LR64初始化函数、传感器配置函数、读传感器数据函数、温度数据处理函数和写M24LR64程序组成。在程序起始的时候需要定义I2C传输速度,声明传感器和M24LR64的地址以及M24LR64写入数据的起始地址。传感器配置函数主要进行ADC输出数据位数(9,10,12)和传感器模式(shutdown,oneshot)配置。部分主要代码如下:
#define I2C_Speed 100000/*100kHz*/
#define EEPROM_BASE_ADDRESS 0x0000
uint8_t EEPROM_ADDRESS=0xA0;
uint8_t SENSOR_ADDRESS=0x90;
……
void I2C_EEInit_EEPROM(void){
I2C_DeInit();
I2C_Cmd(ENABLE);//I2C周边使能
I2C_Init(I2C_Speed, EEPROM_ADDRESS, I2C_DutyCycle_2,I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit);
}
void I2C_EEInit_SENSOR(void){
I2C_Cmd(ENABLE);//I2C周边使能
I2C_Init(I2C_Speed, SENSOR_ADDRESS, I2C_DutyCycle_2,
I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit);
}
ErrorStatus I2C_SS_Config(uint16_t ConfigBytes);
ErrorStatus I2C_SS_BufferRead(uint8_t* pBuffer, uint8_t Pointer_Byte, uint8_t NumByteToRead);
ErrorStatus I2C_EE_ByteWrite(uint8_t* pBuffer, uint16_t WriteAddr);
void main(){
I2C_EEInit_EEPROM();//初始化EEPROM
I2C_EEInit_SENSOR();//初始化温度传感器
I2C_SS_Config(0x0103);//ADC输出为9位,存储于16位温度寄存器,进入关闭模式
……
I2C_SS_Config(0x0183);//启动单发模式
……
I2C_SS_BufferRead(pBuffer, 0x00, 0x02);
//读取温度寄存器中数据并存于pBuffer中
……
ErrorStatus I2C_EE_ByteWrite(pBuffer, WriteAddr);
//向EEPROM写数据
……
}
结语
本文设计了一种由低功耗微控制器STM8L101F3、数字温度传感器STTS75和数据存储器M24LR64构成的冷链温度记录仪。经测试表明:记录仪测量精度为±0.5 ℃,记录时间间隔可自行设置(1 s~255 min),可以记录8192组温度数据,由3 V纽扣锂电池供电,在记录间隔设置在10 s以上的情况下,可以使用1年(室温环境)、3个月(冷藏环境)。与传统的冷链温度记录仪利用RS232、I2C、SD卡、USB方式读取数据相比[68],利用M24LR64实现的冷链温度记录仪具有电路硬件少、结构简单、低功耗、低成本、高稳定性、自行设定数据采集间隔、存储空间大、RF方式读取数据、电池更换方便、可循环利用、不需要打开包装、易于管理等诸多优点,可以广泛应用在食品、药品、鲜花等物品的冷藏运输及配送环节,并且将STTS75的工作方式稍加修改就可以用于恒温箱的温度监控系统中,具有广泛的实际应用前景。
参考文献
[1] 魏国辰.生鲜农产品冷链物流体系发展探讨[J].商业时代,2009,14(2):2425.
[2] 张琳,宋鹏.冷链物流中的“最后一公里”配送[J].物流工程与理,2010(3):112115.
[3] STMicroeletronics公司.STTS75 Datasheet,2009.
[4] STMicroeletronics公司.STM8L101F3 Datasheet,2010.
[5] STMicroeletronics公司.M24LR64R Datasheet,2010.
[6] 胡沙沙,许燕,马孝义.基于PIC单片机的低功耗温度采集系统[J].农机化研究,2010(6):105108.
[7] 赵子凯,李青,吴秀山.基于SD卡的冷链温度记录仪[J].仪表技术与传感器,2010(10):2527.
[8] 李培江,尤婷.基于iButtonDS1923的冷链温湿度跟踪记录仪[J].机电工程,2009(10):6769.
余丛华(硕士研究生),主要研究方向为智能仪器设计与嵌入式系统;赵振华(副教授),主要从事智能仪器设计及嵌入式系统、RFID技术与应用、计算机过程控制等方面的研究与教学。
|
|