基于spi模式的可热插拔sd卡数据记录仪及相应的方法
【技术领域】
[0001]本发明涉及图像处理、行车记录、生物医学、通信等数据存储技术领域,尤其是一种基于SPI模式的可热插拔SD卡数据记录仪及相应的方法。
【背景技术】
[0002]随着信息处理技术和通信技术的快速发展,实时性、可靠性高的数据记录仪应用于越来越多的场合,如利用WSN(无线传感器网络)的感知、计算及传输能力,可以实现对广域范围的多目标实时监测,并将状态数据实时汇聚传输并存储,这在工农业监控、智能交通、智能家居、危险区域远程检测等许多领域都有着重要的研宄意义和巨大的实用价值。然而WSN嵌入式处理能力有限,常见的WSN网络基于CC2530和CC2430,但这些微处理器并不支持SD卡的SD模式。
[0003]实际应用中要求数据记录仪操作简易,成本低,工作稳定,能够方便与PC上位机工作又能独立采集存储数据工作,能实现热插拔且不影响时钟等功能。
[0004]针对上述微处理器无法直接利用SD模式实现SD卡数据记录仪,本发明在利用SPI模式下实现了具有热插拔功能的SD卡数据记录仪,方法简易、所需硬件成本低,普通的51内核即可满足,而且无需占用硬件中断,具有较强的实用和推广价值。
【发明内容】
[0005]为了解决现有技术存在的不足,本发明的目的用于解决上述问题,通过对热插拔的研宄,本发明提出一种基于SPI模式的可热插拔SD卡数据记录仪及相应的方法。
[0006]根据本发明的一方面,提出一种基于SPI模式的可热插拔SD卡数据记录仪,所述SD卡数据记录仪的SD卡的CS片选连接中央处理单元的引脚GP1 Pl.4 ;
[0007]DI数据输入端连接中央处理单元的引脚GP1 P3.2 ;
[0008]DO数据输出端连接中央处理单元的引脚GP1 P3.3 ;
[0009]SCLK时钟端连接中央处理单元的引脚GP1 P3.4。
[0010]可选地,引脚GP1 Pl.4当未插入SD卡时,默认上拉高电平,当有SD卡插入的时候,接地变为低电平。
[0011]可选地,当接上电源线和地线时,SD卡的电源电压为3.3V,SD卡的D0、SCLK和DI端使用47K的电阻上拉。
[0012]根据本发明的另一方面,还提出一种基于SPI模式的SD卡数据记录仪热插拔方法,其特征在于,该方法包括以下步骤:
[0013]步骤1,上电初始化;
[0014]步骤2,进入处理器操作系统主循环处理部分:在看门狗的溢出时间内对其定时器进行清零,判断是否存在SD卡数据存储文件,如果存在则进入步骤4,如果不存在则进入步骤3 ;
[0015]步骤3,创建所述SD卡数据存储文件,如果创建成功则进入步骤4,如果创建不成功,则判断SD卡已拔出,返回步骤I ;
[0016]步骤4,进入不定长数据接收处理部分,接收串口发送的不定长数据,判断其中是否存在上位机发送的下发指令,如有则对其进行解析并执行相应的操作;如果没有,则将实时时间和接收到的不定长数据写入所述SD卡数据存储文件,关闭所述SD卡数据存储文件。
[0017]可选地,所述初始化至少包括:初始化串口波特率,初始化定时器Ttl初始值,初始化SD卡,初始化文件系统,初始化一次时钟模块,关闭串行中断启动定时器和/或初始化看门狗溢出时间。
[0018]可选地,所述串口波特率初始化为9600bps,定时器Ttl初始值设为50ms,看门狗溢出时间设为WDT_CONTR = 0x35。
[0019]可选地,所述步骤3在所述SD卡数据存储文件创建不成功之后,进一步判断SD卡的热插拔时间T是否小于看门狗的溢出时间Ts,若热插拔时间T小于溢出时间Ts,说明SD卡是在拔出之后重新插上,则等待溢出时间Ts届满,看门狗复位,返回步骤I ;若热插拔时间T大于等于溢出时间Ts,说明SD卡拔出之后在溢出时间TsR还未重新插上,则等待SD卡重新插上,看门狗复位,返回步骤I。
[0020]可选地,所述下发指令至少包括校正时间指令。
[0021]本发明有益效果是,可以在针对微处理器不带SD模式下,直接利用SPI模式与SD卡通信,并实现了热插拔功能,硬件和软件成本低,操作简易方便。
【附图说明】
[0022]图1为本发明基于SPI模式的可热插拔SD卡数据记录仪的硬件电路示意图。
[0023]图2为本发明基于SPI模式的SD卡数据记录仪热插拔方法的流程示意图。
【具体实施方式】
[0024]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0025]SD卡与微处理器通信有以下两种方式:SPI和SD模式,在微处理器不能支持SD模式时,采用SPI模式可以大大简化电路并节约成本。
[0026]根据本发明的一方面,提出一种基于SPI模式的可热插拔SD卡数据记录仪,图1为本发明基于SPI模式的可热插拔SD卡数据记录仪的硬件电路示意图,如图1所示,在SPI (Serial Peripheral Interface,串行外设接口)模式下,所述SD卡数据记录仪的SD卡的CS (chip select)片选信号端连接中央处理单元(CPU)的引脚GP1Pl.4 (General-Purpose 1 ports,也就是通用 1 P );
[0027]其中,该引脚当未插入SD卡时,默认上拉高电平,当有SD卡插入的时候,则会接地变为低电平。
[0028]DI数据输入端连接中央处理单元的引脚GP1 P3.2 (MOSI);
[0029]DO数据输出端连接中央处理单元的引脚GP1 P3.3 (MOSO);
[0030]SCLK时钟端连接中央处理单元的引脚GP1 P3.4(SCLK)。
[0031]当接上电源线和地线时,SD卡的电源电压为3.3V,SD卡的DO、SCLK和DI端使用47K的电阻上拉。
[0032]本发明SD卡数据记录仪的其他电路部分与现有技术相似,在此不作赘述。
[0033]根据本发明的另一方面,还提出一种基于SPI模式的SD卡数据记录仪热插拔方法,如图2所示,所述方法包括以下步骤:
[0034]步骤1,上电初始化;