CN104778146A - 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 - Google Patents
基于spi模式的可热插拔sd卡数据记录仪及相应的方法 Download PDFInfo
- Publication number
- CN104778146A CN104778146A CN201510184520.7A CN201510184520A CN104778146A CN 104778146 A CN104778146 A CN 104778146A CN 201510184520 A CN201510184520 A CN 201510184520A CN 104778146 A CN104778146 A CN 104778146A
- Authority
- CN
- China
- Prior art keywords
- card
- time
- hot
- datalogger
- initialization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种基于SPI模式的可热插拔SD卡数据记录仪,SD卡数据记录仪的SD卡的CS片选信号端连接中央处理单元的引脚GPIO P1.4;DI数据输入端连接中央处理单元的引脚GPIO P3.2;DO数据输出端连接中央处理单元的引脚GPIO P3.3;SCLK时钟端连接中央处理单元的引脚GPIO P3.4。本发明还公开了一种基于SPI模式的SD卡数据记录仪热插拔方法。本发明在SPI模式下通过一种简易巧妙的方法实现SD卡数据记录仪热插拔功能。
Description
技术领域
本发明涉及图像处理、行车记录、生物医学、通信等数据存储技术领域,尤其是一种基于SPI模式的可热插拔SD卡数据记录仪及相应的方法。
背景技术
随着信息处理技术和通信技术的快速发展,实时性、可靠性高的数据记录仪应用于越来越多的场合,如利用WSN(无线传感器网络)的感知、计算及传输能力,可以实现对广域范围的多目标实时监测,并将状态数据实时汇聚传输并存储,这在工农业监控、智能交通、智能家居、危险区域远程检测等许多领域都有着重要的研究意义和巨大的实用价值。然而WSN嵌入式处理能力有限,常见的WSN网络基于CC2530和CC2430,但这些微处理器并不支持SD卡的SD模式。
实际应用中要求数据记录仪操作简易,成本低,工作稳定,能够方便与PC上位机工作又能独立采集存储数据工作,能实现热插拔且不影响时钟等功能。
针对上述微处理器无法直接利用SD模式实现SD卡数据记录仪,本发明在利用SPI模式下实现了具有热插拔功能的SD卡数据记录仪,方法简易、所需硬件成本低,普通的51内核即可满足,而且无需占用硬件中断,具有较强的实用和推广价值。
发明内容
为了解决现有技术存在的不足,本发明的目的用于解决上述问题,通过对热插拔的研究,本发明提出一种基于SPI模式的可热插拔SD卡数据记录仪及相应的方法。
根据本发明的一方面,提出一种基于SPI模式的可热插拔SD卡数据记录仪,所述SD卡数据记录仪的SD卡的CS片选连接中央处理单元的引脚GPIO P1.4;
DI数据输入端连接中央处理单元的引脚GPIO P3.2;
DO数据输出端连接中央处理单元的引脚GPIO P3.3;
SCLK时钟端连接中央处理单元的引脚GPIO P3.4。
可选地,引脚GPIO P1.4当未插入SD卡时,默认上拉高电平,当有SD卡插入的时候,接地变为低电平。
可选地,当接上电源线和地线时,SD卡的电源电压为3.3V,SD卡的DO、SCLK和DI端使用47K的电阻上拉。
根据本发明的另一方面,还提出一种基于SPI模式的SD卡数据记录仪热插拔方法,其特征在于,该方法包括以下步骤:
步骤1,上电初始化;
步骤2,进入处理器操作系统主循环处理部分:在看门狗的溢出时间内对其定时器进行清零,判断是否存在SD卡数据存储文件,如果存在则进入步骤4,如果不存在则进入步骤3;
步骤3,创建所述SD卡数据存储文件,如果创建成功则进入步骤4,如果创建不成功,则判断SD卡已拔出,返回步骤1;
步骤4,进入不定长数据接收处理部分,接收串口发送的不定长数据,判断其中是否存在上位机发送的下发指令,如有则对其进行解析并执行相应的操作;如果没有,则将实时时间和接收到的不定长数据写入所述SD卡数据存储文件,关闭所述SD卡数据存储文件。
可选地,所述初始化至少包括:初始化串口波特率,初始化定时器T0初始值,初始化SD卡,初始化文件系统,初始化一次时钟模块,关闭串行中断启动定时器和/或初始化看门狗溢出时间。
可选地,所述串口波特率初始化为9600bps,定时器T0初始值设为50ms,看门狗溢出时间设为WDT_CONTR=0x35。
可选地,所述步骤3在所述SD卡数据存储文件创建不成功之后,进一步判断SD卡的热插拔时间T是否小于看门狗的溢出时间TS,若热插拔时间T小于溢出时间TS,说明SD卡是在拔出之后重新插上,则等待溢出时间TS届满,看门狗复位,返回步骤1;若热插拔时间T大于等于溢出时间TS,说明SD卡拔出之后在溢出时间TS内还未重新插上,则等待SD卡重新插上,看门狗复位,返回步骤1。
可选地,所述下发指令至少包括校正时间指令。
本发明有益效果是,可以在针对微处理器不带SD模式下,直接利用SPI模式与SD卡通信,并实现了热插拔功能,硬件和软件成本低,操作简易方便。
附图说明
图1为本发明基于SPI模式的可热插拔SD卡数据记录仪的硬件电路示意图。
图2为本发明基于SPI模式的SD卡数据记录仪热插拔方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
SD卡与微处理器通信有以下两种方式:SPI和SD模式,在微处理器不能支持SD模式时,采用SPI模式可以大大简化电路并节约成本。
根据本发明的一方面,提出一种基于SPI模式的可热插拔SD卡数据记录仪,图1为本发明基于SPI模式的可热插拔SD卡数据记录仪的硬件电路示意图,如图1所示,在SPI(Serial Peripheral Interface,串行外设接口)模式下,所述SD卡数据记录仪的SD卡的CS(chip select)片选信号端连接中央处理单元(CPU)的引脚GPIO P1.4(General-Purpose IO ports,也就是通用IO口);
其中,该引脚当未插入SD卡时,默认上拉高电平,当有SD卡插入的时候,则会接地变为低电平。
DI数据输入端连接中央处理单元的引脚GPIO P3.2(MOSI);
DO数据输出端连接中央处理单元的引脚GPIO P3.3(MOSO);
SCLK时钟端连接中央处理单元的引脚GPIO P3.4(SCLK)。
当接上电源线和地线时,SD卡的电源电压为3.3V,SD卡的DO、SCLK和DI端使用47K的电阻上拉。
本发明SD卡数据记录仪的其他电路部分与现有技术相似,在此不作赘述。
根据本发明的另一方面,还提出一种基于SPI模式的SD卡数据记录仪热插拔方法,如图2所示,所述方法包括以下步骤:
步骤1,上电初始化;
所述初始化至少包括:初始化串口波特率,初始化定时器T0初始值,初始化SD卡,初始化文件系统,初始化一次时钟模块,关闭串行中断启动定时器和/或初始化看门狗溢出时间。在本发明一实施例中,所述串口波特率初始化为9600bps,定时器T0初始值设为50ms,看门狗(WDT,watchdog timer)溢出时间设为WDT_CONTR=0x35(即当晶振频率为11.059Mhz时,溢出时间初始化为1.02S)。
步骤2,进入处理器操作系统主循环处理部分:在看门狗的溢出时间内对其定时器进行清零(即喂狗),判断是否存在SD卡数据存储文件(在本发明一实施例中,取名为casilink.txt),所述SD卡数据存储文件用于存储接收到的数据,如果存在则进入步骤4,如果不存在则进入步骤3;
步骤3,创建所述SD卡数据存储文件,如果创建成功则进入步骤4,如果创建不成功,则判断SD卡已拔出,返回步骤1;
所述步骤3在所述SD卡数据存储文件创建不成功之后,进一步判断SD卡的热插拔时间T是否小于看门狗的溢出时间TS,若热插拔时间T小于溢出时间TS,说明SD卡是在拔出之后重新插上,等待溢出时间TS届满,看门狗复位,返回步骤1;若热插拔时间T大于等于溢出时间TS,说明SD卡拔出之后在溢出时间TS内还未重新插上,等待SD卡重新插上,看门狗复位,返回步骤1。
步骤4,进入不定长数据接收处理部分,接收串口发送的不定长数据,判断其中是否存在上位机发送的下发指令,如有则对其进行解析并执行相应的操作,比如如果不定长数据中包括校正时间指令,则对其进行解析之后进入校时模块进行时间校正;如果没有,则将实时时间和接收到的不定长数据写入所述SD卡数据存储文件,之后关闭所述SD卡数据存储文件。
使用本发明的上述技术方案,在SPI模式下利用看门狗技术实现SD数据记录仪热插拔功能,具体地,当需要拔出SD卡时,将SD卡拔出,将所需要的数据导出处理之后把SD卡插回原系统,设插拔相隔的时间T为10min大于溢出时间TS,则一旦SD卡记录仪重新插入到系统中,系统立即复位重新初始化SD卡记录仪,实现热插拔,同时并不影响实时时钟功能;如过拔出和插入时间间隔T为0.5S小于溢出时间TS,即SD卡数据记录仪只是很短暂的停留就重新插入到原系统,这样等到看门狗溢出时间到来,系统立即重新初始化SD卡,实现了热插拔,同时也不影响实时时钟等功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于SPI模式的可热插拔SD卡数据记录仪,其特征在于:
所述SD卡数据记录仪的SD卡的CS片选信号端连接中央处理单元的引脚GPIO P1.4;
DI数据输入端连接中央处理单元的引脚GPIO P3.2;
DO数据输出端连接中央处理单元的引脚GPIO P3.3;
SCLK时钟端连接中央处理单元的引脚GPIO P3.4。
2.根据权利要求1所述的SD卡数据记录仪,其特征在于,引脚GPIOP1.4当未插入SD卡时,默认上拉高电平,当有SD卡插入的时候,接地变为低电平。
3.根据权利要求1所述的SD卡数据记录仪,其特征在于,当接上电源线和地线时,SD卡的电源电压为3.3V,SD卡的DO、SCLK和DI端使用47K的电阻上拉。
4.一种基于SPI模式的SD卡数据记录仪热插拔方法,其特征在于,该方法包括以下步骤:
步骤1,上电初始化;
步骤2,进入处理器操作系统主循环处理部分:在看门狗的溢出时间内对其定时器进行清零,判断是否存在SD卡数据存储文件,如果存在则进入步骤4,如果不存在则进入步骤3;
步骤3,创建所述SD卡数据存储文件,如果创建成功则进入步骤4,如果创建不成功,则判断SD卡已拔出,返回步骤1;
步骤4,进入不定长数据接收处理部分,接收串口发送的不定长数据,判断其中是否存在上位机发送的下发指令,如有则对其进行解析并执行相应的操作;如果没有,则将实时时间和接收到的不定长数据写入所述SD卡数据存储文件,关闭所述SD卡数据存储文件。
5.根据权利要求4所述的方法,其特征在于,所述初始化至少包括:初始化串口波特率,初始化定时器T0初始值,初始化SD卡,初始化文件系统,初始化一次时钟模块,关闭串行中断启动定时器和/或初始化看门狗溢出时间。
6.根据权利要求5所述的方法,其特征在于,所述串口波特率初始化为9600bps,定时器T0初始值设为50ms,看门狗溢出时间设为WDT_CONTR=0x35。
7.根据权利要求4所述的方法,其特征在于,所述步骤3在所述SD卡数据存储文件创建不成功之后,进一步判断SD卡的热插拔时间T是否小于看门狗的溢出时间TS,若热插拔时间T小于溢出时间TS,说明SD卡是在拔出之后重新插上,则等待溢出时间TS届满,看门狗复位,返回步骤1;若热插拔时间T大于等于溢出时间TS,说明SD卡拔出之后在溢出时间TS内还未重新插上,则等待SD卡重新插上,看门狗复位,返回步骤1。
8.根据权利要求4所述的方法,其特征在于,所述下发指令至少包括校正时间指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510184520.7A CN104778146B (zh) | 2015-04-17 | 2015-04-17 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510184520.7A CN104778146B (zh) | 2015-04-17 | 2015-04-17 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104778146A true CN104778146A (zh) | 2015-07-15 |
CN104778146B CN104778146B (zh) | 2017-12-22 |
Family
ID=53619620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510184520.7A Active CN104778146B (zh) | 2015-04-17 | 2015-04-17 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104778146B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536632A (zh) * | 2018-04-13 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种hba卡热插/拔事件的检测装置及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535944B1 (en) * | 1999-03-30 | 2003-03-18 | International Business Machines Corporation | Hot plug control of MP based computer system |
CN102142093A (zh) * | 2011-03-24 | 2011-08-03 | 青岛海信移动通信技术股份有限公司 | 一种存储卡操作方法及装置 |
CN102479169A (zh) * | 2010-11-24 | 2012-05-30 | 上海三旗通信科技股份有限公司 | Mtk6223d平台实现sd卡热插拔功能 |
CN103631740A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | Sd卡在spi模式下传输自适应字节对齐的方法及电路 |
CN204189161U (zh) * | 2014-10-22 | 2015-03-04 | 上海斐讯数据通信技术有限公司 | 一种热插拔控制系统 |
-
2015
- 2015-04-17 CN CN201510184520.7A patent/CN104778146B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535944B1 (en) * | 1999-03-30 | 2003-03-18 | International Business Machines Corporation | Hot plug control of MP based computer system |
CN102479169A (zh) * | 2010-11-24 | 2012-05-30 | 上海三旗通信科技股份有限公司 | Mtk6223d平台实现sd卡热插拔功能 |
CN102142093A (zh) * | 2011-03-24 | 2011-08-03 | 青岛海信移动通信技术股份有限公司 | 一种存储卡操作方法及装置 |
CN103631740A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | Sd卡在spi模式下传输自适应字节对齐的方法及电路 |
CN204189161U (zh) * | 2014-10-22 | 2015-03-04 | 上海斐讯数据通信技术有限公司 | 一种热插拔控制系统 |
Non-Patent Citations (1)
Title |
---|
田茂等: "SPI模式下SD卡驱动的设计与实现", 《现代电子技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536632A (zh) * | 2018-04-13 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种hba卡热插/拔事件的检测装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104778146B (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9497254B2 (en) | Communication method, communication apparatus and electronic device | |
US20060206639A1 (en) | [virtual ide card reader with pci express] | |
CN105527878A (zh) | 一种数据采集方法、装置及数据采集调试系统 | |
CN104636215A (zh) | 一种硬件看门狗及其应用电路 | |
TWM474270U (zh) | 一種結合fm.2擴充插槽與fm.2擴充插卡的系統 | |
CN105607940A (zh) | 一种arm平台中bdk向uefi bios传递信息的方法 | |
US20120144084A1 (en) | Data management device and method thereof | |
CN104571942A (zh) | 数据存储系统和非信号分析方法 | |
CN202102425U (zh) | 一种接口转换装置 | |
CN104778146A (zh) | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 | |
CN101706878A (zh) | 一种无源rfid系统 | |
CN104318280A (zh) | 利用usb接口实现上位机高速读写sd卡的方法 | |
CN105117179A (zh) | 一种主机与存储设备数据交互的方法及存储控制器 | |
CN201820218U (zh) | 主机系统和数据传输电路 | |
CN107479745B (zh) | 一种配置触摸屏的方法、模块及操作系统 | |
CN102314405A (zh) | 一种ccid协议处理电路 | |
CN204178365U (zh) | Lbe总线与isa总线间的转换结构 | |
CN209248754U (zh) | 基于入网模块通信的数据采集器 | |
CN102955545A (zh) | 计算机 | |
CN103744807B (zh) | 基于可编程逻辑器件的存储卡访问控制系统 | |
CN207148829U (zh) | 一种基于sdio接口的嵌入式arm核心板 | |
CN102364452A (zh) | 一种ps2接口键盘鼠标可热插拔使用的实现方法 | |
CN202453804U (zh) | 长时间看门狗复位电路 | |
CN103064697B (zh) | 管理引擎的配置方法和计算机 | |
CN102253809A (zh) | 一种复合存储卡及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |