数据存储模块设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SD卡的联合收割机测产系统
数据存储模块设计
于国松
(黑龙江省有色金属地质勘查局,哈尔滨,150090)
摘要:作为“精细农业”的一部分,联合收割机测产系统负责采集地块中的各种数据(产量,经度,纬度,时间等),并通过数据存储模块将数据存储、传输到计算机,进行后续处理。通过对现有几种数据存储模块方案的优劣分析,本文提出了通过单片机STC89C58控制SD卡存储、传递数据的方案,并进行了现场实验。实验结果表明,该模块满足了使用要求,功能良好,适合于野外现场数据采集系统中数据传输及数据的大容量存储。
关键词:精细农业;车载测产;SD卡;数据存储模块
0 引言
精细农业是信息技术在现代农业生产中的直接应用,是近年来农业科学研究的热点,而联合收割机测产系统则是信息技术,计算机自动控制技术及3S技术在精细农业中的典型应用,联合收割机测产系统是基于DGPS技术、传感器技术和微处理器技术的集成系统]1[。
在联合收割机测产系统作业中需要采集田地中每一个采样点的经纬度、产量等信息,产生了大量的数据,保证这些现场数据的可靠
存储是系统设计中的关键问题之一。对于基于单片机的现场设备,由于处理速度慢、没有操作系统支持和容量小等原因,难以满足要求,通常单片机所支持的存储单元的RAM、EEPROM或小容量的Flash存储芯片,它们受寻址空间的限制,不能满足大容量存储的要求。
本文设计了一种大容量数据存储模块,通过单片机STC89C58控制SD卡进行数据的大容量存储。SD卡体积小,重量轻,功耗低,容量大,读写速度快,机械性能好,硬件兼容性好,价格便宜,非常适合解决野外现场数据采集系统中数据传输及大容量存储的问题。
1 数据存储模块框架
联合收割机测产系统的数据存储模块采用单片机STC89C58控制读写SD卡,将大容量数据实时存到SD卡中,再后续转存到PC机中,具体的存储系统框架如下图1所示:
图1 SD卡数据存储系统框架
Fig.1 SD card data storage system frame
2 数据存储模块硬件设计
SD卡有两种总线模式:即SD总线模式和SPI总线模式。其中SD 模式采用四条数据线并行传输数据,数据传输速率高,但是传输协议复杂,只有少数单片机才提供有此接口,而用软件方法模拟SD总线又比较繁琐,并会降低SD卡的数据传输速率;而SPI模式只有一条
数据传输线,数据传输速率较低,容易用软件方法来模拟,此外,SPI 模式的传输协议简单,易于实现。
为此,本设计采用SPI 总线模式,而且它的传输速率最大能达到160Kbit/s 满足本设计的384bit/s 的要求,SPI (Serial Peripheral Interface ,串行外围设备接口总线) 总线技术是MOTOROLA 公司推出的一种同步串行总线接口,它是目前单片机应用系统中最常用的几种串行扩展接口之一。
本系统中的接口电路采用的是单片机STC89C58。该单片机不具有SPI 模式,但可通过软件编程实现SPI 模式的数据传输(包括串行时钟、数据的输入和输出)。在SPI 模式下,单片机与SD 卡的连接主
要有四根线(包括时钟线,两根数据传输线和一根片选线)]2[(海深等,
2005)。其硬件连接如图2所示:
39383736353433322122232425262728
29
301110图2单片机与SD 卡连接图
Fig.2 Microcontroller and SD card connection diagram
3 数据存储模块软件设计
为了保证SD 卡存储的数据能通过读卡器在PC 机上正确读出来,为此设计了该存储模块的文件系统,该文件系统支持FAT16。
FAT(File Allocation Table文件分配表)文件系统产生于20世纪70年代末到80年代初,是微软的MS-DOS操作系统所支持的文件系统,是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位而引进的一种链式结构,它的主要功能是用来标示每个数据在硬盘中实际存放的位置]3[。
(1) 文件系统程序设计
为了便于微处理器对SD卡中的文件进行操作,就要设计自己的文件管理系统。本研究使用的是文件分配表系统中的FAT16类型。文件分配表系统有3种类型:FAT12、FAT16和FAT32。它们的不同之处是在磁盘上实际的文件分配表结构中每个记录所占的位数不同。
文件分配表系统的分区应该有以下几部分:保留区,存放文件分配表的文件系统重要参数和引导程序;文件分配表(FAT Region),记录簇的使用情况;根目录区,记录根目录的信息。文件目录数据区,是各种文件数据的实际存放区域。
数据的读写以扇区为单位,一个簇所包含的扇区数由引导区中基本输入输出系统参数的分配表参数来决定,通过根目录找到对应的文件名,格式化完成或进行写操作时,就要新建对应文件名的文件分配表区和根目录区,通过文件分配表区中的保存的簇号,完成对应的数据读写,完成一个簇的操作后,根据文件分配表的链式结构,找到文件的待操作的下一个簇的簇号,进行相应的操作,直到文件结束。
(2)文件系统程序流程图
按上述文件组织格式,系统可通过文件目录和FAT表对整个SD
卡上的所有文件进行管理和操作,编程实现了fopen(),fread(),fwrite(),fdelete()等文件操作功能。本文设计的SD卡文件系统的总流程图如下图3所示:
图3 SD卡文件系统总流程
Fig.3 SD card file system total flow
4 结论
本文基于SD 卡的联合收割机测产系统数据存储模块的设计,重点介绍了存储模块中电路的硬件设计及功能模块软件的实现,该设计