[评测分享]
【ALINX和紫光同创PGL12G开发板】-4.基于SD卡的MP3
#板卡评测
2886 人阅读
|
0 人回复
|
2020-08-30
TA的每日心情 | 开心 2020-7-19 17:46 |
|---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
童生
- 积分
- 106
|
本帖最后由 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卡)。(标准的百度介绍,哈哈)
SD卡主要引脚和功能为:
CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在o~2SMHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;
CMD:双向命令和回复线,命令是一次主机到从卡 操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;
DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在sPI模式下其翰由6个字节构成,其中高位在前。
SD卡协议
A.SD卡操作模式
每种操作模式具体对应一种或多种状态,主机通过发送命令可以使SD卡在不同的状态间转换,SD卡接受命令,并根据自己现在所处状态做出不同的响应。
1.Inactive
2.Card identification mode SD卡识别模式(系统上电时刻或搜寻SD卡,刚接入系统时刻)
B.SD卡复位
发送GO_IDLE_STATE(CMD0) 到SD卡后,除处于非活动状态之外的SD卡都会进入空闲状态。
3.数据传输模式
数据传输模式下的各个状态转换关系:
1.所有数据读命令都可以被停止命令(CMD12)在任意时刻终止。数据传输会终止,SD卡返回Transfer状态。读命令有:块读操作(CMD17),多块读操作(CMD18),发送写保护(CMD30),发送scr(AVMD51)以及读模式下的普通命令(CMD56)
2.所有数据写命令都可以被停止命令(CMD12)在任意时刻终止。写命令也会在取消命令(CMD7)之前停止。写命令有:块写操作(CMD24,CMD25),编程命令(CMD27),锁定/解锁命令(CMD42)以及写模式写的普通命令(CMD56)
3.数据传输一旦完成,SD卡会退出数据写状态,进入Programming状态(传输完成)或者Transfer状态(传输失败)
硬件部分介绍
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是保留功能管脚,不需要操作。
代码实现及效果
先给大家上一段效果的视频。为了这个实验,我把我珍藏多年的音箱都拿出来了(其实是当年买电脑送的全损音箱,哈哈)
最后再给大家来一张代码的图片
注:这里给大家整理了PGL12G-6CFBG256开发板的SD卡的MP3的源码,有兴趣的小伙伴欢迎下载
链接:https://pan.baidu.com/s/1Bb8s9xM9yxsuOT4aZ-sT4A
提取码:gg8u
本次SD卡的MP3就告一段落了,感谢阅读,欢迎阅读下期测评。
|
|
|
|
|
|
|
|
|