关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 用SD卡设计8086全硅计算机的硬盘

用SD卡设计8086全硅计算机的硬盘

作者:时间:2010-05-04来源:网络收藏
全硅CoC(Computer-on-a-Chip)将传统PC机主板上的CPU、芯片组、内存、显卡、声卡和网卡等芯片最大限度地集成到单个芯片中。 CoC集成了Intel
CPU[1]全硅,而由于 CoC高度集成性,传统的机械硬盘已不适合。采用嵌入式的存储设备,例如固态硬盘(Solid-State Disk)利用Flash芯片作为存储介质,符合ATA[2]/SATA/SCSI等接口传输协议。固态硬盘设计最大的障碍就是设计过程复杂,用闪存(Flash Memory)芯片作为核心存储介质的固态硬盘需要设计复杂的控制器[3]。为了简化设计的复杂性又兼顾固态硬盘的优点,本设计采用(Secure Digital Card)作为8086 CoC的硬盘。因为是基于闪存的存储卡,具有固态硬盘的特性,安全性高、容量大、性能佳、环境适应性好等优点。采用作为8086 CoC的硬盘可避免设计复杂的硬盘控制器。
1 硬件设计
8086 CoC系统采用AMBA双总线结构,高速设备如内存(SDRAM)、显卡(VGA)等通过AHB总线与CPU进行数据交换,而低速设备则经由APB总线(Advanced Peripheral Bus)与CPU通信。SD卡作为8086 CoC的硬盘属于低速I/O,因此SD卡是挂接在APB总线上。SD卡接口可以插入SD卡作为类似硬盘的大容量存储设备使用,CPU通过APB总线对SD卡的数据进行操作。APB总线与SD卡连接的转换接口是本文硬件设计的重点,8086 CoC体系架构图如图1所示。

本文引用地址:http://www.eepw.com.cn/article/202544.htm

1.1 APB接口简介
APB总线是AMBA总线的外围总线,有关于APB总线协议可以参照AMBATM Specification(Rev2.0)。SD卡作为I/O挂接在APB的从主机口上,CPU要对I/O设备访问,必须对I/O设备分配地址,本设计为SD卡分配的地址(只要与其他端口不冲突,地址可任选)是100H和101H(H为16进制)分别为SD卡的数据端口与片选端口。CPU对SD卡进行访问时,CPU地址总线传送APB总线的地址为100H或101H。此时,APB总线通过自身内部的译码器使对应的从主机口有效,对应的从机设备被选中、SD卡I/O设备也被选中时,SD卡就可以与主机进行数据通信。
1.2 SD卡接口简介
SD卡的工作模式分别是SD模式和SPI模式[4],本设计采用SPI模式。SD卡的SPI模式设备使用SD卡协议的子协议和部分指令。SPI模式的优势在于可以使用标准主机,从而把外设减少到最低。表1所示为采用SPI模式下的SD卡的端口定义。


SPI模式是串行数据传输,而SD卡是挂接在APB的从口上的I/O设备,APB是并行数据,要使APB数据与SD卡的数据匹配,必须对APB数据进行转换,转换为符合SPI模式下的数据格式。
1.3 SD卡转换接口的设计
主机通过APB总线发送和接收的数据是1个字节(8位)的并行数据,而SD卡发送给主机设备的是串行数据,1个字节(8位)为1个数据单位。SD卡每次发送和接收串行数据是以SCLK为采样时钟,每次上升沿为1次采样数据,因此1次完整的数据采样需要8个SCLK时钟周期。SD卡被访问期间的片选信号CS一直要保持为有效低电平。SD卡转换接口的设计关键是:(1)APB总线的并行数据要转换成符合SPI协议规范的串行数据;(2)SD卡发送的串行数据转换成APB总线能够接收的并行数据;(3)产生正确采样时钟信号SCLK和片选信号CS。图2所示为SD卡转换接口模块的框图。

片选信号由APB数据线的高位控制:当APB总线的高位输出为低电平时,SS信号为低电平,SD卡被选中;当APB总线的高位输出为高电平时,SS信号为高电平,SD卡不被选中。APB总线的高位数据产生是通过软件编程实现。并串转换器作用是:首先将APB总线输出并行数据存储到一组移位寄存器,然后移位寄存器的数据被移位成串行数据,串行转换器就是并串转换器反过程。采样时钟发生器作用是:采样时钟的上升沿应在每一位串行数据中央,以确保采样时钟能够采样到正确的数据。
采用Verilog HDL硬件描述语言对SD卡转换接口模块进行设计,用modelsim6.1f 对该模块在8086 CoC系统平台进行仿真和调试。为了测试硬件接口,通过编写基于8086CPU的汇编程序,使CPU执行相应的汇编指令对SD卡进行操作,实验证明SD卡转接口的数据端口信号的仿真波形满足SPI协议规范。
2 SD卡的软件编程及功能调试
SD卡的配置、读写和擦除是通过主机给SD卡发送相应的执行命令,主机给SD卡发送命令通过软件控制来实现。SD卡的所有命令都有固定的格式,由6个字节组成:起始位、传输位、命令索引、参数、CRC和结束位。表2所示为SD卡的命令格式。复位命令CMD0:起始位为0、传输位为1、命令索引为0、CRC为固定值1001010、结束位为1。即CMD0的格式为40H00H00H00H00H95H(H为16进制)。



上一页 1 2 下一页

关键词: 8086 SD卡 计算机

评论


相关推荐

技术专区

关闭