CN114817100B - 一种用于单板的数据读取方法和装置 - Google Patents
一种用于单板的数据读取方法和装置 Download PDFInfo
- Publication number
- CN114817100B CN114817100B CN202210364263.5A CN202210364263A CN114817100B CN 114817100 B CN114817100 B CN 114817100B CN 202210364263 A CN202210364263 A CN 202210364263A CN 114817100 B CN114817100 B CN 114817100B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- cache
- reading
- read
- 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
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机技术领域,提供了一种用于单板的数据读取方法和装置。其中从机接收到读取数据请求时,将采样得到的数据完整存储到缓存中,依次向主机发送缓存中的数据的字节,并向主机发送用于识别数据是否为最新数据的更新标志;主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据。本发明通过在读取数据请求时,将采样的数据存储到缓存中,以保证在数据发送过程中不被更改,从而保障发送给主机的数据永远为正确数据,且本实施例还提供了更新标志,从而可由主机任意选择是否重新读取最新数据,进而保证数据的实时性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种用于单板的数据读取方法和装置。
背景技术
随着计算机技术的发展,相对应的用于各个领域的嵌入式设备也越来越多,常见如手机、插盘式通信设备等,在嵌入式设备中,通常设置有多块单板,为了保障单板的正常运行,通常需要与多个单板进行交互,当前技术中,主要使用串行通信总线进行单板间的通信,其数据传输过程通常是以字节形式依次发送的,而在字节发送过程中,可能存在因时钟中断而导致发送中的数据被更改,在这种机制下,当数据在发送过程中被更改时,可能存在已发送的第一个字节属于旧值,而第二个字节被更新为新值后发送的情况,此时主机所接收到的两个字节分属于不同的值,即读取到的数据不正确。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是数据在发送过程中被更改,导致使用进行读操作所得到的数据错误。
本发明采用如下技术方案:
第一方面,本发明提供了一种用于单板的数据读取方法,包括:
从机接收到读取数据请求时,将采样得到的数据完整存储到缓存中,依次向主机发送缓存中的数据的字节,并向主机发送用于识别数据是否为最新数据的更新标志;
主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据。
优选的,所述并向主机发送用于识别数据是否为最新数据的更新标志,具体包括:
以字节中的一位或多位作为标志位,其他位作为数据位;
从机判断缓存中的数据与最新采样得到的数据是否相同,若相同,则不将标志位置位,否则,向主机发送标志位置位后的字节。
优选的,所述从机判断缓存中的数据与最新采样得到的数据是否相同,具体包括:
在将采样得到的数据完整存储到缓存中时,在缓存中存储数据的第一校验码;
在向主机发送相应字节时,根据最新采样得到的数据计算第二校验码;
若第一校验码与第二校验码一致,则缓存中的数据与最新采样得到的数据相同,否则缓存中的数据与最新采样得到的数据不同。
优选的,所述依次向主机发送缓存中的数据的字节,具体包括:
在向主机发送相应字节后,将所述字节从缓存中删除。
优选的,所述主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据,具体包括:
若数据为关键数据,且根据更新标志识别到数据不是最新数据,则重新发起读取数据请求,否则,继续读取缓存中的数据。
优选的,所述重新发起读取数据请求,具体包括:
主机将已读到的字节丢弃,结束此次读取,再重新发起读取数据请求。
优选的,所述则重新发起读取数据请求,具体包括:
若重新发起读取数据请求的次数超出预设次数,但所读取的数据依旧不是最新数据,则停止读取,并通报错误。
优选的,所述并向主机发送用于识别数据是否为最新数据的更新标志,还包括:
若所述数据的大小超出数据位所能够容纳的大小,则对数据进行字节扩展,在扩展的字节中同样预留标志位和数据位。
优选的,当使用I2C进行单板的数据读取时,所述读取数据请求是由所述主机发起的,具体包括:
所述主机控制串行时钟线SCL电平为高电平,且串行数据线SDA从高电平转为低电平。
第二方面,本发明还提供了一种用于单板的数据读取装置,用于实现第一方面所述的用于单板的数据读取方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的用于单板的数据读取方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的用于单板的数据读取方法。
本发明通过在读取数据请求时,将采样的数据存储到缓存中,以保证在数据发送过程中不被更改,从而保障发送给主机的数据永远为正确数据,且本实施例还提供了更新标志,从而可由主机任意选择是否重新读取最新数据,进而保证数据的实时性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种用于单板的数据读取方法的流程示意图;
图2是本发明实施例提供的一种用于单板的数据读取方法的流程示意图;
图3是本发明实施例提供的一种I2C数据原始读取方法的示意图;
图4是本发明实施例提供的一种用于单板的数据读取方法的示意图;
图5是本发明实施例提供的一种用于单板的数据读取方法的流程示意图;
图6是本发明实施例提供的一种用于单板的数据读取方法的流程示意图;
图7是本发明实施例提供的一种用于单板的数据读取装置的架构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例1提供了一种用于单板的数据读取方法,如图1所示,包括:
在步骤201中,从机接收到读取数据请求时,将采样得到的数据完整存储到缓存中,依次向主机发送缓存中的数据的字节,并向主机发送用于识别数据是否为最新数据的更新标志。
其中,由于单板间的通讯通常具有时钟以及中断特性,从机的采样与数据发送过程具体为:由从机采样模块实时采样更新数据,采样所得到的数据存储在寄存器中。从机向主机发送数据过程中,采样依旧进行。
其中,从机为数据请求方或数据接收方,主机为数据发送方。此时从机将最新一次采样得到的数据复制到缓存中,其中,由主机提供最新一次采样的数据的地址。并向主机发送数据中的第一个字节,在后续过程中,实时采样仍在进行,但所更改的是寄存器中的数据,缓存中的数据不因实时采样而发生改变,在后续应答并发送数据字节过程中,从机根据主机所提供的寄存器地址,进行寄存器与缓存地址的相互映射,得到缓存中的对应字节,并发送给主机,直至感知到停止条件,
所述更新标志可以是在数据外额外增添标志位,并将标志位发送给主机实现的,也可以是在数据原有的字节内部预留相应位置作为标志位。所述更新标志可以是仅占用一位,也可占用多位,当仅占用一位时,可使用0和1用于标志数据整体是否是最新数据,也可用于标志相应的字节是否与最新数据中的相应位置字节相同;当占用多位时,可综合表达数据整体是否是最新数据且数据中的那些字节与最新数据不同。
在步骤202中,主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据。
所述数据类型至少包括关键数据和非关键数据。其中,关键数据需在保证数据正确的同时且保持为最新数据;非关键数据仅需保证数据正确,对其是否为最新数据无严格要求。
由于单板间的通讯通常具有的时钟以及中断特性,其数据是按照字节依次发送的。即所述重新发起读取数据请求具体为:由主机控制产生停止条件,并将已接收到的字节丢弃,再产生读取数据的起始条件。所述继续读取缓存中的数据具体为:读取缓存中的数据的剩余字节。
本实施例通过在读取数据请求时,将采样的数据存储到缓存中,以保证在数据发送过程中不被更改,从而保障发送给主机的数据永远为正确数据,且本实施例还提供了更新标志,从而可由主机任意选择是否重新读取最新数据,从而保证数据的实时性。
由于在实际情况中,为了保障数据后续的可维护性,通常会在字节中预留相应位置,以用于后续数据长度调整、数值校验等,结合上述实施例,存在一中优选的实现方式,所述并向主机发送用于识别数据是否为最新数据的更新标志,具体包括:
在数据的每一个字节中预留一位或多位作为标志位,其它位作为数据位。
所述从机判断缓存中的数据与最新采样得到的数据是否相同,若相同,则不将标志位置位,否则,向主机发送标志位置位后的字节。
其中,所述其它位为字节中除标志位以外的位。以0或1中的任意一个值代表标志位置位,另一个代表标志位未置位。所述标志位可以是在将数据存储到缓存中时预留的,也可以是在向主机发送时再生成的。若数据大小超出了数据位所能够容纳的大小,则将数据进行字节扩展,在扩展的字节中以同样方法设定标志位和数据位,直至数据位足以容纳数据大小。
如数据大小为8位,而在一个字节中,需要预留标志位,故数据位仅有7位,则将数据的前7位放置在第一字节中,后一位放置在第二字节中,在第一字节与第二字节中均预设标志位,当数据与最新采样得到的数据不相同时,第一字节与第二字节中的标志位置位。若数据的大小变化幅度较大,还可在字节中预留长度位和/或序号位,通过数据长度或字节的序号,得到数据所在的多个字节,从而得到完整数据。
所述从机判断缓存中的数据与最新采样得到的数据是否相同具体为:当从机对主机进行应答时,将最新采样的数据与缓存中存储的数据进行对比,若最新采样的数据与存储的数据格式不同,则进行格式转换后再比较。如当一个数据为两字节数据时,当将其存储至缓存中时,将每一个字节的最后一位预留为标志位,则所应得到的实际数据为高字节的前七位与低字节的前七位的位合并所代表的值。将合并后的数据与采样所得的数据进行对比。
本优选实施例通过在每一个字节中放置标志位,且标志位所标志的是数据整体与采样所得的数据是否相同,可使主机快速感知到数据的更新,而无需等待数据发送结束后才得知数据是否为最新数据,或在每发送一个字节结束后额外发送标志位所在的字节,导致主机的感知时间或数据的发送时间延长。由此可为主机对数据的后续字节的快速反应处理提供相应的基础。
在上述实施例中,若在将数据存储到缓存中时,已为其添加了标志位,在后续发送时将数据与采样所得的数据进行比较时,每比较一次,则需要对缓存中的数据进行一次格式转换,较耗费资源和时间,针对此问题,结合上述实施例,存在以下优选实施例,如图2所示,所述从机判断缓存中的数据与最新采样得到的数据是否相同,具体包括:
在步骤301中,在将采样得到的数据完整存储到缓存中时,在缓存中存储数据的第一校验码。
在步骤302中,在向主机发送相应字节时,根据最新采样得到的数据计算第二校验码。
在步骤303中,若第一校验码与第二校验码一致,则缓存中的数据与最新采样得到的数据相同,否则缓存中的数据与最新采样得到的数据不同。
本优选实施例通过在将采样得到的数据存储到缓存中时,直接生成数据的校验码并存储,后续使用校验码进行一致性校验,从而避免在每一次发送字节前进行格式转换,进而加快数据的传输速率,减少资源占用。
由于在每一次读取数据请求时,均会将采样的数据存储到缓存,故为了减少资源占用,还存在以下优选的实现方式,即所述依次向主机发送缓存中的数据的字节,具体包括:
在向主机发送相应字节后,将所述字节从缓存中删除。
本实现方式通过每发送一个字节便从缓存中删除一个字节,从而减少资源占用,但当更新标志所标志的是数据整体是否是最新数据时,需将数据整体与采样数据比较后得出,此时,字节的删除可能导致无法得出有效的更新标志,对此,结合上述优选的实施例,即通过校验码进行一致性校验可得到有效解决。
由于关键数据需要保证其实时性,但非关键数据无需保证实时性,针对此情况,结合上述实施例,存在以下优选的实现方式,即所述主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据,具体包括:
若数据为关键数据,且根据更新标志识别到数据不是最新数据,则重新发起读取数据请求,否则,继续读取缓存中的数据。
所述重新发起读取数据请求,具体包括:
主机将已读到的字节丢弃,结束此次读取,再重新发起读取数据请求。
所述继续读取缓存中的数据具体为:继续读取缓存中的数据的后续字节。
本优选的实现方式通过关键数据和非关键数据判断是否重新进行数据读取请求,从而在保证关键数据的实时性的同时,缩减数据读取的时间,加快数据的读取处理流程。
在此实施例中,若关键数据持续被采样更新,则可能出现读取到的关键数据始终不是最新数据,从而引发数据不断循环读取,针对此问题,存在以下优选的实现方式,即所述则重新发起读取数据请求,还包括:
若重新发起读取数据请求的次数超出预设次数,但所读取的数据依旧不是最新数据,则停止读取,并通报错误。
所述预设次数是由本领域技术人员根据经验分析得出的。
本优选的实现方式通过设置预设次数,使数据在重新读取超出预设次数后,停止读取,使数据不因持续循环读取而持续占用数据传输通道和资源。
在本发明实施例中类似“A和/或B”的表述,其实际含义是实现方式中可以是以A作为对象方式实现,也可以是B作为对象方式实现,还可以是A和B组合的对象方式实现,而其中的A和B也可以根据具体描述场景的需求被替换为具体的主体名称对象。
本实施例中的“第一”、“第二”和“第三”没有特殊的限定的含义,之所以用其做描述仅仅是为了方便在一类对象中差异出不同的个体进行表述,不应当将其作为顺序或者其他方面带有特殊限定含义解释。
实施例2:
本发明基于实施例1所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
本实施例以使用IIC(Inter-Integrated Circuit,简写I2C)进行单板间的数据读取为例,演示本发明的详细流程。
I2C是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I2C串行总线一般有两根信号线,一根是双向的串行数据线SDA,另一根是串行时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际应用中得到广泛应用。
其中,图3展示了I2C中主机从从机读取数据的具体流程,即由主机产生起始条件,并设置数据所在的地址,再产生读信号,若从机认为可发送数据,则产生相应应答,并发送数据,其中图中所述的数据1、数据2至数据n可以是数据中的部分字节,也可以是整体数据,主要有I2C的中断决定,在发送数据结束后,主机产生非应答信号,并产生停止条件,从机感知停止发送数据。
具体为:主机控制SCL电平为高电平,且SDA从高电平转为低电平,从而产生读取数据的起始条件,从机通过SCL和SDA感知得到起始条件,从而开始数据发送和应答。
所述停止条件具体为:由主机控制SCL电平为高电平,且SDA从低电平转为高电平。
本实施例以主机从从机中读取一个两字节的值为例,该两字节的最大值为0x3FFFF。如读取某器件的功率值powerValue,以推算该器件所对应的风扇所应设置的速率,由于风扇通常需进行频繁的反馈调节,且器件的功率值通常并非突升突降,而是存在变化的过程,故可将器件的功率值设置为非关键数据,并通过每间隔一段时间读取一次功率值,并进行风扇调节,以减少器件读取的功率值非实时功率值所带来的影响。
其中,如图4所示,在读取时,主机控制SCL和SDA产生起始条件,并设置了读取powerValue的地址,此时对应的寄存器中最新采样得到的powerValue的高字节与低字节值分别为:0x0F以及0x3F,而在已向主机发送了powerValue的高字节后,又由于采样更新了寄存器中powerValue的高字节与低字节为0x00与0x69,若采用直接发送寄存器中的数据的方式,则发送给主机的高字节为0x0F,发送给主机的低字节为0x69,则主机所得到的powerValue值为0x0F69,这显然既不是powerValue的旧值也不是powerValue的最新的值,即主机所接收到的数据为错误数据,对此,根据实施例1所述的方法所进行powerValue的读取的步骤在从机侧具体包括:
在步骤401中,在感知到起始条件时,根据powerValue生成相应的第一校验码,将第一校验码存储到缓存中,进入步骤402。
在步骤402中,将powerValue中的第3位到第9位存储到缓存中位置p的第1位到第7位,将powerValue中的第10位到第16位存储到缓存中位置p+1的第1位到第7位,并将位置p和位置p+1的第8位初始化为0,其中,位置p与位置p+1均为缓存中powerValue所在位置的代指,进入步骤403。
在步骤403中,向主机发送位置p的值,进入步骤404。
在步骤404中,在对主机进行应答时,根据寄存器中的powerValue生成第二校验码,进入步骤405。
在步骤405中,判断第一校验码与第二校验码是否相同,若相同,则进入步骤407,否则,进入步骤406。
在步骤406中,将位置p+1的第8位置为1,进入步骤407。
在步骤407中,向主机发送位置p+1的值。
而在主机侧的步骤具体包括:
在步骤501中,在接收到字节时,判断数据是否为关键数据,若是关键数据,则进入步骤502,否则,进入步骤505。
在步骤502中,判断所接收到的字节的第8位是否为1,若是1,则进入步骤503,否则,进入步骤505。
在步骤503中,判断数据重新读取的次数是否大于3,若大于3,则进入步骤506,否则,进入步骤504,其中,3为预设次数。
在步骤504中,将已读取到的字节丢弃,并设置SCL和SDA出现结束条件,再设置SCL和SDA出现起始条件,并在接收到数据时进入步骤501。
在步骤505中,继续接收剩余字节,并在接收到数据时进入步骤501。
在步骤506中,将已读取到的字节丢弃,并设置SCL和SDA出现结束条件,通告故障。
本实施例中的“第一”、“第二”和“第三”没有特殊的限定的含义,之所以用其做描述仅仅是为了方便在一类对象中差异出不同的个体进行表述,不应当将其作为顺序或者其他方面带有特殊限定含义解释。
实施例3:
如图7所示,是本发明实施例的用于单板的数据读取装置的架构示意图。本实施例的用于单板的数据读取装置包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的用于单板的数据读取方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行用于单板的数据读取方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1和实施例2中的用于单板的数据读取方法,例如,执行以上描述的图1、图2、图5和图6所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种用于单板的数据读取方法,其特征在于,使用I2C进行单板的数据读取,包括:
从机接收到读取数据请求时,将采样得到的数据完整存储到缓存中,依次向主机发送缓存中的数据的字节,并向主机发送用于识别数据是否为最新数据的更新标志;
主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据;
所述并向主机发送用于识别数据是否为最新数据的更新标志,具体包括:
在数据的每一个字节中预留一位或多位作为标志位,其它位作为数据位;
所述从机判断缓存中的数据与最新采样得到的数据是否相同,若相同,则不将标志位置位,否则,向主机发送标志位置位后的字节;
所述从机判断缓存中的数据与最新采样得到的数据是否相同,具体包括:
在将采样得到的数据完整存储到缓存中时,在缓存中存储数据的第一校验码;
在向所述主机发送相应字节时,根据最新采样得到的数据计算第二校验码;
若第一校验码与第二校验码一致,则缓存中的数据与最新采样得到的数据相同,否则缓存中的数据与最新采样得到的数据不同;
所述主机根据更新标志和数据类型,选择重新发起读取数据请求或继续读取缓存中的数据,具体包括:
若所述数据为关键数据,且根据更新标志识别到数据不是最新数据,则重新发起读取数据请求,否则,继续读取缓存中的数据。
2.根据权利要求1所述的用于单板的数据读取方法,其特征在于,所述依次向主机发送缓存中的数据的字节,具体包括:
在向所述主机发送相应字节后,将所述字节从缓存中删除。
3.根据权利要求1所述的用于单板的数据读取方法,其特征在于,所述重新发起读取数据请求,具体包括:
所述主机将已接收到的字节丢弃,结束此次读取,再重新发起读取数据请求。
4.根据权利要求1所述的用于单板的数据读取方法,其特征在于,所述则重新发起读取数据请求,还包括:
若重新发起读取数据请求的次数超出预设次数,但所读取的数据依旧不是最新数据,则停止读取,并通报错误。
5.根据权利要求1所述的用于单板的数据读取方法,其特征在于,所述并向主机发送用于识别数据是否为最新数据的更新标志,还包括:
若所述数据的大小超出数据位所能够容纳的大小,则对数据进行字节扩展,在扩展的字节中同样预留标志位和数据位。
6.根据权利要求1-5任一所述的用于单板的数据读取方法,其特征在于,所述读取数据请求是由所述主机发起的,具体包括:
所述主机控制串行时钟线SCL电平为高电平,且串行数据线SDA从高电平转为低电平。
7.一种用于单板的数据读取装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-6任一所述的用于单板的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364263.5A CN114817100B (zh) | 2022-04-08 | 2022-04-08 | 一种用于单板的数据读取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364263.5A CN114817100B (zh) | 2022-04-08 | 2022-04-08 | 一种用于单板的数据读取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817100A CN114817100A (zh) | 2022-07-29 |
CN114817100B true CN114817100B (zh) | 2023-09-29 |
Family
ID=82534070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210364263.5A Active CN114817100B (zh) | 2022-04-08 | 2022-04-08 | 一种用于单板的数据读取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817100B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105451370A (zh) * | 2015-12-30 | 2016-03-30 | 广东欧珀移动通信有限公司 | 一种数据管理方法、装置和系统 |
CN105528314A (zh) * | 2015-12-28 | 2016-04-27 | 华为技术有限公司 | 一种数据处理方法及控制设备 |
CN105786639A (zh) * | 2016-03-01 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线数据的传输方法及系统 |
CN105912478A (zh) * | 2016-04-06 | 2016-08-31 | 中国航空无线电电子研究所 | 基于双缓存机制的实时系统多任务数据共享方法 |
CN106681953A (zh) * | 2016-12-09 | 2017-05-17 | 杰发科技(合肥)有限公司 | 使用i2c总线与主机连接的从机及其通信方法 |
CN106686528A (zh) * | 2016-12-21 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种数据传输方法及系统及主设备和从设备 |
CN111163126A (zh) * | 2019-11-29 | 2020-05-15 | 广东睿江云计算股份有限公司 | 一种基于Ceph分布式存储的异地备份恢复方法 |
CN111737175A (zh) * | 2020-06-12 | 2020-10-02 | 明见(厦门)技术有限公司 | 一种高速spi主从机通信方法、终端设备及存储介质 |
CN114253718A (zh) * | 2021-12-13 | 2022-03-29 | 北京天融信网络安全技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4271602B2 (ja) * | 2004-03-04 | 2009-06-03 | 富士通株式会社 | 転送データの正当性を判定する装置および方法 |
JP4555834B2 (ja) * | 2004-12-27 | 2010-10-06 | 富士通株式会社 | 転送データの正当性を判定する装置及び方法 |
TWI439873B (zh) * | 2011-08-08 | 2014-06-01 | Dimerco Express Taiwan Corp | Data synchronization method |
-
2022
- 2022-04-08 CN CN202210364263.5A patent/CN114817100B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528314A (zh) * | 2015-12-28 | 2016-04-27 | 华为技术有限公司 | 一种数据处理方法及控制设备 |
CN105451370A (zh) * | 2015-12-30 | 2016-03-30 | 广东欧珀移动通信有限公司 | 一种数据管理方法、装置和系统 |
CN105786639A (zh) * | 2016-03-01 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线数据的传输方法及系统 |
CN105912478A (zh) * | 2016-04-06 | 2016-08-31 | 中国航空无线电电子研究所 | 基于双缓存机制的实时系统多任务数据共享方法 |
CN106681953A (zh) * | 2016-12-09 | 2017-05-17 | 杰发科技(合肥)有限公司 | 使用i2c总线与主机连接的从机及其通信方法 |
CN106686528A (zh) * | 2016-12-21 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种数据传输方法及系统及主设备和从设备 |
CN111163126A (zh) * | 2019-11-29 | 2020-05-15 | 广东睿江云计算股份有限公司 | 一种基于Ceph分布式存储的异地备份恢复方法 |
CN111737175A (zh) * | 2020-06-12 | 2020-10-02 | 明见(厦门)技术有限公司 | 一种高速spi主从机通信方法、终端设备及存储介质 |
CN114253718A (zh) * | 2021-12-13 | 2022-03-29 | 北京天融信网络安全技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114817100A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
KR101745456B1 (ko) | HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법 | |
CN108989432B (zh) | 用户态的文件发送方法、文件接收方法和文件收发装置 | |
KR20160065206A (ko) | 카메라 제어 인터페이스 슬레이브 디바이스 대 슬레이브 디바이스 통신 | |
US9473273B2 (en) | Memory system capable of increasing data transfer efficiency | |
CN113254375A (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN116594948A (zh) | Usb数据传输方法、装置、计算机设备及存储介质 | |
CN114817100B (zh) | 一种用于单板的数据读取方法和装置 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
JP2012089948A (ja) | データ転送装置及びデータ転送方法 | |
WO2015100932A1 (zh) | 一种网络数据的传输方法、装置及系统 | |
CN108197062B (zh) | 实现单片机与终端设备通信的方法、系统、设备及介质 | |
CN116204214A (zh) | Bmc升级方法、装置、系统、电子设备及存储介质 | |
CN107665123B (zh) | 固件更新方法 | |
CN112286852A (zh) | 基于iic总线的数据通信方法和数据通信装置 | |
CN111857546A (zh) | 用于处理数据的方法、网络适配器和计算机程序产品 | |
CN110990313B (zh) | 一种i3c总线处理时钟拉伸的方法、设备以及存储介质 | |
CN1441566A (zh) | 使用三步通信缓存的通信设备 | |
CN111490919A (zh) | 一种主从机系统、设备终端及其通信校验方法 | |
CN113886296B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN115002135B (zh) | 多端协同方法、装置、系统及计算机可读存储介质 | |
CN115633044B (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN115118795B (zh) | 数据处理方法、扩展设备、控制系统和存储介质 | |
CN116756078B (zh) | pcie数据包的通知方法、装置及存储介质 | |
CN217562028U (zh) | 一种基于sccb总线协议的多个主器件电路 |
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 |