查看: 1099|回复: 0

[评测分享] 【ALINX和紫光同创PGL12G开发板】-4.基于SD卡的MP3

[复制链接]
  • TA的每日心情
    开心
    2020-7-19 17:46
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-8-30 13:45:37 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 yuchenlove 于 2020-8-30 14:23 编辑

    文章目录
           前言
           SD卡的介绍
           硬件部分介绍
           代码实现及效果

    前言

    从7月20号知道自己获得了PGL12G板卡的试用机会到现在已经不知不觉过了41天了,时间如白驹过隙,让人抓不住它的丝毫,但我能让它在我的人生的旅途中烙下烙印。。。。不说了,莫名又感悟起来了。开始咱们的正文,今天给大家带来的是FPGA对SD卡扫描,读取,对音频文件的解码,最后通过音频模块播放。

    SD卡的介绍

    SD卡是由松下电器、东芝和SanDisk联合推出,1999年8月发布。SD卡结构卡的数据传送和物理规范由MMC发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。与 MMC 卡保持着向上的兼容,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC卡厚度一样的导轨式设计,以使SD设备可以适合MMC卡)。(标准的百度介绍,哈哈)

    1.jpg

    SD卡主要引脚和功能为:
    CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在o~2SMHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;

    CMD:双向命令和回复线,命令是一次主机到从卡 操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;

    DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在sPI模式下其翰由6个字节构成,其中高位在前。

    3.png

    SD卡协议

    A.SD卡操作模式
    每种操作模式具体对应一种或多种状态,主机通过发送命令可以使SD卡在不同的状态间转换,SD卡接受命令,并根据自己现在所处状态做出不同的响应。

    4.png

    1.Inactive
    2.Card identification mode SD卡识别模式(系统上电时刻或搜寻SD卡,刚接入系统时刻)


    B.SD卡复位

    发送GO_IDLE_STATE(CMD0) 到SD卡后,除处于非活动状态之外的SD卡都会进入空闲状态。


    5.png

    3.数据传输模式
    数据传输模式下的各个状态转换关系:
    1.所有数据读命令都可以被停止命令(CMD12)在任意时刻终止。数据传输会终止,SD卡返回Transfer状态。读命令有:块读操作(CMD17),多块读操作(CMD18),发送写保护(CMD30),发送scr(AVMD51)以及读模式下的普通命令(CMD56)

    2.所有数据写命令都可以被停止命令(CMD12)在任意时刻终止。写命令也会在取消命令(CMD7)之前停止。写命令有:块写操作(CMD24,CMD25),编程命令(CMD27),锁定/解锁命令(CMD42)以及写模式写的普通命令(CMD56)

    3.数据传输一旦完成,SD卡会退出数据写状态,进入Programming状态(传输完成)或者Transfer状态(传输失败)

    6.png

    硬件部分介绍

    1.SD_CS/连接到FPGA的片选SD管脚,只有PFGA设置SD_CS/为低电平时才可以操作SD卡。

    2.MOSI连接FPGA的SPI总线的MOSI管脚(SPI微据输入),FPGA从这个管脚读取SD卡内的效据。

    3.MISO连接FPGA的SPI总线的MISO管脚(SPI微据输出)、FPGA通过这个管脚向SD卡内写入微据。

    4.SCK连接FPGA的SPI总线的SCK(SPI时钟)

    5.SD管脚实际上在SD卡内部连接到了GND,当SD插座上没插入SD卡时,FPGA从这个管脚能读到高电平(前提是使用FPGA内部上拉输入,或者外部增加一个上拉电阻),且插入SD卡,这个管脚就交成低电平,这个功能用来检测是否插入SD卡。

    6.RSV1和RSV2是保留功能管脚,不需要操作。

    7.png

    代码实现及效果

    先给大家上一段效果的视频。为了这个实验,我把我珍藏多年的音箱都拿出来了(其实是当年买电脑送的全损音箱,哈哈)



    最后再给大家来一张代码的图片

    8.png



    注:这里给大家整理了PGL12G-6CFBG256开发板的SD卡的MP3的源码,有兴趣的小伙伴欢迎下载
    链接:https://pan.baidu.com/s/1Bb8s9xM9yxsuOT4aZ-sT4A
    提取码:gg8u

    本次SD卡的MP3就告一段落了,感谢阅读,欢迎阅读下期测评。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 17:37 , Processed in 0.115289 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.