集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1072|回复: 0

基于SoPC和NIOS Ⅱ的SD卡文件系统的设计与实现

[复制链接]
zhiweiqiang33 发表于 2013-6-1 15:49:40 | 显示全部楼层 |阅读模式
SD卡中的数据是以块为单位进行存储的,如果在硬件层面对其进行操作,则不仅要非常了解SD卡的数据存储结构,还要对FAT系统有深刻的理解,然后用复杂的时序状态机对其扇区进行初始化和读取控制,对硬件直接进行操作可以节省FPGA资源。为了更有效地组织和管理SD卡中的数据,必须采用文件的格式进行组织数据,这就要求在SD卡中内嵌文件系统[1]。而随着FPGA的高速发展,以AlteraNIOSⅡ和Xilinx的MicroBlaze为代表的软核处理器以其高可定制性、与ARM相比相同价格下的高性能得到广泛的应用。
本文正是利用其丰富的外设和接口定制构建SD卡的FAT文件系统。
1 接口和控制器的设计
1.1 接口的配置

SD卡有SD模式和SPI模式2种,SPI是一种高速、同步、全双工的通信总线,只占用4根信号线,节约芯片的管脚,有利于PCB的布局。前者速度较快,后者比较方便我们采用后者SPI与FPGA进行通信,它由4个信号组成,分别是CS(片选信号)、MOSI(主机到SD卡)、MISO(SD卡到主机)、SCLK(主机和SD卡的同步时钟),以主从方式工作,本文中SPI为主机,SD卡是从机,处于单主单从模式。在由NIOSⅡ软核处理器控制的Avalon总线[2-3]下可以方便地与SD卡进行对接。Avalon总线是一种将片上处理器和外设连接成片上可编程(SoPC)的一种简单总线结构,它规定了主从设备之间的结构方式及其通信方式,通过使用SoPC Builder可以很方便地将自定义外设和其他组件组合起来,生成按照组件例化的系统模块,并自动生成内部总线逻辑,自动完成外设和存储器的地址映射、中断控制和总线控制。图1所示为设备之间的连接示意图,NIOSⅡ处理器和外设SD卡控制器的通过Avalon总线结构进行数据交换和沟通,SD卡控制器控制着外部SD卡存储介质。
1.2 控制器的设计
SD卡控制器[4]是FPGA和SD卡之间进行通信的翻译官,主要实现3大功能:(1)复位和初始化SD卡。控制器按照SD卡总线协议产生控制时序对其进行复位和初始化。
(2)读写SD卡。控制器通过CMD线发送读或者写的命令以及SD卡扇区地址,确认收到正确的响应后,通过DAT线进行读和写操作(分别涉及串并转换和并串转换),一次传输一个扇区的数据(512B),传输完毕后将就绪信号置为有效。
(3)设置SD卡。通过CMD线发送命令和参数,不发送或接受数据。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-19 20:49 , Processed in 0.141559 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表