SD卡存储采集数据电路设计毕业论文 - 图文(6)

2019-04-16 15:52

第 22 页 共 36 页

4):发送一个block(一般为512个字节; 5):发送两个字节CRC16码;

6):循环接收数据,等待写完成,直到写完成接收到0xff;

7):重复步骤3,继续发送下一个数据包,直到所有数据包发送完成,至步骤8继续; 8):发送命令CMD12,数据传输结束; 9):接受R1b相应。

在需要读取SD卡中数据的时候,读SD卡的命令字为CMD17,接收正确的第一个响应命令字节为0xFE,随后是512个字节的用户数据块,最后为2个字节的CRC验证码。 读SD卡的程序流程图如图4.4所示。

开 始

发送读命令CMD17 否 响应0xFE吗? 返 回

接受2字节CRC码 接受512字节数据 否 CRC码校正,对吗?

结 束

图4.4 读SD卡流程图

① 读单块

l):发送命令CMD17; 2):接收R1响应;

3):等待Data Tokens (Single Block Read:0xfe); 4):接收一个Block(一般为512个字节);

第 23 页 共 36 页

5):接收两个宇节CRC16码。 ② 读多块

l):发送命令CMD 17; 2):接收R1响应;

3):等待Data Tokens (Single Block Read:0xfe; 4):接收一个Block(一般为5121个字节); 5):接收两个字节CRC16码;

6):重复步骤3,继续接收下一个数据包,直到接收所有数据包完成后,至步骤7继续; 7):发送命令CMD12 ,数据传输结束; 8):接收R1b响应。

4.3.4 SD卡存储时间和电压流程图

打开指定文件,若失败(即没有该文件)那么就新建该指定文件,之后,追加该通道的日期时间和电压值,具体见流程图4.5所示。

开始 打开文件CH*.txt 否 成功? 是 新建文件CH*.txt 追加日期时间和该通道电压值 关闭文件 否 4次? 是 返回 图4.5 SD卡存储时间和电压流程图

*代表通道数

第 24 页 共 36 页

4.3.5 定时器T0函数流程图

系统要求四个通道每一秒中分别进行一次A/D转换,系统采用24MHz晶振,一个周期0.5us,定时器初值赋值为50ms,则1s/(50ms*0.5us)=40,即溢出40次中断一次为1s。具体见流程图4.6所示。

中断 重新赋初值50mS 溢出次数加一 否 溢出40次? 是 溢出次数清零 置位1S标志位 中断返回

图4.6 定时器T0函数流程图

4.3.6 主体程序流程图

系统一上电就进行系统初始化,再不断循环扫描是否有按键按下什么功能按键按下,根据有无按键按下进入往下的相应程序,之后进行时间标志判断,是,就清除标志,读各通道采样数据并计算电压值,再判断是否采集标志,是的话就SD卡存储并LCD显示,否的话不存储只LCD显示。具体见流程图4.7所示。

第 25 页 共 36 页

开始 系统初始化 未按下 采集、停止采集 按键内容 清除 删除记录文件 置位/清除采集位 否 时间标志位 是 清除时间标志位 读取DS1302 读取4个通道AD采样数据 计算电压值 否 采集标志位 是 SD卡存储 时间和电压 显示时间和各通道电压

图4.7 主程序流程图

第 26 页 共 36 页

5 结论

设计实现了利用单片机对SD卡进行读写控制的功能,基本达到了设计的目的。根据理论设计,并用计算机编程进行了模拟,制作出了实物并经测试功能完全符合设计要求。 从理论基础出发,完成了将四路模拟电压(0-5V)进行A/D转换,转换结果为十进制有效数字3位;每秒钟转换一次,结果转换为ASCII码形式;并将四路结果分别存储到SD卡预先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文档中。还自行增加了显示模块。

本设计应用STC12C5A60S22读写SD卡有两点需要注意。

首先,需要寻找一个实现STC12C5A60S2单片机与SD卡通讯的解决方案:SD卡有两个可选的通讯协议:SD模式和SPI模式SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。然而,STC12C5A60S2单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在 SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。设计用SPI总线模式读写SD卡。

其次,SD卡所能接受的逻辑电平与STC12C5A60S2提供的逻辑电平不匹配,需要解决电平匹配问题。要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。考虑到SD卡在SPI协议的工作模式下,我们采用带SD卡的TFT彩屏,它包括显示模块和SD模块,SD模块中已有电压转换模块,所以不用担心被烧坏问题。在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则。


SD卡存储采集数据电路设计毕业论文 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:40米架桥机计算书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: