您当前的位置:五五电子网电子知识电工技术电工文摘采用FAT16文件系统的嵌入式温度记录器 正文
采用FAT16文件系统的嵌入式温度记录器

采用FAT16文件系统的嵌入式温度记录器

点击数:7105 次   录入时间:03-04 11:47:25   整理:http://www.55dianzi.com   电工文摘

  在完成上述操作后,应设置一次性写入或者读取SD卡的数据的长度,这可通过发送设置块长度指令(CMD16)来实现。本设计中设定一次读/写的数据块长度为512字节。当要读取、写入SD卡某一数据块的内容时,可通过发送读取数据指令(CMD17)、写数据块指令(CMD24)来完成。

3.2  读取温度值

  当LPC2148要读取ADT75各寄存器的内容时,都需要经过先写入再读取的步骤。在写ADT75时,需由地址指针寄存器指出将读取的寄存器地址。图3描述了读取ADT75温度数据的时序。

按此在新窗口浏览图片
图3  读取ADT75温度数据的时序

  由于温度数据寄存器的地址值为0x0,因此写入地址寄存器的内容为0。在ADT75给出应答信号后,LPC2148给出读信号,即在第9个时钟周期将数据线SDA置为高电平,表明是读取数据。之后LPC2148读取温度数据的高8位,再读取数据的低8位,且LPC2148应在每个字节数据读取结束后,给出低电平的应答信号。当温度数据完成后,LPC2148传送结束时序,结束数据读操作。在12位温度数据格式下,读取的16位温度数据低4位为0,将其取补码后,再除上16(浮点除法),就是实测的温度。

3.3  软件主流程

  在本温度记录器的设计中,利用LPC2148片上RTC实时时钟提供的秒中断、分中断、天中断功能实现ADT75温度数据的定时采集、存储和文件的建立。

  当RTC的秒中断时,LPC2148通过I2C总线在400 kHz的速率下读取ADT75的温度数据,并将温度数据存于LPC2148内部RAM中。为了便于用户使用读卡器在PC机上读取存入的温度数据,每秒钟存入RAM中的数据为22字节,且均为ASCII字符,数据格式如表3所列。

表3  存储数据格式
按此在新窗口浏览图片

  其中前4个字节为温度的实时采集时间,存储的时间内容为时、分、秒。第1个温度数据采用十六进制表示;第2个8字节的温度数据为转换后的实际温度值,每条记录均以回车(ASCII码为0x0D)、换行(ASCII码为0x0A)结束。例如,在12时0分59秒采集的温度数据为0x1910,则存入RAM中的数据为“120059 1910+025.625<CR><LF>”。

  当RTC的分中断时,LPC2148将临时存于RAM中的数据存入SD卡中。这样可减少对SD卡的写操作次数,延长SD卡的使用寿命。

  当RTC的天中断时,LPC2148将在SD卡上新建一个新的记事本文件(.txt文件),文件名即为当天的日期,例如2007年10月6日建立的文件名为“071006.txt”。由于每分钟写入SD卡的数据为22×60=1 320字节,因此每个文件的最大容量是1 856 KB。对于一张512 MB的SD卡,可保存约1年的温度数据。

  图4描述了本设计的软件主流程。在实现温度数据的采集与存储之前,需正确配置LPC2148的SPI总线控制寄存器、I2C控制寄存器及RTC实时时钟寄存器。

结语

  ADT75是一款完善的数字温度传感器,具有I2C总线接口;LPC2148功能强大,外设接口资源丰富。将LPC2148与ADT75通过I2C总线相结合,即可实现分布式多点温度采集。SD卡FAT16文件系统的实现方便了用户读取与分析采集的温度数据。本文为嵌入式系统数据的存储、温度数据的分布采集与记录提供了一个切实可行的解决方案。

按此在新窗口浏览图片
图4  软件主流程

上一页  [1] [2] 


本文关键字:嵌入式  记录器  电工文摘电工技术 - 电工文摘