同步串行通信接口的通信方法及该同步串行通信接口的制作方法
【专利摘要】本发明揭示一种同步串行通信接口的通信方法,该同步串行通信接口的通信方法采用数据帧进行通信,每个数据帧包括开始位、命令区、数据区及校验和,其中命令区用于决定当前数据帧的作用,数据区为根据当前数据帧中的命令发送的数据,校验和为对该数据帧的开始位、命令区及数据区的数据进行校验的校验值,每一帧数据通信结束后,通信双方都明确知道通信过程是否出错,同时读写操作标志由命令字段译码得到,由多个位译码得到读写操作,减少受到干扰产生误操作的概率,从而可以有效解决现有的同步串行通信接口的通信方法中读写标志位及数据字段容易受到电磁干扰而发生突变产生错误的问题。
【专利说明】同步串行通信接口的通信方法及该同步串行通信接口
【【技术领域】】
[0001]本发明属于数字信号电路设计以及通信【技术领域】,特别是指一种同步串行通信接口的通信方法以及该同步串行通信接口。
【【背景技术】】
[0002]在集成电路尤其是不带有中央处理器的非片上系统芯片中,串行通信接口是一个非常重要的电路单元。串行通信接口使用串行数据格式进行通信,从而节省了集成电路的输入输出接口。外部电路通过串行通信接口可以与集成电路进行通信,对集成电路中的寄存器进行配置,并从集成电路中读取所需要的数据。
[0003]目前串行通信的方式有两种,异步串行通信以及同步串行通信。同步串行通信又可以分为半双工同步串行通信和全双工同步串行通信。半双工同步串行通信一般发送数据和接收数据复用同一个信号线,在同一时刻只能发送或者接收数据,二者不能同时进行,通信效率较低。全双工同步串行通信拥有独立的发送和接收数据信号线,在同一时刻可以发送和接收数据,二者可以同时进行,有着较高的通信效率和通信速度。
[0004]而在目前常用的全双工同步串行通信方法中,数据帧的格式依次为:开始位(I位)、地址字段(nl位)、读写标志位(I位)、命令标志(n2位)、数据长度标志(n3位)及数据字段(n4位)。其中数据字段根据数据长度标志的值为可变长度字段,并且根据相应的命令标志可以进行随机模式、顺序模式或者突发模式的写入或者读出操作。
[0005]上述全双工同步串行通信方法有着较高的通信效率,并可以实现很高的通信速度,但存在的不足之处是由于其读写标志位只用一位表示,并且数据帧中没有对通信数据进行校验的手段。当这种同步串行通信方法应用于强烈电磁干扰工作环境中的时候,读写标志位很容易受到电磁 干扰而发生突变,从而导致误操作。或者,数据字段的位受到电磁干扰发生突变的时候,发送方和接收方都无法知道这一情况,从而导致写入错误数据或者读出错误数据。另外,由于上述的数据帧支持变长数据字段,导致整个数据帧的长度不固定,从而在集成电路实现的时候,带来较大的硬件面积代价。
【
【发明内容】
】
[0006]本发明的目的在于提供一种同步串行通信接口的通信方法,用以解决现有的同步串行通信接口的通信方法中读写标志位及数据字段容易受到电磁干扰而发生突变产生错误的问题。
[0007]为实现上述目的,实施本发明的同步串行通信接口的通信方法采用数据帧进行通信,每个数据帧包括开始位、命令区、数据区及校验和,其中命令区用于决定当前数据帧的作用,数据区为根据当前数据帧中的命令发送的数据,校验和为对该数据帧的开始位、命令区及数据区的数据进行校验的校验值。
[0008]依据上述主要特征,该数据帧长度固定。
[0009]依据上述主要特征,校验和为对该数据帧的开始位、命令区及数据区的数据按照字节累加并对累加和进行逻辑取反操作得到的校验值。
[0010]依据上述主要特征,该数据帧包括32位,开始位2位,命令区6位,数据区16位,校验和8位。
[0011]本发明另一目的在于提供一种同步串行通信接口,用以解决现有的同步串行通信接口的通信方法中读写标志位及数据字段容易受到电磁干扰而发生突变产生错误的问题。
[0012]为实现上述目的,实施本发明的同步串行通信接口至少包括时钟输入引脚、数据输入引脚及数据输出引脚,该数据输入引脚及数据输出引脚采用数据帧与外部电路或主机进行通信,每个数据帧包括开始位、命令区、数据区及校验和,其中命令区用于决定当前数据帧的作用,数据区为根据当前数据帧中的命令发送的数据,校验和为对该数据帧的开始位、命令区及数据区的数据进行校验的校验值。
[0013]依据上述主要特征,同步串行通信接口还包括片选输入引脚与通信状态输出引脚。
[0014]依据上述主要特征,该数据帧长度固定。
[0015]依据上述主要特征,校验和为对该数据帧的开始位、命令区及数据区的数据按照字节累加并对累加和进行逻辑取反操作得到的校验值。
[0016]依据上述主要特征,该数据帧包括32位,开始位2位,命令区6位,数据区16位,校验和8位。
[0017]依据上述主要特征,在每一个时钟输入引脚的上升沿,数据输入引脚端口上的一位数据将移位进入同步串行通信接口,在时钟输入引脚的下降沿,数据输出引脚输出一位数据,在连续两个时钟输入引脚的上升沿,数据输入引脚上的数据分别为高电平和低电平,为数据输入引脚上的开始位。
[0018]依据上述主要特征,在写操作时,最后一帧的数据区给出写操作的目标地址,此数据帧接收结束的时候写操作生效,把先前数据帧给出的数据写入目标地址。
[0019]依据上述主要特征,在写操作时,数据帧的校验和都需要外部电路或者主机发出,如果同步串行通信接口对接收到的当前数据帧进行校验发生错误,当前数据帧无效,通信状态输出引脚输出会置I。
[0020]依据上述主要特征,在写操作过程中,数据输出引脚在时钟输入引脚的下降沿输出当前数据输入引脚的值,外部电路或者主机可以依靠通信状态输出引脚的值,或者读回数据输出引脚的值判断同步串行通信接口是否正确接收到了数据。
[0021]依据上述主要特征,在进行读操作时,第一个数据帧的数据区给出目标地址,校验和给出此数据帧的校验和,这个数据帧的校验和需要外部电路或者主机发出。
[0022]依据上述主要特征,在读出操作时,数据区以及校验和都是由同步串行通信接口发出,外部电路或者主机接收数据组成一个完整的数据帧后,进行数据校验以便判断接收过程是否正确。
[0023]依据上述主要特征,有两种方法复位同步串行通信接口,一种是片选输入引脚为高电平的时候,同步串行通信接口被复位,数据输出引脚输出为高阻状态;当片选输入引脚为低电平的时候,同步串行通信接口可以正常工作。另一种是如果在时钟输入引脚上输入连续32个有效时钟的情况下,在数据输入引脚上给出的都是高电平,则同步串行通信接口回到空闲状态,数据输出引脚输出低电平。[0024]依据上述主要特征,该同步串行通信接口在时钟输入信号和数据输入信号的输入通路上设置有可以进行选择的滤波电路,根据工作环境的电磁干扰程度选择不同强度的滤波电路对输入信号进行滤波。
[0025]依据上述主要特征,在时钟输入信号和数据输入信号的输入通路上的滤波电路使用与同步串行通信接口核心电路相同的系统时钟,这些滤波电路同时还可以作为时钟输入信号和数据输入信号的输入同步电路。
[0026]与现有技术相比较,实施本发明的同步串行通信接口的通信方法及该同步串行通信接口采用数据帧进行通信,并且每个数据帧中包含校验字段,每一帧数据通信结束后,通信双方都明确知道通信过程是否出错,同时读写操作标志由命令字段译码得到,由多个位译码得到读写操作,减少受到干扰产生误操作的概率,从而可以有效解决现有的同步串行通信接口的通信方法中读写标志位及数据字段容易受到电磁干扰而发生突变产生错误的问题。另外,由于采用定长数据帧结构,并通过命令字段决定每一帧数据的功能,从而简化硬件电路设计。
【【专利附图】
【附图说明】】
[0027]图1是实施本发明的同步串行通信接口的通信方法中接收的数据帧格式示意图。
[0028]图2是实施本发明的同步串行通信接口的通信方法中发送的数据帧格式示意图。
[0029]图3是实施本发明的同步串行通信接口的通信方法的写操作数据帧的波形示意图。
[0030]图4是实施本发明的同步串行通信接口的通信方法的读操作数据帧的波形示意图。
[0031]图5是实施本发明的同步串行通信接口电路结构的示意图。`【【具体实施方式】】
[0032]实施本发明的同步串行通信接口需设有3个必须的引脚:时钟输入引脚(SPCK)、数据输入引脚(sroi)及数据输出引脚(sroo)。另外,此同步串行通信接口还可设有两个可选的引脚:片选输入引脚(SPCSN )与通信状态输出引脚(SPIERR )。
[0033]请参阅图1与图2所示,实施本发明的同步串行通信接口的通信方法采用固定长度的数据帧进行通信。同步串行通信接口接收的数据帧以及发送的数据帧均包括32位,由4部分组成,分别是开始位(2位)、命令区(CMD,6位)、数据区(包括DATA H及DATA L,共16位)及校验和(CKSUM,共8位)。
[0034]在每一个时钟输入引脚(SPCK)的上升沿,数据输入引脚(sroi)端口上的一位数据将移位进入同步串行通信接口,在时钟输入引脚(SPCK)的下降沿,数据输出引脚(sroo)输出一位数据。在连续两个时钟输入引脚(SPCK)的上升沿,数据输入引脚(sroi)上的数据分别为高电平和低电平,即数据输入引脚(sroi)上的“?ο”为开始位。命令区、数据区以及校验和都是MSB在前,LSB在后移位进入数据输入引脚(sroi)。命令区用于决定当前数据帧的作用。数据区为根据当前数据帧中的命令发送的数据。校验和为当前数据帧中第8位至第31位按照字节累加并对累加和进行逻辑取反操作得到的校验值。
[0035]依照上述的帧结构,在具体实施时,对集成电路内一个32位数据的写操作需要3个数据帧,对一个16/8位数据的写操作需要2个数据帧。请参阅图3所示,以下以对一个32位的数据的写操作为例说明写操作的具体过程。在对上述的32位的数据进行写操作时将用到三个数据帧,分别为:
[0036]第一个数据帧使用0x08命令,数据区给出32位目标数据的低16位。
[0037]第二个数据帧使用OxOA命令,数据区给出32位目标数据的高16位。
[0038]第三个数据帧使用OxOC命令,数据区给出写操作的目标地址,这一个数据帧接收结束的时候写操作生效,把上两个数据帧给出的32位数据写入目标地址。
[0039]在实施时,上述三个数据帧的校验和都需要外部电路或者主机发出,如果同步串行通信接口对接收到的当前数据帧进行校验发生错误,当前数据帧无效,通信状态输出引脚(SPIERR)输出会置I。
[0040]在写操作过程中,数据输出引脚(sroo)在时钟输入引脚(SPCK)的下降沿输出当前数据输入引脚(sroi)的值。外部电路或者主机可以依靠通信状态输出引脚(SPIERR)的值,或者读回数据输出引脚(sroo)的值来判断同步串行通信接口是否正确接收到了数据。
[0041]为对实施本发明的同步串行通信接口的通信方法更加清楚的说明,以下再对对集成电路的数据进行读取操作的过程进行说明。依照上述的帧结构,在具体实施时,对集成电路内一个32位数据的读操作需要3个数据帧,对一个16/8位数据的读操作需要2个数据帧。请参阅图4所示,以下对一个32位数据的读操作为例进行说明读操作的过程。在对上述的32位的数据进行读操作时将用到三个数据帧,分别为:
[0042]第一个数据帧使用0x10命令,数据区给出目标地址,校验和给出此数据帧的校验和,这个数据帧的校验和需要外部电路或者主机发出。
[0043]第二个数据帧使用0x12命令,在第f第8个时钟输入引脚(SPCK)的下降沿,数据输出引脚(SPDO)上输出当前数据输入引脚(sroi)的数据,即外部电路或者主机发送过来的开始位以及命令直接在数据输出引脚(sroo)上输出;从第9个时钟输入引脚(SPCK)的下降沿开始,数据输出引脚(Sroo)上输出目标数据,即第扩第24个时钟输入引脚(SPCK)的下降沿上输出数据区;第25?第32个时钟输入引脚(SPCK)的下降沿上,数据输出引脚(SPDO )输出同步串行通信接口计算出的校验和。在第扩第32个时钟输入引脚(SPCK )上,同步串行通信接口不关心数据输入引脚(sroi)上的输入数据。外部电路或者主机读回数据输出引脚(sroo)输出的数据,组成一个完整的数据帧,进行校验以便判断接收过程是否正确。
[0044]第三个数据帧使用0x14命令,在第f第8个时钟输入引脚(SPCK)的下降沿,数据输出引脚(SPDO)上输出当前数据输入引脚(sroi)的数据,即外部电路或者主机发送过来的开始位以及命令直接在数据输出引脚(sroo)上输出;从第9个时钟输入引脚(SPCK)的下降沿开始,数据输出引脚(Sroo)上输出目标数据,即第扩第24个时钟输入引脚(SPCK)的下降沿上输出数据区;第25?第32个时钟输入引脚(SPCK)的下降沿上,数据输出引脚(sroo)输出同步串行通信接口计算出的校验和。在第扩第32个时钟输入引脚(SPCK)上,同步串行通信接口不关心数据输入引脚(sroi)上的输入数据,外部电路或者主机读回数据输出引脚(sroo)输出的数据,组成一个完整的数据帧,进行校验以便判断接收过程是否正确。
[0045]另外,主机可以再次查看上一次操作的操作数或者结果,具体方法如下:[0046]如果上一次操作是写操作,则使用OxOE命令读出写操作的目标地址,读出过程同0x12/0x14命令;使用0x16命令读出写操作的目标数据低16位,读出过程同0x12/0x14命令;使用0x18命令读出写操作的目标数据高16位,读出过程同0x12/0x14命令。
[0047]如果上一次操作是读操作,则使用OxOE命令读出读操作的目标地址,读出过程同0x12/0x14命令;使用0x16命令读出读操作的目标数据低16位,读出过程同0x12/0x14命令;使用0x18命令读出读操作的目标数据高16位,读出过程同0x12/0x14命令。
[0048]数据帧中的第7位至第O位为校验和,是当前数据帧中第31位至第8位按照字节累加并对累加和进行取反操作得到的校验值。
[0049]在写操作过程中,每一个数据帧的校验和都需要外部电路或者主机发出,如果同步串行通信接口对接收到的当前数据帧进行校验发生错误,当前数据帧无效,通信状态输出引脚(SPIERR)输出会置I。
[0050]在写操作过程中,数据输出引脚(sroo)在时钟输入引脚(SPCK)的下降沿输出当前数据输入引脚(sroi)的值。主机可以依靠通信状态输出引脚(SPIERR)的值,或者读回数据输出引脚(sroo)的值来判断同步串行通信接口是否正确接收到了数据。
[0051]在读操作过程中,第一个数据帧给出目标地址,这个数据帧的校验和需要外部电路或者主机发出。即使在用0x08/0x0A/0x0C/0xl0命令的数据帧中,校验和需要外部电路或者主机发出。
[0052]在其他使用0xl2/0xl4/0x0E/0xl6/0xl8的数据帧中,发生的都是读出操作,数据区以及校验和都是由同步串行通信接口发出,外部电路或者主机接收数据组成一个完整的数据帧后,进行数据校验以便判断接收过程是否正确。
[0053]上述的0xl2、0xl4、0x0E、0xl6、0xl8等命令为预先规定好,一个命令规定了一种操作。
[0054]该同步串行通信接口的复位方法有两种。一种是片选输入引脚(SPCSN)为高电平的时候,同步串行通信接口被复位,数据输出引脚(sroo)输出为高阻状态;当片选输入引脚(SPCSN)为低电平的时候,同步串行通信接口可以正常工作。如果在时钟输入引脚上输入连续32个有效时钟的情况下,在数据输入引脚上给出的都是高电平,则同步串行通信接口回到空闲状态,数据输出引脚(sroo)输出低电平。
[0055]请参阅图5所示,该同步串行通信接口在时钟输入信号和数据输入信号的输入通路上还可以设置有可以进行选择的滤波电路,可以根据工作环境的电磁干扰程度选择不同强度的滤波电路对输入信号进行滤波。其中选择不同强度的滤波电路的方式有二种:一种是该同步串行通信接口的核心电路自主判断某几次通信过程中校验出错的次数,如果大于某个设定的值,则发出滤波电路切换信号从而切换到相应的滤波电路;第二种是主机端对通信过程以及通信环境进行判断,然后通过命令设置接口电路使用的滤波电路。复位后,同步串行通信接口默认使用滤波电路O。由于滤波电路会对时钟输入引脚(SPCK )进行采样以及延时,所以不同的滤波电路对时钟输入引脚(SPCK)有不同的频率限制。在满足当前所使用的滤波电路对时钟输入引脚(SPCK)频率限制的条件下,可以发出命令改变所使用的滤波电路。
[0056]在时钟输入信号和数据输入信号的输入通路上的滤波电路使用与同步串行通信接口核心电路相同的系统时钟,所以这些滤波电路同时还可以作为时钟输入信号和数据输入信号的输入同步电路。仅将时钟输入信号作为同步串行通信接口逻辑意义上的时钟,而不是作为其电路意义上的时钟信号。提取时钟输入信号的上升沿和下降沿表征时钟输入信号的变化。
[0057]与现有技术相比较,实施本发明的同步串行通信接口的通信方法及该同步串行通信接口具有如下优点:
[0058](I)数据帧中包含校验字段,每一帧数据通信结束后,通信双方都明确知道通信过程是否出错;
[0059](2)定长数据帧结构,通过命令字段决定每一帧数据的功能,从而简化硬件电路设计;
[0060](3)读写操作标志由命令字段译码得到,由多个位译码得到读写操作,减少受到干扰产生误操作的概率;
[0061](4)时钟输入信号和数据输入信号的输入路径上有可选的多个滤波电路,根据工作环境的电磁干扰程度可以选择不同强度的滤波电路;
[0062]( 5 )这些可选的滤波电路可以同时作为时钟输入信号和数据输入信号的输入同步电路,其仅将时钟输入信号作为同步串行通信接口逻辑意义上的时钟,提取时钟输入信号的上升沿和下降沿表征时钟输入信号的变化。
[0063]可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种同步串行通信接口的通信方法,其特征在于该同步串行通信接口的通信方法采用数据帧进行通信,每个数据帧包括开始位、命令区、数据区及校验和,其中命令区用于决定当前数据帧的作用,数据区为根据当前数据帧中的命令发送的数据,校验和为对该数据帧的开始位、命令区及数据区的数据进行校验的校验值。
2.如权利要求1所述的同步串行通信接口的通信方法,其特征在于:该数据帧长度固定。
3.如权利要求1所述的同步串行通信接口的通信方法,其特征在于:校验和为对该数据帧的开始位、命令区及数据区的数据按照字节累加并对累加和进行逻辑取反操作得到的校验值。
4.如权利要求1所述的同步串行通信接口的通信方法,其特征在于:该数据帧包括32位,开始位2位,命令区6位,数据区16位,校验和8位。
5.一种同步串行通信接口,至少包括时钟输入引脚、数据输入引脚及数据输出引脚,该数据输入引脚及数据输出引脚采用数据帧与外部电路或主机进行通信,其特征在于:每个数据帧包括开始位、命令区、数据区及校验和,其中命令区用于决定当前数据帧的作用,数据区为根据当前数据帧中的命令发送的数据,校验和为对该数据帧的开始位、命令区及数据区的数据进行校验的校验值。
6.如权利要求5所述的同步串行通信接口,其特征在于:该数据帧长度固定。
7.如权利要求5所述的同步串行通信接口,其特征在于:校验和为对该数据帧的开始位、命令区及数据区的数据按照字节累加并对累加和进行逻辑取反操作得到的校验值。
8.如权利要求5所述的同步串行通信接口,其特征在于:该数据帧包括32位,开始位2位,命令区6位, 数据区16位,校验和8位。
9.如权利要求5所述的同步串行通信接口,其特征在于:在每一个时钟输入引脚的上升沿,数据输入引脚端口上的一位数据将移位进入同步串行通信接口,在时钟输入引脚的下降沿,数据输出引脚输出一位数据,在连续两个时钟输入引脚的上升沿,数据输入引脚上的数据分别为高电平和低电平,为数据输入引脚上的开始位。
10.如权利要求5所述的同步串行通信接口,其特征在于:在写操作时,最后一帧的数据区给出写操作的目标地址,此数据帧接收结束的时候写操作生效,把先前数据帧给出的数据写入目标地址。
11.如权利要求5所述的同步串行通信接口,其特征在于:同步串行通信接口还包括片选输入引脚与通信状态输出引脚。
12.如权利要求11所述的同步串行通信接口,其特征在于:在写操作时,数据帧的校验和都需要外部电路或者主机发出,如果同步串行通信接口对接收到的当前数据帧进行校验发生错误,当前数据帧无效,通信状态输出引脚输出会置I。
13.如权利要求12所述的同步串行通信接口,其特征在于:在写操作过程中,数据输出引脚在时钟输入引脚的下降沿输出当前数据输入引脚的值,外部电路或者主机可以依靠通信状态输出引脚的值,或者读回数据输出引脚的值判断同步串行通信接口是否正确接收到了数据。
14.如权利要求5所述的同步串行通信接口,其特征在于:在进行读操作时,第一个数据帧的数据区给出目标地址,校验和给出此数据帧的校验和,这个数据帧的校验和需要外部电路或者主机发出。
15.如权利要求5所述的同步串行通信接口,其特征在于:在读出操作时,数据区以及校验和都是由同步串行通信接口发出,外部电路或者主机接收数据组成一个完整的数据帧后,进行数据校验以便判断接收过程是否正确。
16.如权利要求11所述的同步串行通信接口,其特征在于:该同步串行通信接口的复位方法为片选输入引脚为高电平的时候,同步串行通信接口被复位,数据输出引脚输出为高阻状态;当片选输入引脚为低电平的时候,同步串行通信接口可以正常工作。
17.如权利要求11所述的同步串行通信接口,其特征在于:该同步串行通信接口的复位方法为如果在时钟输入引脚上输入连续32个有效时钟的情况下,在数据输入引脚上给出的都是高电平,则同步串行通信接口回到空闲状态,数据输出引脚输出低电平。
18.如权利要求5所述的同步串行通信接口,其特征在于:该同步串行通信接口在时钟输入信号和数据输入信号的输入通路上设置有可以进行选择的滤波电路,根据工作环境的电磁干扰程度选择不同强度的滤波电路对输入信号进行滤波。
19.如权利要求18所述的同步串行通信接口,其特征在于:在时钟输入信号和数据输入信号的输入通路上的滤波电路使用与同步串行通信接口核心电路相同的系统时钟,这些滤波电路同时还可 以作为时钟输入信号和数据输入信号的输入同步电路。
【文档编号】H04L1/00GK103427945SQ201210330464
【公开日】2013年12月4日 申请日期:2012年9月7日 优先权日:2012年9月7日
【发明者】赵岩, 杨昆 申请人:万高(杭州)科技有限公司