用于取样串行数据传输的抖动电路的制作方法_2

文档序号:9252671阅读:来源:国知局
0029]系统200可体现为汽车引擎的传感器系统或其它系统。在此实施方案中,发射器202可包括02传感器、MAF传感器、节流阀位置传感器及类似物。在此类实施例中的接收器204可以为引擎控制单元。
[0030]在图3中更详细展示SENT接收器外围设备222的图。在所说明的实例中,SENT外围设备接收器222包含接收器部分303及控制部分301。如将在下文更详细解释,控制部分301可包含多个控制寄存器。
[0031]接收器部分303包含同步周期检测器302,同步周期检测器302包含时钟除法器304及同步定时器306。SENT外围设备接收器进一步包含计时周期产生器308、半字节周期检测器310及控制及误差检测模块312。
[0032]传入的SENT数据为在接脚314中的SENT数据处接收且在212处滤波。可使用SENTC0N1控制寄存器316以选择特定操作模式。举例来说,在外围设备为收发器的实施例中,可使用SENTC0N1控制寄存器316以选择所述外围设备是在传输模式中还是在接收模式中操作。在接收模式中使用SENTC0N2控制寄存器318及SENTC0N3控制寄存器320以分别界定最大同步周期时间及最小同步周期时间。在接收模式中,所述寄存器可分别称为SYNCMAX及SYNCMIN。根据各种实施例的接收器可集成到微控制器中或可与发射器组合以形成也可集成到微控制器中的收发器。
[0033]可使用SENTSTAT控制寄存器322以接收来自控制及误差检测模块312的状态消息。可使用SENTSYNC控制寄存器324以接收设置计时周期产生器308的周期的捕获的同步周期。在接收模式中,所述寄存器可称为SYNCHME寄存器。
[0034]为接收SENT消息,同步周期检测器302必须首先测量同步周期102的时间,如上文提及其始终为56个单位时间(计时)的持续时间。特定来说,同步周期检测器302必须确定在一个56个计时周期中CPU时钟循环的数目。一旦已知所述同步周期时间,计时周期产生器308便可使用此数据来确定每一传入的数据半字节的长度。所述半字节数据值以在下降边缘之间的时间量编码且可在12到27个计时时间之间变化。
[0035]测量此同步周期的一种方法为将CPU时钟除以56且接着计数在传入的同步周期期间发生的经除的时钟的数目。接着此结果值代表在I个计时时间中的CPU时钟的数目,且可用作计时周期产生器308的计数周期,计时周期产生器308测量所述传入数据半字节的长度。然而,此解决方案的问题为CPU时钟频率必须相对较高以便以最快允许数据率接收SENT消息。
[0036]因此,在一些实施例中,同步周期检测器302的时钟除法器304将CPU时钟除以7或14,而非将CPU时钟除以56。注意这些除值可为56均除。所以,同步周期检测器302的同步定时器306将分别以8或4个计时时间计数CPU时钟的数目。
[0037]为增加所述半字节长度测量的精确度,实施例“抖动”由计时周期产生器308使用的周期值。作为实例,假设将CPU时钟除以14以测量所述同步周期的长度且在同步周期检测器302中捕获计数值00011101b。由于此计数值29(十进制)代表在4个计时时间中的CPU时钟的数目,所以每计时时间的CPU时钟的数目将为29/4 = 7.25。基于两个最低有效位值,计时周期产生器308将对三个计数周期使用计数周期X = 7及对一个计数周期使用周期值X = 8。此产生关于四个计数周期的平均计数周期7.25。因此,可精确测量接收的脉冲长度且精确确定相应半字节值。
[0038]在一些实施例中,同步周期检测器302具有两个功能。首先,其确认在SENT消息内的时间周期为同步周期而非半字节周期。其次,同步周期检测器302捕获所述实际的同步周期时间值以便使用计时周期产生器308。同步周期检测器可始终在消息接收期间操作。这可允许所述接收器在SENT消息帧内随时再同步。
[0039]同步周期检测器302具有在SENT消息的每一下降边缘上复位的专用定时器306。SYNCMIN[15:0]320及SYNCMAX[15:0]318控制寄存器允许用户软件配置期望的同步周期的时间窗。这些寄存器经配置具有针对有效同步周期所期望的最小时间及最大时间。
[0040]如果接收下降边缘且所述同步周期定时器含有在SYNCMIN与SYNCMAX之间的值,那么接着所述时间周期视为有效同步周期。在SENTSYNC寄存器324中捕获所述同步周期定时器的值。由计时周期产生器308使用在SENTSYNC寄存器324中的值。此外,此值允许用户软件将当前同步周期时间与先前消息的同步周期时间比较。SENT协议在连续消息之间允许不超过1.5625% (1/64)的时间变化。
[0041]当已接收有效同步周期,所述接收器将期望3到8个半字节周期以遵循各自含有12到27个计时周期。
[0042]计时周期产生器308使用在SENTSYNC寄存器324中捕获且存储的所述时间值以确定TTICK的所述时间周期。当已检测在SYNCMIN与SYNCMAX之间的有效时间时,计时周期产生器302为有效的。
[0043]半字节周期计数器310使用通过计时周期产生器308产生的时钟,且确定在半字节周期期间实际流逝的时间量。所述最小半字节周期为针对数据值“O”的12个计时,且所述最大半字节周期为针对数据值“15”的27个计时。半字节周期计数器310移除此12个计时的偏移且在SENTDATA寄存器326中提供实际半字节数据值。
[0044]如果在12到27个计时的允许范围外检测任何半字节周期,那么终止所述接收,且对在SENTDATA寄存器中的所述半字节存储值“O”。在此时,同步性视为丢失且在接收可恢复前所述模块等待另一有效的同步周期。
[0045]在一些实施例中,接收半字节数据值在下列条件下发生:已检测在所述有效时间窗内的有效同步周期;从上个同步周期后已接收少于8个半字节;及已检测到下降边缘。从上个下降边缘后所述时间为至少12个计时时间,但不超过27个计时时间。
[0046]在接收后在SENTDATA寄存器326中封装数据。在每一半字节位置中的数据值将存在直到在下个数据帧期间被复写为止。
[0047]因此,在一些实施例中,接收器配置需要知晓由发射器发送的标称计时周期、TTICK及到SENT协议接收器的输入时钟频率Fclk。
[0048]到接收器的输入时钟周期应为至少1/8计时周期、TTICK或更小。这将提供在SENTSYNC寄存器中的捕获的值,所述值为至少64。SENT协议需要软件验证同步周期的长度在消息之间改变不超过1/64。
[0049]在实践应用中,4MHz的时钟输入将适于少到3微秒的所有计时周期。取决于SENTCON1.PS控制位的设置,所述接收器时钟频率Fclk为Fcy或Fcy的1/4。
[0050]一旦已知TTICK及Fclk,则如下列展示计算标称SYNCMIN及SYNCMAX的值:
[0051 ] Frcv = Fcy (对于 PS = O)
[0052]Frcv = Fcy/4(对 PS = I)
[0053]SyncCount = 8*FRcv*Tnck
[0054]SYNCMIN = 0.8*SyncCount
[0055]SYNCMAX = 1.2*SyncCount
[0056]举例来说,对于TTick = 3 微秒及 Fclk = 4MHz,SYCMIN = 76 及 SYNCMAX =115。标称同步周期为96。
[0057]在正常操作下,当已发生有效同步周期接着3到8个有效半字节时间周期时,模块将产生中断事件。在此时,用户软件可读取状态半字节、CRC半字节及来自SENTDATA寄存器的I到6个数据半字节。
[0058]用户软件应在下个同步周期结束前读取SENTDATA寄存器的内容及读取第一数据半字节以避免数据复写。
[0059]J2716规格要求SENT数据帧的同步周期在连续数据帧之间变化不超过1.5625%(1/64)。为验证符合此条件,用户软件应在接收每一数据帧后在SENTSYNC中保存捕获的值。可接着将旧值与在下个数据帧期间接收的值比较。
[0060]同步周期检测器302为具
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1