CN104122935A - 一种用于sd3.00主机控制器的动态时钟相位调整方法 - Google Patents
一种用于sd3.00主机控制器的动态时钟相位调整方法 Download PDFInfo
- 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
Links
Abstract
本发明公开了一种用于SD3.00主机控制器的动态时钟相位调整方法,使用FPGA片内的可变相位PLL产生不同相位的采样时钟;使用不同相位的采样时钟采样SDXC卡的TUNING数据块,与规范定义的数据块进行匹配,并且记录每一次的匹配结果;使用最佳相位选择算法,选择一个最佳的采样时钟相位;整个过程由硬件自动实现,不需要软件的参与,速度快,相位准,最终使SD3.00主机控制器能够在UHS-I高速模式下正确地采样SD卡的数据。本发明提出的方法,全数字化实现,不仅适用于FPGA,也适用于其他包含可变相位PLL的芯片。
Description
技术领域
本发明涉及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比特的寄存器保存测试结果;
使用状态机从中查找出最长的有效区间;
最长有效区间的中间值就是最佳采样时钟相位。
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)
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)
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 | 联发科技股份有限公司 | 时钟产生器与时钟产生方法 |
-
2014
- 2014-07-30 CN CN201410369479.6A patent/CN104122935A/zh active Pending
Patent Citations (2)
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)
Title |
---|
陈磊: "《基于FPGA的SD卡控制器设计》", 《中国优秀硕士学位论文全文数据库-信息科技辑2013年》 * |
Cited By (8)
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 |