发明内容
本发明实施例提供一种数据采集方法及装置,用以在不降低数据传输速度的同时,避免采集数据时不满足建立时间和保持时间的要求,提高稳定性。
本发明实施例提供一种数据采集方法,包括
步骤A:用周期为T的N个时钟采集接收的数据信号;其中,N为满足N≥2的整数;且N个时钟中的时钟i延迟N个时钟中的时钟1的延时为wi-1,i分别取满足1≤i≤N的整数;由N个时钟同一方向跳变沿的对应时刻,将时钟1周期划分为N个区间[wi-1,wi];
步骤B:根据N个时钟对所述数据信号的采集结果,确定出所述数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
步骤C:根据所述区间[wj-1,wj],确定延迟时钟j的延时为W的时钟为采集时钟;其中,Y+wj-wj-1≤W≤T-X,所述X为数据采集时需要满足的保持时间的最小值,所述Y为数据采集时需要满足的建立时间的最小值;
步骤D:用所述采集时钟采集接收的数据。
所述步骤B,具体为:
当在时钟1的当前周期内第k个采集结果与第k+1个采集结果不同时,确定所述数据信号的跳变时刻位于的区间为[wk,wk+1];k为满足1≤k≤N-1的整数;其中,所述第k个采集结果为时钟k+1对所述数据信号的采集结果,第N个采集结果为时钟1对所述数据信号的采集结果;
当N个时钟在时钟1的当前周期内对所述数据信号的采集结果全部相同,且该相同的采集结果与前一时钟1周期内获得的相同的采集结果不同时,确定所述数据信号的跳变时刻位于的区间为[0,w1]。
在所述步骤C后,还包括:
确定所述时钟1的当前周期与时钟1的第一周期相差h个周期;所述时钟1的第一周期为驱动所述数据信号的第一个数据信号输出的周期;所述时钟1为驱动所述数据信号输出的时钟;
所述步骤D,具体为:
用所述采集时钟在从所述时钟1的第一周期经过h个时钟1周期后开始采集接收的数据。
较佳的,wi-wi-1=T/N。
本发明实施例还提供一种数据采集方法,包括:
步骤A:用周期为T的采集时钟采集N个数据信号;其中,N为满足N≥2的整数;且N个数据信号中的数据信号1为接收的数据信号;N个数据信号中的数据信号i为延迟所述数据信号1wi-1生成的数据信号,i分别取满足1≤i≤N的整数;由N个数据信号对应的N个延时wi-1,将采集时钟周期划分为N个区间[wi-1,wi];
步骤B:根据所述采集时钟对N个数据信号的采集结果,确定出所述接收的数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
步骤C:根据所述区间[wj-1,wj],确定延迟接收的数据的延时为W的数据为被采集的数据;其中,X-wj-1≤W≤T-Y-wj或T+X-wj-1≤W≤2T-Y-wj,且0≤W<T,所述X为数据采集时需要满足的保持时间的最小值,所述Y为数据采集时需要满足的建立时间的最小值;
步骤D:用所述采集时钟采集所述被采集的数据。
所述步骤B,具体为:
当在当前采集时钟周期内第k个采集结果与第k+1个采集结果不同时,确定所述接收的数据信号的跳变时刻位于的区间为[wN-k,wN-k+1];k为满足1≤k≤N-1的整数;其中,所述第k个采集结果为所述采集时钟对数据信号k的采集结果,第N个采集结果为所述采集时钟对数据信号N的采集结果;
当在当前采集时钟周期内对N个数据信号的采集结果全部相同,且该相同的采集结果与前一采集时钟周期内获得的相同的采集结果不同时,确定所述接收的数据信号的跳变时刻位于的区间为[0,w1]。
在所述步骤C;还包括:
确定所述当前采集时钟周期与第一采集时钟周期相差h个周期;所述第一采集时钟周期为驱动所述接收的数据信号的第一个数据信号输出的周期;所述采集时钟为驱动所述接收的数据信号输出的时钟;
所述步骤D,具体为:
当W+wi<T时,使用所述采集时钟在从所述第一采集时钟周期开始经过h个采集时钟周期后开始采集所述被采集的数据;
当W+wi>T时,使用所述采集时钟在从所述第一采集时钟周期开始经过h+1个采集时钟周期后开始采集所述被采集的数据。
较佳的,wi-wi-1=T/N。
本发明实施例还一种数据采集装置,包括:
第一采集单元,用于周期为T的N个时钟采集接收的数据信号;其中,N为满足N≥2的整数;且N个时钟中的时钟i延迟N个时钟中的时钟1的延时为wi-1,i分别取满足1≤i≤N的整数;由N个时钟同一方向跳变沿的对应时刻,将时钟1周期划分为N个区间[wi-1,wi];
区间确定单元,用于根据N个时钟对所述数据信号的采集结果,确定出所述数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
采集时钟确定单元,用于根据所述区间[wj-1,wj],确定延迟时钟j的延时为W的时钟为采集时钟;其中,Y+wj-wj-1≤W≤T-X,所述X为数据采集时需要满足的保持时间的最小值,所述Y为数据采集时需要满足的建立时间的最小值;
第二采集单元,用于用所述采集时钟采集接收的数据。
所述区间确定单元,还用于当在时钟1的当前周期内第k个采集结果与第k+1个采集结果不同时,确定所述数据信号的跳变时刻位于的区间为[wk,wk+1];k为满足1≤k≤N-1的整数;其中,所述第k个采集结果为时钟k+1对所述数据信号的采集结果,第N个采集结果为时钟1对所述数据信号的采集结果;
当N个时钟在时钟1的当前周期内对所述数据信号的采集结果全部相同,且该相同的采集结果与前一时钟1周期内获得的相同的采集结果不同时,确定所述数据信号的跳变时刻位于的区间为[0,w1]。
较佳的,上述数据采集装置还包括:周期数确定单元,用于确定所述时钟1的当前周期与时钟1的第一周期相差h个周期;所述时钟1的第一周期为驱动所述数据信号的第一个数据信号输出的周期;所述时钟1为驱动所述数据信号输出的时钟;
所述第二采集单元,还用于用所述采集时钟在从所述时钟1的第一周期经过h个时钟1周期后开始采集接收的数据。
较佳的,wi-wi-1=T/N。
本发明实施例还提供一种数据采集装置,包括:
第一采集单元,用于用周期为T的采集时钟采集N个数据信号;其中,N为满足N≥2的整数;且N个数据信号中的数据信号1为接收的数据信号;N个数据信号中的数据信号i为延迟所述数据信号1wi-1生成的数据信号,i分别取满足1≤i≤N的整数;由N个数据信号对应的N个延时wi-1,将采集时钟周期划分为N个区间[wi-1,wi];
区间确定单元,用于根据所述采集时钟对N个数据信号的采集结果,确定出所述接收的数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
被采集数据确定单元,用于根据所述区间[wj-1,wj],确定延迟接收的数据的延时为W的数据为被采集的数据;其中,X-wj-1≤W≤T-Y-wj或T+X-wj-1≤W≤2T-Y-wj,且0≤W<T,所述X为数据采集时需要满足的保持时间的最小值,所述Y为数据采集时需要满足的建立时间的最小值;
第二采集单元,用于用所述采集时钟采集所述被采集的数据。
所述区间确定单元,还用于当在当前采集时钟周期内第k个采集结果与第k+1个采集结果不同时,确定所述接收的数据信号的跳变时刻位于的区间为[wN-k,wN-k+1];k为满足1≤k≤N-1的整数;其中,所述第k个采集结果为所述采集时钟对数据信号k的采集结果,第N个采集结果为所述采集时钟对数据信号N的采集结果;
当在当前采集时钟周期内对N个数据信号的采集结果全部相同,且该相同的采集结果与前一采集时钟周期内获得的相同的采集结果不同时,确定所述接收的数据信号的跳变时刻位于的区间为[0,w1]。
较佳的,上述数据采集装置,还包括:周期数确定单元,用于确定所述当前采集时钟周期与第一采集时钟周期相差h个周期;所述第一采集时钟周期为驱动所述接收的数据信号的第一个数据信号输出的周期;所述采集时钟为驱动所述接收的数据信号输出的时钟;
所述第二采集单元,还用于当W+wj<T时,使用所述采集时钟在从所述第一采集时钟周期开始经过h个采集时钟周期后开始采集所述被采集的数据;当W+wj>T时,使用所述采集时钟在从所述第一采集时钟周期开始经过h+1个采集时钟周期后开始采集所述被采集的数据。
较佳的,wi-wi-1=T/N。
本发明实施例中,将一个时钟的周期划分为N个区间[wi-1,wi],N为满足N≥2的整数,i分别取满足1≤i≤N的整数;确定出该数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;可以根据包括该时钟的N个时钟对该数据信号的采集结果确定,或者也可以根据该时钟对包括该数据信号的N个数据信号的采集结果确定;根据确定出的区间[wj-1,wj]和数据采集时需要满足的建立时间和保持时间的最小值,相应的,可以确定出合适的采集时钟,使用确定的采集时钟采集接收的数据时,能够满足建立时间和保持时间的要求,或者还可以确定出合适的被采集的数据,使用该时钟采集确定的被采集的数据,同样能够满足建立时间和保持时间的要求。采用本发明实施例提供的上述两种方法,均可以避免采集数据时不满足建立时间和保持时间的要求,提高稳定性,并且由于不需要降低时钟频率,而没有降低数据传输速度,即保持了原有的高性能。
具体实施方式
实施例一:
本发明实施例一提供一种数据采集方法,如图4所示,包括:
步骤S401、用周期为T的N个时钟采集接收的数据信号。
其中,N为满足N≥2的整数;且N个时钟中的时钟i延迟N个时钟中的时钟1的延时为wi-1,i分别取满足1≤i≤N的整数;由N个时钟同一方向跳变沿的对应时刻,将时钟1周期划分为N个区间[wi-1,wi]。
步骤S402、根据N个时钟对该数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间[wj-1,wj],j为满足1≤j≤N的整数。
步骤S403、根据确定出的区间[wj-1,wj],确定延迟时钟j的延时为W的时钟为采集时钟;其中,Y+wj-wj-1≤W≤T-X,X为数据采集时需要满足的保持时间的最小值,Y为数据采集时需要满足的建立时间的最小值。
步骤S404、用确定出的采集时钟采集接收的数据。
下面结合附图对本发明实施例一提供的上述方法进行详细描述。
上述步骤S401中,w1为时钟1延迟时钟1的延时,因此w1=0,又因为时钟1周期为T,所以wN=T。为便于方法实现,较佳的可以将时钟1的周期划分为若干个大小相等的子区间,下面以将其划分为4个大小相等的子区间为例,对上述步骤进行详细描述。
上述时钟1可以看做是一个基准时钟,根据时钟1生成时钟2、时钟3和时钟4,对应的分别延迟时钟1的时长为T/4、T/2和3T/4。时钟1-4的时序如图5所示。
步骤S401中,使用时钟1-4采集接收的数据信号,获得4个数据采集结果,本实施例中,以在时钟上升沿采集数据为例进行描述。
如图5所示,在时钟1周期t0-t4内,时钟2、时钟3、时钟4和时钟1分别在t1时刻、t2时刻、t3时刻和t4时刻采集该数据信号,获得对应的第1个数据采集结果、第2个数据采集结果、第3个数据采集结果和第4个数据采集结果。在时钟1周期t0-t4的前一个时钟1周期内采集到的各采集结果相同,本实施例中该采集结果以1为例,图5中采集数据信号P和数据信号Q获得的各采集结果分别如表1和表2所示:
表1:采集数据信号P获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
时钟2 |
第1个P采集结果 |
1 |
1 |
0 |
时钟3 |
第2个P采集结果 |
1 |
0 |
* |
时钟4 |
第3个P采集结果 |
1 |
0 |
* |
时钟1 |
第4个P采集结果 |
1 |
0 |
* |
表2:采集数据信号Q获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
时钟2 |
第1个Q采集结果 |
1 |
0 |
* |
时钟3 |
第2个Q采集结果 |
1 |
0 |
* |
时钟4 |
第3个Q采集结果 |
1 |
0 |
* |
时钟1 |
第4个Q采集结果 |
1 |
0 |
* |
上述步骤S402中根据N个时钟对该数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间[wj-1,wj],j为满足1≤j≤N的整数,具体可以为:
当在时钟1的当前周期内第k个采集结果与第k+1个采集结果不同时,确定该数据信号的跳变时刻位于的区间为[wk,wk+1];k为满足1≤k≤N-1的整数;其中,第k个采集结果为时钟k+1对该数据信号的采集结果,第N个采集结果为时钟1对该数据信号的采集结果;
当N个时钟在时钟1的当前周期内对该数据信号的采集结果全部相同,且该相同的采集结果与前一时钟1周期内获得的相同的采集结果不同时,确定该数据信号的跳变时刻位于的区间为[0,w1]。
对于数据信号P,在时钟1周期t0-t4内获得的第1个P采集结果与第2个P采集结果不同,因此,确定数据信号P的跳变时刻位于的区间为[T/4,T/2]。依据图5所示可以验证确定出的数据信号P的跳变时刻位于的区间的正确性。
对于数据信号Q,在时钟1周期t0-t4内获得的4个Q采集结果全部相同,且该相同的Q采集结果与前一时钟1周期内获得的相同的Q采集结果不同,因此,确定数据信号Q的跳变时刻位于的区间为[0,T/4]。依据图5所示可以验证确定出的数据信号Q的跳变时刻位于的区间的正确性。
上述步骤S403为根据确定出的区间[wj-1,wj],确定采集时钟。
目前数据采集时需要满足的建立时间和保持时间的要求一般与数据采集装置有关,不同的数据采集装置对于建立时间和保持时间的要求不同。因此,本实施例设定需要满足的保持时间的最小值为X,需要满足的建立时间的最小值为Y,当数据采集装置确定时,X和Y是已知的。
另外,对于确定的数据采集装置,因其需要满足的建立时间和保持时间的要求已知,所以在设置时钟的频率时会根据其需要满足的建立时间和保持时间的要求进行设置,因此,一般情况下,对于确定的数据采集装置通过设置合适的时钟频率,可以保证保持时间和建立时间的最小值为T/4时可满足要求。
当确定出接收的数据信号的跳变时刻位于的区间为[wj-1,wj]时,可以确定延迟时钟j的延时为W的时钟为采集时钟,此时,使用确定出的该采集时钟采集该数据信号时,建立时间最小为W-(wj-wj-1),需要满足W-(wj-wj-1)≥Y,保持时间最小为T-W,需要满足T-W≥X,因此,W需要满足的条件为Y+wj-wj-1≤W≤T-X。
为便于实现,较佳的可以直接选择上述时钟i中与满足上述条件的时钟相位相同的时钟作为采集时钟。
例如,当X=Y=T/4时,对于图5中的数据信号P,确定出与数据信号P的跳变时刻位于的区间为[T/4,T/2],W需要满足的条件为T/2≤W≤3T/4,因此,可以确定采集时钟为延迟时钟3或同步时钟。
又例如,当X=Y=T/4时,对于图5中的数据信号Q,确定出与数据信号Q的跳变时刻位于的区间为[0,T/4],W需要满足的条件为T/2≤W≤3T/4,因此,可以确定采集时钟为延迟时钟2或延迟时钟3。
目前,数据采集装置接收到有效数据前会接收到数据值不变的无效数据信号,数据采集装置确定采集的数据是否为有效数据一般包括两种方式:第一种方式为根据有效数据的开始一部分数据值确定接收的是有效数据;第二种方式为,在驱动数据输出的时钟周期内采集到的数据值即为有效数据的数据值。当采用第二种方式时,当数据延迟驱动数据输出的时钟的延时大于一个时钟周期时,数据采集装置在驱动数据输出的时钟周期内采集到的数据值并非是有效数据的数据值,导致采集错误。因此,为解决这一问题,本实施例中在上述步骤S403后还可以包括:
确定时钟1的当前周期(即为步骤S402中确定出区间[wj-1,wj]的时钟1周期)与时钟1的第一周期相差h个周期;时钟1的第一周期为驱动该数据信号的第一个数据信号输出的周期;此时,需要满足的条件为时钟1即为驱动该数据信号输出的时钟;且设定该数据信号的第一个数据信号值与其前的无效数据信号值不同。
对h的确定具体可以采用多种方式,下面举一实例进行描述。
在时钟1驱动该数据信号输出的时钟1的第一周期内获得数据采集结果时,设置h的初值为0,后续时钟1周期内每获得一次数据采集结果时h加1,至时钟1的当前周期内确定出该数据信号的跳变时刻位于的区间[wj-1,wj]为止,取当前h的值为相差的时钟1周期数量。
如图6所示,本实施例中时钟1驱动该数据信号输出的时钟1的第一周期为时钟1周期t0-t4。
图6中,采集数据信号O和数据信号R获得的各采集结果分别如表3和表4所示:
表3:采集数据信号O获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
时钟2 |
第1个O采集结果 |
1 |
1 |
0 |
时钟3 |
第2个O采集结果 |
1 |
1 |
0 |
时钟4 |
第3个O采集结果 |
1 |
0 |
* |
时钟1 |
第4个O采集结果 |
1 |
0 |
* |
表4:采集数据信号R获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
时钟2 |
第1个R采集结果 |
1 |
1 |
1 |
时钟3 |
第2个R采集结果 |
1 |
1 |
0 |
时钟4 |
第3个R采集结果 |
1 |
1 |
0 |
时钟1 |
第4个R采集结果 |
1 |
1 |
0 |
对于数据信号O,在时钟1周期t0-t4内确定出其跳变时刻位于的区间,因此,h为0;对于数据信号R,在时钟1周期t4-t8内确定出其跳变时刻位于的区间,因此,h为1。
在采用上述第二种方式确定采集的数据是否为有效数据时,为保证数据采集的准确性,需要将采集时刻延迟h个时钟1周期。
此时,上述步骤S404用确定出的采集时钟采集接收的数据,具体可以为:
用确定出的采集时钟在从时钟1的第一周期经过h个时钟1周期后开始采集接收的数据。
例如,当X=Y=T/4时,对于数据信号O,h为0,根据表3可以确定数据信号O的跳变时刻位于的区间为[T/2,3T/4],进而可以确定延迟时钟3的延时在区间[T/2,3T/4]内的时钟为采集时钟,例如可以选择延迟时钟1的延时为T的时钟为采集时钟,此时,使用该采集时钟在经过0个时钟1周期后开始采集,即在时钟1周期t0-t4内的t4时刻采集。根据图6可以验证采集时刻的准确性。
又例如,当X=Y=T/4时,对于数据信号R,h为1,根据表4可以确定数据信号R的跳变时刻位于的区间为[T/4,T/2],进而可以确定延迟时钟2的延时在区间[T/2,3T/4]内的时钟为采集时钟,例如选择时钟4为采集时钟,此时,使用该采集时钟(时钟4)在经过1个时钟1周期后开始采集,即在时钟1周期t4-t8内的t7时刻采集。根据图6可以验证采集时刻的准确性。
实施例二:
本发明实施例二还提供一种数据采集方法,如图7所示,包括:
步骤S701、用周期为T的采集时钟采集N个数据信号。
其中,N为满足N≥2的整数;且N个数据信号中的数据信号1为接收的数据信号;N个数据信号中的数据信号i为延迟数据信号1wi-1生成的数据信号,i分别取满足1≤i≤N的整数;由N个数据信号对应的N个延时wi-1,将采集时钟周期划分为N个区间[wi-1,wi]。
步骤S702、根据采集时钟对N个数据信号的采集结果,确定出接收的数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数。
步骤S703、根据确定出的区间[wj-1,wj],确定延迟接收的数据的延时为W的数据为被采集的数据;其中,Y-wj-1≤W≤T-X-wj或T+Y-wj-1≤W≤2T-X-wj,且0≤W<T,X为数据采集时需要满足的保持时间的最小值,Y为数据采集时需要满足的建立时间的最小值。
步骤S704、用采集时钟采集确定出的被采集的数据。
下面结合附图对本发明实施例二提供的上述方法进行详细描述。
上述步骤S701中,w1为数据信号1延迟数据信号1的延时,因此w1=0,又因为采集时钟周期为T,所以wN=T。为便于方法实现,较佳的可以将采集时钟的周期划分为若干个大小相等的子区间,下面以将其划分为4个大小相等的子区间为例,对上述步骤进行详细描述。
图8所示为采集时钟、数据信号P1及延迟数据信号P1生成的数据信号P2-P4和数据信号Q1及延迟数据信号Q2-Q4的时序图,数据信号P2-P4延迟数据信号P1的时长对应为T/4、T/2和3T/4,数据信号Q2-Q4延迟数据信号Q1的时长对应为T/4、T/2和3T/4。
步骤S701中,使用周期为T的采集时钟采集数据信号1-4,获得4个数据采集结果,本实施例中,以在时钟上升沿采集数据为例进行描述。
如图8所示,在采集时钟周期t0-t4内的t4时刻,对于数据信号P,采集时钟采集接收的数据信号P1、数据信号P2、数据信号P3和数据信号P4,获得对应的第一个P采集结果、第2个P采集结果、第3个P采集结果和第4个P采集结果。对于数据信号Q,采集时钟采集接收的数据信号Q1、数据信号Q2、数据信号Q3和数据信号Q4,获得对应的第一个Q采集结果、第2个Q采集结果、第3个Q采集结果和第4个Q采集结果。在采集时钟周期t0-t4的前一个采集时钟周期内采集到的各采集结果相同,本实施例中该采集结果以1为例,图8中采集数据信号P1-P4和数据信号Q1-Q4获得的各采集结果分别如表5和表6所示:
表5:采集数据信号P获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
数据信号P1 |
第1个P采集结果 |
1 |
0 |
* |
数据信号P2 |
第2个P采集结果 |
1 |
0 |
* |
数据信号P3 |
第3个P采集结果 |
1 |
0 |
* |
数据信号P4 |
第4个P采集结果 |
1 |
1 |
0 |
表6:采集数据信号Q获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
数据信号Q |
第1个Q采集结果 |
1 |
0 |
* |
数据信号Q2 |
第2个Q采集结果 |
1 |
0 |
* |
数据信号Q3 |
第3个Q采集结果 |
1 |
0 |
* |
数据信号Q4 |
第4个Q采集结果 |
1 |
0 |
* |
上述步骤S702中根据采集时钟对N个数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数,具体可以为:
当在当前采集时钟周期内第k个采集结果与第k+1个采集结果不同时,确定该数据信号的跳变时刻位于的区间为[wN-k,wN-k+1];k为满足1≤k≤N-1的整数;其中,第k个采集结果为采集时钟对数据信号k的采集结果,第N个采集结果为采集时钟对数据信号N的采集结果;
当在当前采集时钟周期内对N个数据信号的采集结果全部相同,且该相同的采集结果与前一采集时钟周期内获得的相同的采集结果不同时,确定该数据信号的跳变时刻位于的区间为[0,w1]。
对于数据信号P,在采集时钟周期t0-t4内获得的第3个P采集结果与第4个P采集结果不同,因此,确定数据信号P的跳变时刻位于的区间为[T/4,T/2]。依据图8所示可以验证确定出的数据信号P的跳变时刻位于的区间的正确性。
对于数据信号Q,在采集时钟周期t0-t4内获得的4个Q采集结果全部相同,且该相同的Q采集结果与前一采集时钟周期内获得的相同的Q采集结果值不同,确定数据信号Q的跳变时刻位于的区间为[0,T/4]。依据图8所示可以验证确定出的数据信号Q的跳变时刻位于的区间的正确性。
上述步骤S703根据确定出的区间[wj-1,wj],确定被采集的数据。
目前数据采集时需要满足的建立时间和保持时间的要求一般与数据采集装置有关,不同的数据采集装置对于建立时间和保持时间的要求不同。因此,本实施例设定需要满足的保持时间的最小值为X,需要满足的建立时间的最小值为Y,当数据采集装置确定时,X和Y是已知的。
另外,对于确定的数据采集装置,因其需要满足的建立时间和保持时间的要求已知,所以在设置时钟的频率时会根据其需要满足的建立时间和保持时间的要求进行设置,因此,一般情况下,对于确定的数据采集装置通过设置合适的时钟频率,可以保证保持时间和建立时间的最小值为T/4时可满足要求。
当确定出接收的数据信号的跳变时刻位于的区间为[wj-1,wj]时,可以确定延迟接收的数据的延时为W的数据为被采集的数据,且0≤W<T,此时,使用采集时钟采集确定的被采集的数据时,当W+wj<T时,建立时间最小可能为T-(W+wj),需要满足T-(W+wj)≥Y,保持时间最小可能为(W+wj-1),需要满足(W+wj-1)≥X,因此,W需要满足的条件为X-wj-1≤W≤T-Y-wj;当W+wj>T时,建立时间最小可能为2T-(W+wj),需要满足2T-(W+wj)≥Y,操持时间最小可能为(W+wj-1)-T,需要满足(W+wj-1)-T≥X,因此,W需要满足的条件为T+X-wj-1≤W≤2T-Y-wj。
基于上述分析,W需要满足的条件为X-wj-1≤W≤T-Y-wj或T+X-wj-1≤W≤2T-Y-wj,且0≤W<T。
为便于实现,较佳的可以直接选择根据接收的数据按上述方法生成的数据i中满足上述条件的数据作为被采集的数据。
例如,当X=Y=T/4时,对于图8中的数据信号P,确定出数据信号P的跳变时刻位于的区间为[T/4,T/2],W需要满足的条件为0≤W≤T/4,因此,可以确定被采集的数据为数据信号P2或数据信号P1。
又例如,当X=Y=T/4时,对于图8中的数据信号Q,确定出数据信号Q的跳变时刻位于的区间为[0,T/4],W需要满足的条件为T/4≤W≤T/2,因此,可以确定被采集的数据为数据信号Q3或数据信号Q4。
目前,数据采集装置接收到有效数据前会接收到数据值不变的无效数据信号,数据采集装置确定采集的数据是否为有效数据一般包括两种方式:第一种方式为根据有效数据的开始一部分数据值确定接收的是有效数据;第二种方式为,在驱动数据输出的时钟周期内采集到的数据值即为有效数据的数据值。当采用第二种方式时,当数据延迟驱动数据输出的时钟的延时大于一个时钟周期时,数据采集装置在驱动数据输出的时钟周期内采集到的数据值并非是有效数据的数据值,导致采集错误。因此,为解决这一问题,本实施例中在上述步骤S703后还可以包括:
确定当前采集时钟周期(即为步骤S702中确定出区间[wj-1,wj]的采集时钟周期)与第一采集时钟周期相差h个周期;第一采集时钟周期为驱动接收的数据信号的第一个数据信号输出的周期;此时,需要满足的条件为采集时钟为驱动该数据信号输出的时钟;且设定该数据信号的第一个数据信号值与其前的无效数据信号值不同。
对h的确定具体可以采用多种方式,下面举一实例进行描述。
在采集时钟驱动该数据信号输出的第一采集时钟周期内获得一组数据采集结果时,设置h的初值为0,后续采集时钟周期内每获得一组数据采集结果时h加1,至当前采集时钟周期内确定出该数据信号的跳变时刻位于的区间[wj-1,wj]为止,取当前h的值为相差的采集时钟周期数量。
如图9所示,本实施例中采集时钟驱动该数据信号输出的第一采集时钟周期为采集时钟周期t0-t4。
图9中,采集数据信号O和数据信号R获得的各采集结果分别如表7和表8所示:
表7:采集数据信号O获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
数据信号O1 |
第1个O采集结果 |
1 |
0 |
* |
数据信号O2 |
第2个O采集结果 |
1 |
0 |
* |
数据信号O3 |
第3个O采集结果 |
1 |
1 |
0 |
数据信号O4 |
第4个O采集结果 |
1 |
1 |
0 |
表8:采集数据信号R获得的各数据采集结果
|
|
前一时钟周期 |
时钟周期t0-t4 |
时钟周期t4-t8 |
数据信号R1 |
第1个R采集结果 |
1 |
1 |
0 |
数据信号R2 |
第2个R采集结果 |
1 |
1 |
0 |
数据信号R3 |
第3个R采集结果 |
1 |
1 |
0 |
数据信号R4 |
第4个R采集结果 |
1 |
1 |
1 |
对于数据信号O,在采集时钟周期t0-t4内确定出其跳变时刻位于的区间,因此,h为0;对于数据信号R,在采集时钟周期t4-t8内确定出其跳变时刻位于的区间,因此,h为1。
在采用上述第二种方式确定采集的数据是否为有效数据时,为保证数据采集的准确性,需要将采集时刻延迟h个采集时钟周期。
由于当W+wj>T时,根据当前采集时钟周期内采集时钟驱动输出的数据信号确定的被采集的数据信号,是在下一个采集时钟周期内被采集到的,因此,为保证数据采集的准确性,需要将采集时刻再延迟1个采集时钟周期。
此时,上述步骤S704用采集时钟采集确定出的被采集的数据,具体可以为:
当W+wj<T时,用采集时钟在从第一采集时钟周期开始经过h个采集时钟周期后开始采集确定的被采集的数据;
当W+wj>T时,用采集时钟在从第一采集时钟周期开始经过h+1个采集时钟周期后开始采集确定出的被采集的数据。
例如,当X=Y=T/4时,对于数据信号O,h为0,根据表7可以确定数据信号O的跳变时刻位于的区间为[T/2,3T/4],进而可以确定被采集的数据为数据信号O1或数据信号O4,当确定被采集的数据为数据信号O1时,W为0,W+3T/4小于T,因此,使用采集时钟在经过0个采集时钟周期后开始采集,即在采集时钟周期t0-t4内的t4时刻采集;当确定被采集的数据为数据信号O4时,W为3T/4,W+3T/4大于T,因此,使用采集时钟在经过1个采集时钟周期后开始采集,即在采集时钟周期t4-t8内的t8时刻采集。根据图9可以验证采集时刻的准确性。
又例如,当X=Y=T/4时,对于数据信号R,h为1,根据表8可以确定数据信号R的跳变时刻位于的区间为[T/4,T/2],进而可以确定被采集的数据为数据信号R1或数据信号R2,当确定被采集的数据为数据信号R1时,W为0,W+T/2小于T,因此,使用采集时钟在经过1个采集时钟周期后开始采集,即在采集时钟周期t4-t8内的t8时刻采集;当确定被采集的数据为数据信号R2时,W为T/4,W+T/2小于T,因此,使用采集时钟在经过1个采集时钟周期后开始采集,即在采集时钟周期t4-t8内的t8时刻采集。根据图9可以验证采集时刻的准确性。
本发明可以采用上述实施例一和实施例二在每次接收到新的数据时,都确定采集时钟或确定被采集的数据,使用确定出的采集时钟采集接收的数据或使用采集时钟采集确定出的数据。由于,当数据发送端、数据接收端和时钟频率均不变时,对于接收的到的所有数据信号的相位是相等的,因此,可以根据接收的数据确定采集时钟或确定被采集的数据后,后续接收到相位不变的数据时,不需要再次确定,可以使用之前确定出的采集时钟采集接收的数据或使用采集时钟采集按之前确定被采集的数据的确定方法确定出的数据。
实施例三:
基于同一发明构思,根据本发明上述实施例一提供的数据采集方法,相应地,本发明实施例三还提供了一种数据采集装置,其结构示意图如图10所示,包括:
第一采集单元1001,用于用周期为T的N个时钟采集接收的数据信号;其中,N为满足N≥2的整数;且N个时钟中的时钟i延迟N个时钟中的时钟1的延时为wi-1,i分别取满足1≤i≤N的整数;由N个时钟同一方向跳变沿的对应时刻,将时钟1周期划分为N个区间[wi-1,wi];
区间确定单元1002,用于根据N个时钟对该数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
采集时钟确定单元1003,用于根据确定出的区间[wj-1,wj],确定延迟时钟j的延时为W的时钟为采集时钟;其中,Y+wj-wj-1≤W≤T-X,X为数据采集时需要满足的保持时间的最小值,Y为数据采集时需要满足的建立时间的最小值;
第二采集单元1004,用于用确定出的采集时钟采集接收的数据。
较佳的,上述区间确定单元1002,还用于当在时钟1的当前周期内第k个采集结果与第k+1个采集结果不同时,确定该数据信号的跳变时刻位于的区间为[wk,wk+1];k为满足1≤k≤N-1的整数;其中,第k个采集结果为时钟k+1对该数据信号的采集结果,第N个采集结果为时钟1对该数据信号的采集结果;当N个时钟在时钟1的当前周期内对该数据信号的采集结果全部相同,且该相同的采集结果与前一时钟1周期内获得的相同的采集结果不同时,确定该数据信号的跳变时刻位于的区间为[0,w1]。
较佳的,上述数据采集装置还包括:周期数确定单元1005,用于确定时钟1的当前周期与时钟1的第一周期相差h个周期;时钟1的第一周期为驱动该数据信号的第一个数据信号输出的周期;时钟1为驱动该数据信号输出的时钟;
上述第二采集单元1004,还用于用确定出的采集时钟在从时钟1的第一周期经过h个时钟1周期后开始采集接收的数据。
较佳的,wi-wi-1=T/N。
实施例四:
基于同一发明构思,根据本发明上述实施例二提供的数据采集方法,相应地,本发明实施例四还提供了一种数据采集装置,其结构示意图如图11所示,包括:
第一采集单元1101,用于用周期为T的采集时钟采集N个数据信号;其中,N为满足N≥2的整数;且N个数据信号中的数据信号1为接收的数据信号;N个数据信号中的数据信号i为延迟数据信号1wi-1生成的数据信号,i分别取满足1≤i≤N的整数;由N个数据信号对应的N个延时wi-1,将采集时钟周期划分为N个区间[wi-1,wi];
区间确定单元1102,用于根据采集时钟对N个数据信号的采集结果,确定出接收的数据信号的跳变时刻位于的区间[wj-1,wj];j为满足1≤j≤N的整数;
被采集数据确定单元1103,用于根据确定出的区间[wj-1,wj],确定延迟接收的数据的延时为W的数据为被采集的数据;其中,X-wj-1≤W≤T-Y-wj或T+X-wj-1≤W≤2T-Y-wj,且0≤W<T,X为数据采集时需要满足的保持时间的最小值,Y为数据采集时需要满足的建立时间的最小值;
第二采集单元1104,用于用采集时钟采集确定出的被采集的数据。
较佳的,上述区间确定单元1102,还用于当在当前采集时钟周期内第k个采集结果与第k+1个采集结果不同时,确定接收的数据信号的跳变时刻位于的区间为[wN-k,wN-k+1];k为满足1≤k≤N-1的整数;其中,第k个采集结果为采集时钟对数据信号k的采集结果,第N个采集结果为采集时钟对数据信号N的采集结果;当在当前采集时钟周期内对N个数据信号的采集结果全部相同,且该相同的采集结果与前一采集时钟周期内获得的相同的采集结果不同时,确定接收的数据信号的跳变时刻位于的区间为[0,w1]。
较佳的,上述数据采集装置还包括:周期数确定单元1105,用于确定当前采集时钟周期与第一采集时钟周期相差h个周期;第一采集时钟周期为驱动接收的数据信号的第一个数据信号输出的周期;采集时钟为驱动接收的数据信号输出的时钟;
上述第二采集单元1104,还用于当W+wj<T时,使用采集时钟在从第一采集时钟周期开始经过h个采集时钟周期后开始采集确定出的被采集的数据;当W+wj>T时,使用采集时钟在从第一采集时钟周期开始经过h+1个采集时钟周期后开始采集确定出的被采集的数据。
较佳的,wi-wi-1=T/N。
本发明上述实施例三和四提供的数据采集装置可以设置于主设备,也可以设置于从设备。
综上所述,本发明实施例提供的方案,包括:将一个时钟的周期划分为N个区间;根据包括该时钟的N个时钟对该数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间;根据确定出的区间确定采集时钟;用确定的采集时钟采集接收的数据。本发明实施例还可以根据该时钟对包括该数据信号的N个数据信号的采集结果,确定出该数据信号的跳变时刻位于的区间;根据确定出的区间确定被采集的数据;用该时钟采集确定的被采集的数据。采用本发明提供的方法及装置,在不降低数据传输速度的同时,避免采集数据时不满足建立时间和保持时间的要求,提高稳定性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。