CN102023945B - 基于串行外围设备接口总线的设备及其数据传输方法 - Google Patents
基于串行外围设备接口总线的设备及其数据传输方法 Download PDFInfo
- Publication number
- CN102023945B CN102023945B CN2009103074646A CN200910307464A CN102023945B CN 102023945 B CN102023945 B CN 102023945B CN 2009103074646 A CN2009103074646 A CN 2009103074646A CN 200910307464 A CN200910307464 A CN 200910307464A CN 102023945 B CN102023945 B CN 102023945B
- Authority
- CN
- China
- Prior art keywords
- slave
- main frame
- internal clocking
- data
- machine controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
一种基于串行外围设备接口总线的数据传输方法,该方法包括步骤:生成主机内部时钟;选择从机控制器;将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号发送给选择的从机控制器;将串行时钟信号二倍频生成从机内部时钟;分别对主机内部时钟及从机内部时钟计数;传输读/写操作控制符及目标地址;传输有效数据;及结束对从机控制器的选择。本发明能够实现高速率的数据传输,并且兼容现有技术的串行外围设备接口总线系统。
Description
技术领域
本发明涉及一种串行数据传输设备及其数据传输方法,特别是关于一种基于串行外围设备接口总线的设备及其数据传输方法。
背景技术
串行外围设备接口(Serial Peripheral Interface,SPI)是一种串行同步通讯接口。利用该接口,主设备(即主机)可以与一个或多个从设备(即从机)以串行方式进行数据传输。
传统的SPI总线系统基于主设备提供给从设备的串行时钟信号进行数据传输,每个串行时钟周期发送1比特数据。适当地提高串行时钟信号的频率,可以获得较高的数据传输速率。例如,当串行时钟信号频率为8MHz时,数据传输速率为8Mbps,当串行时钟信号频率提高到16MHz时,数据传输速率提高到16Mbps。然而,串行时钟信号的频率是受限的,不能任意提高。例如,为了保证信号完整性,最高串行时钟信号的频率为32MHz。相应地,传统的SPI总线系统的数据传输速率也受到了限制。例如,当最高串行时钟信号的频率为32MHz时,最高数据传输速率只能达到32Mbps。
另一方面,目前绝大多数的SPI总线系统使用的是传统的SPI总线,为了与传统的SPI总线系统进行数据传输,兼容性问题不容忽视。
发明内容
鉴于以上内容,有必要提供一种基于串行外围设备接口(SPI)总线的设备,能够实现高速率的数据传输,并且兼容现有技术的SPI总线系统。
此外,还有必要提供一种基于SPI总线的数据传输方法,能够实现高速率的数据传输,并且兼容现有技术的SPI总线系统。
一种基于SPI总线的主机控制器,可以与基于SPI总线的从机控制器进行数据传输,该主机控制器包括:主机时钟产生单元,用于生成主机内部时钟;从机选择单元,用于选择与主机控制器进行数据传输的从机控制器;主机时钟分频单元,用于将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号发送给选择的从机控制器;主机时钟计数单元,用于对主机内部时钟计数;主机地址缓冲区,用于缓存发送给选择的从机控制器的目标地址;主机输出数据缓冲区,用于缓存发送给选择的从机控制器的有效数据;主机输出控制逻辑单元,用于生成读/写操作控制符,从主机地址缓冲区读取发送给选择的从机控制器的目标地址,从主机输出数据缓冲区读取发送给选择的从机控制器的有效数据,并根据主机内部时钟及主机内部时钟计数值按照指定的顺序将读/写操作控制符、目标地址以及有效数据发送给选择的从机控制器,所述读/写操作控制符用于控制选择的从机控制器执行相应的读/写操作;及主机输入控制逻辑单元,用于根据主机内部时钟及主机内部时钟计数值接收选择的从机控制器发送来的有效数据,并将接收的有效数据缓存到主机输入数据缓冲区。
一种基于串行外围设备接口(SPI)总线的数据传输方法,用于在主机控制器与从机控制器之间进行数据传输,该方法包括步骤:主机控制器生成主机内部时钟;主机控制器选择进行数据传输的从机控制器;主机控制器将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号发送给选择的从机控制器;从机控制器将串行时钟信号二倍频生成从机内部时钟;主机控制器对主机内部时钟计数,从机控制器对从机内部时钟计数;主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送读/写操作控制符及目标地址,从机控制器根据从机内部时钟计数值以及从机内部时钟接收该读/写操作控制符及目标地址;与写操作控制符相对应地,主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送有效数据,从机控制器根据从机内部时钟计数值以及从机内部时钟接收有效数据并将该有效数据写入目的地址指定的存储单元,或者与读操作控制符相对应地,从机控制器从目标地址指定的存储单元读取有效数据,并根据从机内部时钟及从机内部时钟计数值将该有效数据按照指定的顺序发送给主机控制器,主机控制器根据主机内部时钟及主机内部时钟计数值接收该有效数据;及主机控制器结束对从机控制器的选择。
本发明将主机控制器及从机控制器的内部时钟的频率加倍,利用多个控制逻辑单元协调主机控制器与从机控制器之间的数据传输,每半个串行时钟周期传输1比特数据,实现了高速率的数据传输。并且,本发明支持单倍速的数据传输,以兼容现有技术的SPI总线系统。
附图说明
图1为串行外围设备接口总线系统较佳实施例的系统架构图。
图2为图1中主机控制器的细化架构图。
图3为图1中从机控制器的细化架构图。
图4为本发明基于串行外围设备接口总线的数据传输方法较佳实施例的示意图。
图5是以两倍速传输数据时连续执行两次写操作的示意图。
图6是以两倍速传输数据时连续执行两次读操作的示意图。
图7是以两倍速传输数据时先后执行一次写操作与一次读操作的示意图。
图8是以两倍速传输数据时先后执行一次读操作与一次写操作的示意图。
图9是以单倍速传输数据时执行写操作的示意图。
图10是以单倍速传输数据时执行读操作的示意图。
具体实施方式
参阅图1所示,是串行外围设备接口(Serial Peripheral Interface,SPI)总线系统较佳实施例的系统架构图。该SPI总线系统10包括主机控制器11及一个或者多个从机控制器,例如从机控制器12A-12D。主机控制器11与从机控制器12A-12D之间通过SPI总线13进行数据传输。所述SPI总线13包括串行时钟信号线14、主机输出/从机输入数据线15、主机输入/从机输出数据线16以及从机选择信号线17A-17D。所述串行时钟信号线14传输串行时钟信号(SCLK),所述主机输出/从机输入数据线15传输主机控制器11发送给从机控制器12A-12D的数据(MOSI),所述主机输入/从机输出数据线16传输从机控制器12A-12D发送给主机控制器11的数据(MISO),所述从机选择信号线17A-17D传输从机选择信号(/SS1-/SS4)。SPI总线系统10的工作方式包括写操作及读操作。主机控制器11拥有SPI总线控制的主动权,读、写操作都由主机控制器11发起。进行写操作时,主机控制器11将目标地址及有效数据发送给从机控制器12A-12D,从机控制器12A-12D将有效数据写入目标地址指定的存储单元。进行读操作时,主机控制器11将目标地址发送给从机控制器12A-12D,从机控制器12A-12D从目标地址指定的存储单元读取有效数据,并把有效数据返回给主机控制器11。
参阅图2所示,是图1中主机控制器11的细化架构图。所述主机控制器11包括主机时钟产生单元200、从机选择单元210、主机时钟分频单元220、主机时钟计数单元230、主机地址缓冲区240、主机输出数据缓冲区250、主机输入数据缓冲区260、主机输出控制逻辑单元270及主机输入控制逻辑单元280。
所述主机时钟产生单元200生成主机内部时钟,并将该主机内部时钟输出给从机选择单元210、主机时钟分频单元220、主机时钟计数单元230、主机输出控制逻辑单元270及主机输入控制逻辑单元280。主机内部时钟用于对从机选择单元210、主机时钟分频单元220、主机时钟计数单元230、主机输出控制逻辑单元270及主机输入控制逻辑单元280输出的信号进行同步。在本实施例中,主机时钟产生单元200根据外部电路(例如外部的晶振电路)提供的系统时钟生成主机内部时钟。例如,假设外部的晶振电路提供的系统时钟的频率为16MHz,主机控制器11需要64MHz的主机内部时钟,则主机时钟产生单元200将系统时钟四倍频,从而生成64MHz的主机内部时钟。
所述从机选择单元210产生从机选择信号并由从机选择信号线17A-17D发送给从机控制器12A-12D,以指示从机控制器12A-12D是否与主机控制器11进行数据传输。具体而言,当主机控制器11与从机控制器12A、12B、12C或12D进行数据传输时,从机选择单元210将相应的从机选择信号置为有效,当数据传输完毕后,从机选择单元210将相应的从机选择信号置为无效。在本实施例中,主机控制器11发送给从机控制器12A、12B、12C及12D的从机选择信号分别是/SS1、/SS2、/SS3及/SS4。假设从机选择信号低电平有效,若主机控制器11选择与从机控制器12B进行数据传输,则从机选择单元210将/SS2置为低电平,将/SS1、/SS3及/SS4置为高电平。当主机控制器11与从机控制器12B的数据传输完毕后,从机选择单元200将从机选择信号/SS2置为高电平。在本实施例中,从机选择单元200根据外部设备(例如处理器)提供的选择控制信号产生从机选择信号/SS1、/SS2、/SS3及/SS4。
所述主机时钟分频单元220将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号由串行时钟信号线14发送给从机控制器12A-12D。显然地,主机内部时钟的频率是串行时钟信号的二倍。
所述主机时钟计数单元230对主机内部时钟计数,并将主机内部时钟计数值输出给从机选择单元210、主机输出控制逻辑单元270及主机输入控制逻辑单元280。从机选择单元210根据主机时钟计数单元230的主机内部时钟计数值判断是否数据传输完毕。例如,假设需要在主机控制器11与从机控制器12之间传输32比特数据,每个主机内部时钟周期传输1比特数据,并且每经过一个主机内部时钟周期将主机内部时钟计数值加1,若主机时钟计数单元230从0开始计数,则计数到31时表明数据传输完毕。主机时钟计数单元230可以设置为每经过一个主机内部时钟周期将主机内部时钟计数值加1,或者每经过两个主机内部时钟周期将主机内部时钟计数值加1,从而控制主机控制器11与从机控制器12的数据传输速率。具体而言,当需要以两倍速(即为串行时钟信号频率两倍的速率)传输数据时,主机时钟计数单元230每经过一个主机内部时钟周期将主机内部时钟计数值加1;当需要以单倍速(即与串行时钟信号频率相同的速率)传输数据时,主机时钟计数单元230每经过两个主机内部时钟周期将主机内部时钟计数值加1。在本实施例中,主机时钟计数单元230根据外部设备提供的计数方式控制信号设置其工作方式。例如,当计数方式控制信号为1时,每经过两个主机内部时钟周期主机时钟计数单元230将主机内部时钟计数值加1;当计数方式控制信号为0时,每经过1个主机内部时钟周期主机时钟计数单元230将主机内部时钟计数值加1。
所述主机地址缓冲区240提供存储空间,缓存发送给从机控制器12A-12D的目标地址;所述主机输出数据缓冲区250提供存储空间,缓存发送给从机控制器12A-12D的有效数据。在本实施例中,主机地址缓冲区240接收外部设备提供的有效数据,主机输出数据缓冲区250接收外部设备提供的目标地址。进一步地,主机地址缓冲区240利用两条地址总线接收外部设备提供的目标地址,主机输出数据缓冲区250利用两条数据总线接收外部设备提供的有效数据。
所述主机输出控制逻辑单元270生成读/写操作控制符,从主机地址缓冲区240读取发送给从机控制器12A-12D的目标地址,从主机输出数据缓冲区250读取发送给从机控制器12A-12D的有效数据,并根据主机内部时钟及主机内部时钟计数值按照指定的顺序将读/写操作控制符、目标地址以及有效数据由主机输出/从机输入数据线15发送给从机控制器12A-12D。对于写操作,主机输出控制逻辑单元270生成写操作控制符;对于读操作,主机输出控制逻辑单元270生成读操作控制符。主机输出控制逻辑单元270在主机内部时钟的跳变沿发送数据。例如,在每个主机内部时钟的上升沿发送1比特数据。或者,在每个主机内部时钟的下降沿发送1比特数据。
所述主机输入控制逻辑单元280根据主机内部时钟及主机内部时钟计数值接收从机控制器12A 12D由主机输入/从机输出数据线16发送的有效数据,并将接收的有效数据缓存到主机输入数据缓冲区260。主机输入控制逻辑单元280在主机内部时钟的跳变沿接收数据。例如,在每个主机内部时钟的上升沿接收1比特数据。或者,在每个主机内部时钟的下降沿接收1比特数据。
在本实施例中,主机输出控制逻辑单元270及主机输入控制逻辑单元280根据外部设备提供的读/写控制信号执行读/写操作。当收到写控制信号时,主机输出控制逻辑单元270生成写操作控制符,并将写操作控制符、目标地址及有效数据发送给从机控制器12A-12D;当收到读控制信号时,主机输出控制逻辑单元270生成读操作控制符,并将读操作控制符、目标地址发送给从机控制器12A-12D,主机输入控制逻辑单元280接收从机控制器12A-12D返回的有效数据并缓存到主机输入数据缓冲区260。
参阅图3所示,是图1中的从机控制器的细化架构图。从机控制器12A-12D包括从机时钟倍频单元300、从机时钟计数单元310、从机输入控制逻辑单元320、从机输出控制逻辑单元330、从机地址缓冲区340、从机输入数据缓冲区350、从机输出数据缓冲区360、从机操作控制逻辑单元370及从机目标存储器380。
所述从机时钟倍频单元300由串行时钟信号线14接收主机控制器发送的串行时钟信号,将该串行时钟信号二倍频生成从机内部时钟,并将该从机内部时钟输出给从机时钟计数单元310、从机输入控制逻辑单元320及从机输出控制逻辑单元330。与主机内部时钟相类似地,从机内部时钟用于对从机时钟计数单元310、从机输入控制逻辑单元320及从机输出控制逻辑单元330输出的信号进行同步。从机内部时钟的频率是串行时钟信号的二倍。在本实施例中,从机时钟倍频单元300采用锁相环电路将串行时钟信号二倍频。所述锁相环电路接收外部电路提供的系统时钟作为参考时钟。
所述从机时钟计数单元310由从机选择信号线17A-17D接收主机控制器11发送的从机选择信号,当从机选择信号有效时,对从机内部时钟计数,并将从机内部时钟计数值输出给从机输入控制逻辑单元320及从机输出控制逻辑单元330。
所述从机输入控制逻辑单元320根据从机内部时钟及从机内部时钟计数值由主机输出/从机输入数据线15接收主机控制器11发送的读/写操作控制符、目标地址及有效数据,将接收的目标地址缓存到从机地址缓冲区340,将接收的有效数据缓存到从机输入数据缓冲区350,并根据接收的读/写操作控制符产生相应的读/写操作控制信号并输出给从机操作控制逻辑单元370。若收到写操作控制符,则从机输入控制逻辑单元320产生写操作控制信号;或者若收到读操作控制符,则从机输入控制逻辑单元320产生读操作控制信号。从机输入逻辑控制逻辑单元320在从机内部时钟的跳变沿接收数据。例如,在每个从机内部时钟的上升沿接收1比特数据。或者,在每个从机内部时钟的下降沿接收1比特数据。
所述从机操作控制逻辑单元370根据接收的读/写操作控制信号执行相应的操作。具体而言,当收到写操作控制信号时,从机操作控制逻辑单元370读取从机地址缓冲区340缓存的目标地址以及从机输入数据缓冲区350缓存的有效数据,并将有效数据存储到从机目标存储器380的目标地址所指定的存储单元;或者当收到读操作控制信号时,从机操作控制逻辑单元370读取从机地址缓冲区340缓存的目标地址,从目标地址所指定的存储单元中读取有效数据,并将该有效数据缓存到从机输出数据缓冲区360。在本实施例中,从机操作控制逻辑单元370通过两条地址总线与从机地址缓冲区340相连,通过两条输入数据总线与从机输入数据缓冲区350相连,通过两条输出数据总线与从机输出数据缓冲区360相连。若以两倍速传输数据,从机操作控制逻辑单元370利用两条地址总线、两条输入数据总线及两条输出数据总线进行数据传输。若以单倍速传输数据,从机操作控制逻辑单元370利用其中一条地址总线、一条输入数据总线及一条输出数据总线进行数据传输。
所述从机输出控制逻辑单元330读取从机输出数据缓冲区360缓存的有效数据,并根据从机内部时钟及从机内部时钟计数值由主机输入/从机输出数据线16将读取的有效数据按照指定的顺序发送给主机控制器11。从机输出控制逻辑单元330在从机内部时钟的跳变沿发送数据。例如,在每个从机内部时钟的上升沿发送1比特数据。或者,在每个从机内部时钟的下降沿发送1比特数据。
参阅图4所示,是本发明基于串行外围设备接口(SPI)总线的数据传输方法较佳实施例的流程图。以下以图1中的主机控制器11与从机控制器12B的数据传输为例进行说明。
步骤S401,主机时钟产生单元200生成主机内部时钟,并将该主机内部时钟输出给从机选择单元210、主机时钟分频单元220、主机时钟计数单元230、主机输出控制逻辑单元270及主机输入控制逻辑单元280。主机内部时钟用于对从机选择单元210、主机时钟分频单元220、主机时钟计数单元230、主机输出控制逻辑单元270及主机输入控制逻辑单元280输出的信号进行同步。在本实施例中,主机时钟产生单元200根据外部电路(例如外部的晶振电路)提供的系统时钟生成主机内部时钟。例如,假设外部的晶振电路提供的系统时钟的频率为16MHz,主机控制器11需要64MHz的主机内部时钟,则主机时钟产生单元200将系统时钟四倍频,从而生成64MHz的主机内部时钟。
步骤S402,从机选择单元210将由从机选择信号线17B发送给从机控制器12B的从机选择信号/SS2置为有效。假设从机选择信号低电平有效,则从机选择单元210将/SS2置为低电平。
步骤S403,主机时钟分频单元220将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号由串行时钟信号线14发送给从机控制器12B。如前所述,主机内部时钟的频率是串行时钟信号的二倍。
步骤S404,从机控制器12B的从机时钟倍频单元300将串行时钟信号二倍频生成从机内部时钟,并将该从机内部时钟输出给从机时钟计数单元310、从机输入控制逻辑单元320及从机输出控制逻辑单元330。如前所述,从机内部时钟的频率与主机内部时钟相同,均是串行时钟信号的二倍。在本实施例中,从机时钟倍频单元300采用锁相环电路将串行时钟信号二倍频。所述锁相环电路接收外部电路提供的系统时钟作为参考时钟。
步骤S405,主机时钟计数单元230对主机内部时钟计数,并将主机内部时钟计数值输出给从机选择单元210、主机输出控制逻辑单元270及主机输入控制逻辑单元280;从机时钟计数单元310对从机内部时钟计数,并将从机内部时钟计数值输出给从机输入控制逻辑单元320及从机输出控制逻辑单元330。其中,主机时钟计数单元230可以设置为每经过一个主机内部时钟周期将主机内部时钟计数值加1,或者每经过两个主机内部时钟周期将主机内部时钟计数值加1,从而控制主机控制器11与从机控制器12的数据传输速率。具体而言,当需要以两倍速(即为串行时钟信号频率两倍的速率)传输数据时,主机时钟计数单元230每经过一个主机内部时钟周期将主机内部时钟计数值加1;当需要以单倍速(即与串行时钟信号频率相同的速率)传输数据时,主机时钟计数单元230每经过两个主机内部时钟周期将主机内部时钟计数值加1。
步骤S406,主机控制器11与从机控制器12B之间传输读/写操作控制符及目标地址。具体来说,主机输出控制逻辑单元270生成读/写操作控制符,从主机地址缓冲区240读取发送给从机控制器12B的目标地址,根据主机内部时钟及主机内部时钟计数值将读/写操作控制符及目标地址按照指定的顺序由主机输出/从机输入数据线15发送给从机控制器12B;从机输入控制逻辑单元320根据从机内部时钟及从机内部时钟计数值接收主机控制器11发送的读/写操作控制符及目标地址,将接收的目标地址缓存到从机地址缓冲区340,将接收的有效数据缓存到从机输入数据缓冲区350,并根据接收的读/写操作控制符产生读/写操作控制信号并输出给从机操作控制逻辑单元370。例如,主机输出控制逻辑单元270在主机内部时钟计数值为0或1时发送1比特的读/写操作控制符,在主机内部时钟计数值为2、3、…、或15时发送1比特的目标地址。从机输入控制逻辑单元320在从机内部时钟计数值为0或1时接收1比特的读/写操作控制符,在从机内部时钟计数值为2、3、…、或15时接收1比特的目标地址。并且,主机输出控制逻辑单元270在主机内部时钟的跳变沿发送数据,从机输入控制逻辑单元320在从机内部时钟的跳变沿接收数据。
步骤S407,主机控制器11与从机控制器12B之间传输有效数据。在该步骤中,对于写操作(此时从机输入控制逻辑单元320发送写操作控制信号至从机操作控制逻辑单元370),主机输出控制逻辑单元270从主机输出数据缓冲区250读取发送给从机控制器12B的有效数据,并根据主机时钟计数单元230的主机内部时钟及主机内部时钟计数值将有效数据按照指定的顺序由主机输出/从机输入数据线15发送给从机控制器12B;从机输入控制逻辑单元320根据从机内部时钟及从机内部时钟计数值接收有效数据,从机操作控制逻辑单元370根据写操作控制信号将接收的有效数据写入目标地址指定的从机目标存储器380的存储单元。对于读操作(此时从机输入控制逻辑单元320发送读操作控制信号至从机操作控制逻辑单元370),从机操作控制逻辑单元370根据读操作控制信号从目标地址指定的从机目标存储器380的存储单元读取有效数据并缓存到从机输出数据缓冲区360,从机输出控制逻辑单元330读取该有效数据,并根据从机内部时钟及从机内部时钟计数值将该有效数据按照指定的顺序由主机输入/从机输出数据线16发送给主机控制器11;主机输入控制逻辑单元280根据主机内部时钟及主机内部时钟计数值接收从机输出控制逻辑单元330发送的有效数据,并将接收的有效数据缓存到主机输入数据缓冲区260。其中,从机输出控制逻辑单元330在从机内部时钟的跳变沿发送数据。主机输入控制逻辑单元在主机内部时钟的跳变沿接收数据。
需要说明的是,从机操作控制逻辑单元370支持单倍速的数据传输,也支持两倍速的数据传输。
步骤S408,主机控制器11与从机控制器12B数据传输完毕后,从机选择单元200将从机选择信号/SS2置为无效,例如将/SS2置为高电平。在本实施例中,从机选择单元210根据主机时钟计数单元230的主机内部时钟计数值判断主机控制器11与从机控制器12B数据传输是否完毕。例如,假设需要在主机控制器11与从机控制器12之间传输32比特数据,每个主机内部时钟周期传输1比特数据,并且每经过一个主机内部时钟周期将主机内部时钟计数值加1,若主机时钟计数单元230从0开始计数,则计数到31时表明数据传输完毕。
图5至图8是以两倍速传输数据的示意图。其中,SCLK表示串行时钟信号,2×SCLK表示主机内部时钟,/SS2表示从机控制器12B的从机选择信号,MOSI表示主机输出/从机输入数据线15上的数据,MISO表示主机输入/从机输出数据线16上的数据。
图5至图8所示的例子中,采用交错传输的方式进行数据传输,每次传输两个有效数据,每个有效数据是8比特,每个有效数据对应的目标地址是7比特,每个有效数据对应1比特的读/写操作控制符。其中,第一个有效数据(以下称第一有效数据)为D0,其对应的第一目标地址为A0,第一有效数据的各个比特从低到高为D00、D01、D02、D03、D04、D05、D06、D07,第一目标地址的各个比特从低到高为A00、A01、A02、A03、A04、A05、A06、A07。第二个有效数据(以下称第二有效数据)为D1,其对应的第二目标地址为A1,第二有效数据的各个比特从低到高为D10、D11、D12、D13、D14、D15、D16、D17,第二目标地址的各个比特从低到高为A10、A11、A12、A13、A14、A15、A16、A17。由图5至图8可知,主机控制器11与从机控制器12B之间首先传输两个读/写操作控制符,然后传输两个目标地址,最后传输两个有效数据,并且按照从低到高的顺序传输目标地址及有效数据的各个比特。其中,目标地址的发送顺序为:A00、A10、A01、A11、A02、A12、A03、A13、A04、A14、A05、A15、A06、A16,有效数据的发送顺序为:D00、D10、D01、D11、D02、D12、D03、D13、D04、D14、D05、D15、D06、D16、D06、D16。
具体来说,图5是连续执行两次写操作的示意图。首先传输写操作控制符/W0与/W1,然后传输目标地址A0与A1,最后传输有效数据D0与D1。并且,写操作控制符/W0与/W1、目标地址A0与A1以及有效数据D0与D1均由主机输出/从机输入数据线15传输,有效数据由主机输入/从机输入数据线传输。
图6是连续执行两次读操作的示意图。首先传输读操作控制符R0与R1,然后传输目标地址A0与A1,最后传输有效数据D0与D1。并且,读操作控制符R0与R1以及目标地址A0与A1由主机输出/从机输入数据线15传输,有效数据D0与D1由主机输入/从机输入数据线传输。
图7是先后执行一次写操作及一次读操作的示意图。首先传输写操作控制符/W0与读操作控制符R1,然后传输目标地址A0与A1,最后传输有效数据D0与D1。并且,写操作控制符/W0、读操作控制符R1、目标地址A0与A1以及有效数据D0由主机输出/从机输入数据线15传输,有效数据D1由主机输入/从机输入数据线传输。
图8是先后执行一次读操作及一次写操作的示意图。首先传输读操作控制符R0与写操作控制符/W1,然后传输目标地址A0与A1,最后传输有效数据D0与D1。并且,读操作控制符R0与写操作控制符/W1、目标地址A0与A1及有效数据D1由主机输出/从机输入数据线15传输,有效数据D0由主机输入/从机输入数据线传输。
应当可以理解,若SPI总线系统10以单倍速传输数据,则按照图9所示执行写操作,按照图10所示执行读操作。
利用本发明,SPI总线系统10可以每半个串行时钟信号周期传输1比特数据,相对于现有技术中的SPI总线系统实现了更高的数据传输速率。例如,若最高串行时钟信号的频率是32MHz,现有技术的SPI总线系统只能达到最高32Mbps的数据传输速率,而本发明的SPI总线系统10可以达到最高64Mbps的数据传输速率。并且,主机控制器11以及从机控制器12A-12D均支持单倍速的数据传输,以兼容现有技术的SPI总线系统。
Claims (10)
1.一种基于串行外围设备接口(SPI)总线的主机控制器,可以与基于SPI总线的从机控制器进行数据传输,其特征在于,该主机控制器包括:主机时钟产生单元、从机选择单元、主机时钟分频单元、主机时钟计数单元、主机地址缓冲区、主机输出数据缓冲区、主机输出控制逻辑单元、主机输入控制逻辑单元及主机输入数据缓冲区,其中:
所述主机时钟产生单元,用于生成主机内部时钟;
所述从机选择单元,用于选择与主机控制器进行数据传输的从机控制器;
所述主机时钟分频单元,用于将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号发送给选择的从机控制器;
所述主机时钟计数单元,用于对主机内部时钟计数;
所述主机地址缓冲区,用于缓存发送给选择的从机控制器的目标地址;
所述主机输出数据缓冲区,用于缓存发送给选择的从机控制器的有效数据;
所述主机输出控制逻辑单元,用于生成读/写操作控制符,从所述主机地址缓冲区读取发送给选择的从机控制器的目标地址,从所述主机输出数据缓冲区读取发送给选择的从机控制器的有效数据,并根据主机内部时钟及主机内部时钟计数值按照指定的顺序将读/写操作控制符、目标地址以及有效数据发送给选择的从机控制器,所述读/写操作控制符用于控制选择的从机控制器执行相应的读/写操作;及
所述主机输入控制逻辑单元,用于根据主机内部时钟及主机内部时钟计数值接收选择的从机控制器发送来的有效数据,并将接收的有效数据缓存到所述主机输入数据缓冲区。
2.如权利要求1所述的基于串行外围设备接口(SPI)总线的主机控制器,其特征在于,所述主机时钟计数单元在以两倍速传输数据时每经过一个主机内部时钟周期将主机内部时钟计数值加1,在以单倍速传输数据时每经过两个主机内部时钟周期将主机内部时钟计数值加1。
3.如权利要求1所述的基于串行外围设备接口(SPI)总线的主机控制器,其特征在于,所述主机输出控制逻辑单元采用交错传输的方式发送读/写操作控制符、目标地址以及有效数据。
4.如权利要求1所述的基于串行外围设备接口(SPI)总线的主机控制器,其特征在于,所述从机选择单元根据主机时钟计数单元的主机内部时钟计数值判断是否数据传输完毕,若数据传输完毕,则结束对从机控制器的选择。
5.一种基于串行外围设备接口(SPI)总线的从机控制器,可以与基于SPI总线的主机控制器进行数据传输,其特征在于,该从机控制器包括:从机时钟倍频单元、从机时钟计数单元、从机输入控制逻辑单元、从机输出控制逻辑单元、从机地址缓冲区、从机输入数据缓冲区、从机输出数据缓冲区、从机操作控制逻辑单元及从机目标存储器,其中:
所述从机时钟倍频单元,用于接收主机控制器发送来的串行时钟信号,将该串行时钟信号二倍频生成从机内部时钟;
所述从机时钟计数单元,用于当主机控制器选择与该从机控制器进行数据传输时,对从机内部时钟计数;
所述从机输入控制逻辑单元,用于根据从机内部时钟及从机内部时钟计数值接收主机控制器发送的读/写操作控制符、目标地址及有效数据,将接收的目标地址缓存到所述从机地址缓冲区,将接收的有效数据缓存到所述从机输入数据缓冲区,并根据接收的读/写操作控制符产生相应的读/写操作控制信号;
所述从机操作控制逻辑单元,用于当收到写操作控制信号时,读取所述从机地址缓冲区缓存的目标地址以及所述从机输入数据缓冲区缓存的有效数据,并将有效数据存储到所述从机目标存储器的目标地址所指定的存储单元;或者当收到读操作控制信号时,读取所述从机地址缓冲区缓存的目标地址,从目标地址指定的存储单元中读取有效数据,并将该有效数据缓存到所述从机输出数据缓冲区;及
所述从机输出控制逻辑单元,用于读取所述从机输出数据缓冲区缓存的有效数据,并根据从机内部时钟及从机内部时钟计数值将读取的有效数据按照指定的顺序发送给主机控制器。
6.一种基于串行外围设备接口(SPI)总线的数据传输方法,用于在主机控制器与从机控制器之间进行数据传输,其特征在于,该方法包括步骤:
主机控制器生成主机内部时钟;
主机控制器选择进行数据传输的从机控制器;
主机控制器将主机内部时钟二分频生成串行时钟信号,并将该串行时钟信号发送给选择的从机控制器;
从机控制器将串行时钟信号二倍频生成从机内部时钟;
主机控制器对主机内部时钟计数,从机控制器对从机内部时钟计数;
主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送读/写操作控制符及目标地址,从机控制器根据从机内部时钟计数值以及从机内部时钟接收该读/写操作控制符及目标地址;
与写操作控制符相对应地,主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送有效数据,从机控制器根据从机内部时钟计数值以及从机内部时钟接收有效数据并将该有效数据写入目的地址指定的存储单元,或者与读操作控制符相对应地,从机控制器从目标地址指定的存储单元读取有效数据,并根据从机内部时钟及从机内部时钟计数值将该有效数据按照指定的顺序发送给主机控制器,主机控制器根据主机内部时钟及主机内部时钟计数值接收该有效数据;及
主机控制器结束对从机控制器的选择。
7.如权利要求6所述的基于串行外围设备接口(SPI)总线的数据传输方法,其特征在于,所述主机控制器对主机内部时钟计数的步骤中,主机控制器在以两倍速传输数据时每经过一个主机内部时钟周期将主机内部时钟计数值加1,在以单倍速传输数据时每经过两个主机内部时钟周期将主机内部时钟计数值加1。
8.如权利要求6所述的基于串行外围设备接口(SPI)总线的数据传输方法,其特征在于,所述主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送读/写操作控制符及目标地址的步骤中,主机控制器采用交错传输的方式发送读/写操作控制符及目标地址,所述主机控制器根据主机内部时钟计数值以及主机内部时钟按照指定的顺序发送有效数据的步骤中,主机控制器采用交错传输的方式发送有效数据。
9.如权利要求6所述的基于串行外围设备接口(SPI)总线的数据传输方法,其特征在于,所述主机控制器结束对从机控制器的选择的步骤中,主机控制器根据主机内部时钟计数值判断是否数据传输完毕,若数据传输完毕,则结束对从机控制器的选择。
10.如权利要求6所述的基于串行外围设备接口(SPI)总线的数据传输方法,其特征在于,所述从机控制器将串行时钟信号二倍频生成从机内部时钟的步骤中,从机控制器采用锁相环电路将串行时钟信号二倍频。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103074646A CN102023945B (zh) | 2009-09-22 | 2009-09-22 | 基于串行外围设备接口总线的设备及其数据传输方法 |
US12/731,149 US8151134B2 (en) | 2009-09-22 | 2010-03-25 | SPI devices and method for transferring data between the SPI devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103074646A CN102023945B (zh) | 2009-09-22 | 2009-09-22 | 基于串行外围设备接口总线的设备及其数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023945A CN102023945A (zh) | 2011-04-20 |
CN102023945B true CN102023945B (zh) | 2012-03-28 |
Family
ID=43757657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009103074646A Expired - Fee Related CN102023945B (zh) | 2009-09-22 | 2009-09-22 | 基于串行外围设备接口总线的设备及其数据传输方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8151134B2 (zh) |
CN (1) | CN102023945B (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4483891B2 (ja) * | 2007-04-02 | 2010-06-16 | フェリカネットワークス株式会社 | 情報処理端末、データ移動方法、およびプログラム |
US20110078350A1 (en) * | 2009-09-30 | 2011-03-31 | Via Technologies, Inc. | Method for generating multiple serial bus chip selects using single chip select signal and modulation of clock signal frequency |
TW201216063A (en) * | 2010-10-08 | 2012-04-16 | Asix Electronic Corp | Hybrid serial peripheral interface data transmission architecture and method of the same |
KR20120055034A (ko) * | 2010-11-22 | 2012-05-31 | 삼성전자주식회사 | 휴대용 단말기에서 에스피아이를 이용한 주변 기기 연결 장치 및 데이터 전송 방법 |
US9128726B2 (en) * | 2011-12-14 | 2015-09-08 | General Electric Company | Systems and methods for interfacing master and slave processors |
CN103377170B (zh) * | 2012-04-26 | 2015-12-02 | 上海宝信软件股份有限公司 | 异构处理器间spi高速双向对等数据通信系统 |
CN104350700B (zh) * | 2012-05-29 | 2017-05-31 | 飞思卡尔半导体公司 | 用于串行通信设备的时钟 |
US9411770B2 (en) * | 2012-07-10 | 2016-08-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Controlling a plurality of serial peripheral interface (‘SPI’) peripherals using a single chip select |
CN103678209B (zh) * | 2012-09-18 | 2017-03-15 | 格科微电子(上海)有限公司 | 基于串行外围设备接口总线的数据传输方法和系统 |
US20140115229A1 (en) * | 2012-10-19 | 2014-04-24 | Lsi Corporation | Method and system to reduce system boot loader download time for spi based flash memories |
US8904078B2 (en) | 2012-10-22 | 2014-12-02 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | High speed serial peripheral interface system |
CN103838692A (zh) * | 2012-11-27 | 2014-06-04 | 安凯(广州)微电子技术有限公司 | 一种从数字图像传感器读取数据的方法、主控设备与系统 |
DE102013226765A1 (de) * | 2013-06-05 | 2014-12-11 | Continental Teves Ag & Co. Ohg | Verfahren zur Datenkommunikation, Kommunikationscontroller und Schaltungsanordnung |
US8854096B1 (en) * | 2013-10-24 | 2014-10-07 | Analog Devices Technology | System and method of clock generation in high speed serial communication |
US11310075B2 (en) | 2014-04-02 | 2022-04-19 | Aten International Co., Ltd. | Asymmetric duplex transmission device and switching system thereof |
CN104978293B (zh) * | 2014-04-02 | 2018-05-29 | 宏正自动科技股份有限公司 | 非对称双向传输装置及其切换系统 |
CN105677599A (zh) * | 2014-11-19 | 2016-06-15 | 中兴通讯股份有限公司 | 主机、主机管理从机的方法及系统 |
CN105808492B (zh) * | 2014-12-30 | 2019-04-23 | 联想(北京)有限公司 | 一种信息处理方法及串行外围设备接口主控制器 |
US10055376B1 (en) * | 2015-01-15 | 2018-08-21 | Maxim Integrated Products, Inc. | Serial peripheral interface system with slave expander |
CN104850527B (zh) * | 2015-06-12 | 2017-11-03 | 中国电子科技集团公司第四十七研究所 | 通讯协议处理器 |
CN105389278B (zh) * | 2015-10-13 | 2018-06-12 | 广东聚光电子科技有限公司 | 一种基于can总线的主从机串行通信方法 |
CN105512071B (zh) * | 2015-12-07 | 2018-04-03 | 上海兆芯集成电路有限公司 | 高速数据接口主机端控制器 |
CN105550134B (zh) * | 2015-12-07 | 2018-04-03 | 上海兆芯集成电路有限公司 | 高速数据接口主机端控制器 |
CN107346294B (zh) * | 2016-05-04 | 2020-11-20 | 上海商米科技集团股份有限公司 | 基于spi协议的数据流控系统及方法 |
TWI581104B (zh) * | 2016-05-11 | 2017-05-01 | 廣達電腦股份有限公司 | 主控元件以及資料傳輸方法 |
US10324889B2 (en) | 2016-08-07 | 2019-06-18 | Demand Peripherals, Inc. | System and method to tolerate ringing on a serial data bus |
US11567893B2 (en) * | 2016-12-21 | 2023-01-31 | Centre For Development Of Telematics (C-Dot) | Method and a mirrored serial interface (MSI) for transferring data |
TWI690806B (zh) * | 2017-05-22 | 2020-04-11 | 義隆電子股份有限公司 | 串列周邊介面之資料傳送裝置與資料接收裝置 |
TW201915818A (zh) * | 2017-10-05 | 2019-04-16 | 香港商印芯科技股份有限公司 | 光學識別模組 |
CN108111426B (zh) * | 2017-12-14 | 2021-06-08 | 迈普通信技术股份有限公司 | 带有同步串口的通讯装置、同步串口带宽同步系统及方法 |
CN109684245B (zh) * | 2018-12-11 | 2022-05-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种apb总线访问spi flash的方法及装置 |
KR102235290B1 (ko) * | 2019-01-24 | 2021-04-02 | (주)실리콘인사이드 | 캐스케이드 연결 구조의 호스트와 슬레이브 장치 |
CN110673524B (zh) * | 2019-09-27 | 2020-09-22 | 安凯(广州)微电子技术有限公司 | 一种高速spi主模式控制器 |
CN113138623B (zh) * | 2020-01-20 | 2024-10-11 | 南京深视光点科技有限公司 | 全局时钟同步传输方法 |
US11626149B2 (en) | 2020-09-15 | 2023-04-11 | Integrated Silicon Solution, (Cayman) Inc. | SPI NOR memory with optimized read and program operation |
EP3968332A1 (en) * | 2020-09-15 | 2022-03-16 | Integrated Silicon Solution, (Cayman) Inc. | Spi nor memory with optimized read and program operation |
CN113722262A (zh) * | 2021-10-11 | 2021-11-30 | 湖南航天经济发展有限公司 | 一种片内高带宽总线的片间串行桥接方法 |
TWI833207B (zh) * | 2022-04-26 | 2024-02-21 | 新唐科技股份有限公司 | 用於匯流排系統的主裝置中的時脈頻率選擇裝置與方法 |
TWI812194B (zh) * | 2022-04-27 | 2023-08-11 | 凌通科技股份有限公司 | 序列周邊介面相容性擴展切換方法與使用其之嵌入式系統 |
CN114911736A (zh) * | 2022-05-06 | 2022-08-16 | 杭州中科微电子有限公司 | 一种主从机系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588337A (zh) * | 2004-09-15 | 2005-03-02 | 北京中星微电子有限公司 | 串行通信总线外部设备接口 |
US7467251B2 (en) * | 2004-12-17 | 2008-12-16 | Samsung Electronics Co., Ltd. | Flash memory data storage apparatus |
CN101324875A (zh) * | 2007-06-11 | 2008-12-17 | 大唐移动通信设备有限公司 | 一种扩展i2c总线的方法及i2c总线扩展装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687769B2 (en) * | 2001-03-16 | 2004-02-03 | Texas Instruments Incorporated | Serial peripheral interface with high performance buffering scheme |
US7606952B2 (en) * | 2006-11-06 | 2009-10-20 | Elite Semiconductor Memory Technology, Inc. | Method for operating serial flash memory |
CN102023942B (zh) * | 2009-09-09 | 2012-10-10 | 鸿富锦精密工业(深圳)有限公司 | Spi外设访问装置及方法 |
-
2009
- 2009-09-22 CN CN2009103074646A patent/CN102023945B/zh not_active Expired - Fee Related
-
2010
- 2010-03-25 US US12/731,149 patent/US8151134B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588337A (zh) * | 2004-09-15 | 2005-03-02 | 北京中星微电子有限公司 | 串行通信总线外部设备接口 |
US7467251B2 (en) * | 2004-12-17 | 2008-12-16 | Samsung Electronics Co., Ltd. | Flash memory data storage apparatus |
CN101324875A (zh) * | 2007-06-11 | 2008-12-17 | 大唐移动通信设备有限公司 | 一种扩展i2c总线的方法及i2c总线扩展装置 |
Also Published As
Publication number | Publication date |
---|---|
US8151134B2 (en) | 2012-04-03 |
US20110072297A1 (en) | 2011-03-24 |
CN102023945A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023945B (zh) | 基于串行外围设备接口总线的设备及其数据传输方法 | |
CN109857685B (zh) | 一种mpu与fpga扩展多串口的实现方法 | |
CN102760111B (zh) | 一种基于fpga的扩展多串口装置及其数据收发方法 | |
CN103064805B (zh) | Spi控制器及通信方法 | |
WO2023284169A1 (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
EP2116938B1 (en) | Operation apparatus and control method | |
CN201063161Y (zh) | 串行外围接口主设备 | |
CN103116175A (zh) | 基于dsp和fpga的嵌入式导航信息处理器 | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
CN1570907B (zh) | 多处理器系统 | |
CN104866452A (zh) | 基于fpga和tl16c554a的多串口扩展方法 | |
JPH11167480A (ja) | バッファメモリ装置 | |
CN110471880B (zh) | 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN104915303A (zh) | 基于PXIe总线的高速数字I/O系统 | |
CN108628784B (zh) | 串行通信器及串行通信系统 | |
CN111736115A (zh) | 基于改进型sgdma+pcie的mimo毫米波雷达高速传输方法 | |
US5717948A (en) | Interface circuit associated with a processor to exchange digital data in series with a peripheral device | |
TWI394050B (zh) | 基於串列週邊介面匯流排的設備及其資料傳輸方法 | |
CN109564562A (zh) | 大数据运算加速系统和芯片 | |
CN101350218A (zh) | 一种虚拟多端口存储器及其存储和读取数据的方法 | |
CN113468092A (zh) | 高速spi通信装置 | |
CN112579495B (zh) | Gpio控制器 | |
CN102654852A (zh) | 一种异步数据读写控制方法、装置及系统 | |
CN209784995U (zh) | 大数据运算加速系统和芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120328 Termination date: 20140922 |
|
EXPY | Termination of patent right or utility model |