|
|
|
|
|
|
嵌入式温度记录器设计 |
|
日期:2009-6-12 9:43:51 |
本嵌入式数字温度记录器以ARM7微处理器LPC2148、数字温度传感器ADT75为基础,采用大容量SD卡作为存储介质,实现了FAT16文件系统,为温度采集与记录、嵌入式系统的数据存储提供了一个理想的解决方案。本温度记录器的硬件电路实现简单,主要包含2个部分:SD卡读/写单元电路、ADT75测温单元电路。LPC2148通过SPI总线读/写SD卡,通过I2C总线读/写ADT75实现温度的采集。 一、SD卡与LPC2148的硬件接口设计 SD卡是一种基于NAND Flash的存储卡。SD卡支持2种接口模式:SD卡模式、SPI模式。SD卡共有9个引脚,在SD模式下与SPI模式下各引脚的定义不相同。在SPI模式下,SD卡1~7引脚依次为片选引脚CS、数据输入DI、电源地、电源VDD、时钟信号CLK、电源地、数据输出DO,8脚与9脚在SPI模式下保留未用。由于SPI总线通信协议要求在空闲时SPI总线应保持高电平,因此CS、DI、DO、CLK应外接10 kΩ左右的上拉电阻。 二、ADT75测温工作原理 ADT75ARZ是ADI公司推出的一款低功耗、高分辨率的温度传感器。ADT75内部有5个寄存器:4个数据寄存器,1个地址指针寄存器。4个数据寄存器分别为配置寄存器、温度数据寄存器、THYST定值寄存器、Tos定值寄存器。,THYST耵存放了滞后温度限定值,当测量温度≥TOS设定的温度值时,OS引脚输出有效电平,直到温度降至THYST以下时,OS引脚输出电平才变为无效电平。LPC2148具有两路标准I2C接口:P0.2与P0.3构成第一路I2C接口,与其他I2C器件通信时,需接上拉电阻;另一路I2C接口由于内部已配置上拉电阻,因此可不外接上拉电阻。 三、32位微控制器LPC2148 LPC2148支持ISP与IAP操作,接口资源丰富,内含PLL锁相环部件,可将主频提高到60 MHz下运行。LPC2148支持Thumb指令,在代码规模受到约束的场合,可在Thumb状态下运行。LPC2148采用超小LQFP64封装,工作电压为3.3 V,本记录器主要利用了它的SPI总线接口、I2C接口、RTC实时时钟及丰富的RAM资源等功能单元。LPC2148的RTC实时时钟的时钟源可由独立的32.768 kHz晶振提供,并且RTC部件还有专门的电源引脚VBAT,它可由外部电池供电。本采集器采用了32.768 kHz外部晶振并使用电池供电,使得在采集器掉电后,RTC实时时钟可以继续运行。 四、SD卡FAT16文件系统分析 FAT文件管理系统是由微软发布的由MS-DOS支持的一种文件管理系统。SD卡支持FAT12与FAT16文件系统。SD卡中的保留扇区,一般不应向该扇区写入数据。在FAT文件系统中,BPB是一个很重要的参数表。它表明了该分区的一系列重要基本参数。FAT表格中记录了每个文件的起始簇号、后继簇号、终止簇号。如在SD卡上新建FAT文件,应首先在FAT表中查找尚未被使用的簇号,确定文件的起始簇号,并根据文件的大小,确定文件在FAT表格中的终止簇号,在相应的FAT中写入起始与终止簇号。之后应在DIR区申请一个登记项,实际上就是在DIR区中建立一个32字节的文件目录。最后在数据区对应该文件的扇区上写入文件数据。 五、SD卡与LPC2148的底层软件接口设计 SD卡在上电复位后,自动进入SD模式,因此本设计中SD卡与LPC2148的底层软件接口设计主要是指如何使得SD卡进入SPI模式,并在SPI模式下对SD卡的内存单元实现读/写操作。本设计中设定一次读/写的数据块长度为512字节。当要读取、写入SD卡某一数据块的内容时,可通过发送读取数据指令、写数据块指令来完成。 六、读取温度值 当LPC2148要读取ADT75各寄存器的内容时,都需要经过先写入再读取的步骤。在写ADT75时,需由地址指针寄存器指出将读取的寄存器地址。由于温度数据寄存器的地址值为0x0,因此写入地址寄存器的内容为0。在12位温度数据格式下,读取的16位温度数据低4位为0,将其取补码后,再除上16,就是实测的温度。 七、软件主流程 在本温度记录器的设计中,利用LPC2148片上RTC实时时钟提供的秒中断、分中断、天中断功能实现ADT75温度数据的定时采集、存储和文件的建立。当RTC的分中断时,LPC2148将临时存于RAM中的数据存人SD卡中。这样可减少对SD卡的写操作次数,延长SD卡的使用寿命。在实现温度数据的采集与存储之前,需正确配置LPC2148的SPI总线控制寄存器、I2C控制寄存器及RTC实时时钟寄存器。
|
|
|
|
|
|
|