CN108446243A - 一种基于串行外设接口的双向通信方法与*** - Google Patents

一种基于串行外设接口的双向通信方法与*** Download PDF

Info

Publication number
CN108446243A
CN108446243A CN201810228292.2A CN201810228292A CN108446243A CN 108446243 A CN108446243 A CN 108446243A CN 201810228292 A CN201810228292 A CN 201810228292A CN 108446243 A CN108446243 A CN 108446243A
Authority
CN
China
Prior art keywords
microcontroller
data
transmitted
sent
clock signal
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.)
Granted
Application number
CN201810228292.2A
Other languages
English (en)
Other versions
CN108446243B (zh
Inventor
施天宇
王娴薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI FENGTIAN ELECTRONIC CO Ltd
Original Assignee
SHANGHAI FENGTIAN ELECTRONIC CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI FENGTIAN ELECTRONIC CO Ltd filed Critical SHANGHAI FENGTIAN ELECTRONIC CO Ltd
Priority to CN201810228292.2A priority Critical patent/CN108446243B/zh
Publication of CN108446243A publication Critical patent/CN108446243A/zh
Application granted granted Critical
Publication of CN108446243B publication Critical patent/CN108446243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请的目的是提供一种基于串行外设接口的双向通信方法与***,用于微控制器之间通信,其中第一微控制器工作于主设备模式,第二微控制器工作于从设备模式;上述方法包括:当所述第二微控制器存在需要发送至第一微控制器的第一待传送数据,片选所述第一微控制器;片选所述第二微控制器;所述第一微控制器向被片选的所述第二微控制器发送串行时钟信号;所述第二微控制器基于所述串行时钟信号,经MISO线向所述第一微控制器发送所述第一待传送数据。该方法和***以非常规4线制的方式实现了主设备、从设备的双向主动通信,并解决了无应答机制数据传输不可靠的问题。

Description

一种基于串行外设接口的双向通信方法与***
技术领域
本申请涉及通信领域,尤其涉及一种两个或者多个微控制器之间双向通信的技术。
背景技术
SPI是串行***设备接口(SPI,Serial Peripheral Interface)是Motorola公司推出的一种三线同步的总线通信技术,具有高速、全双工、同步通信的通信特点。通信双方以主从方式工作,通常有一个主设备和一个或多个从设备。参考图1,在SPI通信技术中,数据以数据位的形式通过交换形式传输,主设备产生SCK(Serial Clock)时钟脉冲,并通过MOSI(Master Out Slave In)线向从设备发送数据,从设备相应SCK信号,通过MISO(MasterIn Slave Out)线向主设备发送数据,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。其中,从设备具有片选引脚,由主设备置位,以图1中片选引脚CS低电压有效为例,当主设备需要与从设备通信,首先将从设备的片选引脚置低。
SPI通信技术使得微控制芯片具备与***设备或者其他微控制器之间进行同步通信的功能,拓展了微控制器的硬件功能,简化了与SPI有关的软件设计,降低了CPU的利用率。
但是,现有的SPI通信技术存在着数据流控制不定向、没有应答机制确认是否接收到数据、从设备无法主动向主设备发送信息的技术缺陷,这使得在SPI技术在应用领域上存在极大的局限性。
发明内容
鉴于现有技术的缺陷,本申请的一个目的是提供一种基于串行外设接口的双向通信方法,以控制主设备、从设备通信时控制数据流方向,-实现主设备、从设备之间双向主动、高可靠的非常规4线制的通信方式。
根据本申请的一个方面,提供了一种基于串行外设接口的双向通信方法,用于微控制器之间通信。其中第一微控制器工作于主设备模式,第二微控制器工作于从设备模式;所述第一微控制器经MOSI线向所述第二微控制器发送数据位,所述第二微控制器经MISO线向所述第一微控制器发送数据位。该方法包括:
S100当所述第二微控制器存在需要发送至第一微控制器的第一待传送数据,片选所述第一微控制器;
S200片选所述第二微控制器;
S300所述第一微控制器向所述第二微控制器发送串行时钟信号;
S400所述第二微控制器基于所述串行时钟信号,经所述MISO线向所述第一微控制器发送所述第一待传送数据。
根据本发明的一个实施例,所述步骤S100包括:
当所述第二微控制器的缓冲器中存在需要发送至第一微控制器的第一待传送数据,片选所述第一微控制器。
根据本发明的一个实施例,所述步骤S300包括:
所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送第二待传送数据。
根据本发明的一个实施例,所述方法还包括:
S310当所述第一待传送数据传输完毕,取消片选所述第一微控制器。
根据本发明的一个实施例,所述方法还包括:
S320当所述第一微控制器未被片选、且所述第一微控制器存在需要发送至第二微控制器的第三待传送数据,所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送所述第三待传送数据。
根据本发明的一个实施例,所述第一待传送数据包括第一数据位和至少一个第一校验位,所述至少一个第一校验位基于所述第一数据位和校验算法生成;
所述方法还包括:
S500所述第一微控制器基于所述校验算法和所述第一校验位,校验所述第一待传送数据;
S600当所述第一待传送数据通过校验,所述第一微控制器向所述第二微控制器发送第一应答信号。
根据本发明的一个实施例,所述方法还包括:
所述第二微控制器基于所述第一微控制器发送的串行时钟信号,经所述MISO线向所述第一微控制器发送所述第一待传送数据,直至所述第二微控制器接收到所述第一应答信号。
根据本发明的一个实施例,所述第二待传送数据包括第二数据位和至少一个第二校验位,所述至少一个第二校验位基于所述第二数据位和校验算法生成;
所述方法还包括:
S301所述第二微控制器基于所述校验算法和所述第二校验位,校验所述第二待传送数据;
S302当所述第二待传送数据通过校验,所述第二微控制器向所述第一微控制器发送第二应答信号。
根据本发明的一个实施例,所述方法还包括:
所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送所述第二待传送数据,直至所述第一微控制器接收到所述第二应答信号。
根据本申请的另一个方面,提供一种基于串行外设接口的双向通信***,其包括:
一第一微控制器,包括第一片选引脚,并工作于主设备模式;
一第二微控制器,包括第二片选引脚,并工作于从设备模式;以及
一通信控制模块,其第一控制输出端连接所述第一片选引脚,第二控制输出端连接所述第二片选引脚,并且所述通信控制模块根据上述双向通信方法配置。
根据本申请提供的基于串行外设接口的双向通信方法,主设备在检测到有新数据要发送给从设备的情况下,会主动向从设备送出时钟信号进行数据传输,把主设备中的数据发送到从设备,该过程不需要对主设备的片选信号进行操作;而从设备在检测到有新数据要发送给主设备的情况下,会以非常规4线制的方式,主动片选主设备,主设备检测到自身片选信号有效,向从设备送出时钟信号,从设备向主设备进行数据传输,达到从设备主动发送数据给主设备的目的。在此基础上,在从设备接收到数据以后会等待主设备的ACK(Acknowledgement)应答信号,从设备接收到ACK应答信号以后,数据传输结束,取消片选主设备,否则将重新发送数据;主设备接收到数据以后也同样会送出时钟信号发送ACK应答信号,主设备接收到从设备发送的ACK应答信号以后,数据传输结束,否则重新发送数据。
通常,SPI芯片连接方式是主设备的I/O引脚发送片选信号,从设备片选引脚接收片选信号,片选决定了从设备发送的数据能够被主设备所接收;本方案提供了一种非常规的SPI通信方式,将从设备的片选引脚作为I/O口输出片选信号,主设备的I/O引脚作为接收片选信号的一方,从而将主设备主动发送片选信号、从设备被动接受片选信号,转变成从设备也可主动发送片选信号、主设备也可接受片选信号并接收从设备的新数据。与现有技术相比,本申请能控制主设备、从设备通信时控制数据流方向,并实现主设备、从设备的双向主动通信,从而解决了SPI通信中存在的数据流不可控、从机端无法主动发送数据的问题;通过被发送数据的一端在接收到数据后发送ACK(Acknowledgement)应答信号,可确认接收设备接收到数据,从而解决了无应答机制数据传输不可靠的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出一种基于SPI的主从设备通信原理;
图2示出根据本申请一个实施例的双向通信的两个微控制器;
图3示出根据本申请一个实施例的一种双向通信方法的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在说明书及权利要求中使用了某些词汇来指称特定的组件,本领域技术人员应可理解,可能会用不同的名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在整篇说明书及权利要求当中所提及的“包括”为一开放式的用语,故应解释成“包括但不限定于”。此外,“连接”一词在此包括任何直接及间接的电气连接手段。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本申请将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
图2示出了根据本申请一个方面的双向通信的两个微控制器,分别为第一微控制器100、第二微控制器200。第一微控制器100和第二微控制器200通过MOSI线和MISO线进行数据传输,第二微控制器200的I/O接口连接第一微控制器100的片选(CS)接口,并通过I/O接口控制第一微控制器100的片选信号,其中I/O接口或片选信号是基于软件和/或硬件构造。以下以第一微控制器100、第二微控制器200的片选信号均为低电位有效为例进行说明;在一些实施例中,第一微控制器100或第二微控制器200的片选信号为高电位有效,可根据实际情况调整相应电平高低实现本申请锁公开的双向通信方法,但是仍包含在本申请的保护范围之内。
该方法包括步骤S100(未示出)、步骤S200(未示出)、步骤S300(未示出)和步骤S400(未示出),详述如下。
当通信准备工作完成后,在步骤S100中,当第二微控制器200中存在需要发送至第一微控制器100的第一待传送数据,片选第一微控制器100,例如通过第二微控制器200的I/O接口将第一微控制器100的片选接口电平拉低。为建立第一微控制器100和第二微控制器200之间的通信关系,在步骤S200中,第二微控制器200被片选。随后在步骤S300中,第一微控制器100向被片选的第二微控制器200发送串行时钟信号(SCK)。在步骤S400中,第二微控制器200收到该串行时钟信号(SCK)后,经过MISO线向第一微控制器100发送数据,其中,数据发送操作根据第一微控制器100所发送的串行时钟信号(SCK)进行,例如可在串行时钟信号的每个上升沿或下降沿传输上述第一待传送数据的一个数据位。
其中,在一些实施例中,在步骤S100中第二微控制器200通过检查其缓冲器中是否有数据来确定是否需要向第一微控制器100发送数据。例如,当第二微控制器200的缓冲区内存在数据(第一待传送数据),第二微控制器200将该第一待传送数据写入其寄存器。以第二微控制器200将寄存器中的数据从MSB(Most Significant Bit,最高有效位)开始向第一微控制器100中传输为例,第二微控制器200寄存器中的数据的MSB经MISO线传输至第一微控制器100寄存器的LSB(Least Significant Bit),第一微控制器100则将其寄存器中的数据取回至缓冲器中,便完成了第二微控制器200向第一微控制器100的数据传输。其中,第一微控制器100工作于主设备状态,第二微控制器200工作于从设备状态,因此上述方法实现了从设备向主设备主动发送数据。
在一些实施例中,第二微控制器200向第一微控制器100主动地、单向地传输有效数据。其中,第一微控制器100向被片选的第二微控制器200发送串行时钟信号(SCK)时,也通过MOSI线向第二微控制器200发送哑元数据,第二微控制器200收到该哑元数据后即可将其抛弃。例如,接上例,该哑元数据被填充至第二微控制器200的LSB。特别地,哑元数据可为空数据。
在另一些实施例中,在第二微控制器200向第一微控制器100传输数据的同时,第一微控制器100也可向第二微控制器200发送数据,以实现主从设备的双向通信,提高通信效率。例如,上述方法中,在步骤S300中,第一微控制器100的缓冲器内也存在需要发送至第二微控制器200的数据(第二待传送数据),此时,第一微控制器100除了向第二微控制器200发送串行时钟信号外,同时也经过MOSI线向第二微控制器200发送上述第二待传送数据。仍以第二微控制器200将寄存器中的数据从MSB(Most Significant Bit,最高有效位)开始向第一微控制器100中传输为例,第一微控制器100将需要发送至第二微控制器200的第二待传送数据送入其寄存器中,并将寄存器中的数据的MSB经MOSI线传输至第二微控制器寄存器的LSB,其中第一微控制器100和第二微控制器200的寄存器均为移位寄存器,上述数据位的交换过程形成一闭环。
在一些实施例中,在第二微控制器200向第一微控制器100传输完毕后,上述方法还包括步骤S310(未示出)。在步骤S310中,当所述第一待传送数据传输完毕,取消片选所述第一微控制器,例如通过第二微控制器200的I/O接口将第一微控制器100的片选接口电平拉高,第一微控制器100和第二微控制器200的通信过程结束;若工作于主设备状态的第一微控制器100还连接有其他的工作于从设备状态的微控制器,则第一微控制器100此时可与其他的微控制器进行数据传输或数据交换。第二微控制器200向第一微控制器100传输数据是否完成可根据第二微控制器200的缓冲器内是否还有数据来判断,例如当第二微控制器200的缓冲器内不存在数据,则传输过程完毕。
其中,在一些实施例中,上述方法还包括步骤S320(未示出)。在步骤S320中,当第一微控制器100未被片选、且第一微控制器100存在需要发送至第二微控制器200的第三待传送数据,第一微控制器100向第二微控制器200发送串行时钟信号,并经MOSI线向第二微控制器200发送上述第三待传送数据。
由于现有的SPI通信设备存在没有应答机制确认是否接收到数据的缺陷,一旦数据传输过程发生错误,有可能需要重新传输大量数据,严重降低通信效率。为克服该缺陷,在一些实施例中,第一微控制器100向第二微控制器200传输数据的过程设置有ACK(Acknowledgement)应答机制,其中,第一微控制器100传输至第二微控制器200的数据为一个数据帧。为便于说明,将第一微控制器100向第二微控制器200传输的数据帧称为第一数据帧。其中,每个第一数据帧末尾都包括至少一个校验位,该校验位是根据第一数据帧的数据位、基于校验算法生成的。在第一数据帧的数据位完全传输完毕后,第一微控制器100等待第二微控制器200返回的ACK应答信号;第二微控制器200基于与第一微控制器100相同的校验算法,根据第一数据帧中数据部分计算校验结果,与第一微控制器100发送的一个或者多个校验位进行比较,如果相同则校验成功,第二微控制器200将一个ACK应答字符(应答信号)送入缓冲器,代表第二微控制器200发送的第一数据帧已被成功接收;ACK应答字符被传输至第二微控制器200,第二微控制器200接收到该ACK应答字符后,开始下一数据帧的传输。而如果校验失败,第一微控制器100丢弃该第一数据帧,并等待第二微控制器200的下一次传输;第二微控制器200未收到ACK字符,在下一次传输周期中重新向第一微控制器100发送前述第一数据帧,直至收到第一微控制器100发送的ACK字符,本次传输成功,开始准备下一数据帧的传输。因此,一旦传输出错,也只需要重新发送出错的数据帧即可,而不需要重新发送整批数据。
与上述过程相似地,也可在第一微控制器100向第二微控制器200传输数据帧时设置ACK应答机制,执行流程与上述类似,不再赘述,并以引用方式包含于此。图3示出一种包括ACK应答机制的基于串行外设接口的双向通信方法。
其中,用于验证微控制器之间传输的数据帧的有效性的校验位可以基于单个校验位,例如采用奇偶校验,或海明校验。为尽可能提高信息传输过程中接收方接收成功的概率,从而提高传输效率,可对数据帧采用具有一定纠错能力的CRC(Cyclic RedundancyCheck,循环冗余校验),相应地数据帧包括数据段(由有用的信息码组成)和校验段(由信息码根据生成多项式生成)组成,校验段是数据段的校验和。循环冗余校验具有1位的纠错能力。接收方在对数据帧校验成功或纠错成功后,向发送方发送ACK字符,表示本次传输成功;否则接收方进入延时模式,等待发送方重发出错的数据帧即可。
根据本申请的另一方面,还公开了一种基于串行外设接口的双向通信***,包括:
一第一微控制器,包括第一片选引脚,并工作于主设备模式;
一第二微控制器,包括第二片选引脚,并工作于从设备模式;以及
一通信控制模块,其第一控制输出端连接所述第一片选引脚,第二控制输出端连接所述第二片选引脚,并且所述通信控制模块根据上述方法配置。
其中,上述通信控制模块可基于软件和/或硬件实现。
以上详细描述了本申请的较佳实施方式。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个***传送到另一***的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机***使用的计算机可读信息/数据。
在此,本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种基于串行外设接口的双向通信方法,用于微控制器之间通信,其中第一微控制器工作于主设备模式,第二微控制器工作于从设备模式;所述第一微控制器经MOSI线向所述第二微控制器发送数据位,所述第二微控制器经MISO线向所述第一微控制器发送数据位;
其特征在于,包括:
S100当所述第二微控制器存在需要发送至第一微控制器的第一待传送数据,片选所述第一微控制器;
S200片选所述第二微控制器;
S300所述第一微控制器向被片选的所述第二微控制器发送串行时钟信号;
S400所述第二微控制器基于所述串行时钟信号,经所述MISO线向所述第一微控制器发送所述第一待传送数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤S100包括:
当所述第二微控制器的缓冲器中存在需要发送至第一微控制器的第一待传送数据,片选所述第一微控制器。
3.根据权利要求1所述的方法,其特征在于,所述步骤S300包括:
所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送第二待传送数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S310当所述第一待传送数据传输完毕,取消片选所述第一微控制器。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
S320当所述第一微控制器未被片选、且所述第一微控制器存在需要发送至所述第二微控制器的第三待传送数据,所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送所述第三待传送数据。
6.根据权利要求1所述的方法,其特征在于,所述第一待传送数据包括第一数据位和至少一个第一校验位,所述至少一个第一校验位基于所述第一数据位和校验算法生成;
所述方法还包括:
S500所述第一微控制器基于所述校验算法和所述第一校验位,校验所述第一待传送数据;
S600当所述第一待传送数据通过校验,所述第一微控制器向所述第二微控制器发送第一应答信号。
7.根据权利要求6所述的方法,其中,所述方法还包括:
所述第二微控制器基于所述第一微控制器发送的串行时钟信号,经所述MISO线向所述第一微控制器发送所述第一待传送数据,直至所述第二微控制器接收到所述第一应答信号。
8.根据权利要求3所述的方法,其中,所述第二待传送数据包括第二数据位和至少一个第二校验位,所述至少一个第二校验位基于所述第二数据位和校验算法生成;
所述方法还包括:
S311所述第二微控制器基于所述校验算法和所述第二校验位,校验所述第二待传送数据;
S312当所述第二待传送数据通过校验,所述第二微控制器向所述第一微控制器发送第二应答信号。
9.根据权利要求8所述的方法,其中,所述方法还包括:
所述第一微控制器向所述第二微控制器发送串行时钟信号,并经所述MOSI线向所述第二微控制器发送所述第二待传送数据,直至所述第一微控制器接收到所述第二应答信号。
10.一种基于串行外设接口的双向通信***,其特征在于,包括:
一第一微控制器,包括第一片选引脚,并工作于主设备模式;
一第二微控制器,包括第二片选引脚,并工作于从设备模式;以及
一通信控制模块,其第一控制输出端连接所述第一片选引脚,第二控制输出端连接所述第二片选引脚,并且所述通信控制模块根据权利要求1至9中任一项所述方法配置。
CN201810228292.2A 2018-03-20 2018-03-20 一种基于串行外设接口的双向通信方法与*** Active CN108446243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810228292.2A CN108446243B (zh) 2018-03-20 2018-03-20 一种基于串行外设接口的双向通信方法与***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810228292.2A CN108446243B (zh) 2018-03-20 2018-03-20 一种基于串行外设接口的双向通信方法与***

Publications (2)

Publication Number Publication Date
CN108446243A true CN108446243A (zh) 2018-08-24
CN108446243B CN108446243B (zh) 2021-11-26

Family

ID=63195878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810228292.2A Active CN108446243B (zh) 2018-03-20 2018-03-20 一种基于串行外设接口的双向通信方法与***

Country Status (1)

Country Link
CN (1) CN108446243B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798269A (zh) * 2019-09-24 2020-02-14 深圳震有科技股份有限公司 基于gpio实现pcm从机功能的方法及***
CN110955625A (zh) * 2019-11-22 2020-04-03 上海麦腾物联网技术有限公司 一种基于spi的全双工实时通信的方法及装置
CN111061337A (zh) * 2019-12-10 2020-04-24 北京智联安科技有限公司 一种主机收发接口设计方法
CN111490920A (zh) * 2019-01-29 2020-08-04 杭州海康汽车技术有限公司 一种基于spi的数据传输方法、***及装置
CN111970448A (zh) * 2020-08-27 2020-11-20 上海艾为电子技术股份有限公司 光学防抖驱动电路、驱动***及其控制方法和电子设备
CN112291126A (zh) * 2020-10-23 2021-01-29 成都天锐星通科技有限公司 总线通信***、数据发送方法及数据接收方法
CN113014359A (zh) * 2021-04-15 2021-06-22 浙江奉天电子有限公司 一种基于uart的ipcl三方通信***
CN113407478A (zh) * 2021-08-23 2021-09-17 上海泰矽微电子有限公司 一种实现spi从设备主动申请传输的方法
CN113992317A (zh) * 2021-09-28 2022-01-28 山东云海国创云计算装备产业创新中心有限公司 一种spi通信方法、装置及存储介质
CN114911743A (zh) * 2022-07-12 2022-08-16 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法
CN116069698A (zh) * 2023-03-10 2023-05-05 苏州萨沙迈半导体有限公司 Spi数据传输方法和装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1439971A (zh) * 2002-02-20 2003-09-03 贵州以太科技信息产业有限责任公司 一种串行接口总线通信控制器
CN1808284A (zh) * 2006-01-26 2006-07-26 上海微电子装备有限公司 多采集通道的串行数据传输***及控制方法
KR20090052645A (ko) * 2007-11-21 2009-05-26 삼성전자주식회사 직렬 주변장치 인터페이스 기반의 양방향 데이터 전송 방법및 장치
CN101552733A (zh) * 2009-05-15 2009-10-07 深圳华为通信技术有限公司 一种基于spi实现数据传输的方法和***
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN103226531A (zh) * 2013-04-07 2013-07-31 北京工业大学 一种双端口外设配置接口电路
CN103377170A (zh) * 2012-04-26 2013-10-30 上海宝信软件股份有限公司 异构处理器间spi高速双向对等数据通信***
CN103460201A (zh) * 2011-02-15 2013-12-18 北欧半导体公司 串行接口
CN103678209A (zh) * 2012-09-18 2014-03-26 格科微电子(上海)有限公司 基于串行***设备接口总线的数据传输方法和***
CN103714029A (zh) * 2013-05-07 2014-04-09 深圳市汇春科技有限公司 新型二线同步通信协议及应用
CN103744825A (zh) * 2013-12-31 2014-04-23 北京中宇新泰科技发展有限公司 一种扩展兼容spi接口双向实时通讯方法
CN104811273A (zh) * 2015-04-02 2015-07-29 福州大学 一种高速单总线通信的实现方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1439971A (zh) * 2002-02-20 2003-09-03 贵州以太科技信息产业有限责任公司 一种串行接口总线通信控制器
CN1808284A (zh) * 2006-01-26 2006-07-26 上海微电子装备有限公司 多采集通道的串行数据传输***及控制方法
KR20090052645A (ko) * 2007-11-21 2009-05-26 삼성전자주식회사 직렬 주변장치 인터페이스 기반의 양방향 데이터 전송 방법및 장치
CN101552733A (zh) * 2009-05-15 2009-10-07 深圳华为通信技术有限公司 一种基于spi实现数据传输的方法和***
CN103460201A (zh) * 2011-02-15 2013-12-18 北欧半导体公司 串行接口
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN103377170A (zh) * 2012-04-26 2013-10-30 上海宝信软件股份有限公司 异构处理器间spi高速双向对等数据通信***
CN103678209A (zh) * 2012-09-18 2014-03-26 格科微电子(上海)有限公司 基于串行***设备接口总线的数据传输方法和***
CN103226531A (zh) * 2013-04-07 2013-07-31 北京工业大学 一种双端口外设配置接口电路
CN103714029A (zh) * 2013-05-07 2014-04-09 深圳市汇春科技有限公司 新型二线同步通信协议及应用
CN103744825A (zh) * 2013-12-31 2014-04-23 北京中宇新泰科技发展有限公司 一种扩展兼容spi接口双向实时通讯方法
CN104811273A (zh) * 2015-04-02 2015-07-29 福州大学 一种高速单总线通信的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
任宇飞: ""一种透明传输的双向SPI接口的设计与实现"", 《电讯技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111490920A (zh) * 2019-01-29 2020-08-04 杭州海康汽车技术有限公司 一种基于spi的数据传输方法、***及装置
CN110798269B (zh) * 2019-09-24 2021-12-10 深圳震有科技股份有限公司 基于gpio实现pcm从机功能的方法及***
CN110798269A (zh) * 2019-09-24 2020-02-14 深圳震有科技股份有限公司 基于gpio实现pcm从机功能的方法及***
CN110955625A (zh) * 2019-11-22 2020-04-03 上海麦腾物联网技术有限公司 一种基于spi的全双工实时通信的方法及装置
CN111061337A (zh) * 2019-12-10 2020-04-24 北京智联安科技有限公司 一种主机收发接口设计方法
CN111970448A (zh) * 2020-08-27 2020-11-20 上海艾为电子技术股份有限公司 光学防抖驱动电路、驱动***及其控制方法和电子设备
CN111970448B (zh) * 2020-08-27 2022-04-22 上海艾为电子技术股份有限公司 光学防抖驱动电路、驱动***及其控制方法和电子设备
CN112291126A (zh) * 2020-10-23 2021-01-29 成都天锐星通科技有限公司 总线通信***、数据发送方法及数据接收方法
CN113014359A (zh) * 2021-04-15 2021-06-22 浙江奉天电子有限公司 一种基于uart的ipcl三方通信***
CN113407478A (zh) * 2021-08-23 2021-09-17 上海泰矽微电子有限公司 一种实现spi从设备主动申请传输的方法
CN113992317A (zh) * 2021-09-28 2022-01-28 山东云海国创云计算装备产业创新中心有限公司 一种spi通信方法、装置及存储介质
CN114911743A (zh) * 2022-07-12 2022-08-16 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法
CN116069698A (zh) * 2023-03-10 2023-05-05 苏州萨沙迈半导体有限公司 Spi数据传输方法和装置
CN116069698B (zh) * 2023-03-10 2023-10-31 苏州萨沙迈半导体有限公司 Spi数据传输方法和装置

Also Published As

Publication number Publication date
CN108446243B (zh) 2021-11-26

Similar Documents

Publication Publication Date Title
CN108446243A (zh) 一种基于串行外设接口的双向通信方法与***
US7650388B2 (en) Wireless identification protocol with confirmation of successful transmission
JP5427360B2 (ja) フラッシュメモリに基づくメモリシステム
US8010860B2 (en) Method and architecture to prevent corrupt data propagation from a PCI express retry buffer
US20060277339A1 (en) Communication apparatus, switching method, and switching program
CN107908589B (zh) I3c验证从设备、主从设备的通信验证***及方法
CN107301138A (zh) 一种串行总线桥接方法及串行总线***
JP6971538B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
CN115587055A (zh) 总线的传输方法、***、设备及存储介质
CN117687664A (zh) 一种dsp的在线升级配置方法及装置
TWI416523B (zh) 非揮發性記憶體之寫入錯誤管理方法、非揮發性記憶體、記憶卡、以及非揮發性記憶體之控制器
US7360119B1 (en) Method and apparatus for handling SAS/SATA communication deadlock
JP2006059100A (ja) シリアル通信システム装置
CN102222181A (zh) 一种在嵌入式设备中实现可信计算平台的方法
CN117349208A (zh) 基于菊花链帧结构的隔离式串行接口双向通信方法、***、介质及主控器
JP7459191B2 (ja) シリアル・ペリフェラル・インターフェース集積回路およびその動作方法
JP4411328B2 (ja) データ通信システム及びデータ通信方法
JPH06303222A (ja) デジタルデータ伝送方法
EP3459189A1 (en) Communication apparatus, communication method, program, and communication system
CN113886297A (zh) 一种基于dma的spi并发通讯se装置及方法
JP2014116938A (ja) 電子タグ装置及びその通信方法
JP2008053783A (ja) データ転送バッファ制御装置及びデータ転送制御方法
CN118113207A (zh) 数据写入方法、存储装置及电子设备
JP2009130614A (ja) 通信制御装置、通信制御方法および通信制御プログラム
JP2008270887A (ja) シリアル通信方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Shi Tianyu

Inventor after: Wang Xianwei

Inventor after: Peng Xiongfei

Inventor before: Shi Tianyu

Inventor before: Wang Xianwei