CN111130678B - 数据传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111130678B CN111130678B CN201911306913.5A CN201911306913A CN111130678B CN 111130678 B CN111130678 B CN 111130678B CN 201911306913 A CN201911306913 A CN 201911306913A CN 111130678 B CN111130678 B CN 111130678B
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- sda
- sck
- idle state
- 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
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
Abstract
本发明公开了一种数据传输方法及装置、设备和计算机可读存储介质,该方法包括:根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;若SCK为空闲态,则根据SDA向从机发送同步头,并在同步头发送完成时,根据SDA向从机发送数据体,基于数据体将SCK的空闲态转换为时钟状态;在数据体发送完成时,将SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤,直至所述主机停止和所述从机进行数据传输。本发明能够不浪费用户的资源成本的同时,提高数据传输的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输方法、装置、设备及计算机可读存储介质。
背景技术
目前,常用的嵌入式通信协议有UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)、I2C(Inter-integrated Circuit,集成电路总线)和SPI(Serial Peripheral Interface,串行外围设备接口),目前主流的SoC(System-on-a-Chip,系统级芯片)都内置了这些通讯协议的控制器,同样,各种传感器、指纹模块、蓝牙、WIFI模块也都兼容这三种通信方式的一种或几种。但是这三种嵌入式通信协议均存在各种缺陷,如UART和I2C的通信速率很低,导致数据传输效率低下,而SPI虽然通信速率高,但是需要应用的信号线比UART和I2C应用的信号线多很多,极大地浪费用户的资源成本,因此,如何在不浪费用户的资源成本的同时,提高数据传输的效率成为了目前亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种数据传输方法、装置、设备及计算机可读存储介质,旨在解决不浪费用户的资源成本的同时,提高数据传输的效率的技术问题。
为实现上述目的,本发明提供一种数据传输方法,所述数据传输方法包括:
根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;
在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
可选地,所述若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头的步骤,包括:
若所述SCK为空闲态,则确定所述SDA中是否存在预设数量的连续脉冲;
若存在,则将所述连续脉冲作为同步头,并向所述从机发送同步头。
可选地,所述确定所述SDA中是否存在预设数量的连续脉冲的步骤之后,包括:
若所述SDA中不存在预设数量的连续脉冲,则控制所述从机保持当前状态不变。
可选地,所述根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态的步骤,包括:
获取预设的传输方式,基于所述传输方式将所述数据体通过所述SDA发送至所述从机;
根据所述传输方式和所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述SCK的时钟状态和所述数据体一一对应。
可选地,所述根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体的步骤,包括:
根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,其中,所述从机在接收到所述同步头,确定预设的存储区域,并在接收到所述数据体,将所述数据体存储至所述存储区域。
可选地,所述若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤,包括:
若接收到所述传输指令,则根据所述传输指令在所述主机中获取新数据体,并获取所述从机中所述存储区域的剩余容量,并检测所述新数据体的数据容量是否小于所述剩余容量;
若小于,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
可选地,所述若所述SCK为空闲态的步骤之前,包括:
获取预设的时钟极性,并检测所述SCK的信号状态是否和所述时钟极性匹配;
若匹配,则确定所述SCK的信号状态为空闲态。
此外,为实现上述目的,本发明还提供一种数据传输装置,所述数据传输装置包括:
确定模块,用于根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
发送模块,用于若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;
转换模块,用于在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
停止模块,用于若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
此外,为实现上述目的,本发明还提供一种数据传输设备;
所述数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中:
所述计算机程序被所述处理器执行时实现如上所述的数据传输方法的步骤。
此外,为实现上述目的,本发明还提供计算机存储介质;
所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的数据传输方法的步骤。
本发明通过根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。通过在SCK为空闲态时,主机根据SDA向从机发送同步头,并在同步头发送完成时,根据SDA向从机发送数据体,并将SCK的空闲态转换为时钟状态,从而简化了信号传输方式,不需要从机再发送信号给到主机通过SCK就知道从机是否接收完数据体,节约了成本,从而保障了在不浪费用户的资源成本的同时,提高了数据传输的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端\装置结构示意图;
图2为本发明数据传输方法第一实施例的流程示意图;
图3为本发明数据传输设备一实施例的系统结构示意图;
图4为本发明数据传输方法的主机与从机通信接口示意图;
图5为本发明数据传输方法的SDA空闲态为0,时钟极性为0时主机与从机通信的示意图;
图6为本发明数据传输方法的SDA空闲态为0,时钟极性为1时主机与从机通信的示意图;
图7为本发明数据传输方法的SDA空闲态为1,时钟极性为0时主机与从机通信的示意图;
图8为本发明数据传输方法的SDA空闲态为1,时钟极性为1时主机与从机通信的示意图;
图9为本发明数据传输方法的主机通信状态示意图;
图10为本发明数据传输方法的从机通信状态示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端为数据传输设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在终端设备移动到耳边时,关闭显示屏和/或背光。当然,终端设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据传输程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据传输程序,并执行以下操作:
根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;
在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
参照图2,本发明提供一种数据传输方法,在数据传输方法一实施例中,数据传输方法包括以下步骤:
步骤S10,根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
目前常用的嵌入式通信协议有UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)、I2C(Inter-integrated Circuit,集成电路总线)和SPI(Serial Peripheral Interface,串行外围设备接口),目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、指纹模块、蓝牙、WIFI模块也都兼容这三种通信方式的一种或几种。
UART通信协议一般是由TXD、RXD两根线组成,但是实际上一条线就足够通信。无论是主机还是从机,均可以自由发送数据。由于UART总线并没有时钟线,所以需要提前约定对应的波特率,否则数据传输容易出错。在异步通讯中,数据信号会包含数据帧的各种标识符,产生较多的开销,使得通讯效率低,传输速度比较慢。
I2C通信协议是一种半双工同步传输协议,也是两线接口,两根线之间通过复杂的逻辑关系传输数据,I2C的起始信号定义为在SCL的高电平期间,SDA给一个下降沿,数据部分I2C无固定波特率但有时序要求,只有在SCL为高电平期间,SDA才允许变化。另外,I2C总线的管脚都是开漏输出,必须外接上拉电阻,抗干扰能力较弱,通信速率不高。
SPI通信协议是一种全双工、同步串行通讯协议。一般需要四根线来完成主机与从机之间的通讯,分别是:串行时钟线(SCLK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线(NSS)。其发送与接收可以同时进行,传输速度可达到几Mbps水平,比I2C快。SPI是单主机通信协议,即总线上只有一只中心设备能发起通信,可以接多个从机,只是每增加一个从机,线路至少要增加一条,在芯片的管脚上占用的信号线也越多,使用的硬件资源就越多。
因此在本实施例中,通过提供一种通信协议,只取两个信号:时钟信号线中的时钟信号SCK和数据信号线中的数据信号SDA,应用于主机只需要向从机发送数据,而不需要读取从机数据的通信场合。例如,主机通过此协议将数据发送至从机,从机的数据经过解调后被发送到DA转换器转换成模拟信号,再发送到示波器显示波形。并且本实施例中的两线制通信协议与UART和I2C相比,通信速率更高,与标准的SPI通信协议相比,简化了信号传输方式,减少了一半的信号线,节约了芯片管脚,节省了PCB的布局空间,在保证数据传输效率的情况下尽可能地降低了成本。
并且在本实施例中,数据传输方法应用于一种两线制的通讯装置,如图4所示,包括通讯的主机与从机,以及设置在主机与从机之间用于主机向从机单向传输数据的数据线SDA,时钟信号线SCK。因此在检测到主机和从机准备进行通信时,先根据预设的通信协议来确定主机与从机之间的时钟信号SCK和数据信号线SDA。其中,预设的通信协议可以是本实施例中的两线制高速通信协议。
步骤S20,若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;
在确定主机与从机准备按照预设的通信协议进行通信时,主机开始向从机发送SCK和SDA两个信号。其中,SDA发送的数据格式分为两部分:同步头和数据体。因此当主机向从机发送的SCK信号线保持为空闲态时,还需要确定SDA是否为空闲态,若是,则从机中断所有操作,处于初始状态,等待下一次通信的开始,但是若SDA不是空闲态,且主机在SDA向从机发送同步头。若从机在检测到主机发送的同步头,会清空预设的存储区域,如Buff区域,以便接收主机发送的数据体。而主机将同步头发送完成后,紧接着将需要发送的数据体发出(可以按位传输,位数可以自定义,也可以按字节传输,长度可以固定或者自定义),同时SCK由空闲态转变为时钟状态,所需SCK的个数与所传输的数据的位数保持一致,而从机将主机发送过来的数据存入Buff区。但是若主机在SDA发送的数据保持不变(如0或1),则等待主机的一个数据体发送完成。其中,空闲态可以根据需要设置时钟极性,当时钟极性为0时,表示0为空闲态,当时钟极性为1时,表示1为空闲态。并且若主机在SDA发送N个连续性的脉冲时,表示一个数据的同步头,这里N大于等于1,且为正整数,例如N=4。数据体可以是需要传输的有效数据,也可以是有效数据和各种标识符(如设备地址、寄存器地址和校验位等)的混合,并且在本实施例中主机所传输的数据体的数据长度不受限制,通信速率也不受限制,可以应用在高速通信中。
另外为辅助理解本申请中SDA为空闲态时,主机与从机之间的通信,下面进行举例说明。
例如,如图5所示,在SDA空闲态为0,时钟极性为0时,主机与从机的通信是先发送同步头在发送数据体,且在发送数据体时,SCK的个数与SDA的位数保持一致。如图6所示,在SDA空闲态为0,时钟极性为1时,主机与从机通信是先发送同步头在发送数据体,且在发送数据体时,SCK的个数与SDA的位数保持一致。如图7所示,在SDA空闲态为1,时钟极性为0时,主机与从机通信是先发送同步头在发送数据体,且在发送数据体时,SCK的个数与SDA的位数保持一致。如图8所示,在SDA空闲态为1,时钟极性为1时,主机与从机通信是先发送同步头在发送数据体,且在发送数据体时,SCK的个数与SDA的位数保持一致。并且在图5、图6、图7和图8中,主机向从机连续发送的数据体为3个,但在本实施例中,并不限定于连续发送3个数据体,可以根据用户需要连续发送多个数据体。
步骤S30,在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
当在主机中将此次数据体发送完成时,会将SCK的时钟状态转换为空闲态,并会确定是否接收到继续和从机进行数据传输的传输指令,若是,则根据该传输指令确定主机中的新数据体,并发送新数据体对应的同步头至从机中,若不是,则认为此时主机与从机不需要再进行通信,那么主机将SCK和SDA保持为空闲态,从机保持当前状态,结束通信。其中,传输指令可以是用户提前设置的指令,也可以是在当前时刻用户输入的指令。
步骤S40,若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
当经过发现主机接收到该传输指令,则需要继续执行在SCK为空闲态时,根据SDA向从机发送同步头的步骤,并在同步头发送完成时,发送该同步头对应的新数据体,直至主机停止和从机进行数据传输,也就是主机和从机停止通信。
另外为辅助理解本实施例中的数据传输的原理,下面进行举例说明。
例如,如图9所示,在主机和从机开始进行通信时,主机向从机发送SCK和SDA信号,其中,SCK为空闲态(0或1),SDA为连续的N个脉冲,并在SDA的连续的N个脉冲发送完毕后,将SCK调整为时钟状态,通过SDA发送数据体给到从机,并在数据体发送完成时,确定是否继续发送下一个数据体至从机,若是,则继续执行SCK为空闲态(0或1),SDA为连续的N个脉冲的步骤,若并不是,则将SCK调整为空闲态(0或1),将SDA调整为空闲态(0或1),并结束主机与从机的通信。再例如,如图10所示,在从机与主机进行通信时,接收主机发送的同步头,并根据同步头清空从机中预设的存储区域(如Buff区),并等待主机发送数据体,接收主机发送的数据体,并确定数据传输是否结束,若否,则继续执行收到主机发送的同步头的步骤,若是,则从机保持当前状态,并结束与主机之间的通信。
在本实施例中,通过根据预设的通信协议确定所述主机与所述从机之间的时钟信号SCK和数据信号SDA;若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。通过在SCK为空闲态时,主机根据SDA向从机发送同步头,并在同步头发送完成时,根据SDA向从机发送数据体,并将SCK的空闲态转换为时钟状态,从而简化了信号传输方式,不需要从机再发送信号给到主机通过SCK就知道从机是否接收完数据体,节约了成本,从而保障了在不浪费用户的资源成本的同时,提高了数据传输的效率。
进一步地,在本发明第一实施例的基础上,提出了本发明数据传输方法的第二实施例,本实施例是本发明第一实施例的步骤S20,若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头的步骤的细化,包括:
步骤a,若所述SCK为空闲态,则确定所述SDA中是否存在预设数量的连续脉冲;
当主机向从机发送的SCK信号为空闲态时,还需要确定主机向从机发送的SDA中是否存在预设数量的连续脉冲,也就是确定主机是否有向从机发送同步头。
步骤b,若存在,则将所述连续脉冲作为同步头,并向所述从机发送同步头。
当经过判断发现在主机向从机发送的SDA中存在预设数量的连续脉冲,则可以将此预设数量的连续脉冲作为同步头发送至从机。
在本实施例中,通过将SDA中预设数量的连续脉冲作为同步头发送至从机,从而保障了从机能够有效地接收到主机发送的同步头。
进一步地,确定所述SDA中是否存在预设数量的连续脉冲的步骤之后,包括:
步骤c,若所述SDA中不存在预设数量的连续脉冲,则控制所述从机保持当前状态不变。
当经过判断发现SDA中不存在预设数量的连续脉冲,则可以认为主机发送的SDA没有携带同步头,并在确定SDA为空闲态时,控制从机保持当前状态不变,并等待下一次通信的进行。
在本实施例中,通过在确定SDA中不存在预设数量的连续脉冲,且SDA处于空闲态时,从机保持当前状态不变,从而避免了资源浪费。
进一步地,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态的步骤,包括:
步骤d,获取预设的传输方式,基于所述传输方式将所述数据体通过所述SDA发送至所述从机;
在主机将同步头发送完成后,还需要在主机中获取预设的传输方式,并根据该预设的传输方式将数据体通过SDA发送至从机。其中,预设的传输方式可以是按位传输,位数可以自定义,也可以是按字节传输,长度可以固定或者自定义。
步骤e,根据所述传输方式和所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述SCK的时钟状态和所述数据体一一对应。
当确定数据体的传输方式后,在将数据体发送至从机的同时,将SCK的空闲态转换为时钟状态,并且SCK的个数与所传输的数据的位数保持一致,也就是SCK的时钟状态和数据体一一对应。
在本实施例中,通过根据预设的传输方式将数据体从SDA发送至从机,并根据此传输方式和数据体将SCK的空闲态转换为时钟状态,从而保障了SCK时钟状态的有效性。
进一步地,根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体的步骤,包括:
步骤f,根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,其中,所述从机在接收到所述同步头,确定预设的存储区域,并在接收到所述数据体,将所述数据体存储至所述存储区域。
在主机通过SDA向从机发送同步头,并在同步头发送完成时,立即根据SDA向从机发送数据体。而从机则是在接收到同步头时,先确定需要存储该同步头对应数据体的存储区域,并对此存储区域进行清空处理,等待主机发送数据体,并在接收到主机发送的数据体时,将此数据体存储至该已清空的存储区域。
在本实施例中,通过主机根据SDA向从机发送同步头,从机根据此同步头确定预设的存储区域,将主机发送的数据体存储至该存储区域,从而保障了主机与从机之间数据传输的有效性。
进一步地,若是,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤,直至所述主机停止和所述从机进行数据传输的步骤之后,包括:
步骤g,若接收到所述传输指令,则根据所述传输指令在所述主机中获取新数据体,并获取所述从机中所述存储区域的剩余容量,并检测所述新数据体的数据容量是否小于所述剩余容量;
当经过判断发现接收到传输指令,则需要获取主机下一个进行数据传输的新数据体的长度,也就是确定该新数据体在存储区域中的数据容量,需要说明的是此新数据体的长度可以和已发生数据体的长度相同,也可以不相同。再获取从机中准备存储该新数据体的存储区域的剩余容量,并检测新数据体的数据容量是否小于存储区域的剩余容量,并基于不同的检测结果执行不同的操作。
步骤h,若小于,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
当经过判断发现新数据体的数据容量小于存储区域的剩余容量,则可以继续执行若SCK为空闲态时,则根据SDA向从机发送同步头的步骤,直至主机停止和从机进行数据传输。若新数据体的预存储容量大于存储区域的可用容量,则需要对此新数据体进行调整,直至新数据体的数据容量小于存储区域的剩余容量。
在本实施例中,通过确定主机中新数据体的数据容量是否小于剩余容量,若小于,则继续执行主机向从机发送新数据体对应的同步头的操作,从而保障了主机与从机之间数据传输的有效性。
进一步地,若所述SCK为空闲态的步骤之前,包括:
步骤k,获取预设的时钟极性,并检测所述SCK的信号状态是否和所述时钟极性匹配;
在主机中获取预设的时钟极性,也就是在主机中可以根据用户需要自行设置时钟极性,如设置时钟极性为0时,则表示0为空闲态,设置时钟极性为1时,则可以表示1为空闲态。此时就需要检测SCK的信号状态是否和该时钟极性匹配,并根据不同的检测结果执行不同的操作。
步骤m,若匹配,则确定所述SCK的信号状态为空闲态。
当经过判断发现SCK的信号状态和时钟极性匹配,则确定SCK的信号状态为空闲态,若不匹配,则确定SCK的信号状态为时钟状态。
在本实施例中,通过确定SCK的信号状态是否和预设的时钟极性匹配,若匹配,则确定SCK的信号状态为空闲态,从而保障了确定SCK为空闲态的有效性。
此外,参照图4,本发明实施例还提出一种数据传输装置,所述数据传输装置包括:
确定模块,用于根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
发送模块,用于若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态;
转换模块,用于在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
停止模块,用于若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
可选地,所述发送模块还用于:
若所述SCK为空闲态,则确定所述SDA中是否存在预设数量的连续脉冲;
若存在,则将所述连续脉冲作为同步头,并向所述从机发送同步头。
可选地,所述发送模块还用于:
若所述SDA中不存在预设数量的连续脉冲,则控制所述从机保持当前状态不变。
可选地,所述发送模块还用于:
获取预设的传输方式,基于所述传输方式将所述数据体通过所述SDA发送至所述从机;
根据所述传输方式和所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述SCK的时钟状态和所述数据体一一对应。
可选地,所述发送模块还用于:
根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,其中,所述从机在接收到所述同步头,确定预设的存储区域,并在接收到所述数据体,将所述数据体存储至所述存储区域。
可选地,所述停止模块还用于:
若接收到所述传输指令,则根据所述传输指令在所述主机中获取新数据体,并获取所述从机中所述存储区域的剩余容量,并检测所述新数据体的数据容量是否小于所述剩余容量;
若小于,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
可选地,所述数据传输装置还包括:
获取预设的时钟极性,并检测所述SCK的信号状态是否和所述时钟极性匹配;
若匹配,则确定所述SCK的信号状态为空闲态。
其中,数据传输装置的各个功能模块实现的步骤可参照本发明数据传输方法的各个实施例,此处不再赘述。
本发明还提供一种数据传输设备,所述数据传输设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据传输程序:
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据传输程序,以实现上述数据传输方法各实施例的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述数据传输方法各实施例的步骤。
本发明计算机可读存储介质具体实施方式与上述数据传输方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据传输方法,其特征在于,所述数据传输方法包括以下步骤:
根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
若所述SCK为空闲态,所述SDA也是空闲态,则所述SDA开始向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述数据体发送的方式为按位传输或按字节传输;所述数据体为需要传输的有效数据,所述有效数据为一个字节或多个字节;或所述数据体为有效数据和标识符的混合,所述标识符包括设备地址、寄存器地址和校验位,其中,所述主机和所述从机的通信速率不受限制,可以应用于高速通信中;
在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
2.如权利要求1所述的数据传输方法,其特征在于,所述若所述SCK为空闲态,则根据所述SDA向所述从机发送同步头的步骤,包括:
若所述SCK为空闲态,则确定所述SDA中是否存在预设数量的连续脉冲;
若存在,则将所述连续脉冲作为同步头,并向所述从机发送同步头。
3.如权利要求2所述的数据传输方法,其特征在于,所述确定所述SDA中是否存在预设数量的连续脉冲的步骤之后,包括:
若所述SDA中不存在预设数量的连续脉冲,则控制所述从机保持当前状态不变。
4.如权利要求1所述的数据传输方法,其特征在于,所述根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态的步骤,包括:
获取预设的传输方式,基于所述传输方式将所述数据体通过所述SDA发送至所述从机;
根据所述传输方式和所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述SCK的时钟状态和所述数据体一一对应。
5.如权利要求1所述的数据传输方法,其特征在于,所述根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体的步骤,包括:
根据所述SDA向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,其中,所述从机在接收到所述同步头,确定预设的存储区域,并在接收到所述数据体,将所述数据体存储至所述存储区域。
6.如权利要求5所述的数据传输方法,其特征在于,所述若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤,包括:
若接收到所述传输指令,则根据所述传输指令在所述主机中获取新数据体,并获取所述从机中所述存储区域的剩余容量,并检测所述新数据体的数据容量是否小于所述剩余容量;
若小于,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
7.如权利要求1-6任一项所述的数据传输方法,其特征在于,所述若所述SCK为空闲态的步骤之前,包括:
获取预设的时钟极性,并检测所述SCK的信号状态是否和所述时钟极性匹配;
若匹配,则确定所述SCK的信号状态为空闲态。
8.一种数据传输装置,其特征在于,所述数据传输装置包括:
确定模块,用于根据预设的通信协议确定主机与从机之间的时钟信号SCK和数据信号SDA;
发送模块,用于若所述SCK为空闲态,所述SDA也是空闲态,则所述SDA开始向所述从机发送同步头,并在所述同步头发送完成时,根据所述SDA向所述从机发送数据体,基于所述数据体将所述SCK的空闲态转换为时钟状态,其中,所述数据体发送的方式为按位传输或按字节传输;所述数据体为需要传输的有效数据,所述有效数据为一个字节或多个字节;或所述数据体为有效数据和标识符的混合,所述标识符包括设备地址、寄存器地址和校验位,其中,所述主机和所述从机的通信速率不受限制,可以应用于高速通信中;
转换模块,用于在所述数据体发送完成时,将所述SCK的时钟状态转换为空闲态,并确定是否接收到继续和所述从机进行数据传输的传输指令;
停止模块,用于若接收到所述传输指令,则继续执行所述若所述SCK为空闲态时,则根据所述SDA向所述从机发送同步头的步骤。
9.一种数据传输设备,其特征在于,所述数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如权利要求1至7中任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911306913.5A CN111130678B (zh) | 2019-12-17 | 2019-12-17 | 数据传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911306913.5A CN111130678B (zh) | 2019-12-17 | 2019-12-17 | 数据传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130678A CN111130678A (zh) | 2020-05-08 |
CN111130678B true CN111130678B (zh) | 2021-12-03 |
Family
ID=70499491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911306913.5A Active CN111130678B (zh) | 2019-12-17 | 2019-12-17 | 数据传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130678B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818127B (zh) * | 2020-06-11 | 2023-04-07 | 苏州伟创电气科技股份有限公司 | 数据同步方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111906A (zh) * | 2013-04-16 | 2014-10-22 | Nxp股份有限公司 | 针对单线内部集成电路控制总线的方法和系统 |
CN108170627A (zh) * | 2017-12-12 | 2018-06-15 | 晶晨半导体(上海)股份有限公司 | 一种通过时钟信号控制的数据传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4447341B2 (ja) * | 2004-01-30 | 2010-04-07 | パナソニック株式会社 | 情報処理装置 |
CN104978291B (zh) * | 2014-04-09 | 2019-10-22 | Nxp股份有限公司 | 基于i2c总线协议的单线接口总线收发系统系统及i2c单线通讯方法 |
-
2019
- 2019-12-17 CN CN201911306913.5A patent/CN111130678B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111906A (zh) * | 2013-04-16 | 2014-10-22 | Nxp股份有限公司 | 针对单线内部集成电路控制总线的方法和系统 |
CN108170627A (zh) * | 2017-12-12 | 2018-06-15 | 晶晨半导体(上海)股份有限公司 | 一种通过时钟信号控制的数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111130678A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482057B2 (en) | Multi-protocol dynamic address allocation | |
US10241955B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
EP3095038B1 (en) | Camera control interface extension with in-band interrupt | |
US9710410B2 (en) | Camera control slave devices with multiple slave device identifiers | |
EP2661064B1 (en) | Method for identifying universal serial bus host, and electronic device thereof | |
CN112639756B (zh) | 混合模式射频前端接口 | |
CN112416841A (zh) | 基于i2c总线的多机通信的实现方法及多机通信系统 | |
CN108111382B (zh) | 基于i3c总线的通信装置及其通信方法 | |
KR20050076924A (ko) | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 | |
CN105677598B (zh) | 基于i2c接口快速读取多个mems传感器数据的模块和方法 | |
TW202014904A (zh) | I3c上的低等待時間虛擬通用輸入/輸出 | |
EP3036647B1 (en) | Method to minimize the number of irq lines from peripherals to one wire | |
US20050091437A1 (en) | Multi-function universal serial bus wireless bridge | |
CN111130678B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
US10592441B2 (en) | Bus communication enhancement based on identification capture during bus arbitration | |
CN116541329A (zh) | 一种数据传输方法、装置、设备及介质 | |
CN111698739B (zh) | 通信装置和通信系统 | |
US8166225B2 (en) | USB interface data transmission device and USB interface data communication system | |
CN116954192A (zh) | 总线控制器的功能测试方法、系统、装置及可读存储介质 | |
CN115994111A (zh) | 数据处理电路、方法、芯片及电子设备 | |
CN110750478A (zh) | 一种多串口通信方法及系统 | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
KR20200093106A (ko) | 반도체 집적 회로 및 그것의 동작 방법 | |
CN116701275B (zh) | 终端设备扩展设备、方法、装置及总线标准设备 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 Shenzhen Software Park, 1 Shenzhen Software Park (2 phase), No. 2, No. 1, Nanshan District high tech District, Shenzhen City, Guangdong province (limited office) Applicant after: Fengji Technology (Shenzhen) Co., Ltd Address before: 518000 Shenzhen Software Park, 1 Shenzhen Software Park (2 phase), No. 2, No. 1, Nanshan District high tech District, Shenzhen City, Guangdong province (limited office) Applicant before: FORTIOR TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |