1、sd 卡工作原理分析 1sd 卡工作原理分析侯会明2005-11-22一 CPU 相关, ssio 的连接和设置 .21 硬件初始化,ssio 的相关配置 .21) 端口功能选择寄存器 GPCTL.22) 端口模式寄存器 GPPMA,GPPMB,GPPMC ,GPPMD ,GPPME .23) 同步 SIO 控制寄存器 SSIOCON.34) 同步 SIO 状态寄存器 SSIOST.35) 同步 SSIO 测试控制寄存器 SSIOTSCON .46) 同步 SIO 收发缓冲寄存器 SSIOBUF.57) 同步 SIO 中断申请寄存器 SSIOINT.58) 同步 SIO 中断使能寄存器 SSI
2、OINTEN .52 CPLD 片选 .63 第三步,ssio 收发字符相关 .6二 数据包的封装与命令协议相关 .61 sd 卡指令数据包 .62 sd 卡命令索引表 .73 命令回应 repond .101) R1 模式 .102) R2 模式 .113) R3 模式 .11三 命令的控制与实现 .121 程序中调用的 sd 卡命令 .121) 命令响应函数 UCS_DRSD_niCommandRespond .122) sd 卡驱动程序初始化 UCS_DRSD_giSdIdentify.133) 读 sd 卡操作函数 .154) 写 sd 卡操作函数 .15四 sd 卡的配置信息和相关结
3、构体 .161 卡识别寄存器 CID(card identification register ).162 卡特性寄存器 CSD(card specific data register) .17sd 卡工作原理分析 2一 CPU 相关,ssio 的连接和设置1 硬件初始化,ssio 的相关配置1) 端口功能选择寄存器GPCTL地址:0xB7000000功能描述:这个寄存器配置各组GPIO的管教原始功能或者第二功能; CPU可以对这个寄存器进行读/写访问;复位后的默认值是 0x0000。15 14 13 12 1110 9 8 7 6 5 4 3 2 1 0GPCTL -*At reset 0
4、0 0 0 0 0 0 0 0 0 0 0 0 0 0这里对这个寄存器有两处操作 首先将此寄存器和0x0008 与,来操作 GPPMB;GPCTL3(bit3)位控制管脚 PIOB4和 PIOB1:0的功能,设置如下:GPCTL3 = “0” (原始功能) GPCTL3 = “1” (第二功能)Function In/Out Function In/OutPIOB0 In/Out DREQ0 InputPIOB1 In/Out DREQCLR0 OutputPIOB4 In/Out TCOUT0 Output 然后将此寄存器和 0x0100 或,来操作 GPPME。GPCTL9(bit9)位控
5、制管脚的功能,它的第二功能是 ssioGPCTL9 = “0” (原始功能) GPCTL9 = “1” (第二功能)Function In/Out Function In/OutPIOE3 In/Out SDA In/OutPIOE4 In/Out SCL Output2) 端口模式寄存器GPPMA,GPPMB ,GPPMC ,GPPMD ,GPPME地址:0xB7A010080xB7A01088功能描述:这些寄存器指定相应管脚的I/O流向(PIOA7:0, PIOB7:0,PIOC7:0, PIOD7:0 and PIOE9:0);CPU可以对这个寄存器进行读/写访问;复位后的默认值是0x0000。GPPMA7:0/GPPMB7:0/ GPPMC7:0/GPPMD7:0 (bits 0 to 7)/GPPME9:0 (bits 0 to 9):,这些位置0时表示input;置1时表示output 。1510 9 8 7 6 5 4 3 2 1 0GPPM* -*-*-*- GPPMA7:0/GPPMB7:0/GPPMC7:0/GPPMD7:0/GPPME9:0,GPPME uses bit9 CRC 选项bit=0表示 CRC OFF.31:01stuff bits00:00CRCoptionR1