CN101261614B - 可寻址串行外围接口 - Google Patents
可寻址串行外围接口 Download PDFInfo
- Publication number
- CN101261614B CN101261614B CN200810096330XA CN200810096330A CN101261614B CN 101261614 B CN101261614 B CN 101261614B CN 200810096330X A CN200810096330X A CN 200810096330XA CN 200810096330 A CN200810096330 A CN 200810096330A CN 101261614 B CN101261614 B CN 101261614B
- Authority
- CN
- China
- Prior art keywords
- data
- slave unit
- address
- main equipment
- communication link
- 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.)
- Active
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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Abstract
一种可寻址SPI总线以及相关联的通信协议。可寻址SPI总线包括多个从设备,其中每个从设备展示出一特定地址和一移位寄存器,该移位寄存器的输出由展示三种状态输出,也被称为三态输出的缓冲器连接到共同的MISO总线。主设备维护并行连接到多个从设备中的每一个的单SS线来表示帧的开始,并经由MOSI总线来发送多个从设备中的可互换地表示为目标或目的从设备的特定从设备的地址。响应于接收到的地址,该目标从设备使能与其相关联的三态输出,从而经由MISO总线将目标从移位寄存器的输出发送到主设备。
Description
背景技术
本发明一般涉及系统组件之间的串行通信的领域,并具体涉及用于可寻址串行外围接口的协议。
串行接口广泛地用于系统组件之间,且特别是控制单元及其外围设备之间的数据通信。这样的串行接口的一个常见例子是在下述专利中描述的串行外围接口(SPI):1990年9月18日授权给Hill等人的发明名称为“用于数据处理系统中的排队串行外围接口(Queued Serial Peripheral Interface for Use in a DataProcessing System)”的序列号为4,958,277的美国专利,以及2006年6月27日授权给Pezzini等人的发明名称为“串行外围接口及相关方法(Serial PeripheralInterface and Related Methods)”的序列号为7,069,352的美国专利,此处通过引用结合上述二者的全部内容。
SPI是全双工同步数据链路,其中设备在主从装置中进行通信。一个设备担任SPI主设备,其通过输出通常表示为SCLK的串行时钟来启动数据帧。从设备使用SCLK来输出用于发送到主设备的串行数据,和/或输入从主设备接收到的串行数据。每个SPI设备展示了串行数据输出线和串行数据输入线,分别被标记为主输出/从输入(MOSI)和主输入/从输出(MISO)。如果主设备为每个从设备提供单独的表示为SS的从设备选择输出,则可以使用多个从设备。不幸的是,对每个从设备,这样的系统都需要一专用SS引脚,这样是非常昂贵的。在一提供多个从设备的实施例中,由于所有的通信线路都是共享的,所以SPI被称为SPI总线。
SPI总线的另一困难是缺乏内部确认。具体而言,SPI总线中的主设备可能将数据发送给不存在的从设备,而不会接收到错误指示。此外,由主设备发送到从设备或从从设备读取的数据可能在传输中导致错误。一般使用错误检测机制,如循环冗余校验(CRC),虽然其没有提供用于向数据源确认错误存在的机制,但在需要时可再次发送这些数据。
另外,这种技术要求将从从设备发送到主设备的数据能响应于主设备的SCLK立即可用。在一个实施例中,从设备展示多个可寻址位置,例如可寻址寄存器,根据现有技术,主设备经由SS引脚选择特定的从设备,并输出表示为目标可寻址寄存器的将要读取的可寻址寄存器的地址。在从设备接收到该地址后,检索目标可寻址寄存器的内容,并优选地经由输出缓冲器将其加载到从设备移位寄存器,以由主时钟读出。在检索目标可寻址寄存器的内容时经常存在等待时间,且在实施例中,由主设备展示等待状态并延迟SCLK的发行,从而提供时间给从设备从可寻址寄存器检索数据。不幸的是,在特定应用中,等待状态对于可靠的数据检索是不够的。
因此对改进的总线装置存在长期的需要,该改进的总线装置允许多个从设备连接到主设备,而对每个从设备不需要一从设备选择。另外,需要通信协议用于SPI总线以提供确认,且优选地提供错误检测和通知。还需要通信协议用于SPI总线以展示降低的对延迟的灵敏度。
发明内容
因此,本发明的首要目的是通过提供可寻址SPI总线和相关联的通信协议来克服现有技术的缺陷。在一实施例中,可寻址SPI总线包括多个从设备,其中每个从设备都显示了一特定地址和一移位寄存器,该移位寄存器的输出通过显示三种状态输出,也被称为三态输出的缓冲器连接到共同的MISO总线上。主设备维护并行连接到多个从设备中的每一个的单SS线,以表示帧的开始,并经由MOSI总线来发送多个从设备中的特定从设备的地址,该特定从设备可互换地表示为目标或目的从设备。响应于接收到的地址,目标从设备使能三态输出,从而经由MISO总线将目标从设备移位寄存器的输出发送到主设备。
在一实施例中,目标从设备输出该特定从设备地址作为确认和错误检测信号。在另一实施例中,将发送的数据和/或地址回送给数据源,并将回送的数据和/或地址与所发送的数据和/或地址进行比较。如果回送的数据和/或地址与所发送的数据和/或地址相匹配,则生成并发送CRC来确认数据精确度。如果回送的数据和/或地址与所发送的数据和/或地址不相匹配,则生成和发送不正确的CRC来确认应丢弃该数据。
在另一实施例中,主设备首先输出将读取或写入数据的目标可寻址寄存器的地址,并随后输出目标从设备的地址。每个从设备响应于接收到的目标可寻址寄存器的地址,从对应于接收到的目标可寻址寄存器地址的可寻址寄存器中检索数据。每个从设备接收随后输出的目标从设备地址,并将该目标从设备地址与其特定地址进行比较。目标从设备使能与其相关联的三态输出,并以减少的等待时间经由MISO总线将检索到的数据发送给主设备。
在一实施例中,本发明提供一种可寻址串行外围接口总线装置,该装置包括:主设备;多个从设备,其中每个从设备与特定从设备地址相关联;将主设备连接到多个从设备中的每一个的第一和第二通信链路,其中第一通信链路不同于第二通信链路,且多个从设备并行连接到主设备;与主设备相关联并连接到多个从设备中的每一个的时钟,该时钟可作为经由第一通信链路从主设备传送出来并传送到多个从设备中的每一个的数据的时钟;以及响应于主设备且并行连接到多个从设备中的每一个的使能控制线。其中主设备可用于响应于使能控制线展示一活动信号,经由第一通信链路来发送目标地址。而多个从设备中的每一个可用于经由第一通信链路从主设备接收目标地址,并将接收到的目标地址与相关联的特定从设备地址进行比较,且仅在接收到的目标地址与相关联的特定从设备地址相一致的情况下,响应于使能控制线展示一活动信号和时钟来经由二通信链路发送第一数据。该发送从设备被表示为响应从设备。
在一实施例中,本发明提供一种总线通信的方法,该方法包括:提供主设备;提供多个从设备;为所提供的多个从设备中的每一个提供一特定从设备地址;提供连接到主设备和多个从设备中的每一个的时钟;提供响应于主设备并连接到多个从设备中的每一个的使能控制线;通过第一和第二通信链路来连接主设备和多个从设备,其中第一通信链路不同于第二通信链路,且多个从设备并行连接到主设备;经由第一通信链路从主设备发送目标地址,该发送与所提供的时钟相关联并响应于在使能控制线上的活动信号;在所提供的多个从设备中的每一个经由第一通信链路从主设备接收该目标地址;将接收到的目标地址与特定从设备地址进行比较;以及仅在接收到的目标地址与相关联的特定从设备地址相一致的情况下,响应于所提供的时钟和在使能控制线上的活动信号,经由第二通信链路来发送第一数据,该发送从设备被表示为从设备。
从下面的附图和描述中,本发明的其它特征和优点将变得显而易见。
附图简述
为了更好地理解本发明并显示其可以如何实现,仅作为示例,现参考附图,在附图中,相同的附图标记表示全部附图中相对应的部分或元件。
对于详细的对附图的具体参考,需要强调的是,所显示的细节仅是作为示例,以及基于对本发明的优选实施例的说明性讨论的目的,且是基于提供本发明的原理和概念性方面的被认为是最有用的和最易理解的描述的原因来呈现的。基于此,并没有试图给出比对本发明的基本理解所必需的细节更详细的本发明的结构性细节,结合附图的描述使得对本领域的普通技术人员来说,可以怎样在实践中具体化本发明的几种形式是显而易见的。附图中:
图1是根据本发明原理的展示可寻址SPI总线的系统的高级框图;
图2A是根据本发明原理的第一数据传输协议的写实施例的高级框图,其中有利地将目标从设备地址返回给主设备作为确认和错误检测信号;
图2B是根据本发明原理的第一数据传输协议的读实施例的高级框图,其中有利地将目标从设备地址返回给主设备作为确认和错误检测信号;
图3A是根据本发明原理的第二数据传输协议的写实施例的高级框图,其中目标可寻址寄存器地址在目标从设备地址之前;
图3B是根据本发明原理的第二数据传输协议的读实施例的高级框图,其中目标可寻址寄存器地址在目标从设备地址之前;
图4是根据图2A和2B的第一数据传输协议的、图1的系统的操作的高级流程图;
图5是根据图3A和3B的第二数据传输协议的、图1的系统的操作的高级流程图;
图6A是根据本发明原理的第三数据传输协议的写实施例的高级框图,其中数据发送的准确度是由发送器向接收器确认的;
图6B是根据本发明原理的第三数据传输协议的读实施例的高级框图,其中数据发送的准确度是由读取数据的发送器向接收器确认的;
图7A是根据图6A的第三数据传输协议的写实施例的、图1的系统的操作的高级流程图;以及
图7B是根据图6B的第三数据传输协议的读实施例的、图1的系统的操作的高级流程图。
具体实施方式
本实施例使能了可寻址SPI总线和相关联的通信协议。可寻址SPI总线包括多个从设备,其中每个从设备都展示一特定地址和一移位寄存器,其中通过展示三种状态输出,也被称为三态输出的缓冲器将移位寄存器的输出连接到共同的MISO总线。主设备维护并行连接到多个从设备中的每一个的单SS线来表示帧的开始,并经由MOSI总线来发送多个从设备中的表示为目标从设备的特定从设备的地址。响应于接收到的地址,目标从设备使能与其相关联的三态输出,从而经由MISO总线将目标从设备移位寄存器的输出发送到主设备。
在一实施例中,目标从设备输出其特定从设备地址作为确认和错误检测信号。在另一实施例中,将发送的数据和/或地址回送给数据源,并且将回送的数据和/或地址与所发送的数据和/或地址进行比较。如果回送的数据和/或地址与所发送的数据和/或地址相匹配,则生成并发送CRC以确认数据精确度。如果回送的数据和/或地址与所发送的数据和/或地址不相匹配,则生成并发送不正确的CRC以确认应当丢弃该数据。
在另一实施例中,主设备首先输出将要读取或写入数据的目标可寻址寄存器的地址,并随后输出目标从设备的地址。响应于接收到的目标可寻址寄存器地址,每个从设备从对应于所接收到的目标可寻址寄存器地址的可寻址寄存器中检索数据。每个从设备都接收随后输出的目标从设备地址,并将该目标从设备地址与其特定地址进行比较。目标从设备使能与其相关联的三态输出,并以减少的等待时间经由MISO总线将检索到的数据发送给主设备。
在详细解释本发明的至少一个实施例之前,需要理解,本发明在其应用中并不局限于在下面的描述中所阐述的或附图中所示出的组件的结构和排列的细节。本发明可以应用于其它实施例或以各种方式来实现或执行。并且需要理解,本文所使用的措词和术语是以描述为目的,而不应被认为是限制。
图1是根据本发明原理的展示可寻址SPI总线的系统10的高级框图。系统10包括主设备20、多个从设备30、MOSI总线40、MISO总线50、时钟总线60以及使能总线70。根据本发明的原理,MOSI总线40、MISO总线50、时钟总线60和使能总线70构成可寻址SPI总线。主设备20包括:包括比较功能180的主控制100、移位寄存器110、输出缓冲器120、输入缓冲器130、以及时钟140。每个从设备30包括:移位寄存器110、输出缓冲器120、输入缓冲器130、多个可寻址寄存器160、包括比较功能180的从控制电路150、以及输出缓冲器170。输出缓冲器170是三态缓冲器。
主设备20的每个输入缓冲器130、时钟140和主设备20的输出缓存器120都响应于主控制100的特定输出。使能总线70连接到主控制100的特定输出。时钟140的输出连接到时钟总线60以及主设备20的移位寄存器110的时钟输入。
相应从设备30的每个输入缓冲器130以及相应从设备30的输出缓冲器120都与从控制电路150进行通信并对其响应。多个可寻址寄存器160中的每一个都响应于从控制电路150的输出,并与相应的从设备30的输出缓冲器120和输入缓冲器130进行通信。使能总线70连接到每个从控制电路150的输入,且时钟总线60连接到每个移位寄存器110的时钟输入以及每个从控制电路150的特定输入。每个从设备30的移位寄存器110的输入都连接到MOSI总线40,且每个从设备30的移位寄存器110的输出都经由相应的输出缓冲器170连接到MISO总线50。每个输出缓冲器170的控制输入连接到相应从控制电路150的特定输出。
在操作中,在如将在下文参考图2A、2B和图4进一步描述的第一数据传输协议的实施例中,主控制100通过首先将目标从设备30的地址加载到主设备20的输出缓冲器120中,并将该地址传送到主设备20的移位寄存器110,来将数据寻址到表示为目标从设备30的特定从设备30的表示为目标可寻址寄存器160的特定可寻址寄存器160,或从其读取数据。主控制100随后将使能总线70设为活动的,并经由时钟140将该地址从主设备20的移位寄存器110中输出。该地址出现在MOSI总线40上,并由出现在时钟总线60上的时钟140输入每个从设备30的移位寄存器110中。在一示例性实施例中,地址的单个位还包括读或写位。每个从设备30的输出缓冲器170最初为高阻抗状态。
每个从设备30的从控制电路150经由相应的输入缓冲器130读取该输入地址,并通过比较功能180将其与一预设从设备地址进行比较。在一实施例中,通过电阻器值来设置该预设从设备地址,如在1997年7月8日授权给O’Brien的美国专利序列号5,646,609中所描述的,本文通过引用结合该专利的全部内容。在另一实施例中,从主机(未示出)下载该预设从设备地址作为初始配置阶段的一部分。在又一实施例中,通过从设备30的所选择的引脚到特定电压值的连接来设置该预设从设备地址。
如果目标从设备30的输入地址与特定从设备30的预设地址匹配,即该特定从设备就是目标从设备30,则目标从设备30的从控制电路150优选地将其预设地址加载到目标从设备30的输出缓冲器120中,将其传送到目标从设备30的移位寄存器110中,并通过使能相应的输出缓冲器170来使能目标从设备30的移位寄存器110的输出。
主控制100随后将表示为目标可寻址寄存器160的特定可寻址寄存器160的地址加载到输出缓冲器120中,将该地址传送到主设备20的移位寄存器110中,并经由时钟140从主设备20的移位寄存器110中输出该目标可寻址寄存器160的地址。经由时钟总线60的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出加载到其中的预设地址,该地址出现在MISO总线50上,并被输入主设备20的移位寄存器110中。优选地,主控制100经由主设备20的输入缓冲器130来读取接收到的响应从设备30的预设地址,且优选地通过比较功能180将接收到的预设地址与所发送的目标从设备地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。从控制电路150将该可寻址寄存器160的地址复制到相应的输入缓冲器130中。
如果是写命令,则基于从主设备20到从设备30,尤其是到目标从设备30的目标可寻址寄存器160的地址的传送的完成,主控制100把将被写入目标可寻址寄存器160中的数据从主设备20的输出缓冲器120传送到移位寄存器110,并经由时钟140将该数据从主设备20的移位寄存器110中输出。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从MOSI总线40接收到的目标可寻址寄存器160的地址,该地址出现在MISO总线50上,并被输入主设备20的移位寄存器110中。优选地,主控制100通过输入缓冲器130读取该回送的目标可寻址寄存器160的地址,并优选地通过比较功能180将其与所发送的目标可寻址寄存器地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
基于从主设备20到从设备30的数据的传送的结束,从控制电路150从相应的移位寄存器110将所接收到的数据复制到相应的输入缓冲器130中,并将所复制的数据写入响应于之前存储在输入缓冲器130中的接收到的地址的目标可寻址寄存器160中。
主控制100通过相应的输出缓冲器120将伪数据加载到主设备20的移位寄存器110中,并通过时钟140将所加载的数据从主设备20的移位寄存器110中输出。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,将之前从主设备20接收到的数据从目标从设备30的移位寄存器110中输出,该数据出现在MISO总线50上,并被输入主设备20的移位寄存器110中。优选地,主控制100读取经由输入缓冲器130接收到的回送数据,并通过比较功能180将其与所发送的数据进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
如果是读命令,则基于从主设备20到从设备30,尤其是到目标从设备30的目标可寻址寄存器160的地址的传送的完成,从控制电路150从响应于接收到并存储在输入缓冲器130中的地址的可寻址寄存器160中检索数据,并将检索到的读取数据存储到目标从设备30的输出缓冲器120中。
主控制100经由输出缓冲器120将伪数据加载到主设备20的移位寄存器110,并经由时钟140将所加载的伪数据从主设备20的移位寄存器110中输出。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从MOSI总线40接收到的目标可寻址寄存器160的地址,该地址出现在MISO总线50上,并被输入主设备20的移位寄存器110中。优选地,主控制100经由输入缓冲器130读取回送的目标可寻址寄存器160的地址,且优选地通过比较功能180将其与所发送的地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
基于从从设备30到主设备20的目标可寻址寄存器160的回送地址的传送的结束,从控制电路150将存储在输出缓冲器120中的读取数据传送到从设备30的移位寄存器110中。因此,通过首先在输出缓冲器120中的读取数据需要是有效的之前确认目标可寻址寄存器160,来计算从目标可寻址寄存器160的检索的等待时间。
主控制100经由相应的输出缓冲器120将伪数据加载到主设备20的移位寄存器110,并经由时钟140从主设备20的移位寄存器110中输出所加载的伪数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出从目标可寻址寄存器160中检索到的读取数据,该数据出现在MISO总线50上,并被输入主设备20的移位寄存器110中。
数据传送完成后,主控制100将使能总线70设为非活动的,从而结束该帧。
这样,在第一数据传输协议实施例中,目标从设备30向主设备20确认目标从设备30的地址和可寻址寄存器160的地址两者的传送,以用于软件控制和误差检测。还确认写入目标可寻址寄存器160的数据。有利地,目标可寻址寄存器160地址的确认提供足够的时间以克服对于来自目标可寻址寄存器160的数据的检索中的任意等待时间。
上述内容已经在其中对目标从设备地址30、目标可寻址寄存器地址160以及将被写入的数据中的每一个都进行确认的实施例中作了描述,然而这并不意为以任意方式进行限定。在另一实施例中,并未确认目标从设备30的地址、目标可寻址寄存器160的地址、以及将被写入的数据中的一个或多个,从而提高处理量。
上述内容已经在其中每个数据传送都寻址多个从设备30中的特定一个的实施例中作了描述,然而其并不意为以任意方式进行限定。在另一实施例中,还定义了广播地址。传送到所定义的广播地址的数据发送并不被任一从设备30响应,这些从设备30将它们相应的输出缓冲器170维持在无效状态。在又一实施例中,从设备30中的每一个以相同的方式响应该广播。在又一实施例中,存储到从设备中的每一个的写操作,并仅响应于对特定广播消息的接收来动作,从而使能在各不同从设备30之间的同步。
在第二数据传输协议实施例中,将进一步根据图3A、3B和图5进行描述,主控制100通过首先将表示为目标可寻址寄存器160的特定可寻址寄存器160的地址加载到主设备20的输出缓冲器120中,并将该地址传送到主设备20的移位寄存器110中,来将数据寻址到表示为目标从设备30的特定从设备30的特定可寻址寄存器160,或从其读取数据。主控制100随后将使能总线70设为活动的,并经由时钟140从主设备20的移位寄存器110中输出目标可寻址寄存器160的地址。该地址出现在MOSI总线40上,并由出现在时钟总线60上的时钟信号来输入到每个从设备30的移位寄存器110中。
每个从设备30的从控制电路150经由相应的输入缓冲器130来读取该输入地址,并开始从相对应的可寻址寄存器160中检索数据。每个从设备30的输出缓冲器170优选地是不可用的,且因此具有高阻抗输出特性的信号出现在MISO总线50上。优选地,由于在该第二数据传输协议中,读取了非目标的从设备30的可寻址寄存器160,且该数据将会丢失,所以没有将每个可寻址寄存器160设为读后清除。
主控制100随后将表示为目标从设备30的特定从设备30的地址加载到输出缓冲器120中,将该地址传送到主设备20的移位寄存器110,并经由时钟140从主设备20的移位寄存器110中输出该目标可寻址寄存器160的地址。在示例性实施例中,该地址的单个位还包括读或写位。
经由时钟总线60接收到的从设备30的移位寄存器110的时钟,从从设备30的移位寄存器110中输出其中接收到的目标可寻址寄存器160的地址,但由于输出缓冲器170的非使能状态,该地址并不出现在MISO总线50上。
每个从设备30的从控制电路150经由相应的输入缓冲器130读取该输入地址,并通过比较功能180将其与预设从设备地址进行比较。在一实施例中,通过电阻器值来设置该预设从设备地址,如在上文所结合的1997年7月8日授权给O’Brien的美国专利序列号5,646,609中所描述的。在另一实施例中,从主机(未示出)中下载该预设从设备地址作为初始配置阶段的一部分。在又一实施例中,通过从设备30的所选择的引脚到特定电压值的连接来设置该预设从设备地址。如果代表目标从设备30的输入地址与特定从设备30的预设地址相匹配,即该特定从设备30就是目标从设备30,则该目标从设备30通过使能输出缓冲器170来使能该目标从设备30的移位寄存器110的输出。
如果是写命令,则基于从主设备20到从设备30,特别是到目标从设备30的目标从设备30的地址的传送的完成,主控制100把将被写入目标可寻址寄存器160的数据从主设备20的输出缓冲器120传送到主设备20的移位寄存器110中,并经由时钟140将该数据从主设备20的移位寄存器110中时钟。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从MOSI总线40接收到的目标从设备30的地址,该地址出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。优选地,主控制100经由输出缓冲器120来读取目标从设备30的地址,并优选地通过比较功能180将其与所发送的地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
上述内容已经在其中目标从设备30通过将之前从MOSI总线40接收到的目标从设备30的地址留在目标从设备30的移位寄存器110中来进行确认的实施例中作了描述,然而,这并不意为以任意形式进行限定。在另一实施例中,目标从设备30通过将该目标从设备30的预设地址加载到目标从设备30的移位寄存器110中,以伴随在MOSI总线40上的数据的传送来输出,从而进行确认。
基于从主设备20到从设备30的数据传送的结束,从控制电路150将所接收到的数据写入响应于接收到的地址的目标可寻址寄存器160中。
如果是读命令,基于从主设备20到从设备30的目标从设备30的地址传送的完成,从设备控制电路150已经完成了对来自响应于所接收到的初始地址的可寻址寄存器160的读取数据的检索,并已将该读取数据存储在目标从设备30的输出缓冲器120上,从而将该读取数据传送到目标从设备30的移位寄存器110中。
主控制100经由输出缓冲器120将伪数据加载到主设备20的移位寄存器110中,并经由时钟140将该加载的伪数据从主设备20的移位寄存器110中输出。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出从目标可寻址寄存器160检索到的读取数据,该数据出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。
在数据传送完成后,主控制100将使能总线70设为非活动的,从而结束该帧。
这样,在第二数据传输协议实施例中,在接收到目标从设备30的地址之前开始对来自目标可寻址寄存器160的数据的检索,有利地提供了足够的时间以克服在对来自目标可寻址寄存器160的数据的检索时的任意等待时间。
上述内容已经在其中没有确认地址和写入的数据的实施例中作了描述,但这并不意为以任意方式进行限定。在另一实施例中,对目标可寻址寄存器160的地址、目标从设备30的地址、以及写入的数据中的一个或多个进行确认,如上文关于第一数据传输协议的实施例所描述的。上述内容已经在其中每个数据传送寻址多个从设备30中的特定一个的实施例中作了描述,但这并不意为以任意方式进行限定。在另一实施例中,还定义了广播地址。传送到所定义的广播地址的数据不被任意从设备30响应,这些从设备30将它们相应的输出缓冲器170维持在非使能状态。在又一实施例中,每个从设备30以相同的方式响应该广播。在又一实施例中,存储对每个从设备的写操作,且仅基于对特定广播信息的接收来动作,从而使能不同的从设备30之间的同步。
在如下将关于图6A-7B来描述的第三数据传输协议实施例中,主控制100通过首先将目标从设备30的地址加载到主设备20的输出缓冲器120,并将该地址传送到主设备20的移位寄存器110,来将数据寻址到表示为目标从设备30的特定目标从设备30的表示为目标可寻址寄存器160的特定可寻址寄存器160,或从其读取数据。主设备控制器100随后将使能总线70设为活动的,并经由时钟140将该地址从设备20的移位寄存器110中输出。该地址出现在MOSI总线40上,并经由出现在时钟总线60上的时钟140输入到每个从设备30的移位寄存器110中。在示例性实施例中,地址的单个位还包括读或写位。每个从设备30的输出缓冲器170最初是处于高阻抗状态。
每个从设备30的从控制电路150经由相应的输入缓冲器130来读取输入地址,并通过比较功能180将其与预设从设备地址进行比较。在一实施例中,通过电阻器值来设置该预设从设备地址,如上文所结合的在1997年7月8日授权给O’Brien的美国专利序列号5,646,609中所描述的。在另一实施例中,从主机(未示出)下载该预设从设备地址作为初始配置阶段的一部分。在又一实施例中,通过从设备30的所选择的引脚到特定电压值的连接来设置该预设从设备地址。
如果目标从设备30的输入地址与特定从设备30的预设地址相匹配,即该特定从设备就是目标从设备30,则目标从设备30优选地将其预设地址加载到目标从设备30的输出缓冲器120,将其传送到目标从设备30的移位寄存器110,并通过使能相应的输出缓冲器170来使能目标从设备30的移位寄存器110的输出。
主控制100随后将表示为目标可寻址寄存器160的特定可寻址寄存器160的地址加载到输出缓冲器120,将该地址传送到主设备20的移位寄存器110,并经由时钟140从主设备20的移位寄存器110输出该目标可寻址寄存器160的地址。经由时钟总线60的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出加载到其中的预设地址,该地址出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。优选地,主控制100经由主设备20的输入缓冲器130来读取接收到的从设备30的预设地址,并优选地通过比较功能180将该接收到的预设地址与所发送的目标从设备地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。从控制电路150,将接收到的目标可寻址寄存器160的地址复制到输入缓冲器130中。
主控制100随后把将被传送的数据的长度加载到输出缓冲器120中,将数据的长度传送到主设备20的移位寄存器110,并经由时钟140从主设备20的移位寄存器110中输出数据的长度。数据传送的长度可用预设的位长的位、字节或字来表示,而不超出本发明的范围。经由时钟总线60的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出从主设备20接收到的目标可寻址寄存器160的地址,该地址出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。优选地,主控制100经由主设备20的输入缓冲器130来读取从从设备30接收到的回送的目标可寻址寄存器160地址,并优选地通过比较功能180将该回送的目标可寻址寄存器160地址与所发送的目标可寻址寄存器160地址进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。从控制电路150将接收到的数据的长度复制到输入缓存器130中。
如果是写命令,则基于从主设备20到从设备30,尤其是到目标从设备30的数据发送的长度的传送的完成,主控制100把将被写入目标可寻址寄存器160的、显示了数据传送的长度的数据从主设备20的输出缓冲器120传送到移位寄存器110,并经由时钟140从主设备20的移位寄存器110中输出该数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从MOSI总线40接收到的数据传送的长度,该数据出现在MISO总线50上并被输入到主设备20的移位寄存器110中。优选地,主控制100读取经由输入缓冲器130回送的数据传送的长度,并优选地通过比较功能180将其与所发送的数据传送的长度进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
基于从主设备20到从设备30的数据传送的完成,且优选地基于每字节的完成,从控制电路150将接收到的数据从相应的移位寄存器110复制到相应的输入缓冲器130。
主控制100经由相应的输出缓冲器120将伪数据加载到主设备20的移位寄存器110,并经由时钟140从主设备20的移位寄存器110中输出所加载的伪数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从主设备20接收到的数据,该数据出现在MISO总线50上并被输入到主设备20的移位寄存器110中。如果传送了多字节数据,则所传送的最后字节伴随伪数据出现在MOSI总线50上。
主控制100读取经由输入缓存器130接收到的数据,并通过比较功能180将其与所发送的数据进行比较。如果数据匹配且没有出现错误标记,即目标从设备30的地址、特定可寻址寄存器160的地址、以及回送返回的数据传送的位长相匹配,则生成CRC。优选地,对目标从设备30的地址、特定可寻址寄存器160的地址、数据传送的长度以及所发送的将被写入的数据计算CRC。优选地,CRC中未包括所发送的伪数据。
如果数据不匹配或如果设置了上述的任意错误标记,则生成错误。在一实施例中,该错误是结合了对目标从设备30的地址、目标可寻址寄存器160的地址、数据传送的长度以及所发送的将被写入的数据所生成的错误的CRC。优选地,该错误中不包括所发送的伪数据。在另一实施例中,该错误由预设的错误标记构成。
主控制100经由相应的输出缓冲器120分别将CRC或错误加载到主设备20的移位寄存器110中,并经由时钟140从主设备20的移位寄存器110中分别输出CRC或错误。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从主设备20接收到的伪数据,该数据出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。
从控制电路150遵循与主设备生成CRC的相同规则来生成CRC。优选地,对目标从设备30的地址、特定可寻址寄存器160的地址、数据传送的位长以及从主设备20接收到的将被写入的数据生成CRC。从控制电路150进一步通过输入缓冲器130来读取接收到的CRC或错误。将生成的CRC与接收到的CRC或错误进行比较。如果它们匹配,则从而确认数据的准确度,且从控制电路150响应于接收到的目标可寻址寄存器160地址来写入接收到的数据。如果它们不匹配,即从主设备20接收到了错误,则从而确认数据缺乏准确度,且从控制电路150拒绝接收到的数据,并不将其写到接收到的目标可寻址寄存器160地址。
如果是读命令,则基于从主设备20到从设备30,特别是到目标从设备30的目标可寻址寄存器160的地址以及数据传送的长度的传送的完成,从设备控制电路150从响应于接收到的目标可寻址寄存器160地址的可寻址寄存器160中检索读取数据,并将其存储在目标从设备30的输出缓冲器120中。
主控制100经由输出缓冲器120将伪数据加载到主设备20的移位寄存器110中,并经由时钟140从主设备20的移位寄存器110中输出所加载的伪数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从MOSI总线40接收到的数据传送的长度,其出现在MISO总线50上并被输入到主设备20的移位寄存器110中。优选地,主控制100经由输入缓冲器130来读取回送的数据传送的长度,并优选地通过比较功能180将其与所发送的数据传送的长度进行比较。如果不匹配,则标记故障错误,且例程前进到错误处理程序。
如果没有产生错误标记,即所接收到的目标从设备30的预设从设备地址、回送的目标可寻址寄存器160地址,以及回送的数据传送的长度与发所发送的数据相匹配,则生成CRC。优选地,对目标从设备30的地址、目标可寻址寄存器160的地址以及数据传送的长度生成CRC。优选地,该CRC中不包括所发送的伪数据。
如果产生了错误标记,即所接收到的目标从设备30的预设地址、回送的目标可寻址寄存器160地址、以及回送的数据传送的长度中的至少一个与所发送的数据不相匹配,则生成错误。在一实施例中,该错误是结合了对目标从设备30的地址、目标可寻址寄存器160的地址以及数据传送的长度所生成的错误的CRC。优选地,该错误中不包括所发送的伪数据。在另一实施例中,该错误由预设的错误标记构成。
主控制100经由相应的输出缓冲器120分别将CRC或错误加载到主设备20的移位寄存器110中,并经由时钟140从主设备20的移位寄存器110中输出所加载的CRC或错误。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出之前从主设备20接收到的伪数据,该数据出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。从控制电路150通过相应的输入缓冲器130来读取接收到的CRC或错误。
从控制电路150遵循与主设备20生成CRC的相同规则来生成CRC。优选地,对接收到的目标从设备30的地址、接收到的目标可寻址寄存器160的地址以及接收到的数据传送的长度来生成CRC。将生成的CRC与接收到的CRC或错误进行比较。如果它们匹配,则确认地址以及数据传送的长度的准确度,且如下将进一步描述的,从控制电路150前进到从响应于接收到的地址的目标可寻址寄存器160中检索读取数据,将其存储在相应的输出缓冲器120中,并将其传送到移位寄存器110。如果它们不匹配,即从主设备20接收到了错误,则因此确认该数据缺乏准确度,且从控制电路150拒绝接收到的地址,以及不从目标可寻址寄存器160检索数据。
主控制100经由相应的输出缓冲器120将伪数据加载到主设备20的移位寄存器110中,并经由时钟140从主设备20的移位寄存器110中输出所加载的伪数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出检索到的读取数据,该数据出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。
基于显示了数据长度的读取数据的传送的完成,优选地基于其每字节的完成,主控制100将所接收到的数据从相应的移位寄存器110中复制到相应的输入缓冲器130中。从控制电路150将伪数据加载到相应的输出缓冲器120,并将该伪数据传送到相应的移位寄存器110中。主控制100将最后的接收到的读取数据字节复制到相应的输入缓冲器130中,并通过经由时钟140从主设备20的移位寄存器110中输出接收到的数据来回送该读取数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出该伪数据,其出现在MISO总线50上,并被输入到主设备20的移位寄存器110中。
从控制电路150读取经由输入缓冲器130接收到的回送读取数据,并通过比较功能180将其与所发送的读数据进行比较。如果数据匹配,则生成所发送数据的CRC。优选地,该CRC中不包括所发送的伪数据。
如果回送的读取数据与所发送的读取数据不相匹配,则生成错误。在一实施例中,该错误是对包含了错误的读取数据所生成的CRC。优选地,该错误中不包括所发送的伪数据。在另一实施例中,该错误由预设的错误标记构成。
从控制电路150经由相应的输出缓冲器120分别将该CRC或错误加载到相应的移位寄存器110中。主控制100经由时钟140从主设备20的移位寄存器110中输出所接收到的伪数据。经由时钟总线60接收到的目标从设备30的移位寄存器110的时钟,从目标从设备30的移位寄存器110中输出该CRC或错误,其出现在MISO总线50上并被输入到主设备20的移位寄存器110中。
主控制100遵循与从控制电路150生成CRC的相同规则来生成CRC。将计算出的CRC与接收到的CRC或错误进行比较。如果它们匹配,则从而确认读取数据的准确度,且主控制100利用该读取数据。如果它们不匹配,即发送了错误,则从而确认数据缺乏准确度,且主控制100拒绝该读取数据并调用错误处理程序。
在数据传送完成之后,主控制100将使能总线70设为非活动的,从而结束该帧。
这样,在第三数据传输协议实施例中,数据的传送,不论其是否是由地址、将被写入的数据或读取的数据组成,都被回送,并由数据的发送器基于该回送来确认其准确度。生成和发送CRC来向数据接收器确认准确度。如果出现错误,则发送错误,且优选地发送包括CRC的错误,从而向数据接收器确认缺乏准确度。
上述内容已经在其中发送了伪数据的实施例中作了描述,但其并不意为以任意方式进行限定。在另一实施例中,发送非关键数据来替代伪数据,而并不超出本发明的范围。
上述内容已经在其中每个数据传送寻址多个从设备30中的特定一个的实施例中作了描述,但其并不意为以任意方式进行限定。在另一实施例中,还定义了广播地址。到所定义的广播地址的数据传送并不被任一从设备30响应,这些从设备30将其相应的输出缓冲器170维持在非使能状态。在又一实施例中,从设备30中的没一个都以相同的方式响应该广播。在又一实施例中,存储到从设备中的每一个的写操作,且仅基于对特定的广播信息的接收来动作,从而使能不同的从设备30之间的同步。
图2A是根据本发明原理的第一数据传输协议的写实施例的高级框图,其中有利地将目标从设备地址返回给主设备作为确认和错误检测信号。传送的字节从左到右进行,左边的字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓冲器70都处于高阻抗状态,且因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标可寻址寄存器160的地址。伴随在MISO总线50上,出现响应从设备30的预设地址作为确认和用于错误检测。
在MOSI总线40上发送的第三字节或多字节,包括将被写入目标从设备30的目标可寻址寄存器160的数据。伴随在MISO总线50上,出现接收到的目标可寻址寄存器160的地址作为确认和错误检测。可以理解,第三字节可包括多个字节而不超出本发明的范围。根据本发明的原理回送所发送的每一字节。
在MOSI总线40上发送的第四字节或多字节,包括伪数据,且该第四字节被用来输出之前所发送数据的最后字节。伴随在MISO总线50上,出现接收到的将被写入目标可寻址寄存器160的数据作为确认和错误检测。
图2B是根据本发明原理的第一数据传输协议的读实施例的高级框图,其中有利地将目标从设备地址返回给主设备作为确认信号。传送的字节从左到右进行,左边的字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,而下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓存器70都处于高阻抗状态,且因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标可寻址寄存器160的地址。伴随在MISO总线50上,出现相应的从设备30的预设地址作为确认并用于错误检测。
在MOSI总线40上发送的第三字节或多字节,包括伪数据,该第三字节被用来输出之前发送的目标可寻址寄存器160地址。因此,伴随在MISO总线50上,出现接收到的目标可寻址寄存器160的地址作为确认并用于错误检测。
在MOSI总线40上发送的第四字节或多字节,包括伪数据,该第四字节被用来输出检索到的数据。伴随在MISO总线50上,出现从目标可寻址寄存器160中检索到的数据。可以理解,第四字节可包括多个字节而不超出本发明的范围。
图3A是根据本发明原理的第二数据传输协议的写实施例的高级框图,其中内部寄存器地址在目标从设备地址之前。传送的字节从左到右进行,左边字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,而下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标可寻址寄存器160的地址。伴随在MISO总线50上,所有的输出缓冲器70都是处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓冲器70都处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第三字节或多字节,包括将被写入目标从设备30的目标可寻址寄存器160的数据。伴随在MISO总线50上,出现接收到的响应从设备30的地址作为确认并用于错误检测。在另一实施例中,出现响应从设备30的预设地址作为确认和用于错误检测。可以理解,第三字节可包括多个字节面不超出本发明的范围。在这样的实施例中,优选地将一些数据字节回送给主设备20。
在图2A、2B的一实施例中,伴随数据被同时输出到MOSI总线40和MISO总线50上。在另一实施例中,到MOSI总线40和MISO总线50的伴随数据在出现在时钟总线60上的相反的时钟边缘上被输出。
图3B是根据本发明原理的第二数据传输协议的读实施例的高级框图,其中内部寄存器地址在目标从设备地址之前。传送的字节从左到右进行,左边字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,而下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标可寻址寄存器160的地址。伴随在MISO总线50上,所有的输出缓冲器70都是处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓冲器70都是处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第三字节或多字节包括伪数据,该第三字节被用来输出检索到的数据。在MISO总线50上伴随发送的第三字节包括从目标从设备30的目标可寻址寄存器160中读取的数据。可以理解,第三字节可包括多个字节而不超出本发明的范围。在这样的实施例中,优选地将一些数据字节回送给主设备20。
在图3A、3B的一实施例中,将伴随数据同时输出到MOSI总线40和MISO总线50上。在另一实施例中,到MOSI总线40和MISO总线50的伴随数据在出现在时钟总线60上的相反的时钟边缘上被输出。图4是根据图2A、2B的第一数据传输协议的、图1的系统的操作的高级流程图。在阶段1000中,主设备20将使能总线70设为活动的。使能总线70连接到每个从设备30上。在阶段1010中,主设备20发送目标从设备30的地址。在阶段1020中,主设备20发送读和写命令中的一个。在示例性实施例中,阶段1010的地址的单个位包括可选择地设为读或写的位。在阶段1030,所有的从设备30接收阶段1010的发送的地址。
在阶段1040中,将阶段1030的接收到的地址与预设从设备地址进行比较。如果接收到的地址不等于该预设从设备地址,则在阶段1100中,将输出缓冲器170维持在高阻抗状态。如果该地址被存储为与广播消息相关联的地址,则如上所述地对广播消息动作。如果接收到的地址与该预设从设备地址相同,即该从设备30就是目标从设备30,则在阶段1050中,目标从设备30使能相关联的输出缓冲器170。
在阶段1060中,目标从设备30将其预设从设备地址加载到相应的移位寄存器110中。主设备20发送目标可寻址寄存器160的地址,且伴随地,目标从设备30将其预设从设备地址发送到主设备20。在阶段1070中,主设备20接收阶段1060的发送的预设从设备地址作为确认和用于错误检测,且目标从设备30接收阶段1060的的目标可寻址寄存器160的发送的地址。在优选实施例中,主设备20将阶段1060的接收到的预设从设备地址与阶段1010的发送的目标从设备地址进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出)。
在阶段1080中,主设备20发送将被写入的数据和伪数据中的一个。特别地,如果阶段1020的读/写命令是写命令,则在阶段1080中,由主设备20发送将被写入的数据;而如果阶段1020的读/写命令是读命令,则在阶段1080中,由主设备20发送伪数据。伴随地,目标从设备30回送阶段1070的目标可寻址寄存器160的接收到的地址作为确认和用于错误检测。在优选实施例中,主设备20将阶段1080的接收到的回送目标可寻址寄存器160与阶段1060的发送的目标可寻址寄存器160进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出)。
在阶段1090中,主设备20发送伪数据。伴随地,目标从设备30发送所接收到的将被写入的数据以及从目标可寻址寄存器160读取的数据中的一个。特别地,如果阶段1020的读/写命令是写命令,则将在阶段1080中接收到的将被写入的数据发送给主设备20作为确认和用于错误检测;而如果阶段1020的读/写命令是读命令,则将从目标可寻址寄存器160检索到的数据发送给主设备20。在优选实施例中,如果是写命令,则主设备20将阶段1090的回送的将被写入的数据与在阶段1080中发送的数据进行比较。如果数据不匹配,则优选地调用错误处理程序(未示出)。
因此,图4的方法提供对目标从设备30地址和目标可寻址寄存器160两者的确认和错误检测。也确认写到目标可寻址寄存器160的数据。
图5是根据图3A、3B的第二数据传输协议的、图1的系统的操作的高级流程图。在阶段2000中,主设备20将使能总线70设为活动的。使能总线70连接到每个从设备30上。在阶段2010中,主设备20发送目标可寻址寄存器160的地址。在阶段2020中,所有的从设备30都接收阶段2010的目标可寻址寄存器160的发送的地址。
在阶段2030中,所有的从设备30都开始从目标可寻址寄存器160的地址中检索数据,目标可寻址寄存器160的地址在各从设备30中是相同的。可以理解,仅有一个从设备30是目标从设备30。检索到的数据放置在响应从设备30的输出缓冲器120中。优选地,并未将每个从设备30的每个可寻址寄存器160设为读取后擦除,因为在第二数据传输协议中,读取了不是目标的从设备30的可寻址寄存器160,而这些数据将丢失。
在阶段2040中,主设备20发送目标从设备30的地址。在阶段2050中,主设备20发送读和写命令中的一个。在示例性实施例中,阶段2040的地址的单个位还包括可选择性地设为读或写的位。在阶段2060中,所有的从设备30都接收阶段2040的所发送的目标从设备地址。
在阶段2070中,将阶段2060的接收到的地址与预设从设备地址进行比较。如果接收到的地址不等于该预设从设备地址,则在阶段2100中,将输出缓冲器170维持在高阻抗状态。如果该地址被存储为与广播消息相关联的地址,则如上述地对广播消息动作。如果接收到的地址与该预设从设备地址相同,即该从设备30就是目标从设备30,则在阶段2080中,目标从设备30使能相关联的输出缓冲器170。
在阶段2090中,如果在阶段2050中发送的是读命令,则目标从设备30发送从目标可寻址寄存器160中读取的并放置在输出缓冲器120中的检索数据到相应的移位寄存器110,且伴随来自主设备20的接收到的伪数据,将检索到的数据发送给主设备20。如果在阶段2050中发送的是写命令,则在阶段2090中,主设备20把将被写入目标可寻址寄存器160的数据发送给从设备30。
图5的方法有利地提供在接收到目标从设备30的地址之前从目标可寻址寄存器160检索数据,从而有利地提供足够的时间以克服对来自目标可寻址寄存器160的数据的检索的任意等待时间。
图6A是根据本发明原理的第三数据传输协议的写实施例的高级框图,其中由发送器向接收器确认数据传送的准确度。传送的字节从左到右进行,左边的字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,而下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓存器70都是处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标可寻址寄存器160的地址。伴随在MISO总线50上出现响应从设备30的预设地址作为确认和用于错误检测。
在MOSI总线40上发送的第三字节或多字节,包括将被写入目标从设备30的目标可寻址寄存器160中的数据的长度。伴随在MISO总线50上,出现接收到的目标可寻址寄存器160的地址作为确认和用于错误检测。
在MOSI总线40上发送的第四字节或多字节,包括将被写入目标从设备30的目标可寻址寄存器160中的数据。伴随在MISO总线50上,出现接收到的将被写入的数据的长度作为确认和用于错误检测。可以理解,该第四字节可包括与将被写入的数据的长度相一致的多个字节,而不超出本发明的范围。根据本发明的原理回送数据的每字节。
在MOSI总线40上发送的第五字节或多字节,包括伪数据,该第五字节被用来输出之前所发送数据的最后字节的回送。伴随在MISO总线50上,出现将被写入目标可寻址寄存器160的数据作为确认和用于错误检测。
在MOSI总线40上发送的第六字节或多字节,包括响应于回送的数据生成的CRC或错误。在优选实施例中,对响应从设备30的接收到的预设地址、目标可寻址寄存器160的回送的地址、将被写入的数据的回送的长度,以及回送的将被写入的数据来生成该CRC或错误。伴随在MISO总线50上,出现第六字节的伪数据作为确认和用于可选的错误检测。
图6B是根据本发明原理的第三数据传输协议的读实施例的高级框图,其中由读取数据的发送器向接收器确认数据传送的准确度。传送的字节从左到右进行,左边的字节在出现在其最接近右边的字节之前传送。上文显示了出现在MOSI总线40上的数据,而下文将显示伴随出现在MISO总线50上的数据。
在MOSI总线40上发送的第一字节或多字节,包括目标从设备30的地址。优选地,至少一位还包括读/写信息。伴随在MISO总线50上,所有的输出缓冲器70都处于高阻抗状态,因此没有传送数据。
在MOSI总线40上发送的第二字节或多字节,包括目标可寻址寄存器160的地址。在MISO总线50上伴随出现响应的从设备30的预设地址作为确认和用于错误检测。
在MOSI总线40上发送的第三字节或多字节,包括在目标从设备30的目标可寻址寄存器160的将被写入的数据的长度。伴随在MISO总线50上,出现接收到的目标可寻址寄存器160的地址作为确认和用于错误检测。
在MOSI总线40上发送的第四字节或多字节,包括来自主设备的伪数据,该第四字节被用来输出之前发送的将被写入的数据的长度。因此,伴随在MISO总线50上,出现接收到的将被写入的数据的长度作为确认和用于错误检测。
在MOSI总线40上发送的第五字节或多字节,包括对响应从设备30的接收到的预设地址、目标可寻址寄存器160的回送的地址、以及将被写入的数据的回送的长度所生成的CRC或错误。伴随在MISO总线50上,出现之前从主设备20发送的伪数据。
在第五字节之后出现虚线以表示已经检索到将被读取的数据,并正被发送。
在MOSI总线40上发送的第六字节或多字节,包括来自主设备的伪数据,该第六字节被用来输出读取数据。伴随在MISO总线50上,出现读取数据。
在MOSI总线40上发送的第七字节或多字节,包括从从设备在第六字节或多字节中接收到的数据的回送。伴随在MISO总线50上,出现来自该响应从设备30的伪数据。
在MOSI总线40上发送的第八字节或多字节,包括由从设备30在第七字节或多字节中发送的伪数据的回送。伴随在MISO总线50上,出现读取数据的CRC或错误。
图7A是根据图6A的第三数据传输协议的写实施例的、图1的系统的操作的高级流程图。在阶段3000中,主设备20将使能总线70设为活动的。使能总线70连接到每个从设备30。在阶段3010中,主设备20发送目标从设备30的地址。在阶段3020中,主设备20发送写命令。在示例性实施例中,阶段3010的地址的单个位包括可选择地设为读或写的位。在阶段3030中,所有的从设备30都接收阶段3010的发送的地址。
在阶段3040中,将阶段3030的接收到的地址与每个从设备30的预设从设备地址进行比较。如果接收到的地址不等于该预设从设备地址,则在阶段3140中,将相应的从设备30的输出缓冲器170维持在高阻抗状态。如果该地址被存储为与广播消息相关联的地址,则如上所述地对广播消息动作。如果接收到的地址与该预设从设备地址相同,即该相应的从设备30就是目标从设备30,则在阶段3050中,目标从设备30使能相关联的输出缓冲器170。
在阶段3060中,目标从设备30将其预设从设备地址加载到相应的移位寄存器110中。主设备20将目标可寻址寄存器160的地址发送到目标从设备30,且伴随地,目标从设备30将其预设从设备地址发送到主设备20。在优选实施例中,主设备20将接收到的阶段3060的发送的预设从设备地址与阶段3010的发送的目标从设备地址进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出),并设置错误标记。
在阶段3070中,主设备20把将要被写的数据的长度发送到目标从设备30,且伴随地,目标从设备30将阶段3060的接收到的目标可寻址寄存器160的地址回送给主设备20。在优选实施例中,主设备20将接收到的目标可寻址寄存器160的回送的地址与阶段3060的发送的目标可寻址寄存器160的地址进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出),并设置错误标记。
在阶段3080中,主设备20把将被写入目标可寻址寄存器160的数据发送给目标从设备30。且伴随地,目标从设备30回送阶段3070的接收到的将被写入的数据的长度。在优选实施例中,主设备20将接收到的将要被写的数据的回送的长度与阶段3070的发送的将被写入的数据的长度进行比较。如果长度不匹配,则优选地调用错误处理程序(未示出),并设置错误标记。
在阶段3090中,主设备20发送伪数据给目标从设备30。伴随地,目标从设备30回送阶段3080的接收到的将被写入目标可寻址寄存器160的数据。可以理解,如果阶段3080的将被写入目标可寻址寄存器160的数据大于单个字节,则阶段3090的伪数据跟随所发送数据的最后字节,且伴随地把将被写入目标可寻址寄存器160的数据的最后字节回送给主设备20。从设备30不写数据,但作为替代,在接收到的数据上生成CRC。在优选的实施例中,在阶段3030的接收到的目标从设备地址、阶段3060的接收到的目标可寻址寄存器160的地址、阶段3070的接收到的将被写入的数据的长度、以及阶段3080的将被写入的数据上来生成CRC。
在阶段3100中,主设备20将阶段3090的回送的数据与阶段3080的发送的数据进行比较。如果数据匹配,且并未如上所述地设置关于阶段3060、3070和3080的错误标记,则在阶段3110中,对所发送的数据生成CRC。在优选实施例中,对阶段3010的发送的目标从设备地址、阶段3060的发送的目标可寻址寄存器160的地址、阶段3070的发送的将被写入的数据的长度、以及阶段3080的将被写入的数据生成CRC。在阶段3130中,主设备20将阶段3110的生成的CRC发送给目标从设备30。伴随地,目标从设备30回送阶段3090的接收到伪数据。从设备30,将接收到的CRC与如上所述关联阶段3090在接收到的数据上生成的CRC进行比较,且如果接收到的CRC与所生成的CRC相匹配,则将阶段3080的接收到的将被写入的数据写到阶段3060的目标可寻址寄存器160。如果在阶段3100中数据不匹配,和/或如上所述地关于阶段3060、3070和3080设置了一个或者多个错误标记,则在阶段3120中,对发送的数据生成不正确的CRC。在优选实施例中,对阶段3010的发送的目标从设备地址、阶段3060的发送的目标可寻址寄存器160的地址、阶段3070的发送的将被写入的数据的长度、以及阶段3080的将被写入的数据生成CRC。在阶段3130中,主设备20将阶段3110的生成的不正确的CRC发送到目标从设备30。伴随地,目标从设备30回送阶段3090的接收到的伪数据。从设备30,将接收到的不正确的CRC与如上所述关联阶段3090在接收到数据上生成的CRC进行比较,且作为生成的不正确的CRC的结果,在阶段3120中并没有将阶段3080的接收到的将被写入的数据写到阶段3060的目标可寻址寄存器160。
上述内容已经在其中在阶段3120中生成不正确的CRC的实施例中作了描述,但这并不意为以任意方式进行限定。在另一实施例中,生成并发送预设的错误标记来替代该不正确的CRC,而并不超出本发明的范围。
因此,图7A的方法检测回送的数据的准确度或其缺乏准确度,并将准确度检测的结果前馈给接收器,即目标从设备30。如果回送的数据缺乏准确度,则优选地将包括地址和将被写入的数据的错误,从主设备20发送给从设备30,以表示由于该通信链路缺乏准确度,将丢弃该数据。
图7B是根据图6B的第三数据传输协议的读实施例的、图1中的系统的操作的高级流程图。在阶段4000中,主设备20将使能总线70设为活动的。使能总线70连接到每个从设备30。在阶段4010中,主设备20发送目标从设备30的地址。在阶段4020中,主设备20发送读命令。在示例性实施例中,阶段4010的地址的单个位包括可选择地设为读或写的位。在阶段4030中,所有的从设备30都接收阶段4010的发送的地址。
在阶段4040中,将阶段4030的接收到的地址与每个从设备30的预设从设备地址进行比较。如果接收到的地址不同于该预设从设备地址,则在阶段4190中,将相应的从设备30的输出缓冲器170维持在高阻抗状态。如果该地址被存储为与广播消息相关联的地址,则如上所述地对广播消息动作。如果接收到的地址与预设从设备地址相同,即该相应的从设备30就是目标从设备30,则在阶段4050中,目标从设备30使能相关联的输出缓冲器170。
在阶段4060中,目标从设备30将其预设从设备地址加载到相应的移位寄存器110中。主设备20将目标可寻址寄存器160的地址发送到目标从设备30,且伴随地,目标从设备30将其预设从设备地址发送到主设备20。在优选实施例中,主设备20将接收到的阶段4060的发送的预设从设备地址与阶段4010的发送的目标从设备地址进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出),并设置错误标记。
在阶段4070中,主设备20把将被写入的数据的长度发送给目标从设备30,且伴随地,目标从设备30将阶段4060的接收到的目标可寻址寄存器160的地址回送给主设备20。在优选实施例中,主设备20将接收到的目标可寻址寄存器160的回送的地址与阶段4060的发送的目标可寻址寄存器160的地址进行比较。如果地址不匹配,则优选地调用错误处理程序(未示出),并设置错误标记。
在阶段4080中,主设备20将伪数据发送给目标从设备30,以便于从从设备30中来回送阶段4070的将被读取的数据的长度。伴随地,目标从设备30回送阶段4070的接收到的将被读取的数据的长度。从设备30对接收到的数据生成CRC。在优选的实施例中,对包括阶段4030的接收到的目标从设备地址、阶段4060的接收到的目标可寻址寄存器160的地址、以及阶段4070的接收到的将被读取的数据的长度的数据来生成RCR。
在阶段4090中,主设备20将阶段4080的回送的将被读取的数据的长度与阶段4070的发送的将被读取的数据的长度进行比较。如果将被读取数据的长度匹配,且没有如上所述地设置关于阶段4060和4070的错误标记,则在阶段4100中,在发送的数据上生成CRC。在优选实施例中,在阶段4010的发送的目标从设备地址、阶段4060的发送的目标可寻址寄存器160的地址、阶段4070的发送的将被读取的数据的长度上生成CRC。在阶段4120中,主设备20将阶段4100的生成的CRC发送给目标从设备30。伴随地,目标从设备30回送阶段4080的接收到的伪数据。从设备30将接收到的CRC与如上关于阶段4080所述地对接收到的数据生成的CRC进行比较,且如果接收到的CRC与生成的CRC相匹配,则从设备30响应于阶段4070的接收到将被读取数据的长度,前进到从阶段4060的目标可寻址寄存器160中检索数据。有利地,从而在检索数据之前确认了通信链路的准确度。如果寄存器被设置为读取后擦除,这样的误差检测机制阻止了由于缺乏通信的准确度而引起的对寄存器的擦除。
如果在阶段4090中数据不匹配,和/或如上所述地设置了关于阶段4060和4070的一个或多个错误标记,则在阶段4110中,在发送的数据上生成不正确的CRC。在优选实施例中,对阶段4010的发送的目标从设备地址、阶段4060的发送的目标可寻址寄存器160的地址、以及阶段4070的发送的将被读取的数据的长度上生成该不正确的CRC。在阶段4120中,主设备20将阶段4100的生成的不正确的CRC发送给目标从设备30。伴随地,目标从设备30回送阶段4080的接收到的伪数据。从设备30将接收到的不正确的CRC与如上关于阶段4080所述地在接收到的数据上所生成的CRC进行比较,且作为在阶段4110中生成的不正确的CRC的结果,从设备30响应于阶段4070的接收到的将被读取数据的长度,并未从阶段4060的目标可寻址寄存器160中检索数据。
下面将描述的阶段4130-4180与阶段4010的对来自目标从设备30的读取数据的传送相关,并因此由其中指示的虚线分隔开。
在阶段4130中,主设备20将伪数据发送给目标从设备30,使得从设备30回送阶段4120的检索到的读取数据。伴随地,目标从设备30将检索到的读取数据发送给主设备20。
在阶段4140中,主设备20将阶段4130的接收到的读取数据回送给目标从设备30。伴随地,目标从设备30发送伪数据给主设备20。主设备20在阶段4130的接收到的读取数据上生成CRC。
可以理解,如果阶段4060的将从目标可寻址寄存器160中读取的数据大于单个字节,则阶段4140的伪数据跟随发送的读取数据的最后字节,且伴随地,接收到的读取数据的最后字节从主设备20回送给从设备30。
在阶段4150中,从设备30将阶段4140的回送的读取数据与阶段4130的发送的读取数据进行比较。如果读取数据相匹配,则在阶段4160中,从设备30对阶段4130的发送的读取数据生成CRC。
在阶段4180中,主设备20发送伪数据给目标从设备30。伴随地,目标从设备30发送阶段4160生成的CRC。
主设备20将接收到的CRC与如上关于阶段4140所述的在接收到的数据上生成的CRC进行比较,且如果接收到的CRC与生成的CRC相匹配,则主设备20接受阶段4130的接收到的读取数据。有利地,因此在接受读取数据之前确认了通信链路的准确度。
如果在阶段4150中数据不匹配,则在阶段4170中,从设备30在发送的读取数据上生成不正确的CRC。如上所述,在阶段4180中,主设备20发送伪数据给目标从设备30。伴随地,目标从设备30发送阶段4150的生成的不正确的CRC。主设备20将接收到的不正确的CRC与如上关于阶段4140所述的在接收到的数据上生成的CRC进行比较,则由于在阶段4170生成的不正确CRC,主设备20不接受该读取数据。
上述内容已经在其中在阶段4110、4170中的每一个都生成不正确的CRC的实施例中作了描述,但这并不意为以任何方式进行限定。在另一实施例中,生成并发送预定的错误标记代替该不正确的CRC中的一个或两者,而不超出本发明的范围。
因此,图7B的方法确认回送的数据的准确度或缺乏准确度,并将准确度检查的结果前馈给接收器,即用于地址和数据长度的目标从设备30,以及用于读取数据的主设备20。如果回送的数据缺乏准确度,则发送器向接收器发送错误,指示由于通信链路缺乏准确度,将丢弃该数据。
因此,各实施例使能了可寻址SPI总线和相关联的通信协议。可寻址SPI总线包括多个从设备,每个从设备显示了一特定地址和一移位寄存器。该移位寄存器的输出通过显示了三种状态的输出,也被称为三态输出的缓冲器连接到共同的MISO总线。主设备维护并行连接到多个从设备中的每一个的单SS线来表示帧的开始,并通过MOSI总线来发送多个从设备中的表示为目标从设备的特定从设备的地址。目标从设备响应于接收到的地址使能与其相关联的三态输出,从而经由MISO总线将目标从移位寄存器的输出发送给主设备。
在一实施例中,目标从设备输出该特定从设备地址作为确认和错误检测信号。在另一实施例中,将发送的数据和/或地址回送给数据源,并将回送的数据和/或地址与发送的数据和/或地址进行比较。如果回送的数据和/或地址与发送的数据和/或地址相匹配,则生成和发送CRC来确认数据准确度。如果回送的数据和/或地址与发送的数据和/或地址不匹配,则生成和发送不正确的CRC来确认应该丢弃数据。
在另一实施例中,主设备首先输出将对其读取或写入数据的目标可寻址寄存器的地址,并随后输出目标从设备的地址。每个从设备,响应于接收到的目标可寻址寄存器地址,从对应于接收到的目标可寻址寄存器地址的可寻址寄存器中检索数据。每个从设备接收随后输出的目标从设备地址,并将该目标从设备地址与其特定地址进行比较。目标从设备使能与其相关联的三态输出,并以减少的等待时间经由MISO总线将检索到的数据发送给主设备。
可以了解,基于清楚的目的在独立的实施例的上下文中所描述的本发明的某些特征,也可在单个实施例中以组合的方式来提供。相反地,基于简明的目的在单个实施例的上下文中所描述的本发明的各种特征,也可以独立地或在任意适当的子组合中来提供。
如果没有另外定义,本文所使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员所共同理解的术语相同的含义。虽然在本发明的实践或者测试中可以使用与本文所描述的方法类似或等效的方法,但本文仅描述了适当的方法。
本文所提到的所有公开出版物、专利申请、专利以及其它引用都通过引用将其全文结合于此。并未作出任意引用可构成现有技术的许可。对引用的讨论说明了作者声称了什么,且申请人保留质疑所引用的文件的准确度和相关性的权利。可以清楚地理解,尽管本文引用了多个现有技术的难题,但这些引用并不构成这些文档中的任意文档形成了任意国家的在本技术领域中的公知常识的一部分的许可。
如果发生冲突,则包括定义的专利说明书将占优势。此外,素材、方法和例子都仅是示例性的而非旨在限定。
在本申请的权利要求书和本发明的说明书中,除了上下文需要、或由于表达语言或必要的暗示的地方,以任意包括性意义来使用单词“包括”或者诸如“包含”和“包括了”等各种变化,即指定所述特征的存在,但并不排除在本发明的各种实施例中存在或添加进一步的特征。
本领域技术人员可以理解,本发明并不限于上文所特定显示和描述的内容。本发明的保护范围由所附权利要求来定义,且包括上述各种特征的组合和子组合,以及本领域技术人员在阅读上述描述时所想到的各种变化和修改。
Claims (31)
1.一种可寻址串行外围接口总线装置,包括:
主设备;
多个从设备,所述从设备中的每一个都具有一相关联的特定从设备地址;
将所述主设备连接到所述多个从设备中的每一个的第一和第二通信链路,所述第一通信链路不同于所述第二通信链路,所述多个从设备并行连接到所述主设备;
与所述主设备相关联并连接到所述多个从设备中的每一个的时钟,所述时钟可用于将经由所述第一通信链路传送的数据从所述主设备输出并输入到所述多个从设备中的每一个;以及
使能控制线,所述使能控制线响应于所述主设备且并行连接到所述多个从设备中的每一个,
其中所述主设备可用于响应于所述使能控制线展示一活动信号,经由所述第一通信链路发送一目标地址,以及
其中所述多个从设备中的每一个可用于:
经由所述第一通信链路从所述主设备接收所述目标地址;
将所述接收到的目标地址与所述相关联的特定从设备地址进行比较;以及
仅在所述接收到的目标地址与所述相关联的特定从设备地址相一致的情况下,响应于所述使能控制线展示所述活动信号以及响应于所述时钟,经由所述第二通信链路发送第一数据,所述发送从设备被表示为响应从设备。
2.如权利要求1所述的可寻址串行外围接口总线装置,其特征在于,所述多个从设备中的每一个还可用于在所述接收到的目标地址与所述相关联的特定从设备地址不一致的情况下向所述第二通信链路维持高阻抗。
3.如权利要求1所述的可寻址串行外围接口总线装置,其特征在于,所述多个从设备中的每一个都包括一比较功能,所述接收到的目标地址与所述相关联的特定从设备地址之间的所述比较响应于所述比较功能。
4.如权利要求1所述的可寻址串行外围接口总线装置,其特征在于,所述时钟还可用于作为由所述响应从设备发送的所述第一数据的时钟。
5.如权利要求1-4中任一项所述的可寻址串行外围接口总线装置,其特征在于,所述目标地址是广播地址,对于所述广播地址,所述多个从设备中没有一个是所述响应从设备。
6.如权利要求1-4中任一项所述的可寻址串行外围接口总线装置,其特征在于,所述第一数据包括所述响应从设备的所述特定从设备地址。
7.如权利要求6所述的可寻址串行外围接口总线装置,其特征在于,所述主设备可用于伴随由所述响应从设备经由所述第二通信链路发送的所述第一数据,经由所述第一通信链路发送一目标寄存器地址。
8.如权利要求7所述的可寻址串行外围接口总线装置,其特征在于,所述主设备还可用于在所述发送所述目标寄存器地址之后经由所述第一通信链路发送将被写入的数据和第一伪数据中的一个。
9.如权利要求8所述的可寻址串行外围接口总线装置,其特征在于,所述响应从设备可用于伴随经由所述第一通信链路发送的将被写入的数据和第一伪数据中的一个,经由所述第二通信链路回送所述发送的目标寄存器地址。
10.如权利要求9所述的可寻址串行外围接口总线装置,其特征在于,所述主设备还可用于在所述经由所述第一通信链路发送将被写入的数据和第一伪数据中的一个之后,经由所述第一通信链路发送第二伪数据,所述响应从设备可用于响应于所述目标寄存器地址,经由所述第二通信链路并伴随所述发送的的第二伪数据,发送所述将被写入的数据的回送和读取数据中的一个。
11.如权利要求1-4中任一项所述的可寻址串行外围接口总线装置,其特征在于,所述主设备可用于在所述发送所述目标地址之前,经由所述第一通信链路发送第二数据的内部地址,所述内部地址对所述多个从设备中的每一个都相同。
12.如权利要求11所述的可寻址串行外围接口总线装置,其特征在于,所述发送的第一数据包括所述特定从设备地址和响应于所述响应从设备的所述内部地址的数据中的一个。
13.如权利要求1-4中任一项所述的可寻址串行外围接口总线装置,其特征在于,所述主设备还用于:
发送一写命令;
伴随由所述响应从设备经由所述第二通信链路发送的所述第一数据,经由所述第一通信链路发送一目标寄存器地址;
经由所述第一通信链路发送将被写入的数据;
在发送所述将被写入的数据之后,经由所述第一通信链路发送伪数据,所述响应从设备伴随所述发送的伪数据经由所述第二通信链路回送所述将被写入的数据,所述响应从设备还可用于对所述回送的将被写入的数据计算循环冗余校验;以及
将所述发送的将被写入的数据与所述回送的将被写入的数据进行比较,且在它们相互一致的情况下,对所述将被写入的数据生成一循环冗余校验,并经由所述第一通信链路发送所述循环冗余校验,以及
其中所述响应从设备还可用于将所述发送的循环冗余校验与所述响应从设备的所述计算出的冗余校验进行比较,且仅在它们相互一致的情况下,响应于所述目标寄存器地址写入所述回送的数据。
14.如权利要求1-4中任一项所述的可寻址串行外围接口总线装置,其特征在于,所述主设备还可用于:
发送一读命令;
伴随由所述响应从设备经由所述第一通信链路发送的所述第一数据,经由所述第一通信链路发送一目标寄存器地址;
经由所述第一通信链路发送第一伪数据,所述响应从设备可用于伴随所述发送的伪数据,经由所述第二通信链路发送响应于所述目标寄存器地址的读取数据;
经由所述第一通信链路回送所述发送的读取数据,并对所述回送的读取数据计算一循环冗余校验,以及
其中所述响应从设备还可用于将所述回送的读取数据与所述发送的读取数据进行比较,且在它们相互一致的情况下对所述读取数据生成一循环冗余校验,并经由所述第二通信链路发送所述循环冗余校验,以及
其中所述主设备还可用于将所述响应从设备的所述发送的循环冗余校验与所述主设备的所述计算出的冗余校验进行比较,且仅在它们相互一致的情况下接受所述回送的数据。
15.一种总线通信的方法,包括:
提供一主设备;
提供多个从设备;
为所述所提供的多个从设备中的每一个提供一特定从设备地址;
提供一连接到所述主设备和所述多个从设备中的每一个的时钟;
提供一响应于所述主设备并连接到所述多个从设备中的每一个的使能控制线,
经由第一和第二通信链路来连接所述主设备和所述多个从设备,所述第一通信链路不同于所述第二通信链路,所述多个从设备并行连接到所述主设备;
经由所述第一通信链路从所述主设备发送一目标地址,所述发送与所述提供的时钟相关联并响应于在所述使能控制线上的活动信号;
在所述所提供的多个从设备中的每一个处经由所述第一通信链路从所述主设备接收所述目标地址;
将所述接收到的目标地址与所述特定从设备地址进行比较;以及
仅在所述接收到的目标地址与所述相关联的特定从设备地址相一致的情况下,响应于所述所提供的时钟和在所述使能控制线上的所述活动信号,经由所述第二通信链路来发送第一数据,所述发送从设备被表示为响应从设备。
16.如权利要求15所述的方法,其特征在于,还包括对每一个所提供的从设备:
如果所述接收到的目标地址与所述相关联的特定从设备地址不一致,则向所述第二通信链路呈现高阻抗。
17.如权利要求15-16中的任一项所述的方法,其特征在于,所述目标地址是广播地址,对于所述广播地址,所述多个从设备中没有一个是所述响应从设备。
18.如权利要求15-16中的任一项所述的方法,其特征在于,所述第一数据包括所述响应从设备的所述特定从设备地址。
19.如权利要求18所述的方法,其特征在于,还包括:
伴随由所述响应从设备经由所述第二通信链路发送所述第一数据,从所述所提供的主设备经由所述第一通信链路来发送一目标寄存器地址。
20.如权利要求19所述的方法,其特征在于,还包括,在所述发送所述目标寄存器地址之后:
从所述所提供的主设备经由所述第一通信链路发送将被写入的数据和第一伪数据中的一个。
21.如权利要求20所述的方法,其特征在于,还包括:
伴随所述经由所述第一通信链路发送的将被写入的数据和第一伪数据中的一个,从所述响应从设备经由所述第二通信链路回送所述发送的目标寄存器地址。
22.如权利要求21所述的方法,其特征在于,还包括在所述经由所述第一通信链路发送将被写入的数据和第一伪数据中的所述一个之后:
经由所述第一通信链路从所述主设备发送第二伪数据;以及
经由所述第二通信链路并伴随所述发送的第二伪数据,从所述响应从设备发送所述将被写入的数据的回送和响应于所述目标寄存器地址的读取数据中的一个。
23.如权利要求15-16中任一项所述的方法,其特征在于,还包括:
在所述发送所述目标地址之前,经由所述第一通信链路从所述主设备发送第二数据的内部地址,所述内部地址对所述多个从设备中的每一个都是相同的。
24.如权利要求23所述的方法,其特征在于,所述发送的第一数据包括所述特定从设备地址和响应于所述响应从设备的所述内部地址的数据中的一个。
25.如权利要求15-16中任一项所述的方法,其特征在于,还包括:
从所述主设备发送一写命令;
伴随由所述响应从设备经由所述第二通信链路发送的所述第一数据,经由所述第一通信链路从所述主设备发送一目标寄存器地址;
经由所述第一通信链路从所述主设备发送将被写入的数据;
在所述发送所述将被写入的数据之后,经由所述第一通信链路从所述主设备发送伪数据;
伴随所述发送的伪数据,经由所述第二通信链路由所述响应从设备回送所述将被写入的数据;
在所述响应从设备处对所述回送的将被写入的数据计算一循环冗余校验;
在所述主设备处将所述发送的将被写入的数据与所述回送的将被写入的数据进行比较;
在所述发送的将被写入的数据与所述回送的将被写入的数据相一致的情况下,由所述主设备对所述将被写入的数据生成并发送一循环冗余校验,所述发送所述生成的循环冗余校验经由所述第一通信链路;
在所述响应从设备处将所述发送的循环冗余校验与所述响应从设备的所述计算出的冗余校验进行比较,以及
仅在它们相互一致的情况下,响应于所述目标寄存器地址写入所述回送的数据。
26.如权利要求15-16中任一项所述的方法,其特征在于,还包括:
从所述主设备发送一读命令;
伴随由所述响应从设备经由所述第一通信链路发送的所述第一数据,经由所述第一通信链路从所述主设备发送一目标寄存器地址;
经由所述第一通信链路从所述主设备发送第一伪数据;
伴随所述发送的伪数据,经由所述第二通信链路从所述响应从设备发送响应于所述目标寄存器地址的读取数据;
经由所述的第一通信链路从所述主设备回送所述发送的读取数据;
在所述主设备处对所述回送的读取数据计算一循环冗余校验;
在所述响应从设备处将所述回送的读取数据与所述发送的读取数据进行比较;
在所述比较的回送的读取数据与所述发送的读取数据相一致的情况下,由所述响应从设备对所述读取数据生成并发送一循环冗余校验,所述发送所述生成的循环冗余校验经由所述第二通信链路;
在所述主设备处将所述响应从设备的所述发送的循环冗余校验与所述主设备的所述计算出的冗余校验进行比较,以及
仅在所述响应从设备的所述发送的循环冗余校验与所述主设备的所述计算出的冗余校验相一致的情况下,接受所述回送的数据。
27.一种总线通信的方法,包括:
提供多个从设备,所述多个从设备中的每一个都展示出多个可寻址寄存器,所述多个从设备中的第一个的所述多个可寻址寄存器中的至少一个展示出与所述多个从设备中的第二个的所述多个可寻址寄存器中的至少一个共享的地址;
为所述所提供的多个从设备中的每一个提供一特定地址;
在所述所提供的多个从设备中的每一个处接收一使能信号;
在所述所提供的多个从设备中的每一个处接收一时钟信号;
经由第一通信链路接收一目标从设备地址;
将所述接收到的目标从设备地址与所述所提供的特定地址进行比较;
经由第一通信链路接收第一数据;以及
在所述接收到的地址与所述特定地址相一致的情况下,响应于所述接收到的使能信号是活动的以及响应于所述接收到的时钟信号、伴随所述经由第一通信链路接收第一数据,经由第二通信链路来发送第二数据。
28.如权利要求27所述的方法,其特征在于,所述比较所述接收到地址响应于所述接收到的使能信号是活动的。
29.如权利要求27-28中任一项所述的方法,其特征在于,经由第二通信链路所发送的所述第二数据包括所述所提供的特定地址。
30.如权利要求27-28中任一项所述的方法,其特征在于,还包括:
经由所述第一通信链路接收将被发送的数据的内部地址,所述内部地址与所述所提供的多个从设备中的每一个都相关联。
31.如权利要求30所述的方法,其特征在于,所述将被发送的数据的内部地址在所述目标从设备地址的接收之前被接收。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88698207P | 2007-01-29 | 2007-01-29 | |
US60/886,982 | 2007-01-29 | ||
US88957007P | 2007-02-13 | 2007-02-13 | |
US60/889,570 | 2007-02-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101261614A CN101261614A (zh) | 2008-09-10 |
CN101261614B true CN101261614B (zh) | 2011-09-28 |
Family
ID=39669231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810096330XA Active CN101261614B (zh) | 2007-01-29 | 2008-01-29 | 可寻址串行外围接口 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7761633B2 (zh) |
CN (1) | CN101261614B (zh) |
IL (1) | IL189039A (zh) |
TW (1) | TWI448896B (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095699B2 (en) * | 2006-09-29 | 2012-01-10 | Mediatek Inc. | Methods and apparatus for interfacing between a host processor and a coprocessor |
DE102007024737A1 (de) * | 2007-05-25 | 2008-11-27 | Robert Bosch Gmbh | Datenübertragungsverfahren zwischen Master- und Slave-Einrichtungen |
US20090138638A1 (en) | 2007-11-27 | 2009-05-28 | Microsoft Corporation | Serial Peripheral Interface for a Transceiver Integrated Circuit |
CN101499046A (zh) * | 2008-01-30 | 2009-08-05 | 鸿富锦精密工业(深圳)有限公司 | Spi设备通信电路 |
CN101539771B (zh) * | 2008-03-21 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 主设备对从设备的自动定址系统 |
TWI470441B (zh) * | 2008-11-20 | 2015-01-21 | Johnson Controls Tech Co | Method and system of intelligent address allocation based on tandem bus |
US20100306442A1 (en) * | 2009-06-02 | 2010-12-02 | International Business Machines Corporation | Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network |
CN101950280B (zh) * | 2009-09-30 | 2012-11-14 | 威盛电子股份有限公司 | 产生多个串行总线芯片选择的方法 |
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 |
US8176209B2 (en) * | 2009-11-05 | 2012-05-08 | Electronics And Telecommunications Research Institute | Data communication system |
CN102096650B (zh) * | 2009-12-09 | 2012-11-21 | 炬力集成电路设计有限公司 | 一种接口装置 |
US8135881B1 (en) | 2010-09-27 | 2012-03-13 | Skyworks Solutions, Inc. | Dynamically configurable serial data communication interface |
KR20120055034A (ko) * | 2010-11-22 | 2012-05-31 | 삼성전자주식회사 | 휴대용 단말기에서 에스피아이를 이용한 주변 기기 연결 장치 및 데이터 전송 방법 |
CN102088386B (zh) * | 2011-01-20 | 2014-05-14 | 中北大学 | 一种电路系统主从互联模块的串行总线 |
US8966124B1 (en) * | 2012-09-26 | 2015-02-24 | The United States Of America As Represented By The Secretary Of The Navy | Systems, methods, and articles of manufacture to stream data |
US8909833B2 (en) * | 2012-09-26 | 2014-12-09 | The United States Of America As Represented By The Secretary Of The Navy | Systems, methods, and articles of manufacture to stream data |
JP6210187B2 (ja) | 2012-10-23 | 2017-10-11 | セイコーエプソン株式会社 | 集積回路装置、物理量測定装置、電子機器および移動体 |
KR101409040B1 (ko) * | 2012-11-22 | 2014-06-18 | 엘에스산전 주식회사 | 피엘씨 시스템의 데이터 처리 장치 및 방법 |
CN104253667A (zh) * | 2013-06-28 | 2014-12-31 | 联芯科技有限公司 | 一种应用于手机平台的串行同步总线校验反馈系统和方法 |
CN105993008A (zh) * | 2013-11-25 | 2016-10-05 | 株式会社村田制作所 | 高频装置及该高频装置的控制方法 |
US10783030B2 (en) * | 2014-03-12 | 2020-09-22 | Sensia Llc | Network synchronization for master and slave devices |
CN104079442B (zh) * | 2014-07-28 | 2018-05-25 | 南车株洲电力机车研究所有限公司 | 基于实时以太网的冗余控制装置、设备冗余系统和方法 |
CN105718400B (zh) * | 2014-12-05 | 2018-07-31 | 大陆汽车电子(芜湖)有限公司 | 基于spi的通信方法 |
US10055376B1 (en) * | 2015-01-15 | 2018-08-21 | Maxim Integrated Products, Inc. | Serial peripheral interface system with slave expander |
US9934117B2 (en) * | 2015-03-24 | 2018-04-03 | Honeywell International Inc. | Apparatus and method for fault detection to ensure device independence on a bus |
US9979782B2 (en) | 2015-03-24 | 2018-05-22 | Qualcomm Incorporated | Low-power and low-latency device enumeration with cartesian addressing |
US9990316B2 (en) * | 2015-09-21 | 2018-06-05 | Qualcomm Incorporated | Enhanced serial peripheral interface |
TWI567561B (zh) * | 2015-11-26 | 2017-01-21 | 新唐科技股份有限公司 | 匯流排系統 |
EP3174252A1 (en) * | 2015-11-26 | 2017-05-31 | Gemalto Sa | Communication system |
US20170168981A1 (en) * | 2015-12-09 | 2017-06-15 | Microchip Technology Incorporated | SPI Interface With Slave-Select Fault Detection And Status Signal |
US11956206B2 (en) | 2016-02-26 | 2024-04-09 | Micro Motion, Inc. | Communicating with two or more slaves |
GB2551206A (en) * | 2016-06-10 | 2017-12-13 | Gm Global Tech Operations Llc | Method to share data between semiconductors chips |
DE102016214416A1 (de) * | 2016-08-04 | 2018-02-08 | Continental Automotive Gmbh | Verfahren zur Vergabe von Adressen durch eine Master-Einheit an eine Anzahl von Slave-Einheiten |
CN106294255A (zh) * | 2016-08-04 | 2017-01-04 | 杭州智蚁科技有限公司 | 一种用于智能硬件的同步通信方法及通信系统 |
EP3316137A1 (en) * | 2016-10-27 | 2018-05-02 | NXP USA, Inc. | Register error detection system |
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 |
US10318471B2 (en) | 2017-06-09 | 2019-06-11 | GM Global Technology Operations LLC | Method to share data between semiconductors chips |
CN107819659B (zh) * | 2017-10-24 | 2020-09-29 | 七玄驹智能科技(上海)有限公司 | 一种基于spi的智能级联通信网络 |
CN109164745B (zh) * | 2018-11-05 | 2020-04-03 | 郑州轻工业学院 | 车载输入输出控制装置、方法及车辆 |
CN110325974B (zh) * | 2018-11-27 | 2023-09-22 | 深圳市汇顶科技股份有限公司 | 单通信接口及具有内部/外部寻址模式的方法 |
CN109581927A (zh) * | 2018-12-07 | 2019-04-05 | 庸博(厦门)电气技术有限公司 | 伺服驱动器的串行通讯方法及伺服驱动器 |
US11188495B2 (en) * | 2020-01-31 | 2021-11-30 | Infineon Technologies Ag | SPI broadcast mode |
US11379402B2 (en) * | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Secondary device detection using a synchronous interface |
US11379401B2 (en) * | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Deferred communications over a synchronous interface |
EP4033370B1 (en) * | 2021-01-22 | 2023-11-15 | Aptiv Technologies Limited | Communications system and method of operating the same |
CN113176966A (zh) * | 2021-03-12 | 2021-07-27 | 青芯半导体科技(上海)有限公司 | 一种检查spi接收数据有效性的系统及方法 |
TWI758156B (zh) * | 2021-04-06 | 2022-03-11 | 大陸商北京集創北方科技股份有限公司 | 廣播式spi通信方法、電路裝置及資訊處理裝置 |
CN113312297A (zh) * | 2021-06-22 | 2021-08-27 | 张玉禄 | 一种spi从接口、安全芯片及spi闪存电子装置 |
WO2023028741A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种高级扩展接口总线及片上系统 |
US11847077B2 (en) | 2021-12-06 | 2023-12-19 | Himax Technologies Limited | Serial peripheral interface integrated circuit and operation method thereof |
CN116614159B (zh) * | 2023-07-21 | 2024-04-26 | 西安矽源半导体有限公司 | 用于电池监测的双绞线隔离型通讯传输方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958277A (en) | 1987-07-24 | 1990-09-18 | Motorola, Inc. | Queued serial peripheral interface for use in a data processing system |
US5646609A (en) * | 1995-01-03 | 1997-07-08 | Motorola, Inc. | Circuit and method for selecting a circuit module |
US6038185A (en) | 1998-05-12 | 2000-03-14 | Atmel Corporation | Method and apparatus for a serial access memory |
US6496487B2 (en) | 1998-11-05 | 2002-12-17 | Visteon Global Technologies, Inc. | Efficient full duplex simultaneous message transfer |
US6304921B1 (en) | 1998-12-07 | 2001-10-16 | Motorola Inc. | System for serial peripheral interface with embedded addressing circuit for providing portion of an address for peripheral devices |
US7171542B1 (en) * | 2000-06-19 | 2007-01-30 | Silicon Labs Cp, Inc. | Reconfigurable interface for coupling functional input/output blocks to limited number of i/o pins |
US6715000B2 (en) | 2001-03-16 | 2004-03-30 | Texas Instruments Incorporated | Method and device for providing high data rate for a serial peripheral interface |
DE10123839A1 (de) | 2001-05-16 | 2002-11-28 | Bosch Gmbh Robert | Verfahren zur Datenübertragung zwischen einem Master und wenigstens einem Slave |
US7051143B2 (en) * | 2001-06-25 | 2006-05-23 | Schneider Automation Inc. | Method, system and program for the transmission of modbus messages between networks |
US6922790B2 (en) | 2002-07-25 | 2005-07-26 | Remote Switch Systems, Inc. | Three wire communication protocol |
DE60205106T2 (de) | 2002-08-07 | 2006-05-24 | Stmicroelectronics S.R.L., Agrate Brianza | Serielle Peripherieschnittstelle und Verwaltungsverfahren dafür |
TW200604810A (en) * | 2004-02-20 | 2006-02-01 | Renesas Tech Corp | Nonvolatile memory and data processing system |
US7095247B1 (en) | 2004-03-25 | 2006-08-22 | Lattice Semiconductor Corporation | Configuring FPGAs and the like using one or more serial memory devices |
JP2006139556A (ja) * | 2004-11-12 | 2006-06-01 | Toshiba Corp | メモリカード及びそのカードコントローラ |
US7519849B2 (en) * | 2005-12-20 | 2009-04-14 | Sun Microsystems, Inc. | Technique for providing service processor access to control and status registers of a module |
-
2008
- 2008-01-24 US US12/018,863 patent/US7761633B2/en active Active
- 2008-01-27 IL IL189039A patent/IL189039A/en not_active IP Right Cessation
- 2008-01-28 TW TW097103157A patent/TWI448896B/zh active
- 2008-01-29 CN CN200810096330XA patent/CN101261614B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
IL189039A0 (en) | 2008-11-03 |
TWI448896B (zh) | 2014-08-11 |
US7761633B2 (en) | 2010-07-20 |
TW200842588A (en) | 2008-11-01 |
CN101261614A (zh) | 2008-09-10 |
IL189039A (en) | 2012-07-31 |
US20080183928A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101261614B (zh) | 可寻址串行外围接口 | |
US4864496A (en) | Bus adapter module for interconnecting busses in a multibus computer system | |
US4979097A (en) | Method and apparatus for interconnecting busses in a multibus computer system | |
CN101876963B (zh) | PCI.Express通信系统及其通信方法 | |
CN106557446B (zh) | 总线系统 | |
US20050120275A1 (en) | Protective bus interface and method | |
US20110238938A1 (en) | Efficient mirroring of data across storage controllers | |
EP0287302B1 (en) | Cross-coupled checking circuit | |
US9448960B2 (en) | Address translation in I2C data communications system | |
WO1998028686B1 (en) | Storage subsystem load balancing | |
JPH06509199A (ja) | コンピュータ・ワークステーション拡張シャシー | |
JPH0812615B2 (ja) | 障害の許容範囲があるデータ保全装置及びその方法 | |
US7069305B2 (en) | Computer system and a data transfer method thereof using remote direct memory access | |
KR20150067896A (ko) | 직렬 통신 테스트 장치, 시스템 및 방법 | |
CN105068955A (zh) | 一种局部总线结构及数据交互方法 | |
US4837767A (en) | Bus adapter module with improved error recovery in a multibus computer system | |
US6742142B2 (en) | Emulator, a data processing system including an emulator, and method of emulation for testing a system | |
US7213180B2 (en) | Bus bridge circuit, bus connection system, and data error notification method for bus bridge circuit | |
US10346265B2 (en) | Protocol aware testing engine for high speed link integrity testing | |
US4254464A (en) | Common data buffer system | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
JPS6235144B2 (zh) | ||
JP2581705B2 (ja) | 直列デ−タ転送システム | |
GB2457147A (en) | Reading back data on an I2C bus to detect transmission errors | |
JP3086245B2 (ja) | 他系アクセス指定装置 |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: David ha Sharon of Israel Patentee after: MCPO Sen Mei POE Co. Ltd. Address before: David ha Sharon of Israel Patentee before: Microsemi Corp-analog Mixed Signal Group, Ltd. |