Spi接口以及经由spi接口的串行通信方法

文档序号:6505622阅读:326来源:国知局
Spi接口以及经由spi接口的串行通信方法
【专利摘要】本发明公开了SPI接口以及经由SPI接口的串行通信方法。涉及使用串行外设接口(SPI)协议与外围设备进行的串行通信,特别是,涉及针对嘈杂环境的SPI接口以及在嘈杂环境中经由SPI接口的串行通信方法。根据本发明方面,提供了SPI接口,该SPI接口包括:多个同步器,被配置为接收多个SPI信号和内部时钟信号并且使用内部时钟信号同步所接收SPI信号;以及SPI协议处理机,被配置为接收经同步的SPI信号和内部时钟信号并且根据SPI协议检测和评估经同步的SPI信号中至少一个SPI信号的信号跃迁。
【专利说明】SPI接口以及经由SPI接口的串行通信方法
【技术领域】
[0001]本发明涉及使用串行外设接口(SPI)协议与外围设备进行的串行通信,特别是,涉及针对嘈杂环境的SPI接口以及在嘈杂环境中经由SPI接口的串行通信方法。
【背景技术】
[0002]串行外设接口(SPI)协议是广泛用于集成电路(IC)之间进行数据传输的协议,特别是主机处理器(也称为SPI主机)与一个或多个外围设备(也称为SPI从机)之间。SPI协议规定四个信号:
[0003]CS:芯片选择
[0004]SCLK:移位时钟或者串行时钟
[0005]SD1:移位数据输入或者串行数据输入
[0006]SD0:移位数据输出或者串行数据输出
[0007]然而,应当理解,替代命名惯例也广泛使用。
[0008]SPI协议是同步协议,其需要用于正确操作的定义时序。如果SPI设备在嘈杂环境中工作(例如,具有大开关电流/电压的功率转换器),那么在SPI信号上可能出现毛刺(glitch,电子脉冲),这会在SPI设备上引起时序违规(timing violation)。接收了时序违规的常规SPI设备的行为是未知的。它取决于实现方式(使用模拟滤波器等),但是在最坏情况下,接口的所有触发器变为亚稳态(即,触发器处于“低”与“高”状态之间的不稳定状态中,并且在不确定持续时间之后会变为稳定状态“低”或者“高”中一个)并且可引起产生严重后果的随机行为。
[0009]然而,在嘈杂环境中,由于随机噪声事件的不可预测性,所以无法保证正确时序。在常规SPI设备中,模拟滤波器通常用于抑制时钟信号上的毛刺,然而模拟滤波器的使用也无法完全去除由于噪声诱发事件导致的时序违规:例如,模拟滤波器可通过太小的时钟脉冲,这导致SPI触发器变为亚稳态。
[0010]因此,例如需要以下串行外设接口,其不易受到由于例如嘈杂SPI信号所导致的时序违规的影响,并因此适合嘈杂环境中的应用,并且需要以下经由SPI接口的串行通信方法,其不易受到时序违规影响因此适合嘈杂环境中的应用。

【发明内容】

[0011]根据本发明的一个方面,提供一种SPI接口,该SPI接口包括:多个同步器,被配置为接收多个SPI信号和内部时钟信号并且使用内部时钟信号同步所接收的SPI信号;以及SPI协议处理机(SPI protocol handler),被配置为接收经同步的SPI信号和内部时钟信号并且根据SPI协议来检测和评估该同步SPI信号中至少一个同步SPI信号的信号跃迁(signal transition,信号转换)。
[0012]根据本发明的又一方面,提供了一种经由SPI接口的串行通信方法,该方法包括以下步骤:接收多个SPI信号和内部时钟信号;使用内部时钟信号同步多个SPI信号;以及根据SPI协议来检测和评估同步SPI信号中至少一个同步SPI信号的信号跃迁。
[0013]根据以下参考附图作出的本发明详细描述,本发明的更多特征、方面和优点将变为显而易见。
【专利附图】

【附图说明】
[0014]包含附图从而提供对本发明的进一步理解,并且将附图并入本说明书中且构成本说明书一部分。附图示出本发明实施方式,并且与说明书一起用于说明本发明原理。本发明的其它实施方式以及本发明的许多预期优点将容易理解,因为它们通过参考以下详细描述变为更好理解。
[0015]图1示例性示出根据本发明实施方式的SPI接口的简化示意图。
[0016]图2示出根据本发明实施方式的示例性方法。
【具体实施方式】
[0017]在以下详细描述中,参考附图,附图形成以下详细描述一部分,并且其中通过示出可实现本发明的特定实施方式来示出。应当理解,可利用其它实施方式,并且在不脱离本发明范围的情况下可作出结构或者其它变化。因此,以下详细描述并无限制之意,并且本发明范围由所附权利要求限定。
[0018]图1示例性示出根据本发明实施方式的SPI接口的简化示意图。
[0019]图1所示的SPI接口包括串行数据输入(SDI)信号输入端11a,芯片选择(CS)信号输入端11b,串行时钟(SCLK)信号输入端11c,串行数据输出(SDO)信号输出端lld,内部时钟输入端13,第一、第二和第三同步器12a、12b和12c,第一、第二和第三数字滤波器14a、14b和14c,SPI协议处理机16和输出级18。
[0020]在图1所示的实施方式中,同步器12a、12b和12c,数字滤波器14a、14b和14c,SPI协议处理机16和SPI输出级18连接到内部时钟信号输入端13以接收内部时钟信号。内部时钟信号由明确定义的内部时钟(特别是不受来自芯片外部的噪声影响的片上振荡器)提供。因此,SPI的所有设备由明确定义的内部时钟来计时。
[0021 ] 在本发明的优选实施方式中,同步器12a、12b和12c为同步器触发器。同步器触发器被允许经历亚稳态长达一定时间间隔,因为它们在预定义恢复时间之后从亚稳态恢复。恢复时间的长度必须小于内部时钟持续时间,使得同步器触发器的输出或者结果在预定义恢复时间过去之前不被其它同步逻辑器件(例如,数字滤波器和SPI协议处理机)使用。
[0022]第一同步器12a进一步连接到SDI输入端Ila和第一数字滤波器14a。第一同步器12a从SDI输入端Ila接收SDI信号,同步所接收的SDI信号,并且将经同步的SDI信号输出到第一数字滤波器14a。
[0023]第二同步器12b进一步连接到CS输入端Ilb和第二数字滤波器14b。第二同步器12b接收来自CS输入端Ilb的CS信号,同步所接收的CS信号,并且将经同步的CS信号输出到第二数字滤波器14b。
[0024]第三同步器12c进一步连接到SCLK输入端Ilc和第三数字滤波器14c。第三同步器12c从SCLK输入端Ilc接收SCLK信号,同步所接收的SCLK信号,并且将同步的SCLK信号输出到第三数字滤波器14c。[0025]数字滤波器14a、14b和14c可检查一定数目(例如,3、5、8等)的连续采样是否包括相同值(例如,1),如果是,那么输出该值作为滤波结果。可替换地,数字滤波器14a、14b和14c可检查许多连续采样中一定比例(例如,五分之四、七分之五等)是否包括相同值(例如,1),如果是,那么输出该值作为滤波结果。然而,应当理解,本发明并不限于上述示例性滤波器设计,而是也可利用其它滤波器设计。
[0026]第一数字滤波器14a从第一同步器12a接收经同步的SDI信号,对于经同步的SDI信号进行滤波,并且将经同步且滤波的SDI信号(SDI filt)输出到SPI协议处理机16。
[0027]第二数字滤波器14b从第二同步器12b接收经同步的CS信号,对于经同步的CS信号进行滤波,并且将经同步且滤波的CS信号(CS filt)输出到SPI协议处理机16。
[0028]第三数字滤波器14c从第三同步器12c接收经同步的SCLK信号,对于经同步的SCLK信号进行滤波,并且将经同步且滤波的SCLK信号(SCLK filt)输出到SPI协议处理机
16。附加地,第三滤波器也产生单独SCLK信号(SCLK fast),该SCLK信号被输出到SPI输出级18。SCLK fast这个信号具有比SCLK filt更短的延迟,S卩,SCLK fast通过了比SCLKfilt所通过的滤波级更少的滤波级。
[0029]因此,所有SPI输入信号由同步器(具体为同步器触发器)12a、12b和12c进行同步并且由数字滤波器14a、14b和14c进行滤波,从而在它们到达SPI协议处理机之前抑制例如信号噪声事件。此外,作为包含在SPI协议处理机中的触发器的所有SPI相关触发器(以下简称“SPI触发器”)通过内部(明确定义的)时钟来计时。在图1的SPI接口中,重要的是内部时钟比外部SPI时钟SCLK更快,否则,同步器12a、12b和12c以及数字滤波器14a、14b和14c将使包含在SPI信号中的一些跃迁松动(loose)。
[0030]在本发明的优选实施方式中,数字滤波器14a、14b和14c的数字滤波器级为等效,使得同步且滤波的不同SPI输入信号延迟了相同时间量。
[0031]有利地,通过使用时钟选通可降低功耗,例如,时钟选通可实现当芯片选择信号无效时不对数字滤波器14a、14b和14c计时。
[0032]在这方面,应当理解,在本发明某些实施方式中,芯片选择信号为“高-有效”信号:当CS信号为高时,“芯片选择”有效,当CS信号为低时,“芯片选择”为无效。在替代性实施方式中,芯片选择信号也可为“低-有效”信号,“低-有效”信号可称为“ncs信号”。在这种情况下,当nCS信号为低时,“芯片选择”有效,当nCS信号为高时,“芯片选择”为无效。
[0033]因此,在图1所示的SPI接口中,外部噪声事件或者毛刺(引起SPI时序违规)不会引起SPI触发器处(即,包含在SPI协议处理机16中的触发器)时序违规。否则,由于可引起SPI触发器/SPI接口的随机行为严重后果的外部毛刺,SPI触发器可变为亚稳态。
[0034]同步器触发器仅仅为包含在图1所示的SPI接口中的触发器,其可经历亚稳态达一定时间间隔,因为这些同步器触发器在预定义恢复时间之后从亚稳态恢复。
[0035]SPI协议处理机16接收经同步且滤波的SPI输入信号SDI filt、CS filt、SCLKfilt,检测所接收的SPI输入信号中的信号跃迁(即,上升沿/下降沿),并且根据SPI协议评估所检测的信号跃迁。
[0036]在本发明的优选实施方式中,数字滤波器14a、14b和14c附加地产生指示经滤波的SPI信号的信号跃迁(B卩,上升沿/下降沿)的信号。在这种情况下,SPI协议处理机16从数字滤波器14a、14b和14c接收经同步且滤波的SPI输入信号以及指示SPI输入信号的信号跃迁的相应信号用于评估。
[0037]根据SPI协议的SPI输入信号的示例性评估将在下文中简要描述。SDI存取可以将CS信号的(例如,上升)边沿作为开始。此时,包含在SPI协议处理机16中的移位寄存器初始化,即,由外部源提供的并行输出值采样到SPI协议处理机16的移位寄存器中。
[0038]输出级18另外地接收单独SCLK信号,S卩,SCLK fast,其具有较小固有延迟,其比提供给SPI协议处理机的SCLK信号(B卩,SCLK filt)被更少地滤波。因此,反应时间可减少,使得输出级18可在SCLK信号的(例如上升)边沿之后立即将输出位提供给SDO输出端lid。
[0039]时钟信号SCLk fast可包括某个时序方差,由于它比SCLK filt更少地过滤。然而,这些时序方差不能导致未定义状态,由于转发值(输出位)由SPI协议处理机的移位寄存器唯一地提供(因而定义),其中该移位寄存器由完全滤波的SCLK filt信号来计时。
[0040]然后,在SCLK信号的(例如下降)边沿之后,SDI值“移位”到移位寄存器中,并且包含在移位寄存器中的所有位移位了一个位置,使得SDI值被采样到移位寄存器的“第一”位置中,并且位于移位寄存器的“最后”位置中的位(例如MSB)移出移位寄存器,而移位寄存器中所有其它位移位了 一个位置。
[0041]同样,输出级18接收单独SCLK信号,S卩,SCLK fast,其具有较小固有延迟,因为它比提供给SPI协议处理机的SCLK信号(B卩,SCLK filt)被更少地滤波。因此,反应时间可减少,使得输出级可在SCLK信号的(例如上升)边沿之后立即将输出位提供给SDO输出端lid。
[0042]然后,在SCLK信号的另一个(例如下降)边沿之后,下一个SDI值“移位”到移位寄存器中,并且包括在移位寄存器中的所有位移位了一个位置,使得下一个SDI值采样到移位寄存器的“第一”位置中,并且位于移位寄存器的“最后”位置中的位移出移位寄存器,而移位寄存器中所有其它位移位了一个位置。
[0043]只要芯片选择信号为有效(例如,CS为高),那么就重复以上步骤。当芯片选择信号变为无效(例如,CS变为低)时,存取完成,并且内容可读出且作为并行输入值提供给另一个片上设备。在某些实施方式中,芯片选择信号在固定数目的SCLK周期内为有效,该固定数目等于包括在移位寄存器中的位数,使得移位寄存器的整个内容在单个SPI存取期间替换,即,所有“在前”位移出,并且由连续采样到移位寄存器中的对应数目所接收SDI值替换。
[0044]在本发明优选实施方式中,SDI协议处理机附加地监视数字滤波器的输出以进行另外的SPI协议检查和/或评估,诸如:
[0045]在SPI时钟开始计时之前,检查芯片选择信号上是否有有效边沿;
[0046]检查SCLK信号的至少一个(例如下降)边沿是否出现;
[0047]检查SCLK信号的预定义数目的(例如下降)边沿是否出现;
[0048]评估SCLK信号的边沿之间的时间间隔;以及
[0049]评估SPI信号的长度。
[0050]基于SPI协议检查和/或评估的结果,SPI协议处理机16判定SPI存取是否有效。假使存取无效,那么该存取被忽略并被识别为无效,即,在这个存取中接收的所有数据丢弃,并且有利地,SPI协议处理机16设置错误标记位。
[0051]因此,通过防止外部SPI信号(直接)连接到关键SPI触发器输入端,图1所示的SPI接口确保定义SPI行为。即使在存取期间SPI时序违规的情况下,定义SPI行为也保证:如果检测到SPI存取中时序违规,那么相应SPI存取被识别为损坏,在这个存取中接收的所有数据丢弃,并且可额外地设置错误标记。
[0052]图2示出根据本发明实施方式的示例性方法。经由SPI接口的串行通信方法包括以下步骤:
[0053]接收多个SPI信号和内部时钟信号(步骤202);
[0054]使用内部时钟信号同步多个SPI信号(步骤204);
[0055]对于同步SPI信号进行数字滤波(步骤206);
[0056]根据SPI协议检测和评估同步且滤波的SPI信号中至少一个SPI信号的信号跃迁(步骤208)。
[0057]虽然本文中已经示出和描述特定实施方式,但是本领域技术人员应当理解,在不脱离本发明范围的情况下,多种替代和/或等效实现可取代示出和描述的特定实施方式。本申请旨在包括本文中讨论的特定实施方式的任何修改或者变动。因此,本发明仅通过权利要求及其等同物来限制。
【权利要求】
1.一种SPI接口,包括: 多个同步器,被配置为接收多个SPI信号和内部时钟信号,并且使用所述内部时钟信号同步所接收的所述SPI信号;以及SPI协议处理机,被配置为: 接收所述内部时钟信号和经同步的所述SPI信号;并且 根据SPI协议检测和评估经同步的所述SPI信号中至少一个SPI信号的信号跃迁。
2.根据权利要求1所述的SPI接口,其中,所述SPI协议处理机进一步被配置为基于所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估来判定所述多个SPI信号是否形成有效存取。
3.根据权利要求2所述的SPI接口,其中,所述SPI协议处理机进一步被配置为在所述多个SPI信号未形成有效存取的情况下丢弃所述多个SPI信号。
4.根据权利要求2所述的SPI接口,其中,所述SPI协议处理机进一步被配置为在所述多个SPI信号未形成有效存取的情况下设置错误标记。
5.根据权利要求2所述的SPI接口,其中,所述多个SPI信号包括芯片选择(CS)信号、串行时钟(SCLK)信号和串行数据输入(SDI)信号。
6.根据权利要求5所述的SPI接口,其中,所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估包括以下各项中的至少一项: 在所述串行时钟信号开始 计时之前,检查所述芯片选择信号上是否有边沿; 检查所述串行时钟信号的至少一个边沿是否出现; 检查所述串行时钟信号的预定数目的下降沿或者上升沿是否出现; 评估所述串行时钟信号的边沿之间的时间间隔;以及 评估SPI间隔的长度。
7.根据权利要求1所述的SPI接口,其中,所述多个同步器中的同步器为同步器触发器。
8.—种经由SPI接口的串行通信方法,所述方法包括以下步骤: 接收多个SPI信号和内部时钟信号; 使用所述内部时钟信号同步所述多个SPI信号;以及 根据SPI协议检测和评估经同步的所述SPI信号中至少一个SPI信号的信号跃迁。
9.根据权利要求8所述的方法,还包括: 基于所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估,判定所述多个SPI信号是否形成有效存取。
10.根据权利要求9所述的方法,还包括: 在所述多个SPI信号未形成有效存取的情况下丢弃所述多个SPI信号。
11.根据权利要求9所述的方法,还包括: 在所述多个SPI信号未形成有效存取的情况下设置错误标记。
12.根据权利要求9所述的方法,其中,所述多个SPI信号包括芯片选择(CS)信号、串行时钟(SCLK)信号和串行数据输入(SDI)信号。
13.根据权利要求9所述的方法,其中,所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估包括以下各项中的至少一项:在所述串行时钟信号开始计时之前,检查所述芯片选择信号上是否有边沿; 检查所述串行时钟信号的至少一个边沿是否出现; 检查所述串行时钟信号的预定数目的下降沿或者上升沿是否出现; 评估所述串行时钟信号的边沿之间的时间间隔;以及 评估SPI间隔的长度。
14.一种SPI接口,包括: 多个同步器,被配置为接收多个SPI信号和内部时钟信号并且使用所述内部时钟信号同步所接收的所述SPI信号; 多个数字滤波器,被配置为接收经同步的所述SPI信号并且进行滤波;以及 SPI协议处理机,被配置为: 接收所述内部时钟信号和经同步且滤波的所述SPI信号;并且 根据SPI协议检测和评估所接收的所述SPI信号中至少一个SPI信号的信号跃迁。
15.根据权利要求14所述的SPI接口,其中,所述SPI协议处理机进一步被配置为基于所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估来判定所述多个SPI信号是否形成有效存取。
16.根据权利要求15所述的SPI接口,其中,所述SPI协议处理机进一步被配置为在所述多个SPI信号未形成有效存取的情况下丢弃所述多个SPI信号。
17.根据权利要求15所述的SPI接口,其中,所述SPI协议处理机进一步被配置为在所述多个SPI信号未形成有效存取的情况下设置错误标记。
18.根据权利要求15所述的SPI接口,其中,所述多个SPI信号包括芯片选择(CS)信号、串行时钟(SCLK)信号和串行数据输入(SDI)信号。
19.根据权利要求18所述的SPI接口,其中,所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估包括以下各项中的至少一项: 在所述串行时钟信号开始计时之前,检查所述芯片选择信号上是否有边沿; 检查所述串行时钟信号的至少一个边沿是否出现; 检查所述串行时钟信号的预定数目的下降沿或者上升沿是否出现; 评估所述串行时钟信号的边沿之间的时间间隔;以及 评估SPI间隔的长度。
20.根据权利要求14所述的SPI接口,其中,所述多个同步器中的同步器为同步器触发器。
21.—种经由SPI接口的串行通信方法,所述方法包括以下步骤: 接收多个SPI信号和内部时钟信号; 使用所述内部时钟信号同步所述多个SPI信号; 对于经同步的所述SPI信号进行数字滤波; 由SPI协议处理机接收所述内部时钟信号和经同步且数字滤波的所述SPI信号;以及由所述SPI协议处理机根据SPI协议来检测和评估所接收的所述SPI信号中至少一个SPI信号的信号跃迁。
22.根据权利要求21所述的方法,还包括: 由所述SPI协议处理机基于所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估来判定所述多个SPI信号是否形成有效存取。
23.根据权利要求22所述的方法,还包括: 在所述多个SPI信号未形成有效存取的情况下丢弃所述多个SPI信号。
24.根据权利要求22所述的方法,还包括: 在所述多个SPI信号未形成有效存取的情况下由所述SPI协议处理机设置错误标记。
25.根据权利要求22所述的方法,其中,所述多个SPI信号包括芯片选择(CS)信号、串行时钟(SCLK)信号和串行数据输入(SDI)信号。
26.根据权利要求25所述的方法,其中,所接收的所述SPI信号中所述至少一个SPI信号的信号跃迁的评估包括以下各项中的至少一项: 在所述串行时钟信号开始计时之前,检查所述芯片选择信号上是否有边沿; 检查所述串行时钟信号的至少一个边沿是否出现; 检查所述串行时钟信号的预定数目的下降沿或者上升沿是否出现; 评估所述串行时钟信 号的边沿之间的时间间隔;以及 评估SPI间隔的长度。
【文档编号】G06F13/42GK103544129SQ201310287010
【公开日】2014年1月29日 申请日期:2013年7月9日 优先权日:2012年7月11日
【发明者】托马索·巴奇加卢波 申请人:英飞凌科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1