CN110401585B - 可中断串行总线通讯方法、系统及介质 - Google Patents
可中断串行总线通讯方法、系统及介质 Download PDFInfo
- Publication number
- CN110401585B CN110401585B CN201910626286.7A CN201910626286A CN110401585B CN 110401585 B CN110401585 B CN 110401585B CN 201910626286 A CN201910626286 A CN 201910626286A CN 110401585 B CN110401585 B CN 110401585B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- slave
- line
- dal
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供了一种可中断串行总线通讯方法、系统及介质,包括:主从机相连步骤:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;命令发送步骤:令主机通过串行命令数据总线向从机发送命令;数据传输步骤:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输。本发明主机接受数据时,只有当主机发送DAL上拉脉冲时,从机才会发送下一个数据位,避免了主机相应中断程序而延后采集SDC上的数据而造成的错误。
Description
技术领域
本发明涉及数据通信技术领域。具体地,涉及可中断串行总线通讯方法、系统及介质。尤其地,涉及一种双线数据通信方法。
背景技术
与目前的多数标准串行数据通信方式,如SPI/I2C/SMBus/Onewire不同,ISBus可以适应中断性频发的系统,从而保证了通信中的数据完整性。
在SMBus/I2C/SPI系统中,从机之间的器件地址必须保证不同,在数据线提供数据时,时钟沿附件没有发生中断的可能性,才能确保读取数据的正确性。这不仅会限制了器的使用的可能件以及的使用数目。
在Onewire总线系统中,主机在发送命令和接受从机数据时,对单个数据位的时序要求很高。主机系统中如果一旦有中断抢占了通信比特,将会导致整个系统的瘫痪和数据无效。
ISBus解决了SMBus/I2C的同厂家产品在总线的负载数目不多的问题,又解决了Onewire产品对时序响应严格的问题,在中断系统中容易发生错误的问题。
专利文献CN100531165C(申请号:200410063156.0)公开了一种在双线型数据通信中的没有由于信号之间时滞的影响而产生的错误数据解调的稳定通信,该双线型数据通信用于在控制器和数据存储设备之间执行数据通信以及通过第一信号线和第二信号线来提供时钟和电能。当控制器发送正相位时钟脉冲如第一发送信号(a)以及反相位时钟脉冲如第二发送信号(b)时,当发送数据逻辑为“1”时,控制器将第二发送信号的“H”脉冲调制为相对于第一发送信号的“L”脉冲提前时间td1的信号,当发送数据的逻辑为“0”时,则将其调制为相对于第一发送信号的“L”脉冲提前时间td2的信号,并发送所调制的信号。数据载体设备通过使用从第一发送信号中提取的时钟来检测第二发送信号延迟时间的变化以解调数据(e)。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种可中断串行总线通讯方法、系统及介质。
根据本发明提供的一种可中断串行总线通讯方法,其特征在于,包括:
主从机相连步骤:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;
命令发送步骤:令主机通过串行命令数据总线向从机发送命令;
数据传输步骤:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输。
优选地,所述命令发送步骤:
主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机。
优选地,所述数据传输步骤包括:
主机接受数据步骤:在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据步骤:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
优选地,所述主机发送数据步骤:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据步骤:
只有在等待主机接受数据之后,才会上拉DAL线。
优选地,所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
根据本发明提供得一种可中断串行总线通讯系统,包括:
主从机相连模块:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;
命令发送模块:令主机通过串行命令数据总线向从机发送命令;
数据传输模块:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输。
优选地,所述命令发送模块:
主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机。
优选地,所述数据传输模块包括:
主机接受数据模块:在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据模块:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
优选地,所述主机发送数据模块:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据模块:
只有在等待主机接受数据之后,才会上拉DAL线
所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
根据本发明提供得一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现上述中任一项所述的可中断串行总线通讯方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明主机发送数据有DAL线作双重确认,从而避免因为主机响应中断程序而延长发送数据1时的下拉。
2、本发明主机接受数据时,只有当主机发送DAL上拉脉冲时,从机才会发送下一个数据位,避免了主机相应中断程序而延后采集SDC上的数据而造成的错误。
3、本发明ISBus系统总线系统最多可以挂载可以65536个从机设备。也可以通过DevAddr对从设备的种类进行分配。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的优选例提供的ISBus的系统结构示意图。
图2为本发明的优选例提供的ISBus发送数据流程示意图。
图3为本发明的优选例提供的ISBus接受数据流程示意图。
图4为本发明的优选例提供的数据通讯流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种可中断串行总线通讯方法,其特征在于,包括:
主从机相连步骤:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;
命令发送步骤:令主机通过串行命令数据总线向从机发送命令;
数据传输步骤:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输。
具体地,所述命令发送步骤:
主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机。
具体地,所述数据传输步骤包括:
主机接受数据步骤:在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据步骤:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
具体地,所述主机发送数据步骤:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据步骤:
只有在等待主机接受数据之后,才会上拉DAL线。
具体地,所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
本发明提供的可中断串行总线通讯系统,可以通过本发明给的可中断串行总线通讯方法的步骤流程实现。本领域技术人员可以将所述可中断串行总线通讯方法,理解为所述可中断串行总线通讯系统的一个优选例。
根据本发明提供得一种可中断串行总线通讯系统,包括:
主从机相连模块:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;
命令发送模块:令主机通过串行命令数据总线向从机发送命令;
数据传输模块:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输。
具体地,所述命令发送模块:
主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机。
具体地,所述数据传输模块包括:
主机接受数据模块:在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据模块:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
具体地,所述主机发送数据模块:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据模块:
只有在等待主机接受数据之后,才会上拉DAL线
所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
根据本发明提供得一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现上述中任一项所述的可中断串行总线通讯方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
本发明公开了一种可中断串行总线协议(Interruptable Serial Bus,ISBus)的数据通信方法,主机通过串行命令数据线(Serial Command Data,SCD)和数据通知线(DataAcknowledge Line,DAL)和从机相连。
主机发送命令都必须通过命令主线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度位TRSP的脉冲;主机才可以发送Device Command,然后发送Function Command。
主机接受数据时,主机必须先在SCD上发送一个时间为TINI的下拉脉冲,然后主机在TSAMPLE时间之后采集到SCD线上的电平为高,那么就识别成逻辑1;
当主机读取数据完毕,将DAL上发送一个上拉脉冲时间长度为TACK,在主机准备读取下一个数据位时,必须将DAL线上的电平置成低电平。在TINI时间之后,从机发送逻辑0数据,即将会把SCD拉低。如果主机正在响应系统其他中断程序,从机会一直拉低SCD线。在等待TTIMEOUT时间之内,如果从机还没有等待到DAL线的上拉脉冲,从机将会释放SCD总线并设置SuccessFlag为0,表示通讯发生错误。在等待TTIMEOUT时间之内,如果从机接受到了DAL线上的上拉脉冲,则表示主机读取逻辑0成功。
优选例2:
现在结合附图和优选实例对本发明作进一步的详细的说明。这些附图均是简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示本发明有关的构成。
ISBus总线系统如图1所示,有一个主机和N=4个从机构成。主机可以是MCU,PC机或FPGA开发板。4个从设备的DeviceAddr分别是:0x80,0x80,0x98,0x98,SerialID分别是:0x341F22,0x0022FC,0x1482CC,0x908312。SCD总线存在一个电阻R=4.7KΩ的电阻和电源VCC相连接。
SDC总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。如果SDC总线上存在一个保持低电平时间超过220us,总线上所有的从设备都会被复位。
如图2,发送Device Command的Match Command。在发送第三个比特时,因为中断程序的执行,本来应该发送1时,低电平的时序由1us变成40us,在从设备的SDC总线上,采集到了0,但是在DAL总线上,数据是1。因此从设备认定主机发生了中断程序执行而错误发送数据0,将其纠正成1。Match Command之后发送了8比特的DeviceAddr和24比特的SerialID。然后发送IncrReadRegister的命令,接着发送寄存器地址的开始值,如图3,就是主机接受从设备发送的温度数据。
优选例3:
一种可中断串行总线通讯方法和装置,其特征在于,包括:
主机通过串行命令数据线和数据通知线和从机相连。
主机发送命令都必须通过命令主线发送一个下拉时间大于T_RST的脉冲,从机相应这一脉冲之后,发送下拉长度位T_RSP的脉冲;主机才可以发送Device Command,然后发送Function Command。
主机接受数据时,必须先在SCD上发送一个时间为T_INI的下拉脉冲,然后主机在T_SAMPLE时间之后采集到SCD线上的电平;只有当主机采集数据完毕之后,主机才会在DAL上发送一个上拉脉冲时间长度为T_ACK。
在主机准备读取下一个数据位时,必须将DAL线上的电平置成低电平。在T_INI时间之后,从机发送逻辑0数据,即将会把SCD拉低。如果主机正在响应系统其他中断程序,从机会一直拉低SCD线。在等待T_TIMEOUT时间之内,如果从机还没有等待到DAL线的上拉脉冲,从机将会释放SCD总线并设置SuccessFlag为0,表示通讯发生错误。
主机发送数据时,在SCD上发送一个时间为T_INI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时,则保持DAL上的高电平;如果发送1时,有中断程序执行,T_INI的下拉脉冲则会出现被拉长的可能,DAL可以被从机用于校验SCD线上数据的准确性。
如权利要求说明1所述的下拉时间大于T_RST的脉冲,其特征在于:下拉时间大于220us,但是小于1ms。
如权利要求说明1所述的下拉时间T_RSP的脉冲,其特征在于:下拉时间等于30us。
如权利要求说明1所述的Device Command,其特征在于:Read Device ID命令(8’h33),Match DeviceID(8’h55),Search DeviceID(8’hF0)和Skip DeviceID(8’hCC)。
如权利要求说明1所述的Function Command,其特征在于:Write Register命令(8’h4E),Read Register命令(8’hBE),Incr Read Register(8’hAE)和Copy Scratchpad命令(8’h48),Recall Mem(8’hB8)和温度转换命令(8’h44)。
如权利要求说明1所述的发送一个时间为T_INI的下拉脉冲,其特征在于:主机发送一个下拉时间小于1us的脉冲。
如权利要求说明1所述的DAL上发送一个上拉脉冲时间长度为T_ACK,其特征在于:如果是主机发送数据,上拉时间和SDC上的下拉是同步;如果是主机接受数据,只有在等待主机接受数据之后,才会上拉DAL。T_ACK的时间长度在15us和60us之间。
如权利要求说明1所述的主机在T_SAMPLE时间之后采集数据,其特征在于:在SCD线上的下拉脉冲之后30us。
如权利要求说明1所述的等待T_TIMEOUT时间,其特征在于:当主机接受数据时,如果SCD发送下拉脉冲时,等待时间超过30ms,那么从机就会将SCD置高。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种可中断串行总线通讯方法,其特征在于,包括:
主从机相连步骤:令主机通过串行命令数据总线SCD(Serial Command Data)和数据通知总线DAL(Data Acknowledge Line)和从机相连;
命令发送步骤:令主机通过串行命令数据总线向从机发送命令,主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机;
数据传输步骤:根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输;
所述数据传输步骤包括:
主机接受数据步骤:令主机在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据步骤:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
2.根据权利要求1所述的可中断串行总线通讯方法,其特征在于,所述主机发送数据步骤:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据步骤:
只有在等待主机接受数据之后,才会上拉DAL线。
3.根据权利要求2所述的可中断串行总线通讯方法,其特征在于,所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
4.一种可中断串行总线通讯系统,其特征在于,包括:
主从机相连模块:令主机通过串行命令数据总线SCD和数据通知总线DAL和从机相连;
命令发送模块:令主机通过串行命令数据总线向从机发送命令,主机通过命令总线发送一个下拉时间大于TRST的脉冲,从机响应这一脉冲之后,发送下拉长度为TRSP的脉冲,主机根据下拉长度为TRSP的脉冲,发送命令至从机;
数据传输模块:通过设置SCD线和DAL线的脉冲和电平高低的方式,根据发送的命令进行数据传输,主机发送数据时,通过数据通知总线,向从机确认主机发送的数据;主机接受数据时,主机通过数据通知总线向从机确认已经接受数据,可以继续下一次的数据传输;
所述数据传输模块包括:
主机接受数据模块:令主机在SCD线上发送一个时间为TINI的下拉脉冲,然后令主机在TSAMPLE时间之后采集SCD线上的电平,若为低电平,则表明主机正在接受数据0;若为高电平,则表明主机接受数据1,当主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;
主机接受下一个数据位时,将DAL线上的电平置成低电平,在TINI时间之后,从机发送逻辑0数据,即把SCD线上电平拉低,主机是否正在响应系统其他中断程序:若不是,则在主机接受数据完毕之后,令主机在DAL线上发送一个时间长度为TACK的上拉脉冲;若是,则从机一直拉低SCD总线上电平;
等待TTIMEOUT时间之后,如果从机还没有等待到DAL线的上拉脉冲,从机释放SCD总线并设置SuccessFlag为0,表示通讯发生错误;
主机发送数据模块:令主机在SCD线上发送一个时间为TINI的下拉脉冲,如果是发送逻辑0时,则保持DAL上的低电平;如果是发送逻辑1时无中断程序执行,则保持DAL上的高电平;如果发送逻辑1时有中断程序执行,则拉长TINI的下拉脉冲,从机根据DAL线校验SCD线上数据的准确性。
5.根据权利要求4 所述的可中断串行总线通讯系统,其特征在于,所述主机发送数据模块:
DAL线的上拉时间和SCD线上的下拉是同步的;
所述主机接受数据模块:
只有在等待主机接受数据之后,才会上拉DAL线
所述SCD总线的空闲状态为高电平,DAL总线上的空闲电平位低电平。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的可中断串行总线通讯方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910626286.7A CN110401585B (zh) | 2019-07-11 | 2019-07-11 | 可中断串行总线通讯方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910626286.7A CN110401585B (zh) | 2019-07-11 | 2019-07-11 | 可中断串行总线通讯方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110401585A CN110401585A (zh) | 2019-11-01 |
CN110401585B true CN110401585B (zh) | 2021-08-17 |
Family
ID=68324580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910626286.7A Active CN110401585B (zh) | 2019-07-11 | 2019-07-11 | 可中断串行总线通讯方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110401585B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444126A (zh) * | 2020-02-26 | 2020-07-24 | 上海申矽凌微电子科技有限公司 | 环形总线温度传感器及其通讯方法 |
CN114238196B (zh) * | 2021-11-11 | 2022-12-20 | 珠海妙存科技有限公司 | I2c总线单元、i2c总线系统及通信同步控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992804A (zh) * | 2005-12-28 | 2007-07-04 | 三星电机株式会社 | 通过i2c方法进行通信的相机模块 |
CN102088386A (zh) * | 2011-01-20 | 2011-06-08 | 中北大学 | 一种电路系统主从互联模块的串行总线 |
CN103714029A (zh) * | 2013-05-07 | 2014-04-09 | 深圳市汇春科技有限公司 | 新型二线同步通信协议及应用 |
CN103823776A (zh) * | 2014-02-28 | 2014-05-28 | 上海晟矽微电子股份有限公司 | 面向主从设备通信的单总线及通信方法 |
CN103838700A (zh) * | 2014-02-20 | 2014-06-04 | 江苏理工学院 | 电平复用控制串行通信装置及其通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690725B2 (en) * | 2014-01-14 | 2017-06-27 | Qualcomm Incorporated | Camera control interface extension with in-band interrupt |
-
2019
- 2019-07-11 CN CN201910626286.7A patent/CN110401585B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992804A (zh) * | 2005-12-28 | 2007-07-04 | 三星电机株式会社 | 通过i2c方法进行通信的相机模块 |
CN102088386A (zh) * | 2011-01-20 | 2011-06-08 | 中北大学 | 一种电路系统主从互联模块的串行总线 |
CN103714029A (zh) * | 2013-05-07 | 2014-04-09 | 深圳市汇春科技有限公司 | 新型二线同步通信协议及应用 |
CN103838700A (zh) * | 2014-02-20 | 2014-06-04 | 江苏理工学院 | 电平复用控制串行通信装置及其通信方法 |
CN103823776A (zh) * | 2014-02-28 | 2014-05-28 | 上海晟矽微电子股份有限公司 | 面向主从设备通信的单总线及通信方法 |
Non-Patent Citations (1)
Title |
---|
IIC总线工作原理;A_ck;《jianshu.com/p/c707c0f8c36a》;20171115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110401585A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106681953B (zh) | 使用i2c总线与主机连接的从机及其通信方法 | |
CN110401585B (zh) | 可中断串行总线通讯方法、系统及介质 | |
US20080086578A1 (en) | Integrated circuit device having send/receive macro for serial transfer bus | |
JP2018517987A (ja) | 50ナノ秒スパイクフィルタ用のテスト | |
EP0329776A1 (en) | Method and apparatus for interconnecting busses in a multibus computer system | |
US20040225812A1 (en) | Method and apparatus for interconnecting wired-AND buses | |
CN101231628A (zh) | 控制串行数据线的状态转换的定时的方法和设备 | |
CN105677598B (zh) | 基于i2c接口快速读取多个mems传感器数据的模块和方法 | |
EP1305718B1 (en) | Method and apparatus for connecting single master devices to a multimaster wired-and bus environment | |
AU2011313404B2 (en) | Electronic device and serial data communication method | |
JPH06324977A (ja) | データ転送方法 | |
CN114365103A (zh) | 菊花链模式进入序列 | |
US8874989B2 (en) | Memory system capable of increasing data transfer efficiency | |
EP3584711A1 (en) | Communication device, communication method, program, and communication system | |
CN214225796U (zh) | 时间同步电路 | |
JP2000293485A (ja) | 通信インターフェース | |
CN111984581A (zh) | 一种基于Linux的SPI总线主从设备通讯系统、方法及装置 | |
CN103593316A (zh) | 一种减少mcu中断占用i2c总线时间的方法 | |
CN112445744B (zh) | I2c通信 | |
KR20150061348A (ko) | I2c 통신에서 디바이스 어드레스를 설정하는 방법 및 디바이스 어드레스를 설정하는 장치 | |
CN109597630B (zh) | 一种带检测功能的p2mp软件烧写装置及方法 | |
CN115905075A (zh) | 实现SMBus传输的方法和系统 | |
CN213715913U (zh) | 一种微控制系统 | |
CN118113646A (zh) | 一种从机访问方法、装置、设备及存储介质 | |
CN110781127A (zh) | 一种星形拓扑的i2c通信装置及方法 |
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 |