基于串行外围设备接口总线的数据传输方法和系统技术方案

技术编号:9841640 阅读:106 留言:0更新日期:2014-04-02 04:41
基于串行外围设备接口(SPI)总线的数据传输方法和系统,该方法在主机(M)与从机(S)之间双向串行传输数据,其中所述主机(M)提供传输时钟(SCK),其特征在于,该方法包括:当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述主机(M)的输出数据并通过第一数据线(MOSI)发送至所述从机(S);以及当由所述从机(S)向所述主机(M)传输数据时,所述从机(S)接收由所述主机(M)提供的所述传输时钟(SCK),并利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述从机(S)的输出数据并通过第二数据线(MISO)发送至所述主机(M)。

【技术实现步骤摘要】
基于串行外围设备接口总线的数据传输方法和系统
本专利技术涉及一种数据传输方法和系统,尤其涉及一种基于串行外围设备接口(SPI)总线的数据传输方法和系统。
技术介绍
串行外围设备接口SPI(serialperipheralinterface)总线(以下简称“串行总线”或“SPI”)技术是Motorola公司推出的一种同步串行接口,用于主机(例如CPU)与各从机(例如各种外围设备或器件)进行全双工、同步串行通讯,在速度、通用性及成本方面的优势明显,得到广泛应用。SPI可以同时发出和接收串行数据。它只需四条线就可以完成主机与各种外围器件的通讯,这四条线是:传输时钟线SCKL、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI、低电平有效从机选择线SSEL。图1显示了传统的SPI总线的工作时序图,其中SPI总线是串行工作的,通常是发送端在时钟的上升沿发送数据,接收端在下降沿采样数据,或者是发送端在时钟的下降沿发送数据,接收端在上升沿采样数据。这种设计非常有利于接收端利用时钟沿采样数据,尤其是小规模集成电路。但是,随着发送端和接收端(尤其是各种从机)日益复杂,接收端内部通常具有自身的时钟域,因此,由于涉及到SCK时钟域与接收端内部时钟域之间的异步信号的同步问题,SPI传输方案在目前的应用中(例如具有嵌入式CPU的芯片的应用中)通常不直接使用SCK的边沿来对数据信号作锁存,而采用对SCK采样来判断SCK的时钟边沿,并在相应的SCK时钟边沿来采样数据。随着对串行总线数据传输速率的要求日益提高,已经提出了各种提高串行总线传输速率的方案。其中,传统的提高串行总线传输速率的方案,是通过提高时钟频率或增加数据线宽度来完成的,然而,提高时钟速率会带来信号完整性问题,而增加数据线宽度则会占用更多引脚资源,均会给串行总线及其关联的系统的性能和成本带来不利影响。此外,在提高数据传输速率的前提下,如何在不增加额外的系统复杂度的情况下保证SCK时钟域与接收端内部时钟域之间的同步,也是需要解决的问题。因此,如何在保持串行总线时钟频率不变,数据宽度不变的前提下,提高总线传输速率,以及实现SCK时钟域与接收端内部时钟域之间的异步信号的同步,是目前亟待解决的问题。
技术介绍
部分公开的信息只是为了加强对本专利技术的一般背景的理解,不应看作是对该信息构成本领域技术人员已知的相关技术的提示或任何形式的暗示。
技术实现思路
本专利技术的目的在于,在保持串行总线时钟频率不变,数据宽度不变的前提下,提高总线传输速率,避免了提高时钟频率带来的信号完整性问题或增加数据线宽度带来的占用更多引脚资源问题。本专利技术的另一目的在于,在提高总线传输速率的基础上,保证SCK时钟域与接收端内部时钟域之间的异步信号的同步。为达此目的,根据本专利技术的一方面,提出了一种基于串行外围设备接口(SPI)总线的数据传输方法,该方法在主机(M)与从机(S)之间双向串行传输数据,其中所述主机(M)提供传输时钟(SCK),其特征在于,该方法包括:当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述主机(M)的输出数据并通过第一数据线(MOSI)发送至所述从机(S);以及当由所述从机(S)向所述主机(M)传输数据时,所述从机(S)接收由所述主机(M)提供的所述传输时钟(SCK),并利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述从机(S)的输出数据并通过第二数据线(MISO)发送至所述主机(M)。该方法通过利用串行总线的传输时钟(SCK)的前半周期和后半周期同时传输数据来提高串行总线的传输速率。优选地,当由所述主机(M)向所述从机(S)传输数据时,所述从机(S)判断所述传输时钟(SCK)的前半周期或后半周期是否到来,若是,则将从机的输入寄存器的数据更新为第一数据线(MOSI)上的当前数据,若否,则保持从机的输入寄存器的数据。也就是说,通过从机对传输时钟SCK的前半周期与后半周期分别进行判断,从而实现SCK时钟域与接收端内部时钟域之间的异步信号的同步。优选地,判断所述传输时钟(SCK)的前半周期或后半周期是否到来包括:判断所述传输时钟(SCK)的当前采样电平是否与前次采样电平相同,如果相同,则将第一数据线(MOSI)上的当前数据锁存到从机(S)的输入寄存器;如果不相同,则将从机(S)的输入寄存器的数据移出,并将第一数据线(MOSI)上的当前数据锁存到从机(S)的输入寄存器。优选地,当由所述主机(M)向所述从机(S)传输数据时,所述传输时钟(SCK)的前半周期和后半周期分别选通所述主机(M)中的输出寄存器的多位数据中的两路输出数据;以及当由所述从机(S)向所述主机(M)传输数据时,所述传输时钟(SCK)的前半周期和后半周期分别选通所述从机(S)的输出寄存器的多位数据中的两路输出数据。优选地,所述传输时钟(SCK)通过其上升沿和下降沿,或者其高电平和低电平交替选通所述主机或所述从机的输出数据。根据本专利技术的另一方面,提出了一种基于串行外围设备接口(SPI)总线的数据传输系统,该系统在主机(M)与从机(S)之间双向串行传输数据,其特征在于,该系统包括:主机(M);该主机(M)提供传输时钟(SCK);从机(S);第一数据线(MOSI),将所述主机(M)发送的数据传送至所述从机(S);第二数据线(MISO),将所述从机(S)发送的数据传送至所述主机(M);时钟传输线(SCKL),将所述主机(M)提供的所述传输时钟(SCK)传输至所述从机(S);其中当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述主机(M)的输出数据并通过所述第一数据线(MOSI)发送至所述从机(S);当由所述从机(S)向所述主机(M)传输数据时,所述从机(S)接收由所述主机(M)提供的所述传输时钟(SCK),并利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述从机(S)的输出数据并通过所述第二数据线(MISO)发送至所述主机(M)。优选地,所述主机(M)还包括第一选通器(MUX1),该第一选通器(MUX1)的两个输入端分别接收所述主机的两路输出数据,该第一选通器的输出端连接所述第一数据线(MOSI);其中,当由所述主机(M)向所述从机(S)传输数据时,所述传输时钟(SCK)的前半周期和后半周期交替选通所述第一选通器(MUX1)的两个输入端的数据至所述第一选通器的输出端。优选地,所述从机(S)还包括第二选通器(MUX2),该第二选通器(MUX2)的两个输入端分别接收所述从机(S)的两路输出数据,该第二选通器的输出端连接所述第二数据线(MISO);其中,当由所述从机(S)向所述主机(M)传输数据时,所述传输时钟(SCK)的前半周期和后半周期交替选通所述第二选通器(MUX2)的两个输入端的数据至所述第二选通器的输出端。优选地,当由所述主机(M)向所述从机(S)传输数据时,所述从机(S)判断所述传输时钟(SCK)的前半周期或后半周期是否到来,若是,则将从机的输入寄存器的数据更新为第一数据线(MOSI)上的当前数据,若否,则保持从机的输入寄存器的数据。优选地,判断所述传输时钟(SCK)的前本文档来自技高网
...
基于串行外围设备接口总线的数据传输方法和系统

【技术保护点】
一种基于串行外围设备接口(SPI)总线的数据传输方法,该方法在主机(M)与从机(S)之间双向串行传输数据,其中所述主机(M)提供传输时钟(SCK),其特征在于,该方法包括:当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述主机(M)的输出数据并通过第一数据线(MOSI)发送至所述从机(S);以及当由所述从机(S)向所述主机(M)传输数据时,所述从机(S)接收由所述主机(M)提供的所述传输时钟(SCK),并利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述从机(S)的输出数据并通过第二数据线(MISO)发送至所述主机(M)。

【技术特征摘要】
1.一种基于串行外围设备接口(SPI)总线的数据传输方法,该方法在主机(M)与从机(S)之间双向串行传输数据,其中所述主机(M)提供传输时钟(SCK),其特征在于,该方法包括:当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述主机(M)的输出数据并通过第一数据线(MOSI)发送至所述从机(S);以及当由所述从机(S)向所述主机(M)传输数据时,所述从机(S)接收由所述主机(M)提供的所述传输时钟(SCK),并利用所述传输时钟(SCK)的前半周期和后半周期交替选通所述从机(S)的输出数据并通过第二数据线(MISO)发送至所述主机(M);当由所述主机(M)向所述从机(S)传输数据时,所述从机(S)判断所述传输时钟(SCK)的前半周期或后半周期是否到来,若是,则将从机的输入寄存器的数据更新为第一数据线(MOSI)上的当前数据,若否,则保持从机的输入寄存器的数据。2.根据权利要求1所述的数据传输方法,其特征在于,判断所述传输时钟(SCK)的前半周期或后半周期是否到来包括:判断所述传输时钟(SCK)的当前采样电平是否与前次采样电平相同,如果相同,则将第一数据线(MOSI)上的当前数据锁存到从机(S)的输入寄存器;如果不相同,则将从机(S)的输入寄存器的数据移出,并将第一数据线(MOSI)上的当前数据锁存到从机(S)的输入寄存器。3.根据权利要求1所述的数据传输方法,其特征在于,当由所述主机(M)向所述从机(S)传输数据时,所述传输时钟(SCK)的前半周期和后半周期分别选通所述主机(M)中的输出寄存器的多位数据中的两路输出数据;以及当由所述从机(S)向所述主机(M)传输数据时,所述传输时钟(SCK)的前半周期和后半周期分别选通所述从机(S)的输出寄存器的多位数据中的两路输出数据。4.根据权利要求1-3中任意一项所述的数据传输方法,其特征在于,所述传输时钟(SCK)通过其上升沿和下降沿,或者其高电平和低电平交替选通所述主机或所述从机的输出数据。5.一种基于串行外围设备接口(SPI)总线的数据传输系统,该系统在主机(M)与从机(S)之间双向串行传输数据,其特征在于,该系统包括:主机(M);该主机(M)提供传输时钟(SCK);从机(S);第一数据线(MOSI),将所述主机(M)发送的数据传送至所述从机(S);第二数据线(MISO),将所述从机(S)发送的数据传送至所述主机(M);时钟传输线(SCKL),将所述主机(M)提供的所述传输时钟(SCK)传输至所述从机(S);其中当由所述主机(M)向所述从机(S)传输数据时,所述主机(M)利用所述传输时钟(SCK)的前半周期和后半周期交替选通...

【专利技术属性】
技术研发人员:焉逢运
申请(专利权)人:格科微电子上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1