第 2 页 共 36 页
引言
随着近年来SD卡储存容量不断大幅度提高,价格不断降低,其应用范围越来越广泛。当数据采集系统需要较长的时间来捕捉和记录大量数据时,选择SD卡作为存储介质,是一个非常好的选择。就如在电能监测系统中,要连续记录大量的电压、电流及时间等参数,当采集到这些数据时就可以利用SD作为存储媒质。
SD卡是由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小不足一张邮票的SD一记忆卡,重量不足2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD卡在24mm×32mm×2.1mm的体积内结合了SanDisk快闪一记忆卡控制与MLC技术和Toshiba(东芝)0.6u及0.13 u的NAND技术,通过9针的接口界而与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分。SD卡的技术建立是基于MultiMwdia卡(MMc)格式上发展而来,大小和MMC差不多。长宽和MMC一样,只是比MMC厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。
采用SD卡存储技术设计一款低成本数据采集模块。该数据采集模块可与PC机共同实现数据采集与分析,也可长时间独立工作于工业现场,并将采集数据存放于大容量SD卡,便于数据收集并利用计算机分析。该数据采集模块,结构简单,工作稳定,体积小,成本低。
单片机是智能化模块,有数据存储、读写的功能,并且支持汇编和C语言编程,在工作电压稳定的条件下可以实现长时间稳定的工作,而且还具有价格低廉的优势。在读写SD卡中,单片机比PC机更适合在现场长时间工作。而STC12C5A60S2系列单片机价格便宜、性能稳定。基于此特点,设计采用PCF8591进行A/D转换,用STC12C5A60S2单片机对SD卡进行读写操作。
第 3 页 共 36 页
1 方案论证与选择
1.1 设计相关指标分析及系统构成
设计要求是将四路模拟电压进行数字化后存储到SD存储卡中。具体说明如下: (1)将四路模拟电压(0-5V)进行A/D转换,转换结果为十进制3位有效数字。 (2)要求每秒钟各路都转换一次,并将结果转换为ASCII码形式,如1.23V。 (3)四路结果分别存储到SD卡预先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文档中。
图1.1是SD卡存储采集数据电路设计框图。系统要完成模拟电压的A/D转换,每秒钟各自转换一次,结果分别存到建立好的SD卡中的文档中。
电源 A通道输入 (按键(采集与清除) 采四 (PCF8591)A/D集路 B通道输入 模、带拟
电压 C通道输入 卡)(的主 控 D通道输入 芯彩片转 屏换(SD0V-5V) TFT ) 图1.1 SD卡存储采集数据电路设计框图
STC12C5A60S2卡存储与彩屏显示 SD1.2 主控电路芯片的选择
方案一:AVR单片机上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,WDT等;AVR除了有ISP功能外,还有IAP功能,方便升级应用程序;AVR单片机系列齐全,可适用于各种不同场合的要求。具有高的处理速度,能够非常容易、快速地处理复杂的数字信号。
方案二:采用STC12C5A60S2单片机实现整个系统的统一控制和数据处理。单片机STC12C5A60S2是一种超低功耗微处理器, 具有丰富的片上外设和较强的运算能力, 支持在线编程, 使用十分方便, 性价比较高。由STC12C5A60S2芯片主控DY_mini80E开发板(板上含有PCF8591八位A/D转换模块)再加上一块带SD卡的TFT彩屏等就可以满足题目设计调试要求。设计采用此方案。
第 4 页 共 36 页
2 SD卡简介
2.1 SD存储卡系统概念 2.1.1总线拓扑 (1)SD模式总线 SD总线信号:
CLK: 主设备对卡发出的时钟讯号。 CMD: 双向命令/响应讯号。
DAT0-DAT3: 4个双向数据传输信号。 VDD、VSS1、VSS2: 电源与地。
SD模式总线有主机(应用程序),从机(卡),同步的星型拓扑(如图2.1)。时钟、电源、地连接到所有卡。命令(CMD)和数据(DAT0- DAT3)信号对每个卡提供点到点的连接。在发初始化命令给每张卡的时候,允许应用程序发现并分配逻辑地址给卡此时数据总是单独地被送到每个卡。然而,在初始化之后,所有的命令就可以同时送到所有的卡,为了分开控制堆叠中的卡,而将地址信息包含在命令包中。
主机
Clk Vdd Vss D0-3(a) Cmd(a) Clk Vdd Vss D0-3(b) Cmd(b) Clk Vdd Vss D0-3(c) Cmd(c) SD存储卡(a) SD存储卡(b) SD存储卡(c) 图2.1 SD模式总线拓扑图
SD总线允许动态的配置数据线的数目。在上电后,SD存储卡默认的只使用DAT0作为数据传输线。在设定初值之后主机能改变总线宽度(即改为2根线或3根线等。)
第 5 页 共 36 页
(2)SPI模式总线
SD存储卡的兼容通信模式被设计为连接SPI通道,被用在各种微控制器中。如图2.2。这种模式在上电后的第一次复位时选择使用,在重新上电之前不能变更。SPI标准只定义实际的连接,和不完全的数据转移协定。SD卡的SPI模式使用在SD模式下相同的模式。从应用程序观点来看,SPI模式使用的是现有的设备,这样就使得主机系统通过很小的改动就可以使用SD卡。缺点是数据传输效率的损失,相对SD模式减小了总线宽度。
SD存储卡的SPI接口能连接到具有SPI接口的现有主机上。和任何其他的SPI设备一样,SD存储卡的SPI接口如下四种信号组成: CS: 主机到卡的片选信号。 CLK: 主机到卡的时钟信号。 DataIn: 主机到卡的数据信号。
DataOut: 卡到主机的数据信号。
SPI的另一个特性是字节方式的传输,在卡中也一样。所有的数据都是字节(8位)的集合,而且总是字节排列好等待CS信号。
图2.2 SPI模式总线拓扑
卡的区别和寻址方式被片选(CS)信号代替。每个命令都是被CS信号是低电平的那张卡接收。
CS信号在SPI处理时(命令传输、响应和数据传物必须是一直有效的。SPI使用SD模式中9根信号线中的7根(DAT1. DAT2不使用,DAT3是CS信号)。
第 6 页 共 36 页
2.1.2总线协定 (1)SD总线
SD总线上的通信是基于命令和数据位流,开始于启动位、结束于停止位,如图2.3。
命令: 一个命令是启动一个操作的记号。每条命令都可以从主机发出,被唯一的卡接收(定址命令),或被全部卡接收(广播命令)。命令可以在CMD线上被连续的传输。
响应:响应可以由被定址的卡发出,或者所有的卡(同时)向主机发出对先前命令的应答。响应可以在CMD线上连续的传输。
数据:数据能从卡传输到主机,反之亦然,数据经由数据线传输。
卡使用一个中间地址来实现寻址,在设定初始相位期间中间地址被分配到卡上。SD总线上的基本操作是命期响应方式。这种总线处理方式是直接在命令或响应结构里面传递他们的信息。此外,有些操作带有数据。
R1、R3、R6 开始位 R2 图2.3 响应的方式
传递到SD卡或从卡中传出的数据是包含在数据块中的。CRC位标志了数据块传输的
0 响应位 0 0 0 开始位 响应的内容:反映了命令和状态信息(R1响应),ORG寄存器(R3响应)或RCA(R6),被一个7bitCRC核对和保护 响应位 结束位 CONTENT 总长度=48字节 CONTENT=CID or CSD 总长度=136字节 CRC 1 结束位 1 成功完成;单一块和多重块的操作是预先定义的;注意多重块操作模式有利于快速写入;当一个停止命令在CMD线上出现的时候,一个多重块传输结束。数据转移可以根据主机的配置使用单根或多根数据线(只要卡支持)。
每个命令以一个起始位‘0'开始以一个截止位‘1'结束,总长度是48位。每段指令都被CRC位保护以便传输错误时能被发现,而且运算可能是重复的。
响应根据其内容,有四种编码方式。长度不是48位就是136位。数据块的CRC保护算法为多名的16位的CCITT。
在CMD线中MSB位先传愉,LSB位后传输。当使用宽总线时,数据一次传输4位。