基于FAT16文件系统的嵌入式温度记录器

分享到:

        以ARM7TDMIS为内核的32/16位微控制器LPC2148与SD卡相结合,实现在SD卡上建立FAT16文件系统。采集的温度数据以FAT16文件格式存入SD卡,可方便用户对温度数据进行读取与分析。

       本文描述了温度传感器ADT75的工作原理。
  

       闪存技术的不断发展,使得闪存卡(如SD卡、MMC卡等)因其体积小、容量大、可靠性高等优点而在嵌入式存储领域得到越来越广泛的应用。FAT16文件系统具有出色的文件管理性能,能被大多数操作系统识别,因此将闪存卡与FAT16文件系统相结合是嵌入式存储、记录系统中一个理想的方案。温度采集与控制技术是现代测量、控制系统的一个重要组成部分。由于传统的模拟传感测量温度系统存在测量精度低、易受干扰、硬件复杂、调试繁琐等不利因素,而新型单片数字式温度传感器具有测量精度高、抗干扰能力强、操作方便、功耗低等优点,应用范围越来越广泛。本嵌入式数字温度记录器以ARM7微处理器LPC2148、数字温度传感器ADT75为基础,采用大容量SD卡作为存储介质,实现了FAT16文件系统,为温度采集与记录、嵌入式系统的数据存储提供了一个理想的解决方案。

        1 硬件设计
  

        本温度记录器的硬件电路实现简单,主要包含2个部分:SD卡读/写单元电路、ADT75测温单元电路。如图1所示,LPC2148通过SPI总线读/写SD卡,通过I2C总线读/写ADT75实现温度的采集。
     

     
            图1 温度采集器硬件电路

        1.1 SD卡与LPC2148的硬件接口设计
  

        SD卡是一种基于NAND Flash的存储卡。由于它具有安全性高、容量大、体积小、功耗低、非易失性等优点,目前在嵌入式系统中已取得越来越广泛的应用。
  

       SD卡支持2种接口模式:SD卡模式、SPI模式[1] 。SD卡模式采用4根数据线并行传输,速度快,但协议实现复杂;SPI模式虽然速度性能与SD模式相比有所欠缺,但协议实现简单,操作方便。
  

        SD卡共有9个引脚,在SD模式下与SPI模式下各引脚的定义不相同。在SPI模式下,SD卡1~7引脚依次为片选引脚CS、数据输入DI、电源地、电源VDD、时钟信号CLK、电源地、数据输出DO,8脚与9脚在SPI模式下保留未用。由于SPI总线通信协议要求在空闲时SPI总线应保持高电平,因此CS、DI、DO、CLK应外接10 kΩ左右的上拉电阻。

       1.2 ADT75测温工作原理
  

       ADT75ARZ是ADI公司推出的一款低功耗、高分辨率的温度传感器。它内含12位A/D转换器,具有SMBus/I2C兼容接口,有超温指示输出引脚,额定工作温度范围为-55~+125 ℃,分辨率可达0.062 5 ℃,功耗低,工作电压是3~5.5 V[2]。其典型应用电路如图1所示。
  

       ADT75的工作过程如下:ADT75通过内部的温度传感器将采集的温度转化为电压信号。此电压信号经过内部的∑Δ调节器后输入至12位A/D转换器,A/D转换后的12位温度数据存储于温度数据寄存器中,并将该温度数据与温度限定寄存器的值相比较,如果超过设定值,则引脚OS输出有效电平。OS引脚输出的有效电平可在配置寄存器中设定。
  

        ADT75内部有5个寄存器: 4个数据寄存器,1个地址指针寄存器。4个数据寄存器分别为配置寄存器、温度数据寄存器、THYST定值寄存器、TOS定值寄存器。配置寄存器是8位可读/写寄存器,可将ADT75设为各种模式,如关断、超温中断、单步、SMBus报警使能、OS/ALERT引脚极性等;16位温度数据寄存器是只读寄存器,温度值在其中以二进制补码形式存储,读取时先读取高8位,再读取低8位;THYST定值寄存器与TOS定值寄存器均为16位可读/写寄存器,16位数据均以二进制补码形式存储,它们的默认极限温度分别为+75 ℃、+80 ℃(TOS存放了超温限定值,THYST存放了滞后温度限定值,当测量温度≥TOS设定的温度值时,OS引脚输出有效电平,直到温度降至THYST以下时,OS引脚输出电平才变为无效电平)。地址寄存器是一个8位的寄存器,在读/写ADT75内部各寄存器时,需将该寄存器的地址写入地址寄存器中。例如,若要读取ADT75的温度数据值,则需将温度数据寄存器的地址0x00写入地址寄存器中。
  

         LPC2148具有两路标准I2C接口: P0.2与P0.3构成第一路I2C接口,与其他I2C器件通信时,需接上拉电阻;另一路I2C接口由于内部已配置上拉电阻,因此可不外接上拉电阻。

       1.3 32位微控制器LPC2148
  

        LPC2148是Philips公司推出的一款支持实时仿真的32位/16位的具有ARM7TDMIS内核的微控制器,含有40 KB片内RAM和512 KB片内Flash存储器,支持ISP与IAP操作[3]。它接口资源丰富,含有2路32位定时器,1个USB 2.0 全速设备控制器,2个支持16C550的串行UART接口,2路支持高速总线的I2C接口,1路SPI接口及片上RTC实时时钟等。LPC2148内含PLL锁相环部件,可将主频提高到60 MHz下运行。LPC2148支持Thumb指令,在代码规模受到约束的场合,可在Thumb状态下运行。LPC2148采用超小LQFP64封装,工作电压为3.3 V,适用于工业控制、医疗系统、访问控制、 通信网关、嵌入式软modem等场合。
  

       本记录器主要利用了它的SPI总线接口、I2C接口、RTC实时时钟及丰富的RAM资源等功能单元。LPC2148的RTC实时时钟的时钟源可由独立的32.768 kHz晶振提供,并且RTC部件还有专门的电源引脚VBAT,它可由外部电池供电。本采集器采用了32.768 kHz外部晶振并使用电池供电,使得在采集器掉电后,RTC实时时钟可以继续运行。

继续阅读
基于FAT16文件系统的嵌入式温度记录器

以ARM7TDMIS为内核的32/16位微控制器LPC2148与SD卡相结合,实现在SD卡上建立FAT16文件系统。采集的温度数据以FAT16文件格式存入SD卡,可方便用户对温度数据进行读取与分析。