买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】具有少于八位的字节及可变分组大小的SPI接口_密克罗奇普技术公司_201680039582.1 

申请/专利权人:密克罗奇普技术公司

申请日:2016-07-14

公开(公告)日:2021-12-03

公开(公告)号:CN107710184B

主分类号:G06F13/42(20060101)

分类号:G06F13/42(20060101)

优先权:["20150715 US 62/192,773","20160713 US 15/209,467"]

专利状态码:有效-授权

法律状态:2021.12.03#授权;2018.07.17#实质审查的生效;2018.02.16#公开

摘要:本发明揭示了一种同步串行外围装置,其具有与数据输出线耦合的发射单元及与时钟线耦合的时钟单元。所述串行外围装置发射最少单个发射,其中在第一操作模式中,所述发射单元及所述时钟单元可配置以执行具有可被定义为介于一1位与八8位之间的数据长度的数据发射。

主权项:1.一种同步串行外围装置,包括:发射单元,其与数据输出线耦合;及时钟单元,其与时钟线耦合,所述时钟线经配置以与时钟同步地输出数据,其中所述同步串行外围装置经配置以发射最少单个发射,其中在第一操作模式中,所述发射单元及所述时钟单元可配置以执行具有动态地可选择的n位字数据长度的数据发射,所述数据长度通过控制寄存器能够在1≤n≤8的范围内的每一n位长度之间进行选择,其中所述单个发射仅包括具有所述动态地可选择的字数据长度和相关联的时钟脉冲的数量的所述输出数据。

全文数据:具有少于八位的字节及可变分组大小的SPI接口[0001]相关专利申请案[0002]本申请案要求2015年7月15日申请的共同拥有的第62192,773号美国临时专利申请案的优先权;所述申请案特此出于全部目的以引用的方式并入本文中。技术领域[0003]本发明涉及同步串行外围接口,特定地说,涉及一种具有少于8位的字节及可变分组大小的SPI接口。背景技术[0004]同步串行外围装置使用单独的数据线及时钟线,其中最小数据大小是8位。所述装置是微控制器中的常见接口外围装置。其还可在多个独立装置中使用,所述独立装置例如模数转换器、数模转换器、传感器装置、发射器与接收器及需要与微处理器或微控制器通信的任何其它类型的装置。发明内容[0005]根据实施例,一种同步串行外围装置可包括:发射单元,其与数据输出线耦合;及时钟单元,其与时钟线耦合,其中所述串行外围装置发射最少单个发射,其中在第一操作模式中,所述发射单元及所述时钟单元可配置以执行具有可定义为介于一⑴位与八⑻位之间的数据长度的数据发射。[0006]根据又一实施例,所述同步串行外围装置可进一步包括与所述发射单元耦合的FIFO存储器,其中所述外围装置进一步可配置以在第二操作模式中操作,在所述第二操作模式中,发射由包括来自所述FIFO存储器的多个8位字的发射帧其后接着来自所述FIFO存储器的具有可定义为少于八8位的数据长度的单个数据发射字组成。根据又一实施例,配置寄存器中的单个位确定第一或第二操作模式是否在作用中。根据又一实施例,所述同步串行外围装置可进一步包括与数据输入线耦合的接收单元,其中所述串行外围装置经配置以接收可变位长度单个串行发射,其中在所述第一操作模式中,所述接收单元可配置以接收具有所述定义数据长度的数据发射。根据又一实施例,在所述第一操作模式中,配置寄存器中的多个位确定所述数据长度。根据又一实施例,在所述第二操作模式中,第一数目个特殊功能寄存器位确定连续8位字的数目,且在已发射所述连续8位字之后,第二数目个特殊功能寄存器位确定所述单个数据发射字的位的数目。根据又一实施例,在所述第一操作模式中,第一数目个特殊功能寄存器位确定所述数据长度,且在所述第二操作模式中,第二数目个特殊功能寄存器位确定连续8位字的数目,且所述第一数目个特殊功能寄存器位确定所述单个数据发射字的所述位的数目。根据又一实施例,单个特殊功能寄存器包括所述第一及第二数目个特殊功能寄存器位。根据又一实施例,所述同步串行外围装置可进一步包括控制在所述时钟线上发射的时钟信号的有限状态机。根据又一实施例,所述同步串行外围装置可进一步包括控制所述有限状态机的字节计数器及位计数器。根据又一实施例,所述位计数器控制所述发射单元。根据又一实施例,通过调整波特率、位数目及数据来仿真对每一数据位的PWM曼彻斯特编码Manchesterencoding而实现所需调制模式。根据又一实施例,所述同步串行外围装置可进一步包括从控制输入。根据又一实施例,所述同步串行外围装置可进一步包括单独的数据输入线及数据输出线。[0007]根据另一实施例,一种微控制器可包括如上文所述的同步串行外围装置。[0008]根据另一实施例,一种操作同步串行外围装置的方法可包括以下步骤:配置所述同步串行外围装置,以在第一发射模式中操作;将发射位宽度设置为少于8位的长度;将数据移到传送缓冲器中;其中在主模式中,在接收到所述数据之后,所述同步串行外围装置在数据线上发射数据,且在时钟线上发射相关联时钟信号,其中在所述数据线上发射少于8位的位数目,且在所述时钟线上发射少于8个时钟脉冲的数目。[0009]根据所述方法的又一实施例,在从模式中,在时钟线上接收到来自主装置的时钟信号之后,所述同步外围装置在数据线上发射数据。根据所述方法的又一实施例,所述方法可进一步包括以下步骤:配置所述同步串行外围装置,以在第二发射模式中操作;设置8位字的数目,且将位宽度设置为少于8位的长度;将数据移到发射FIFO存储器中;其中在接收到触发之后,所述同步串行外围装置发射来自所述发射FIFO存储器的多个8位字,其后接着具有可定义为少于八8位的数据长度的单个数据发射字。根据所述方法的又一实施例,配置寄存器中的单个位确定第一或第二操作模式是否在作用中。根据所述方法的又一实施例,在控制寄存器中设置位产生所述触发。根据所述方法的又一实施例,所述方法可进一步包括:当在所述第一操作模式中时,接收具有所述发射位宽度的数据字,及当在所述第二操作模式中时,接收所述数个8位字及具有少于八位的长度的最后字,其中将每一经接收字传送到接收FIFO存储器中。根据所述方法的又一实施例,在所述第一操作模式中,配置寄存器中的多个位确定所述数据长度。根据所述方法的又一实施例,在所述第一操作模式中,第一数目个特殊功能寄存器位确定所述数据长度,且在第二操作模式中,第二数目个特殊功能寄存器位确定连续8位字的数目,且所述第一数目个特殊功能寄存器位确定所述单个数据发射字的位数目。根据所述方法的又一实施例,通过调整波特率、位数目及数据来仿真对每一数据位PffM曼彻斯特编码以实现所需调制模式。附图说明[0010]图1展示同步串行外围模块的实施例的框图;[0011]图2展示具有通过SPI接口耦合的主装置及多个从单元的系统;[0012]图3展示常规SPI发射的时序图;[0013]图4展示根据第一操作模式的具有少于八位的SPI发射的时序图;[00M]图5展示根据第二操作模式的SPI发射的时序图;[0015]图6展示用于电路内除错器编程器的典型发射协议;[0016]图7展示根据第一操作模式的仿真PffM曼彻斯特编码的发射;[0017]图8展示常规SPI模块的第一配置;[0018]图9展示常规SPI模块的第二配置;及[0019]图10展示根据各种实施例的包括SPI模块的微控制器的框图。具体实施方式[0020]如果发射器仅发送必需位,那么采用串行数据的RF发射的应用程序得以改进。当装置使用仅8位的字节可产生串行数据时,那么有时必须发射过多位例如,32位或40位而非最佳数目(例如,37位)。额外位增添所消耗的总能量,且缩短电池寿命。[0021]图8及9展示可在微控制器中实施的典型SPI外围模块。此外围可在不同模式中操作,其中如图8中所示的正常模式使用与移位寄存器SPIxSR耦合的单个缓冲寄存器SPIxBUF,所述移位寄存器SPIxSR又与外部接脚SDO及SDI耦合。如图8及9中所示,移位寄存器操作为串行化器及解串行化器。通过预分频器产生时钟信号且提供控制逻辑以处置SD0、SDI及SCK接脚上的信号的传送协议。根据标准,第四接脚可用于从模式或帧同步。图9展示在增强模式中操作时的相同模块。现在FIFO接收与发射缓冲器耦合在缓冲寄存器SPIxBUF与移位寄存器SPIxSR之间。因此,用户可在无时序约束等待状态的情况下执行多次写入,这取决于FIFO大小。此外围通常由经存储器映射以容易在微控制内存取的特殊功能寄存器配置。然而,这些类型的SPI接口限于8位或16位的发射。当前,提供可变位长度串行发射的唯一方式是使用所谓的位碰撞bit-banging技术,所述技术需要中央处理器直接控制IO端口及信号的时序,这显然引起显著软件额外开销。[0022]需要经改进的更灵活的SPI接口,以在很大程度上自动处置具有可变数据宽度的串行发射。[0023]根据各种实施例,可进一步增强如图8及9中所示的SPI模块。例如,可修改SPI数据串行化器及解串行化器,使得并非所发射的全部字节均需为8位长。为此,控制SPI外围的操作的特殊功能寄存器尤其是受控于例如控制特定设置的单个模式位或多个位。使用单个位BMODE允许两种模式。当BMODE=0时,指定总位计数,例如具有37位的长度的发射。可在特殊功能寄存器中设置实际长度。在此模式中,在发射多个8位字节之后,将最后字节例如,在一个设置中第五字节截断成必需长度。因此,将循序发射四个正常8位字及一个5位字以导致37位的发射。[0024]当BMODE=I时,将每一字节截断成选定位计数。此模式允许将每一发射定义为由例如少于8位组成。然而,所述设置可介于1位到8位之间,其中8位设置等效于正常发射。[0025]根据一个实施例,仅提供单个操作模式,其中此模式等效于BMODE=1。此实施例并不需要如下文用两操作模式实施例讨论的FIFO存储器,但是可与图8中所示的SPI外围类似实施。因此,代替FIFO,可提供单个发射缓冲寄存器及单个发射接收寄存器类似于图8中所示的布置),而非图1中所示的FIFO多路复用器布置。[0026]因此,根据各种实施例的SPI模块允许可变大小的数据传送。如上文提及,根据一个实施例,可存在经实施以实现可变传送大小的两种模式:[0027]-模式1-可变分组大小模式。分组大小可例如介于9位到16391位之间。取决于实施方案可应用其它分组大小。[0028]-模式2-可变字节大小模式。每一字节的大小可介于1位到8位之间。[0029]使用位选择器,将FIFO数据直接多路发射到SDO输出上,且经由解串行化器及相关联接收FIFO来接收SDI输入信号以实现可变字节大小的有效率实施方案。另外,主模式有限状态机使用byte_count及bit_count信息以产生可变数目个SCK脉冲。图1展示根据实施例的同步串行外围装置100的框图。[0030]第一解串行化器130接收串行SDI信号,且将并行8位信号转发到与N型深接收FIF0110耦合的第一多路复用器120。解串行化器130受控于位计数器150,所述位计数器150还控制输出时钟信号SCK的有限状态机160。有限状态机160进一步与字节计数器140耦合。N型深发射FIFO170与将一8位并行信号输出到串行化器190的多路复用器180耦合,所述串行化器190的输出提供SDO信号。[0031]截断字节且完成数据加载存储操作的能力是以8位每字节执行,但是其需要特别考虑数据控制。特定地说,在维持连续数据时钟RF发射的要求时,极难以传送仅1位每字节。位计数器与有限状态机及发射器与接收器交互,以确保全部处于相同状态。[0032]此同步串行外围装置在“主模式”中的操作可为如下。首先,除非如上文讨论那样仅单个模式可用,否则同步串行外围装置经配置以在两种操作模式中的一者中操作。在第一发射模式中,将发射位宽度设置为至多8位的长度。如果使用FIFO或传送缓冲器来接收数据,那么每一此传送可触发发射。在FIFO的情况中,外围将仅在FIFO中存在有效数据时传送。因此,在接收到数据之后,同步串行外围装置在数据线上发射数据,且在时钟线上发射相关联时钟信号,其中在数据线上发射可少于8位的位数目,且在时钟线上发射相关联数目个时钟脉冲。[0033]此同步串行外围装置在“从模式”中的操作可为如下。首先,除非如上文讨论那样仅单个模式可用,否则同步串行外围装置经配置以在两种操作模式中的一者中操作。在第一发射模式中,将发射位宽度设置为至多8位的长度。假若FIFO中存在数据,那么外围将仅在一旦其接收到来自主装置的频率时传送。因此,在接收到来自主装置的频率之后,同步串行外围装置在数据线上发射数据,其中在数据线上发射可少于8位的位数目。[0034]在第二发射模式中,首先将数个8位字及长度少于8位的位宽度编程到一或多个相应特殊功能寄存器中。接着,将数据移到发射FIFO存储器中,此取决于发射的总位长度可能需要多个数据传送。因此,在此操作模式中,同步串行外围装置发射来自发射FIFO存储器的多个8位字,其后接着具有可定义为少于八8位的数据长度的单个数据发射字。根据一个实施例,一旦FIFO中已接收到足够数据,传送便可自动开始。根据另一实施例,可由用户设置的配置寄存器中的单个位来确定传送的起始。[0035]SPI在多个装置之间串行地传送数据。图2展示具有主装置210及多个从装置220、230的典型布置200。如图3的时序图中所示,在特定SCK边缘上改变串行输出数据且在下一SCK边缘上对数据进行采样。常规SPI系统逐字传送数据,其中字大小=数据总线宽度8位MCU=8位SPI字节)。一些系统还提供16位的数据传送宽度。[0036]根据实施例,可实施分组大小选项,此提供当前在常规SPI接口中不可用的特征。[0037]如图4中所示,根据特定可编程操作模式,SPI外围具有字节传送模式,其中每一传送涉及发送接收一个字节。每一字节的大小可介于1位到8位之间。相应的特殊功能寄存器SFI?控制此功能:此寄存器可例如由单个位BMODE编程,其中BMODE=1的设置用于字节模式,且此或另一特殊功能寄存器中的多个位BITS针对字节大小定义位数目。如图4中所示的实例:控制寄存器具有BMODE=1、BITS=3的设置。在此模式中,仅3个位(即最高有效位7、6及5由每一写入传送到缓冲传送寄存器中。[0038]如图5中所示,根据特定可编程操作模式,SPI外围还可具有分组传送模式。分组大小可介于9位到16391位之间。然而,如上文所述,取决于实施方案可应用其它大小。数个特殊功能寄存器SFR可用来控制设置。例如,位BMODE=O用以设置分组模式,位BYTES用以设置8位字节的数目,且位BITS用以设置最后字节的大小。此导致分组大小(以位数目计)=BYTES*8+BITS。如图5中所示的实例使用设置BM0DE=0、BYTES=1及BITS=3,这导致11位操作模式。[0039]如图6中所示,例如,微芯片电路内串行编程(ICSP需要发送6位命令其后接着16位有效负载。可使用BMODE=1、BITS=6发送第一字节且可使用BMODE=1、BITS=0发送下两个字节。或者,此可使用具有BM0DE=0、BYTES=2、BITS=6分组大小=22位的分组模式实现。此使某些微控制器能够用于微芯片PIC编程,此需要传送可变位长度字。[0040]需要传送奇数个位的无线应用程序可受益于新颖分组模式。例如,Kedoq_°应用程序可具有介于66位到192位之间的数据大小。如上文提及,先前此类应用程序将必须使用位碰撞来发送确切长度的分组以通过在无任何零填补额外开销的情况下关闭收发器而节省电力。与通过位碰撞方法所实现的时序准确度相比,新颖分组模式可有助于实现更高时序准确度。同样,无缝数据传送支持可改进总线利用率且进一步优化电力消耗。[0041]如图7中所示,根据实施例的新颖SPI模块可容易用于要求对每一数据位的PffM曼彻斯特编码的应用程序。例如,某些LED装置使用以下PWM编码来表示一个数据位。可调整波特率、位数目及数据以实现所需调制模式。[0042]图10展示根据各种实施例的SPI模块在单芯片微控制器1000中的集成的实例。微控制器1000包括中央处理单元1010,其与程序快闪存储器1020及数据随机存取存储器1030親合而实施哈佛架构Harvardarchitecture。然而,根据其它实施例,还可使用其它架构。内部系统总线1090将CPU1010与多个外围装置1040a到1040η耦合。外围装置中的一者1050是根据如上文所述的各种实施例的SPI模块。其可具有多个配置寄存器1060、1070,所述多个配置寄存器1060、1070是微控制器1000的特殊功能寄存器且可经存储器映射到数据存储器1030。微控制器1000可具有在默认设置下操作为数字或模拟IO端口1080的多个外部接脚。一些此类接脚1080可配置以如图10中所示般指派给SPI模块。例如,一个接脚CLK可经指派以发射或接收时钟信号,一个接脚SDI可用作串行数据输入接脚,一个接脚SDO可用作串行数据输出接脚,且一个接脚#SS可用作从选择或帧同步接脚。当启动SPI外围1050时,可使用至少接脚CLK及SDI或SD0。另外,特定地说,如果一个以上从单元经由相同总线通信,那么可使用CS接脚。通常,取决于应用程序,主装置可需要多个此类接脚,且因此这些接脚是简单IO接口接脚且将由软件手动设置。然而,SPI接口模块1050的一些实施例可自动控制一或多个此类接脚。

权利要求:1.一种同步串行外围装置包括:发射单元,其与数据输出线耦合;及时钟单元,其与时钟线耦合,其中所述串行外围装置发射最少单个发射,其中在第一操作模式中,所述发射单元及所述时钟单元可配置以执行具有可被定义为介于一(1位与八8位之间的数据长度的数据发射。2.根据权利要求1所述的同步串行外围装置,其进一步包括经与所述发射单元耦合的FIFO存储器,其中所述外围装置进一步可配置以在第二操作模式中操作,在所述第二操作模式中,发射由包括来自所述FIFO存储器的多个8位字的发射帧、其后接着来自所述FIFO存储器的具有可定义为少于八8位的数据长度的单个数据发射字组成。3.根据权利要求1或权利要求2所述的同步串行外围装置,其中配置寄存器中的单个位确定所述第一或第二操作模式是否在作用中。4.根据前述权利要求中任一权利要求所述的同步串行外围装置,其进一步包括与数据输入线耦合的接收单元,其中所述串行外围装置经配置以接收可变位长度单个串行发射,其中在所述第一操作模式中,所述接收单元可配置以接收具有所述定义数据长度的数据发射。5.根据前述权利要求中任一权利要求所述的同步串行外围装置,其中在所述第一操作模式中,配置寄存器中的多个位确定所述数据长度。6.根据前述权利要求中任一权利要求所述的同步串行外围装置,其中在所述第二操作模式中,第一数目个特殊功能寄存器位确定连续8位字的数目,且在已发射所述连续8位字之后,第二数目个特殊功能寄存器位确定所述单个数据发射字的位计数。7.根据前述权利要求中任一权利要求所述的同步串行外围装置,其中在所述第一操作模式中,第一数目个特殊功能寄存器位确定所述数据长度,且在所述第二操作模式中,第二数目个特殊功能寄存器位确定连续8位字的数目,且所述第一数目个特殊功能寄存器位确定所述单个数据发射字的所述位计数。8.根据权利要求7所述的同步串行外围装置,其中单个特殊功能寄存器包括所述第一及第二数目个特殊功能寄存器位。9.根据前述权利要求中任一权利要求所述的同步串行外围装置,其进一步包括控制在所述时钟线上发射的时钟信号的有限状态机。10.根据前述权利要求中任一权利要求所述的同步串行外围装置,其进一步包括控制所述有限状态机的字节计数器及位计数器。11.根据权利要求9所述的同步串行外围装置,其中所述位计数器控制所述发射单元。12.根据前述权利要求中任一权利要求所述的同步串行外围装置,其中通过调整波特率、所述位计数及所述数据来仿真对每一数据位的PWM曼彻斯特编码以实现所需调制模式。13.根据前述权利要求中任一权利要求所述的同步串行外围装置,其进一步包括从控制输入。14.根据前述权利要求中任一权利要求所述的同步串行外围装置,其进一步包括单独的数据输入线及数据输出线。15.—种微控制器,其包括根据前述权利要求中任一权利要求所述的同步串行外围装置。16.—种操作同步串行外围装置的方法,所述方法包括以下步骤:配置所述同步串行外围装置,以在第一发射模式中操作;将发射位宽度设置为少于8位的长度;将数据移到传送缓冲器中;其中在主模式中,在接收到所述数据之后,所述同步串行外围装置在数据线上发射数据,且在时钟线上发射相关联时钟信号,其中在所述数据线上发射少于8位的位计数,且在在所述时钟线上发射少于8个时钟脉冲的数目。17.根据权利要求16所述的方法,其中在从模式中,在时钟线上接收到来自所述主装置的时钟信号之后,所述同步外围装置在数据线上发射数据。18.根据权利要求16或权利要求17所述的方法,其进一步包括以下步骤:配置所述同步串行外围装置,以在第二发射模式中操作;设置8位字的数目,且将位宽度设置为少于8位的长度;将数据移到发射FIFO存储器中;其中在接收到触发之后,所述同步串行外围装置发射来自所述发射FIFO存储器的多个8位字,其后接着具有可定义为少于八8位的数据长度的单个数据发射字。19.根据权利要求18所述的方法,其中配置寄存器中的单个位确定所述第一或第二操作模式是否在作用中。20.根据权利要求18或权利要求19所述的方法,其中在控制寄存器中设置位产生所述触发。21.根据权利要求18所述的方法,其进一步包括:当在所述第一操作模式中时,接收具有所述发射位宽度的数据字,及当在所述第二操作模式中时,接收所述数个8位字及具有少于八位的长度的最后字,其中将每一经接收字传送到接收FIFO存储器中。22.根据权利要求16到21中任一权利要求所述的方法,其中在所述第一操作模式中,配置寄存器中的多个位确定所述数据长度。23.根据权利要求18到22中任一权利要求所述的方法,其中在所述第一操作模式中,第一数目个特殊功能寄存器位确定所述数据长度,且在所述第二操作模式中,第二数目个特殊功能寄存器位确定连续8位字的数目,且所述第一数目个特殊功能寄存器位确定所述单个数据发射字的位计数。24.根据权利要求16到24中任一权利要求所述的方法,其中通过调整波特率、所述位计数及所述数据来仿真对每一数据位的PWM曼彻斯特编码以实现所需调制模式。

百度查询: 密克罗奇普技术公司 具有少于八位的字节及可变分组大小的SPI接口

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。