您所在的位置: 网络通讯服务网首页 > 新闻中心 > 企业难题 > 正文
用SD卡设计8086全硅计算机的硬盘
WwW.OpenVoip.CN   2010-5-5 15:59:02  来源:电子技术应用  作者:
【 字号      】  打印   收藏   评论(..)  相关新闻

作者:吴 斌 李翔宇 时丙才 李 垚 高明伦

全硅计算机CoC(Computer-on-a-Chip)将传统PC机主板上的CPU、芯片组、内存、显卡、声卡和网卡等芯片最大限度地集成到单个芯片中。8086 CoC集成了Intel8086 CPU[1]全硅计算机,而由于8086 CoC高度集成性,传统的机械硬盘已不适合。采用嵌入式的存储设备,例如固态硬盘(Solid-State Disk)利用Flash芯片作为存储介质,符合ATA[2]/SATA/SCSI等接口传输协议。固态硬盘设计最大的障碍就是设计过程复杂,用闪存(Flash Memory)芯片作为核心存储介质的固态硬盘需要设计复杂的控制器[3]。为了简化设计的复杂性又兼顾固态硬盘的优点,本设计采用SD卡(Secure Digital Card)作为8086 CoC的硬盘。因为SD卡是基于闪存的存储卡,具有固态硬盘的特性,安全性高、容量大、性能佳、环境适应性好等优点。采用SD卡作为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所示。

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进制)。

2.1 SD卡的初始化

本文设计了APB总线的SD卡硬件转换接口,通过BIOS软件编程实现访问SD卡软件。用软件控制的方式给SD卡发送命令,使SD卡完成初始化。SD卡初始化有2个目的:使SD卡工作于SPI接口模式、设置单块读写的数据长度。SD卡上电复位后处于SD总线模式,要使SD卡进入SPI接口模式,需要在片选信号CS为低电平时发送命令CMD0。由于SD卡在收到CMD0前处于SD总线模式,因此CMD0是唯一需要正确冗余校验的命令。发送CMD0命令后,接收Rl回应,判断SD卡是否正确接收命令。

12
责任编辑:之涵
         
相关新闻 ..................................TOP
·Colossus固态硬盘价格昂贵 或冲击1TB市场 2010年04月14日
·SD卡大全 2005年10月20日
·SD卡音响 2005年10月20日
·SD卡电视机 2005年10月20日
已有..条评论 发表评论 查看所有评论>>  
图片新闻
神秘处理器低价游戏本 宏碁4741ZG首评
神秘处理器低价游戏本 宏碁..
时尚滑盖 OPPO女性音乐手机A203评测
时尚滑盖 OPPO女性音乐手机..
魅族M8碰撞乐Phone 最潮智能手机推荐
魅族M8碰撞乐Phone 最潮智..
迎接Android2.2 市售热门谷歌手机推荐
迎接Android2.2 市售热门谷..
焦点人物
 
合作伙伴
新版4008电话注册中心   呼我800   搜号网   和谐社区   通码科技   YOYO公社