CN104122935A - 一种用于sd3.00主机控制器的动态时钟相位调整方法 - Google Patents

一种用于sd3.00主机控制器的动态时钟相位调整方法 Download PDF

Info

Publication number
CN104122935A
CN104122935A CN201410369479.6A CN201410369479A CN104122935A CN 104122935 A CN104122935 A CN 104122935A CN 201410369479 A CN201410369479 A CN 201410369479A CN 104122935 A CN104122935 A CN 104122935A
Authority
CN
China
Prior art keywords
phase
sampling clock
sampling
enter step
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410369479.6A
Other languages
English (en)
Inventor
刘昊
杨赋庚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201410369479.6A priority Critical patent/CN104122935A/zh
Publication of CN104122935A publication Critical patent/CN104122935A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开了一种用于SD3.00主机控制器的动态时钟相位调整方法,使用FPGA片内的可变相位PLL产生不同相位的采样时钟;使用不同相位的采样时钟采样SDXC卡的TUNING数据块,与规范定义的数据块进行匹配,并且记录每一次的匹配结果;使用最佳相位选择算法,选择一个最佳的采样时钟相位;整个过程由硬件自动实现,不需要软件的参与,速度快,相位准,最终使SD3.00主机控制器能够在UHS-I高速模式下正确地采样SD卡的数据。本发明提出的方法,全数字化实现,不仅适用于FPGA,也适用于其他包含可变相位PLL的芯片。

Description

一种用于SD3.00主机控制器的动态时钟相位调整方法
技术领域
本发明涉及SD主机控制器的设计领域,具体涉及SD3.00主机控制器的采样时钟设计,用于为SD3.00主机控制器提供最佳的采样时钟。  
背景技术
在2009年6月,SD3.00规范发布了。基于SD3.00技术的存储卡,一般叫做SDXC卡,容量可达2TB,理论速度可达300MB/s,远远超出了大多数应用的需求。目前许多公司的都有自己的SDXC卡产品。随着符合SD3.00规范的SDXC卡的推出,进行SD3.00主机控制器的研究就有了深远的意义。 
SD3.00主机控制器和以往的SD主机控制器相比,主要区别在于物理接口的变化和时钟频率的变化。在SD3.00的UHS-I传输模式中,时钟频率高达208MHz,有效数据窗口只有2.88ns,加上电路延迟和时钟相位的温漂,采样时钟的相位必须进行动态调整,才能正确地采样SD卡的数据。 
发明内容
技术问题:本发明针对SD3.00主机控制器的UHS-I高速传输模式,提出了一种动态时钟相位调整方法,使得主机控制器可以动态调整采样时钟的相位,从而在高速模式下可以正确地采样SD卡的数据。 
技术方案:本发明提出的动态时钟相位调整方法,首先使用FPGA片内的可变相位PLL产生不同相位的采样时钟;然后使用不同相位的采样时钟采样SDXC卡的TUNING数据块,与规范定义的数据块进行匹配,并且记录每一次的匹配结果;最后使用最佳相位选择算法,选择一个最佳的采样时钟相位。 
动态时钟相位调整方法具体包括如下步骤: 
1)SD主机控制器依次发送CMD0、CMD8、ACMD41、CMD11、CMD2、CMD3命令,初始化SDXC卡,然后发送CMD7切换SDXC卡的状态为数据传输状态,再然后发送ACMD6命令设置SDXC卡的数据线宽度为4,最后发送CMD6开启SDXC卡的UHS-I高速模式;然后进入步骤2);
2)配置SD主机控制器的寄存器,置位EXECUTE_TUNING位,激活时钟控制模块的采样时钟相位调整序列;然后进入步骤3);
3)SD主机控制器发送CMD19命令,让所述SD3.00卡返回64字节的TUNING数据块;然后进入步骤4);
4)SD主机控制器的时钟控制模块记录这个TUNING数据块,并且与规范定义的TUNING数据块进行匹配。如果匹配,记为“1”,说明采样时钟的相位满足时序要求;如果不匹配,记为“0”,说明不满足时序要求。并且将匹配结果存入32比特的循环移位寄存器result中;然后进入步骤5);
5)执行PLL的相位调整序列,将采样时钟的相位增加采样周期的1/32;然后进入步骤6);
6)重复步骤3到步骤5,直到32个采样时钟的相位全部验证完毕;然后进入步骤7);
7)使用最佳相位选择算法,从循环移位寄存器result的32个比特中,找出最长的一串“1”,那么中间的“1”就代表了最佳的采样时钟相位。然后进入步骤8);
8)根据最佳的采样时钟相位,再次执行PLL的相位调整序列,完成采样时钟相位调整;
有益效果:本发明全数字化实现,整个相位调整过程由硬件全自动完成,软件只需要做少量的配置即可,既快速,又精确。硬件方面,只需要有可变相位PLL的支持即可,控制电路全部由数字逻辑实现,可以在不改动原有电路结构的基础上应用本方法。采用本发明提出的方法后,SD3.00主机控制器可以方便快捷地校正采样时钟的相位,从而在UHS-I高速模式下,在208MHz的SD总线时钟频率下,正确地采样来自SDXC卡的数据。 
附图说明
图1为本发明采样时钟相位调整流程图; 
图2为本发明最佳相位选择算法原理图;
图3为本发明FPGA片内的PLL相位调整时序;
图4为本发明最佳相位选择算法仿真图。 
具体实施方式
下面结合附图对发明的技术方案进行详细的说明。 
本发明提出的动态时钟相位调整方法,首先使用FPGA片内的可变相位PLL产生不同相位的采样时钟;然后使用不同相位的采样时钟采样SDXC卡的TUNING数据块,与规范定义的数据块进行匹配,并且记录每一次的匹配结果;最后使用最佳相位选择算法,选择一个最佳的采样时钟相位。 
动态时钟相位调整方法具体包括如下步骤: 
1)SD主机控制器依次发送CMD0、CMD8、ACMD41、CMD11、CMD2、CMD3命令,初始化SDXC卡,然后发送CMD7切换SDXC卡的状态为数据传输状态,再然后发送ACMD6命令设置SDXC卡的数据线宽度为4,最后发送CMD6开启SDXC卡的UHS-I高速模式;然后进入步骤2);
2)配置SD主机控制器的寄存器,置位EXECUTE_TUNING位,激活时钟控制模块的采样时钟相位调整序列;然后进入步骤3);
3)SD主机控制器发送CMD19命令,该命令带有数据传输。SDXC卡收到该命令后,会返回64字节的TUNING数据块,数据块的内容是固定不变的;然后进入步骤4);
4)如图2所示,SD主机控制器的时钟控制模块记录这个TUNING数据块,并且与规范定义的TUNING数据块进行匹配。如果匹配,记为“1”,说明采样时钟的相位满足时序要求;如果不匹配,记为“0”,说明不满足时序要求。并且将匹配结果存入32比特的循环移位寄存器result中;然后进入步骤5);
5)本发明使用的FPGA是Altera公司Stratix III系列的EP3SL340H1152C3。其PLL的相位调整序列如图3所示。其中,SCANCLK是用于重配置PLL的时钟。首先拉高PLL模块的PHASESTEP,然后再设置PHASEUPDOWN(拉高为增加相位,拉低为减少相位)和PHASECOUNTERSELECT(从4’h2到4’hb分别选择PLL的从C0到C9输出时钟),将采样时钟的相位增加采样周期的1/32;然后进入步骤6);
6)重复步骤3)到步骤5),直到32个采样时钟的相位全部验证完毕;然后进入步骤7);
7)使用最佳相位选择算法,从循环移位寄存器result的32个比特中,找出最长的一串“1”,那么中间的“1”就代表了最佳的采样时钟相位。如图2所示,首先初始化tar_phase_start和tar_phase_len为0,然后找到一串“1”的起始位,用cur_phase_start记录,再找到这串“1”的结束位,计算这串“1”的长度,用cur_phase_len记录,如果cur_phase_len>tar_phase_len,那么将tar_phase_start和tar_phase_len的值替换为cur_phase_start和cur_phase_len,然后继续寻找下一串“1”,直到32个比特全部扫描完毕。最终,tar_phase_start+tar_phase_len/2指向的“1”,就代表了最佳采样时钟的相位。然后进入步骤8);算法的仿真结果如图4所示,输入测试数据为result=32’b1011_1100_0111_1111_0110_1000_1111_1111,可以看出,最长的一串1从第24位开始(注意,最左边的比特位为第0位),长度为9;
8)根据最佳的采样时钟相位,再次执行PLL的相位调整序列,完成采样时钟相位调整。

Claims (3)

1.一种用于SD3.00主机控制器的动态时钟相位调整方法,其特征在于:
使用FPGA片内的可变相位PLL产生不同相位的采样时钟;
使用不同相位的采样时钟采样SDXC卡的TUNING数据块,与规范定义的数据块进行匹配,并且记录每一次的匹配结果;
使用最佳相位选择算法,选择一个最佳的采样时钟相位。
2.如权利要求1所述用于SD3.00主机控制器的动态时钟相位调整方法,其具体包括如下步骤:
1)初始化SD3.00卡,然后发送CMD7使其进入数据传输状态,发送ACMD6命令设置数据线宽度为4,再发送CMD6开启UHS-I高速模式;然后进入步骤2);
2)配置寄存器,激活时钟控制器的采样时钟相位调整序列;然后进入步骤3);
3)发送CMD19命令,让所述SD3.00卡返回64字节的TUNING数据块;然后进入步骤4);
4)将卡返回的TUNING数据块与规范定义的TUNING数据块进行匹配,如果匹配,说明采样时钟的相位满足时序要求;如果不匹配,说明不满足时序要求;并且记录匹配结果;然后进入步骤5);
5)配置PLL,将采样时钟的相位增加采样周期的1/32;然后进入步骤6);
6)重复步骤3)到步骤5),直到32个采样时钟的相位全部测试完毕;然后进入步骤7);
7)使用最佳相位选择算法,选择一个最佳的采样时钟相位;然后进入步骤8);
8)根据最佳的采样时钟相位,再次配置PLL,完成采样时钟相位调整。
3.权利要求1所述用于SD3.00主机控制器的动态时钟相位调整方法,其中最佳相位选择算法为从32个相位测试结果中选择一个最佳相位,即:
先用一个32比特的寄存器保存测试结果;
使用状态机从中查找出最长的有效区间;
最长有效区间的中间值就是最佳采样时钟相位。
CN201410369479.6A 2014-07-30 2014-07-30 一种用于sd3.00主机控制器的动态时钟相位调整方法 Pending CN104122935A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410369479.6A CN104122935A (zh) 2014-07-30 2014-07-30 一种用于sd3.00主机控制器的动态时钟相位调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410369479.6A CN104122935A (zh) 2014-07-30 2014-07-30 一种用于sd3.00主机控制器的动态时钟相位调整方法

Publications (1)

Publication Number Publication Date
CN104122935A true CN104122935A (zh) 2014-10-29

Family

ID=51768387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410369479.6A Pending CN104122935A (zh) 2014-07-30 2014-07-30 一种用于sd3.00主机控制器的动态时钟相位调整方法

Country Status (1)

Country Link
CN (1) CN104122935A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329923A (zh) * 2017-06-26 2017-11-07 努比亚技术有限公司 一种调整总线时序的方法、存储介质和终端
CN109766133A (zh) * 2018-12-29 2019-05-17 合肥杰发科技有限公司 一种内置嵌入式单元的系统及其初始化方法
CN111143269A (zh) * 2020-01-09 2020-05-12 四川卫士通信息安全平台技术有限公司 一种边界时钟窗口确定方法、电路、终端设备、存储介质
CN111159788A (zh) * 2020-01-02 2020-05-15 天津飞腾信息技术有限公司 基于mmcsd控制器的安全设备区域访问方法、装置及介质
CN112241614A (zh) * 2020-10-09 2021-01-19 广芯微电子(广州)股份有限公司 一种时钟延时链延时的检测方法、系统及电子设备
CN112241615A (zh) * 2020-10-09 2021-01-19 广芯微电子(广州)股份有限公司 一种数据平衡性时序的检测方法、系统及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110089982A1 (en) * 2009-10-16 2011-04-21 Hong-Yean Hsieh Fast Lock-In All-Digital Phase-Locked Loop with Extended Tracking Range
CN102377428A (zh) * 2010-07-27 2012-03-14 联发科技股份有限公司 时钟产生器与时钟产生方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110089982A1 (en) * 2009-10-16 2011-04-21 Hong-Yean Hsieh Fast Lock-In All-Digital Phase-Locked Loop with Extended Tracking Range
CN102377428A (zh) * 2010-07-27 2012-03-14 联发科技股份有限公司 时钟产生器与时钟产生方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈磊: "《基于FPGA的SD卡控制器设计》", 《中国优秀硕士学位论文全文数据库-信息科技辑2013年》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329923A (zh) * 2017-06-26 2017-11-07 努比亚技术有限公司 一种调整总线时序的方法、存储介质和终端
CN109766133A (zh) * 2018-12-29 2019-05-17 合肥杰发科技有限公司 一种内置嵌入式单元的系统及其初始化方法
CN111159788A (zh) * 2020-01-02 2020-05-15 天津飞腾信息技术有限公司 基于mmcsd控制器的安全设备区域访问方法、装置及介质
CN111159788B (zh) * 2020-01-02 2023-04-25 飞腾信息技术有限公司 基于mmcsd控制器的安全设备区域访问方法、装置及介质
CN111143269A (zh) * 2020-01-09 2020-05-12 四川卫士通信息安全平台技术有限公司 一种边界时钟窗口确定方法、电路、终端设备、存储介质
CN112241614A (zh) * 2020-10-09 2021-01-19 广芯微电子(广州)股份有限公司 一种时钟延时链延时的检测方法、系统及电子设备
CN112241615A (zh) * 2020-10-09 2021-01-19 广芯微电子(广州)股份有限公司 一种数据平衡性时序的检测方法、系统及电子设备
CN112241615B (zh) * 2020-10-09 2021-05-18 广芯微电子(广州)股份有限公司 一种数据平衡性时序的检测方法、系统及电子设备

Similar Documents

Publication Publication Date Title
CN104122935A (zh) 一种用于sd3.00主机控制器的动态时钟相位调整方法
CN105807263B (zh) 一种fpga部分重构在雷达信号处理中的装置及其实现方法
CN105915241B (zh) Fpga中实现超高速数字正交下变频及抽取滤波的方法与系统
CN103592881B (zh) 一种基于fpga的多路信号同步采样控制电路
CN101419483B (zh) 基于锁相环的时钟发生器及时钟发生方法
US20090167572A1 (en) Serial/Parallel data conversion apparatus and method thereof
CN104915303B (zh) 基于PXIe总线的高速数字I/O系统
CN1747376A (zh) 同步装置和半导体装置
CN1156975C (zh) 时钟生成电路、串/并变换器及并/串变换器
CN101753288A (zh) 基于过采样的时钟数据恢复和串并转换电路
CN203025709U (zh) 一种fpga原型验证板堆叠的时钟同步装置
CN106844864A (zh) 一种基于相位自同步技术的多路时钟调节方法
CN103592598A (zh) 针对逻辑分析仪定时分析的采样装置
CN103957003A (zh) 一种时间数字转换器、频率跟踪装置及方法
CN105897261A (zh) 时钟同步方法
CN204028901U (zh) 一种高速数据录取存储与回放系统
CN1697324B (zh) 传输信号去抖动的实现方法及其装置
CN103684698A (zh) 数据信号的处理方法和装置
CN105515610A (zh) 一种数字接收机模块及其信号处理方法与射频卡布线方法
CN105187052B (zh) 一种可编程小数分频电路
CN101498952A (zh) 一种CPU、一种SoC芯片及一种同步时钟的方法
CN104216462A (zh) 一种基于fpga的大动态高精度可编程延时装置
CN103631314B (zh) 去除电平信号中毛刺的方法
CN102946306A (zh) 时钟数据恢复电路结构及数字化时钟数据恢复方法
CN102790605A (zh) 异步信号同步器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141029