CN111130689A - 传送数据和数据校验字段的系统和方法 - Google Patents
传送数据和数据校验字段的系统和方法 Download PDFInfo
- Publication number
- CN111130689A CN111130689A CN201910988402.XA CN201910988402A CN111130689A CN 111130689 A CN111130689 A CN 111130689A CN 201910988402 A CN201910988402 A CN 201910988402A CN 111130689 A CN111130689 A CN 111130689A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- circuit
- address
- checksum
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013500 data storage Methods 0.000 claims description 57
- 230000002441 reversible effect Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 239000004065 semiconductor Substances 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 25
- 238000012546 transfer Methods 0.000 description 24
- 238000007726 management method Methods 0.000 description 22
- 239000000872 buffer Substances 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000005259 measurement Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013502 data validation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- 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/40006—Architecture of a communication node
-
- 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/403—Bus networks with centralised control, e.g. polling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0094—Bus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开涉及传送数据和数据校验字段的系统和方法。根据一个实施例,一种传送数据的方法包括:由第一设备基于预定标识字段和多个数据比特,来确定数据帧的数据校验字段,其中预定标识字段表示多个数据比特的内容、源或目标中的至少一个;以及由第一设备向第二设备传输包括多个数据比特和数据校验字段的数据帧,而不直接传输预定标识字段。
Description
技术领域
本发明总体上涉及用于数据传输的系统和方法,并且在特定实施例中,涉及用于传送数据以及数据校验字段的系统和方法。
背景技术
在从台式计算机到汽车和制造系统的许多电子应用中,数字数据总线和数据链路无处不在。诸如串行外围设备接口(SPI)、集成电路间(I2C)、通用异步接收器发射器(UART)和块间通信总线(IBCB)的协议和其他协议都针对广泛范围的系统,同时诸如本地互连网络(LIN)、控制器区域网络(CAN)和FlexRay的协议已经被开发来传送汽车数据,诸如引擎控制信号和汽车传感器信号。
对于诸如汽车系统的安全至关重要的应用,数据完整性是通信接口和数据流中的关键因素。这种系统可以在数据流中采用“端到端保护”,以确保接收器接收与发射器所发出的相同数据内容。尽管可以将安全至关重要的数据链路设计成最小化数据传送中的错误,但在传送期间仍可能存在数据被破坏的剩余可能性。根据发射和接收设备的架构,端到端保护还可以覆盖发射器和接收器中的数据存储。
在一些情况下,端到端保护是通过向发射和接收的数据通信添加开销来实现的。例如,校验和可以被附加到数据帧,以确保在数据总线上接收的数据是无错误且未被破坏的。除了正被发射和接收的原始数据之外,该校验和还可以包括例如奇偶校验或循环冗余校验(CRC)。发射器或将原始数据递送给发射器的单元根据原始数据生成校验和,并将结果(原始数据和校验和两者)传送给接收器。然后,接收器校验所接收的数据是否与校验和匹配。如果存在匹配,则接收器认为传送(和/或发射器或接收器中的存储)期间数据未被破坏。如果不匹配,则接收器认为数据破坏已经发生,并且将数据丢弃或校正。例如,在校验和方法具有纠错能力(诸如纠错码)的系统中,可以校正错误。一些协议(诸如LIN、CAN和通用串行总线(USB))包含根据其定义的校验和。当使用不直接包含校验和的协议(诸如SPI和标准UART)时,可以根据特定应用的需求来添加校验和的处理和传送。
通过传输确认帧或消息,可以进一步增强端到端保护。例如,如果总线上的第一节点向总线上的第二节点发出读取或写入请求,则除了任何请求的数据之外,第二节点还可以用包括第二节点地址和校验和的确认来答复。
在具有相当量的总线活动的系统中,可以增加总线数据速率和/或可以限制总线的带宽,以便支持用于便于端到端保护的附加开销。
发明内容
根据一个实施例,一种传送数据的方法包括:由第一设备基于预定标识字段和多个数据比特,来确定数据帧的数据校验字段,其中预定标识字段表示多个数据比特的内容、源或目标中的至少一个;以及由第一设备向第二设备传输包括多个数据比特和数据校验字段的数据帧,而不直接传输预定标识字段。
根据另一实施例,一种被配置成耦合到总线的电路包括:第一电路,被配置成基于预定标识字段和多个数据比特来确定数据帧的数据校验字段,其中预定标识字段表示多个数据比特的内容、源或目标中的至少一个;以及发射器,耦合到第一电路,并且被配置成耦合到总线,并且将包括多个数据比特和数据校验字段的数据帧传输给第二电路,而不直接传输预定标识字段。
根据另一实施例,一种集成电路包括:总线;耦合到总线的总线主电路;以及耦合到总线的数据存储电路,数据存储电路包括数据存储区域、地址解码器和读取校验和生成器。数据存储电路被配置成:从总线接收读取地址;由地址解码器对接收的读取地址进行解码,以产生经解码的读取地址;基于经解码的读取地址,从数据存储区域访问数据;由读取校验和生成器,基于访问的数据和经解码的读取地址,产生读取数据校验字段;以及在总线上传输读取数据校验字段,而不直接传输经解码的读取地址。
附图说明
为了更完整地理解本发明及其优点,现在参考以下结合附图进行的描述,其中:
图1A和图1B图示了示例性数据链路的框图;
图2A和图2B图示了根据实施例的数据链路的框图;
图3A-图3C图示了根据实施例的数据链路的框图,其示出了根据实施例的数据校验组合器和校验和校验器的特定实施方式;
图4A图示了根据一个实施例的电池管理系统的框图;图4B和图4C图示了与电池管理系统相关联的数据帧;并且图4D图示了根据一个实施例的数据链路的框图,该数据链路用于在根据一个实施例的电池管理系统内实施通信;
图5A图示了根据一个实施例的SPI总线系统的框图;并且图5B和图5C图示根据实施例的与SPI总线系统相关联的数据帧;以及
图6A图示了基于总线主设备的并行总线系统的框图;并且图6B-图6D图示了示出基于总线主设备的并行总线系统的数据验证电路的框图。
除非另外指出,否则不同附图中的对应数字和符号通常指代对应的部分。绘制附图以清楚地图示优选实施例的相关方面,并且不一定按比例绘制。为了更清楚地图示某些实施例,指示相同结构、材料或过程步骤的变型的字母可以跟随附图编号。
具体实施方式
下面详细讨论当前优选实施例的制作和使用。然而,应当理解,本发明提供了许多可应用的发明构思,这些构思可以在各种各样的具体上下文中体现。所讨论的具体实施例仅说明制作和使用本发明的具体方式,并且不限制本发明的范围。
将在具体上下文中关于优选实施例描述本发明,诸如在电池监测应用、SPI总线和基于总线主设备的数据传输系统中用于传输数据的系统和方法。但是,本发明还可以应用于其他类型的数据传输系统。
根据各种实施例,通过将边带信息编码在数据帧的数据校验字段中、并且传输校验和字段而不是边带信息,来减少数据通信中的数据开销。该边带信息可以包括但不限于预定标识信息,预定标识信息表示所传输的比特或数据的内容、源或目标。例如,关于所传输的比特或数据的源,预定边带信息可以表示发射电路的地址或设备标识符,和/或可以表示读取地址,该读取地址表示所传输的比特或数据的位置。关于所传输的比特或数据的目标,预定边带信息可以表示比特或数据所针对的接收电路的地址或设备标识符,和/或可以表示写入地址,该写入地址表示比特或数据要被写入到的位置。最后,关于所传输的比特或数据的内容,边带信息可以指示和/或标记所传输的比特或数据表示什么。例如,在传感器系统中,边带信息可以指示所传输的数据字段表示压力、温度速度或其他与传感器相关的参数。应当理解,表示内容、源或目标的边带信息的上述示例是非限制性示例。
因为没有直接传输边带信息,所以减少了开销的量(例如,与在显式传输边带信息的情况下将传输的相比,传输更低数目的比特)。例如,在主从通信系统的上下文中,从设备可以发射数据和校验和,在校验和中嵌入了设备标识符和/或设备地址。当主设备具有从设备的设备标识符和/或地址的预定知识时,主设备可以使用自从设备接收的数据和校验和、连同从设备的设备标识符和/或地址的本地存储或确定的版本,来验证该校验和。当预定数目的从设备附接到总线时、当经由预定调度来轮询从设备时、当根据预定序列读取从设备中的地址时、和/或当从设备正在响应来自主设备的针对数据的请求时,会出现这种情况。例如,在汽车电池监测系统中,个体电池监测设备可以被配置成以预定义的周期将电池测量数据提供给控制器。省略从设备的设备标识符字段和/或地址可能会显著减少总线上的流量。总线流量的这种减少可以提供诸如以下项的好处:允许附接到总线的从设备的数目更大,总线上可以传送的数据的量增加,和/或通过允许降低总线时钟频率来节省系统功率。
在另一个实施例中,嵌入式校验和的使用可以被用于验证包括远程地址解码器的功能的远程读取操作或写入操作的完整性。例如,在读取操作期间,从设备可以发射校验和连同读取数据,其中在该校验和中包括经解码的地址。通过根据所接收的数据和期望的经解码的地址的本地存储版本来验证校验和,主设备可以验证经解码的地址和数据的完整性两者。类似地,通过基于写入的数据和经解码的地址来生成校验和、并将所生成的校验和与从主设备接收的校验和进行比较,可以由从设备验证写入操作的完整性。根据本发明的实施例,由经解码的地址生成的校验和的使用提供了额外水平的端到端保护和故障检测。这种系统可以被配置成检测即使在从错误的地址(例如由于地址解码器中的错误,或到地址解码器的数据路径中的错误)读取了相同的“期望数据”的情况下的错误。类似的结构可以应用于读取地址。
图1A图示了示例性数据链路100,该数据链路100包括耦合到接收单元110的发射单元102。数据链路100包含常见数据通信系统的典型元件。发射单元102包括数据存储装置104、协议处理机106和校验和生成器108,而接收单元110包括数据存储装置112、协议处理机114和数据校验块116。发射单元102的协议处理机106经由物理层120耦合到接收单元110的协议处理机114。
在数据链路100的操作期间,原始数据被传送到数据存储装置104中,并且校验和生成器108基于要被传送的数据生成校验和。协议处理机106根据所使用的特定数据通信协议的规范,便于数据和校验和在物理层120之上的发射。然后由接收单元110的协议处理机114从物理层120接收所发射的数据和校验和。所接收的数据被存储在数据存储装置112中,并且数据校验块116确定所接收的数据是否与所接收的校验和相匹配。
图1B图示了示例性数据链路128,其中数据在第一模块130和第二模块140之间传送,第一模块130和第二模块140经由物理层120链接在一起。示例性数据链路128可以表示本文描述的各种实施例数据链路。如所示的,第一模块130包括耦合到发射单元134和接收单元136的第一单元132。类似地,第二模块140包括耦合到接收单元142和发射单元144的第二单元146。第一单元132和第二单元146可以表示可以在它们之间传送数据的任何系统或子系统,和/或可以表示能够存储数据并管理这种数据的交换的子系统,发射单元134和144表示能够发射数据和/或能够管理数据的发射的子系统,并且接收单元136和142表示能够传输数据和/或能够管理数据的接收的子系统。
第一模块130和第二模块140可以位于分离的设备中或在相同的设备中。因此,可以使用适合于特定实施例及其规范的多种物理层协议中的一种来实施物理层120。在一些实施例中,第一模块130的第一单元132可以被配置成经由发射单元134和接收单元142向第二模块140的第二单元146传送数据。在经由物理层120接收到所传输的数据时,在校验和匹配的情况下,接收单元142可以触发第二单元146接管数据。
在各种实施例中,用于在第一模块130中将数据从第一单元132传送到发射单元134、或在第二模块140中将数据从第二单元146传送到发射单元144的控制机构可以是基于状态机或可编程单元,诸如处理器、微处理器、中央处理单元(CPU)或直接存储器访问(DMA)控制器。
在操作期间,第一单元132和第二单元146以帧的形式在彼此之间交换数据。针对本公开的目的,帧可以被理解为从发射单元134或144一起被传送到接收单元136或142的数据和校验和的至少一个块。
在一些系统中,可能存在通常在实体之间传送的数据的一些方面,该数据所包含的信息少于其相应数据字段能够传达的宽度。例如,在特定系统中可以使用地址空间的仅一小部分。这种情况的具体实例是第一模块130和/或第二模块140具有由多个比特表示的单个地址的情况。因此,在本发明的各种实施例中,这种数据的部分不被直接传送,而是被包含在校验和字段本身中,以便减少用于通信的带宽。换句话说,使用实施例的系统和方法减少了所传输的比特的数目。
这种情况的典型示例是从第二模块140对来自第一模块130的读取请求的应答帧,以根据第一模块130的请求将数据从第二单元146传送到第一单元132。在这种情况下,第一模块130发送请求来自第二模块140的具体数据的帧。第一模块130通过标识符或读取地址指示来指示应当读取哪些数据。第二模块140接收具有读取地址的读取请求,并将所请求的数据作为应答帧递送到第一模块130。
可能存在读取地址未从第二模块140传送回第一模块130的实施例。但是,在许多安全至关重要的应用中,读取地址被传送,以便验证正确的系统操作。例如,在第一模块130向第二模块140发出从不同地址的读取请求的序列的系统中,第二模块140可以被配置成将所请求的数据发送回第一模块130。如果两个序列总是匹配,则忽略第二模块140未将读取地址发送回第一模块130不存在风险。但是,在不能确保序列匹配的情况下(例如,如果读取请求或答复帧由于传送期间的数据破坏而被丢弃),有利的是,将第二模块140内部从其读取数据的地址移交回第一模块130,以便便于错误检测。
这种地址的传送对于确保第二模块140中接收的地址的完整性也是有利的。在非理想或嘈杂的环境中,第二模块140接收的地址在接收单元中的接收与其应用于第二单元146之间被破坏的可能性不为零。数据的这种破坏可能是由于许多来源导致,从影响物理层120的通信信道的噪声或干扰到设备硬件本身的缺陷(诸如,第二模块140或第二单元146中的地址解码器的故障)。
对于安全至关重要的应用,递送具有正确的校验和的正确数据、但是从错误的地址递送可能会成问题,这是因为第一模块130检测这种错误所涉及的困难。因此,在一些实施例中,当从不正确的地址接收到数据时,数据可以被丢弃。
在从第一模块130向第二模块140中的一个具体地址的读取请求的情况中,假设第二模块140将读取发送回第一模块130,则实际上只有一个“正确”的期望地址、和n-1个“不正确”的地址可以被第一模块130接收,其中n是所接收的地址字段中的可能值的数目。由于没有必要知道n-1个错的不正确的值中的哪一个实际上被第一模块130接收,因此可以做出简单的通过/失败判定。
根据各种实施例,如果读取地址与数据一起被嵌入在所生成的校验和生成中(例如,在CRC中),则第二模块140不需要显式地发射读取地址。由于第一模块130发起了读取请求,因此第一模块130“知道”读取地址的期望值。因此,第一模块130可以将读取地址的该期望值用于校验和处理和匹配生成。
除了上面给出的数据读取访问的具体示例之外,还有更多的可以找到有限数目的期望值的场景。在几个独立的设备或模块可以将数据递送到主设备的拓扑中,设备标识符可以视为期望值。这里主设备可以被配置成处理多个期望值。
图2A图示了根据本发明的一个实施例的数据链路200。发射单元202包括数据存储装置204、协议处理机206和实施例校验和组合器208,而接收单元110包括数据存储装置212、协议处理机214和校验和校验器216。发射单元202的协议处理机206经由物理层120耦合到接收单元210的协议处理机214。
在数据链路200的操作期间,原始数据被传送到数据存储装置104中,并且由数据校验组合器208基于要传送的数据以及边带信息生成校验和。在各种实施例中,该边带信息是接收单元210先天已知的信息。如下面关于各种实施例所解释的,边带信息的示例包括但不限于预定地址、设备标识符和经解码的地址字段。因此,由数据校验组合器208生成的校验和具有嵌入在其内的边带数据。
协议处理机206和物理层接口根据所使用的特定数据通信协议的规范,来便于数据和校验和在物理层120之上的发射。然而,嵌入在校验和内的边带信息未被显式传输。然后,由接收单元210的物理层接口215、协议处理机214从物理层120接收所传输的数据和校验和。所接收的数据被存储在数据存储装置212中,并且校验和校验器216确定所接收的数据和期望的边带信息是否与所接收的校验和匹配。
数据存储装置204和212可以包括但不限于任何类型的可写系统存储器,诸如随机访问存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、电可擦除可编程只读存储器(EEPROM)或其组合。可以使用本领域中已知的数字电路和系统来实施协议处理机206和214、数据校验组合器208以及校验和校验器216。例如,这些功能可以使用定制数字逻辑、标准单元数字逻辑来实施,和/或可以以在处理器、微控制器或数字信号处理器上运行的软件来实施。这种处理器可以包括例如处理器核、和耦合到处理器核和一个或多个输入/输出端口的存储器。备选地,可以使用本领域已知的其他电路和系统来实施这些功能。可以使用本领域已知的适当的数据传输电路(其适于特定物理层信道/技术和所使用的数据通信协议)来实现物理层接口207和215。这种电路可以包括但不限于线路驱动器、线路接收器、放大器、RF接口电路、光学发射器和接收器。
图2B图示了框图,该框图示出了发射单元202的数据校验组合器208、接收单元210的校验和校验器216以及各种发射和接收的数据字段之间的功能关系。在一些实施例中,发射单元202的通信接口222可以表示图2A中所示的协议处理机206和物理层接口207的功能,并且接收单元210的通信接口224表示图2A中所示的协议处理机214和物理层接口215的功能。
在操作期间,将所传输的数据TX_DATA传送到所传输的数据帧242中,同时使用数据校验组合器208,基于所传输的数据TX_DATA和边带数据SB_DATA,来生成所传输的校验帧244。所传输的数据帧242和所传输的校验帧244经由通信接口222被传输到物理层120。在本发明的实施例中,没有显式地传输边带数据SB_DATA。因此,包括数据帧242和校验帧244的所传输的比特的数目小于将传输所有的数据帧242、校验帧244和边带数据SB_DATA将传输的比特的数目。
所传输的数据被接收单元210的通信接口224接收,作为所接收的数据帧246和所接收的校验帧248。校验和校验器216基于所接收的校验帧248和期望边带数据EXPECTED_SB_DATA,来确定所接收的数据帧246的完整性。
图3A和图3B图示了实施例数据链路的具体实施方式,其中使数据校验组合器208和校验和校验器216的各种实施方式明确。例如,图3A图示了耦合到接收单元301的发射单元300。如所示的,传输数据TX_DATA被直接加载到所传输的数据帧242中,而所传输的校验帧244被数据校验组合器302生成的数据填充,该数据校验组合器302包括按比特异或块304,之后是数据校验组合器CRC生成器306。在操作期间,异或块304利用传输数据TX_DATA的至少一部分和边带信息SB_DATA执行异或操作,以产生第一数据值。然后,通过CRC多项式,基于该第一数据值,使用CRC生成器306生成所传输的校验帧244。
在物理层120之上进行传输之后,可以包括所传输的数据TX_DATA的所接收的数据帧246被认为是所接收的数据字段DATA。通过使用异或块304,利用期望边带数据EXPECTEDSB_DATA的本地导出版本和所接收的数据帧246的至少一部分来执行异或操作,校验和校验器309关于所接收的校验帧248来验证所接收的数据帧246的完整性。使用CRC校验器308,关于所接收的校验帧248和CRC多项式,对经异或的数据执行CRC校验。校验和校验器309指示所接收的数据帧246是否与所接收的校验帧248和本地存储的期望边带数据EXPECTED SB_DATA相匹配。通过校验和校验器309的匹配指示是如下指示:在所接收的数据帧246中没有错误并且发射单元300旨在的边带数据与期望边带数据EXPECTED SB_DATA相匹配。
图3B图示了耦合到接收单元311的发射单元310。图3B的实施方式与图3A的实施方式类似,除了:在物理层120之上传输之前,在利用边带数据SB_DATA的异或操作之前,数据校验组合器312对传输数据TX_DATA执行CRC操作。因此,为了确定所接收的数据帧246是否与所接收的校验帧248和期望的边带数据EXPECTED SB_DATA相匹配,校验和校验器319首先对所接收的校验帧248和期望的边带数据EXPECTED SB_DATA执行异或操作(而不是如图3A中的情况那样在所接收的数据帧246和期望的边带数据EXPECTED SB_DATA之间执行异或操作)。使用CRC校验器308对经异或的值执行CRC校验,以确定所接收的数据帧246是否有效以及所嵌入的边带数据是否与期望的边带数据EXPECTED SB_DATA相匹配。
图3C图示了耦合到接收单元321的发射单元320。图3C的实施方式与图3A和图3B的实施方式的不同之处在于,边带数据SB_DATA被嵌入在所传输的数据帧242中,而不是被嵌入在所传输的校验帧244中。如所示的,数据校验组合器322中的异或块304在所传输的数据TX_DATA的至少一部分与边带数据SB_DATA之间执行异或。该异或操作的结果被加载到所传输的数据帧242中。CRC生成器306基于所传输的数据TX_DATA和CRC多项式产生所传输的校验帧244。在于物理层120之上传输所传输的数据帧242和所传输的校验帧244之后,校验和校验器329中的CRC校验器308关于所接收的校验帧248和CRC多项式,对所接收的数据帧246执行CRC校验。这验证了所接收的数据帧246(它是传输数据TX_DATA和所嵌入的边带信息的经异或的版本)与所接收的校验帧248是否匹配。通过在所接收的数据帧246与期望的边带数据EXPECTED SB_DATA之间执行异或操作,导出所接收的数据DATA。
应当理解,图3A-图3C的实施例仅仅是许多方式中的三个示例,其中边带数据可以被嵌入在所传输的数据帧中,而无需以然后传输的数据的有效性和所嵌入的边带数据的有效性两者都被验证的方式被显式地传输。在本发明的备选实施例中,由异或块304执行的按比特异或操作可以由另一种可逆数字操作代替。另外,由CRC生成器306和CRC校验器308执行的CRC操作可以由诸如哈希函数的其他数据校验操作代替。
图4A图示了电池管理系统400,其被配置成实施实施例数据传输系统和方法。在电池管理系统400中,一定数目的电池感测IC 412连接到电池堆叠410中的对应数目的电池单元。如所示的,电池感测IC 412的通信端口以菊花链的方式连接在一起,并且经由诸如变压器414的隔离元件连接到电池管理主机控制器402。电池管理主机控制器402被示出为包括收发器406,收发器406经由UART接口耦合到微控制器404;然而,用于电池管理主机控制器402的其他架构是可能的。在一些实施例中,电池感测IC 412的数目可以非常大。例如,对于400V的电池堆叠,可以使用多达110个电池感测IC 412,并且对于800V的电池堆叠,可以使用多达220个电池感测IC 412。在操作期间,数据通信可以半双工方式进行。电池管理主机控制器402向电池感测IC 412发送请求。作为响应,电池感测IC 412用电池测量数据进行答复,电池测量数据被存储在电池感测IC 412的寄存器中。在主机控制器中,知道哪个数据属于哪个电池感测IC可能是有用的。因此,根据一些实施例,针对每个感测IC引入唯一的设备/节点标识符或设备地址。感测IC可以包含几个具有数据的数据寄存器,可以由主机控制器通过读取请求来请求该数据。为了标识哪个数据已经由哪个感应IC发送到主机控制器,关于发送设备和数据源的信息被包括到数据帧中。
当在诸如电动汽车的安全至关重要的应用中实施电池管理系统400时,在电池感测IC 412和电池管理主机控制器402之间发射和接收的数据构成安全至关重要的数据。因此,在许多电池管理系统中,使用数据验证技术来确保所交换的数据的有效性。在常规的电池管理系统中,除了所传送的电池感测数据之外,在答复帧中从电池感测IC 412向电池管理主机控制器402传输节点ID(表示特定电池感测IC 412的标识)和寄存器地址(表示电池感测IC 412内的特定地址)。添加该信息需要答复帧中的附加比特,这可能会减少通信信道的有用带宽。因此,对于400V的电池,读出针对所有节点的一个电压测量结果可能需要3ms,而对于800V的电池则需要6ms。因此,所要求的数据流量的量可以限制电池感测IC 412的数目和/或限制在预定时段内可能的测量的数目。例如,由于从电池感测IC412读回所有数据需要6ms,因此在10ms的测量周期中,仅有足够的时间来读回每一电池感测IC 412的单个测量结果。
图4B图示了用于常规电池管理系统的答复帧的示例帧结构。如所示的,答复帧包括ID帧420、地址帧422、数据帧424和426以及校验帧428,ID帧420包括电池感测IC的设备ID或节点ID,地址帧422包括电池感测IC的寄存器地址,数据帧424和426包括从电池感测IC读取的数据,校验帧428包括用于对帧420、422、424和426进行验证的校验和。
图4C图示了用于本发明的一个实施例的答复帧的帧结构。如所示的,实施例答复帧包括数据帧424和426以及校验帧428。由于设备ID或节点ID和地址被嵌入在数据校验帧428中,所以这些数据未被显式发送。因此,在本发明的实施例中,在该具体示例中,总线流量的量可以减少40%。对于具有220个电池感测IC 412的系统,从所有电池感测IC 412传输测量结果所需的时间量可以从大约6ms减少到大约3.7ms。应当理解,该总线流量减少的量仅仅是针对具体实施例的总线流量减少的一个示例。在备选实施例中,取决于特定实施例及其规范,更多或更少的总线流量减少的量可以是可实现的。
在操作期间,电池管理主机控制器402向电池感测IC 412中的每个电池感测IC412发出读取请求。每个电池感测IC 412用所请求的数据和校验和来响应该读取请求,使得设备ID或节点ID和寄存器地址被嵌入在校验和和/或所请求的数据中。然后,电池管理主机控制器402关于所接收的数据和期望的设备ID和寄存器地址的本地存储值,来验证所接收的数据。为了操作这种系统,主机控制器发起读取请求,并将关于所请求的设备ID或节点ID以及寄存器地址的信息本地存储为期望值。在接收到未来的数据帧时,这些期望值可以用于校验数据完整性和数据帧的序列的完整性。
图4D图示了实施例数据链路的具体实施方式,其可以用于实施在电池感测IC 412与电池管理主机控制器402之间的通信。如所示的,电池感测IC 412包括实施例数据校验组合器432,并且电池管理主机控制器402包括实施例校验和校验器438。基于第一数据帧424和第二数据帧426和CRC多项式,数据校验组合器432中的CRC生成器306执行生成CRC校验和。特定电池感测IC 412的节点ID与寄存器地址进行异或,其结果与所生成的CRC校验和进行异或,以创建经修改的校验和。然后将该经修改的校验和用作所传输的数据校验帧428。
在于物理层120之上传输数据帧之后,基于CRC多项式,CRC校验器308对数据校验帧428、期望地址和期望节点ID的异或组合、第一数据帧424以及第二数据帧426执行CRC校验。如果第一数据帧424、第二数据帧426、期望节点ID和期望地址与数据校验帧428匹配,则认为所接收的第一数据帧424和第二数据帧426有效。如果CRC校验器指示所接收的第一数据帧424和第二数据帧426无效,则电池管理主机控制器402丢弃第一数据帧424和第二数据帧426。在本发明的备选实施例中,由异或块304执行的按比特异或操作可以由另一操作代替,该另一操作包括但不限于左移位、右移位、或(OR)、与(AND)、与非(NAND)、加、减、乘、除、交叉求和(cross-sum)、取模操作,或者可以使用利用唯一映射将一个符号空间变换或映射到另一个符号空间的任何函数。在一些实施例中,该操作是可逆操作。另外,由CRC生成器306和CRC校验器308执行的CRC操作、以及本文中描述的其他CRC操作可以由本领域中已知的其他哈希函数代替。
每个电池感测IC都有其自己的设备ID或节点ID,该设备ID或节点ID在系统中是唯一的。可以在每个感测IC中,对照作为期望值的每个感测IC的“自己的”本地设备ID或节点ID,来校验由主机控制器生成的校验和中包含的设备ID或节点ID。结果,每个感测IC可以检测它是否是主机控制器的目标(例如以执行写入动作或读取动作)。如果没有找到匹配,则感测IC可以丢弃来自主机的所接收的请求。在匹配的情况下,可以在电池感测IC中进一步处理所接收的请求,并且所接收的请求可以导致答复帧。
应当理解,电池感测IC 412的数据校验组合器432和电池管理主机控制器402的对应校验和校验器438的实施方式仅仅是许多示例实施方式中的一种。在本发明的备选实施例中,其他实施方式是可能的。例如,图3A-图3C中图示的数据校验组合器和对应的校验和校验器的实施例实施方式可以用于实施数据校验组合器432以及校验和校验器438。
尽管上述电池管理系统400利用实施例数据通信系统和方法进行半双工通信,实施例系统和方法还可以应用于利用全双工通信(诸如在SPI总线之上的数据通信)的系统。图5A图示了实施例SPI总线系统500的框图,其利用在数据传输中嵌入边带信息的实施例系统和方法。如所示的,SPI总线系统500包括通过总线耦合到至少一个从SPI设备504的主SPI设备502,该总线包括发射数据线、接收数据线、移位时钟线和芯片选择线。在图示的实施例中,存储器503耦合到主SPI设备502,使得可以使用例如本领域已知的CPU控制的直接存储器访问(DMA)系统和方法,来向主SPI设备502传送数据以及从主SPI设备502传送数据。
如所示的,主SPI设备502包括:耦合到发射数据线的发射寄存器514、耦合到接收数据线的接收寄存器516、以及耦合到移位时钟线和芯片选择线的波特率和芯片选择生成器518。例如,波特率和芯片选择生成器518可以被设计为使用本领域已知的SPI系统和方法,来实施和便于SPI数据传送。发射缓冲器512耦合到发射寄存器514,使得发射缓冲器512中的数据经由发射寄存器514在发射数据线之上被发射,并且接收缓冲器510耦合到接收寄存器516,使得从接收数据线接收的数据被传送到接收缓冲器510。校验和验证块530使用本文描述的实施例系统和方法,来验证从接收数据线接收的数据的有效性。在一些实施例中,可以使用上文关于图2B和图3A-图3C公开和描述的实施例校验和校验器,来实施校验和验证块530。
从SPI设备504包括:耦合到发射数据线的接收寄存器522、耦合到接收数据线的发射寄存器524、以及耦合到移位时钟线和芯片选择线的波特率和芯片选择处理机526。例如,波特率和芯片选择处理机526可以被设计成使用本领域已知的SPI系统和方法,来实施和便于SPI数据传送。根据本发明的实施例,校验和生成器528可以被配置成生成具有嵌入的边带信息的校验和。例如,在一些实施例中,可以使用上文关于图3A-图3C公开和描述的实施例数据校验组合器,来实施校验和生成器528。
对于全双工SPI数据传送,可以并行地传送发射数据字(从主SPI设备502到从SPI设备504的数据)和接收数据字(自从SPI设备504到主SPI设备502的数据)。发射数据字可以包括旨在被存储在从SPI设备504中的地址处的数据,该地址由发射数据字(或先前发射的数据字)中包括的写入地址指示。发射数据字还可以包括读取请求,该读取请求指示主SPI设备502想要自从SPI设备504中的哪个地址(或者对于包括多个从设备的实施例,从哪个特定从设备)读取数据。利用在读取请求之后的SPI传送,将所读取的数据传送到主SPI设备502。这可能在紧接的SPI传送中发生,或在之后的SPI传送中发生。
可以将发射数据字(一个接一个地)存储在发射缓冲器512中,以使CPU/DMA访问和SPI传送之间的时序约束去耦合(例如,CPU可以在缓冲器中设置发射数据字的序列,并且SPI一个接一个地传送它们,而无需任何进一步的CPU动作)。可以将类似的传送方法用于接收缓冲器510中的读取数据存储,使得主SPI设备502将所接收的数据一个接一个地存储在接收缓冲器510中,使得CPU/DMA可以根据需要访问所接收的数据。
作为SPI总线系统500的操作的一个示例,四个读取请求的序列被存储在发射缓冲器512中,并且经由发射寄存器514和发射数据线而被发送给从SPI设备504。出于安全和验证的原因,对这些数据传送进行端到端保护(例如,通过包括在发射数据字中的校验和)。从SPI设备504可以被配置成使用校验和来验证所传输的数据,并且如果校验和不匹配,则丢弃所传输的数据。
假设第一读取请求被从SPI设备504正确地接收并应答,由于SPI总线系统500使用全双工操作进行操作,因此第一读取请求的传送导致接收数据的第一帧被存储在主设备中。然而,接收数据的该第一帧可能与先前传送的发射数据字或读取请求有关。因此,可以在主SPI设备502发出第二读取请求的同时,在主SPI设备502的接收缓冲器510中的接收数据的第二帧中,接收到由第一请求所请求的读取数据。
在第二读取请求被从SPI设备504不正确地接收、并且该不正确的接收被从SPI设备504检测到(例如,校验和与读取请求不匹配)的情况下,则从SPI设备504不传送所请求的数据。而是,从SPI设备504可以向主SPI设备502发送消息,该消息指示所接收的请求无效。假设发现来自接收缓冲器510的所接收的SPI数据的一次数据传送被破坏并被丢弃(数据将不到达存储器503),并且假设随后的数据传送被正确执行,则存储器中将缺少一个读取数据集合。
如果更高级别的软件查看存储器503中的读取请求(这里,读取地址仍然可见)和之后接收的应答(这里,读取地址可能不再可见,因为它们尚未被传送回主设备),在软件没有标识存储器503中缺少哪个读取数据的情况下,则可能发生致命的错误解释。
因此,根据本发明的实施例,通过查看存储在存储器中的读取请求,可以容易地找到针对读取地址的期望值。可以对照期望值校验读取校验和以及读取数据的集合,以确保SW找到针对读取请求的正确应答数据,并且不会解释属于另一个读取请求的读取数据。因此,在本发明的实施例中,可以避免软件将从寄存器X读取的数据解释为从寄存器Y传出的情况。
根据许多实施例,软件解释存储在存储器503中的数据,而不是解释诸如接收缓冲器510和512的本地缓冲器中的数据,因为这些缓冲器通常用于临时存储数据并且具有有限的尺寸。移动操作(通过CPU或DMA=直接存储器访问,其可以通过通信接口或定时器的接收/发射事件而容易地被触发)在接收缓冲器510与存储器503之间、以及在发射缓冲器512与存储器503之间传送数据。在许多情况下,软件在时隙中执行(由实时操作系统=RTOS协调),并且在时间上与数据传送的时序去耦合。
在本发明的实施例中,使用实施例系统和方法,可以将从SPI设备504的地址和/或指示已经发生传输错误的消息嵌入到校验数据字段中。如果自从SPI设备504向主SPI设备502传送的SPI字没有足够的比特来传输错误指示以及地址和数据,则这种实施例方法是特别有利的。如果仅可以传送数据比特,则可以使用所请求的读取地址之上的CRC校验和来区分被正确处理的读取请求与错误指示。如果在CRC处理中包括错误代码而不是所请求的地址,则该错误代码也是期望值,并且可以由主设备解释。
图5B和图5C图示了可以在主SPI设备502和从SPI设备504之间交换的示例数据帧。这些数据帧根据每个SPI字32比特和每个数据帧2个SPI字的SPI协议进行操作。然而,在备选实施例中可以使用其他的帧类型。图5B图示了数据帧535,其可以从主SPI设备502向从SPI设备504被传送。如所示的,数据帧535包括64个比特,该64个比特包括第一写入数据字540、第二写入数据字542、第三写入数据字544、读取类型指示符(RTI)546、写入类型指示符(WTI)548和CRC 550。
在各种实施例中,由主SPI设备502使用读取类型指示符546请求来自从SPI设备504的读取数据,而由主SPI设备502使用写入类型指示符548将数据写入到从SPI设备504。例如,当主SPI设备502请求读取数据时,适当的读取请求被编码在读取类型指示符546中,并被传输到从SPI设备504。另一方面,当主SPI设备502请求将数据写入到从SPI设备504时,适当的写入请求被编码在写入类型指示符548中,并且根据需要,将要写入的数据放置在第一写入数据字540、第二写入数据字542和/或第三写入数据字544中。在传输之前,根据数据帧535中的比特8-63,生成CRC 550。在一些实施例中,写入类型指示符可以解释为写入到给定写入地址或写入地址集合的写入请求,而读取指示符可以被视为从给定读取地址或读取地址集合读取的读取请求。给定的地址可以被包括在指示符中。
图5C图示了数据帧560,其可以自从SPI设备504被传送给主SPI设备502。如所示的,数据帧560包括第一读取数据字552、第二读取数据字554、第三读取数据字556,这些读取数据字可以包括例如由主SPI设备502请求的数据。根据本发明的实施例,数据帧560还包括由校验和生成器528基于数据帧560中的比特8-63以及附加边带信息生成的CRC 558。例如,这种边带信息可以包括由从SPI设备504在之前帧中接收到的读取类型指示符546和/或写入类型指示符548的内容。可以使用本文描述的任何实施例边带数据嵌入系统和方法,将该边带信息编码在CRC 558中。当由主SPI设备502接收到数据帧560时,根据上述实施例系统和方法,由校验和验证块530根据使用CRC 558以及之前发射的(并且因此在本地存储的)读取类型指示符546和写入类型指示符548,对数据进行验证。在针对读取类型指示符546和/或写入类型指示符548存在不止一个可能的期望值的实施例中(例如,在从SPI设备504中存在不止一个寄存器、或存在不止一个从SPI设备504的情况下),可以至少利用期望数据的子集,来执行针对所接收的数据的校验和匹配的搜索。
应当理解,本文所述的SPI总线系统500仅仅是可以使用实施例边带数据嵌入技术来实施的SPI总线系统的一个具体示例,并且仅仅是实施例全双工通信系统的一个示例。例如,实施例系统和方法可以应用于诸如UART、IBCB等的其他串行总线协议,或应用于诸如高级微控制器总线架构(AMBA)等的并行总线协议,和/或应用于诸如流水线总线结构的串行和并行总线结构的组合。
例如,图6A图示了根据本发明的一个实施例的基于总线主设备的并行总线系统600。这种系统可以用于实施用于安全相关应用的微控制器中的CPU和DMA引擎的数据路径,该微控制器还提供内部保护机构。如果在μC内部两个位置之间的数据传送被破坏,则这些内部保护机构会便于错误检测。因此,如果发现数据传送被破坏,则被破坏的数据可以被丢弃并且避免执行。
如所示的,并行总线系统600包括总线主设备608,该总线主设备608控制对并行总线的访问,该并行总线包括便于写入校验和、读取校验和、地址、写入数据和读取数据的传送的数据线。在操作期间,系统内的另一个单元(其在图6A中被表示为传送请求单元604)可以请求从总线主设备608进行数据传送。总线主设备608发出写入命令(从总线主设备608到数据存储区域612中的位置)或读取命令(从数据存储区域612中的位置到总线主设备608)。在各种实施例中,可以使用存储信息的任何类型的元件或数据存储电路来实施数据存储区域612,诸如但不限于RAM、非易失性存储器(NVM)、触发器、寄存器和/或锁存器,并且数据存储区域612可以包含几个数据存储元件。
地址解码器610产生从数据存储区域612中选择具体位置的经解码的读取或写入地址,以激活读取动作或写入动作。在常规的并行总线系统中,如果在传送请求单元604、总线主设备608、总线结构本身和地址解码器610之间的路径中发生错误,则可能非常困难或不可能校验数据是否被写入到正确的数据存储元件或从正确的数据存储元件被读取。因此,在本发明的实施例中,通过使用所传输的写入数据校验字段(诸如写入校验和)和/或读取数据校验字段(诸如读取校验和),实施例数据嵌入技术可以用于检测并行总线系统600内数据的传输、存储或读取中的错误。在一个实施例中,读取或写入地址可以被编码为第一二进制值,而经解码的读取或写入地址或其部分可以被编码为具有不同尺寸的第二二进制值。在另一个实施例中,经解码的读取或写入地址或其部分可以由用于每个存储元件(或存储元件集合)的个体选择信号表示,也被称为N中之一编码或HOT-ONE编码。经解码的地址表示对存储元件的选择,并且可以被视为唯一的存储元件标识符,其中“唯一”可以适用于设备的整个地址范围,或至少适用于地址的子集。
在一个实施例中,通过使读取校验和生成器614生成校验和,来验证从数据存储区域612向总线主设备608读取的数据的有效性,该校验和是基于从数据存储区域612读取的数据、并且基于由地址解码器610产生的经解码的读取地址或存储元件标识符。耦合到总线主设备608的读取校验和校验器606基于所接收的数据、所接收的读取校验和以及期望的经解码的地址和/或存储元件标识符的预定和/或本地存储版本,来验证该读取校验和。因此,读取数据的传输和/或地址解码器610中的任何故障或破坏可以被读取校验和校验器606检测到。一旦检测到错误,就可以丢弃相关联的数据和/或可以通知传送请求单元604读取操作失败。
类似地,通过使写入校验和单元602生成校验和(也称为第一写入数据校验字段),来验证从总线主设备608向数据存储区域612写入的数据的有效性,该校验和是基于由总线主设备608请求写入到数据存储区域612的数据、并且基于由地址解码器610产生的期望的经解码的地址或存储元件标识符。耦合到数据存储区域612的写入校验和校验器616基于旨在被写入到数据存储区域612的数据、以及由地址解码器610解码的地址或存储元件标识符,来产生内部生成的校验和。在一些实施例中,针对生成内部生成的校验和的目的,经由读取操作,将向其写入数据的寄存器或数据存储区域612的位置读出,作为验证数据,该内部生成的校验和也可以被称为第二写入数据校验字段。如果内部生成的校验和与从写入校验和单元602接收的校验和相匹配,则数据被认为是有效的。否则,不将数据传输到总线主设备608,和/或向总线主设备608通知错误。在一些实施例中,将确认消息发送给总线主设备608,以确认数据被成功写入到数据存储区域612。
图6B示出了图示用于并行总线系统600的读取操作的操作的功能框图。在操作期间,地址解码器610从总线接收读取地址并对该地址进行解码。经解码的地址(或有关的存储元件标识符)用于从数据存储区域612中的对应存储器位置读取数据。该读取操作由数据多路复用器626表示。经解码的地址和读取数据然后由读取校验和生成器614使用,以生成在总线之上传输的校验和。在一些实施例中,使用地址解码器测试多路复用器618,基于由地址解码器610产生的经解码的地址,产生由读取校验和生成器614使用的边带信息。由多路复用器618递送的值可以被解释为用于数据的源(在图6B中)或用于数据的目标(在图6C中)的存储元件标识符。在各种实施例中,地址解码器测试多路复用器618被配置成将地址解码器610的输出映射到数字字,该数字字表示经解码的地址。在一些实施例中,该数字字可以包含比地址解码器610产生的经解码的地址少的比特。在备选实施例中,可以使用存储器、查找表、和/或可以将第一数字字映射成第二数字字的任何数字电路,来实施地址解码器测试多路复用器618。在另外的备选实施例中,可以省略地址解码器测试多路复用器618,并且直接基于读取数据和经解码的地址来生成读取校验和。在一些实施例中,根据上文关于图3A-图3C描述的实施例数据校验组合器,来实施读取校验和生成器614。耦合到总线主设备608的读取校验和校验器606验证由读取校验和生成器614产生的读取校验和,以便确定所接收的读取数据是否有效。如果读取数据未被确定为有效,则认为数据被破坏。因此,可以丢弃数据,和/或可以向传送请求单元604(或其他系统组件)通知读取失败。
图6C示出了图示用于并行总线系统600的写入操作的操作的功能框图。在操作期间,地址解码器610从总线接收写入地址,并解码该地址。如果认为数据有效,则经解码的地址用于将数据写入到数据存储区域612中的对应存储器位置。写入校验和校验器616比较从写入校验和单元602接收的写入校验和,并且将所接收的写入校验和与本地生成的校验和进行比较。如果内部生成的校验和与所接收的写入校验和相匹配,则将所请求的写入数据存储在数据存储区域612中。否则,将数据丢弃,和/或将错误消息发送给写入总线主设备608。
图6D图示了写入校验和校验器616的一个实施例实施方式的框图。如所示的,写入校验和校验器616包括耦合到比较器634的内部校验和生成器632。在一个实施例中,内部校验和生成器632基于从总线主设备608接收的写入数据、由地址解码器测试多路复用器618产生的期望值(其基于由地址解码器610产生的经解码的地址),来产生本地校验和。在各种实施例中,用于产生本地校验和的电路和/或算法与由写入校验和单元602用于产生由写入校验和校验器616接收的写入校验和的电路和/或算法相同。在操作期间,比较器634将本地生成的校验和与所接收的由写入校验和单元602生成的写入校验和进行比较。如果两个值匹配,则认为写入操作有效。如果两个值不匹配,则认为写入操作不成功。
尽管图6A-图6D的实施例专门针对基于总线主设备的并行总线系统,但是应当理解,实施例系统和方法可以针对其他并行总线系统和/或利用并行数据总线的任何数据系统。
这里总结本发明的示例实施例。从本文提交的整个说明书和权利要求书中,还可以理解其他实施例。
示例1.一种传送数据的方法,所述方法包括:由第一设备基于预定标识字段和多个数据比特,来确定数据帧的数据校验字段,其中所述预定标识字段表示所述多个数据比特的内容、源或目标中的至少一个;以及由所述第一设备向第二设备传输包括所述多个数据比特和所述数据校验字段的所述数据帧,而不直接传输所述预定标识字段。
示例2.根据示例1所述的方法,其中所述多个数据比特的所述源是基于经解码的读取地址。
示例3.根据示例1或2中的一个所述的方法,其中所述多个数据比特的所述目标是基于经解码的写入地址。
示例4.根据示例1至3中的一个所述的方法,其中所述多个数据比特的所述源是基于所述第一设备的设备标识符或所述第一设备的地址。
示例5.根据示例1至4中的一个所述的方法,其中确定所述数据校验字段包括:将哈希函数应用于所述预定标识字段和所述多个数据比特,以产生所述数据校验字段。
示例6.根据示例1至5中的一个所述的方法,其中确定所述数据校验字段包括:利用所述多个数据比特和所述预定标识字段执行可逆操作,以产生第一数据值;以及向所述第一数据值应用哈希函数,以产生所述数据校验字段。
示例7.根据示例6所述的方法,其中所述可逆操作包括异或操作;并且应用所述哈希函数包括:从所述多个数据比特计算循环冗余校验和。
示例8.根据示例1至7中的一个所述的方法,其中确定所述数据校验字段包括:将哈希函数应用于所述多个数据比特,以产生第一校验和;以及利用所述第一校验和以及所述预定标识字段执行可逆操作,以产生所述数据校验字段。
示例9.根据示例1至8中的一个所述的方法,其中所述预定标识字段包括写入地址,第一接收数据被写入到所述写入地址。
示例10.根据示例9所述的方法,还包括:在确定所述数据校验字段之前,由所述第二设备从所述第一设备接收所述第一接收数据和所述写入地址。
示例11.根据示例10所述的方法,其中所述第一接收数据包括多个数据字,并且所述写入地址包括多个写入地址。
示例12.根据示例1至11中的一个所述的方法,还包括:由所述第二设备从所述第一设备接收所述多个数据比特和所述数据校验字段;以及由所述第二设备,通过基于接收的所述多个数据比特和所述预定标识字段的本地存储版本来验证所述数据校验字段,来确定所述预定标识字段。
示例13.一种被配置成耦合到总线的电路,所述电路包括:第一电路,被配置成基于预定标识字段和多个数据比特来确定数据帧的数据校验字段,其中所述预定标识字段表示所述多个数据比特的内容、源或目标中的至少一个;以及发射器,耦合到所述第一电路,并且被配置成耦合到所述总线,并且将包括所述多个数据比特和所述数据校验字段的所述数据帧传输给第二电路,而不直接传输所述预定标识字段。
示例14.根据示例13所述的电路,其中所述第一电路和所述发射器被布置在电池单元集成电路上,所述电池单元集成电路被配置成耦合到电池单元,并且其中所述第二电路是主机控制器。
示例15.根据示例13或14中的一个所述的电路,其中所述总线包括串行总线。
示例16.根据示例13至15中的一个所述的电路,其中所述多个数据比特的所述源是基于经解码的读取地址。
示例17.根据示例13至16中的一个所述的电路,其中所述多个数据比特的所述目标是基于经解码的写入地址。
示例18.根据示例13至17中的一个所述的电路,其中所述多个数据比特的所述源是基于所述第一电路的设备标识符或所述第一电路的地址。
示例19.根据示例18所述的电路,其中所述第一电路被配置成:通过将哈希函数应用于所述预定标识字段和所述多个数据比特以产生所述数据校验字段,来确定所述数据校验字段。
示例20.根据示例13至19中的一个所述的电路,其中所述第一电路被配置成通过以下方式确定所述数据校验字段:利用所述多个数据比特和所述预定标识字段执行可逆操作,以产生第一数据值;以及将哈希函数应用于所述第一数据值,以产生所述数据校验字段。
示例21.根据示例13至20中的一个所述的电路,其中所述第一电路被配置成通过以下方式确定所述数据校验字段:将哈希函数应用于所述多个数据比特,以产生第一校验和;以及利用所述第一校验和以及所述预定标识字段来执行可逆操作,以产生所述数据校验字段。
示例22.根据示例13至21中的一个所述的电路,其中所述第二电路被配置成耦合到所述总线并且包括接收器,所述接收器被配置成从所述发射器接收所述多个数据比特和所述数据校验字段,其中所述第二电路被配置成:通过基于接收的所述多个数据比特和所述预定标识字段的本地存储版本来验证所述数据校验字段,来确定所述预定标识字段。
示例23.根据示例22所述的电路,其中所述发射器、所述接收器、所述第一电路和所述第二电路被布置在单片半导体电路上。
示例24.一种操作集成电路的方法,所述方法包括:执行读取操作,包括:在总线上接收读取地址;对接收的所述读取地址进行解码,以产生经解码的读取地址;基于所述经解码的读取地址来访问数据;基于访问的所述数据和所述经解码的读取地址,产生读取数据校验字段;以及在所述总线上传输所述读取数据校验字段。
示例25.根据示例24所述的方法,还包括:执行写入操作,包括从所述总线接收写入地址、写入数据和第一写入数据校验字段;对接收的所述写入地址进行解码,以产生经解码的写入地址;基于所述经解码的写入地址选择写入位置;在写入所述写入数据之前,基于所述经解码的写入地址,读取验证数据;基于所述经解码的写入地址和所述验证数据,产生第二写入数据校验字段;以及将所述第一写入数据校验字段与所述第二写入数据校验字段进行比较,以及如果所述比较动作递送匹配,则将所述写入数据写入到选择的所述位置。
示例26.根据示例25所述的方法,还包括:基于所述比较,当所述第一写入数据校验字段与所述第二写入数据校验字段匹配时,向所述总线传输确认消息。
示例27.根据示例25或26中的一个所述的方法,其中写入所述写入数据包括选择第一寄存器;并且读取所述验证数据包括从所述第一寄存器读取所述验证数据。
示例28.根据示例25至27中的一个所述的方法,还包括:请求所述写入操作,包括:基于所述写入地址和所述写入数据确定所述第一写入数据校验字段;以及将所述写入地址、所述写入数据和所述第一写入数据校验字段传输到所述总线。
示例29.根据示例24至28中的一个所述的方法,还包括:请求所述读取操作,包括:在所述总线上传输所述读取地址;从所述总线接收访问的所述数据和读取数据校验字段;以及基于接收的访问数据和传输的所述读取地址,验证来自所述总线的所述读取数据校验字段。
示例30.根据示例24到29中的一个所述的方法,其中产生所述读取数据校验字段包括:将哈希函数应用于访问的所述数据,以产生第一校验和;以及利用所述第一校验和以及所述经解码的读取地址执行可逆操作,以形成所述读取数据校验字段。
示例31.根据示例30所述的方法,其中所述可逆操作包括异或操作;并且其中应用所述哈希函数包括从访问的所述数据计算循环冗余校验和。
示例32.根据示例24至31中的一个所述的方法,其中产生所述读取数据校验字段包括:将所述经解码的读取地址映射到表示所述经解码的地址的数字字,以及基于访问的所述数据和表示所述经解码的地址的所述数字字,来产生读取数据校验字段。
示例33.根据示例32所述的方法,其中将所述经解码的读取地址映射到表示所述经解码的地址的所述数字字包括:使用多路复用器。
示例34.一种集成电路,包括:总线;耦合到所述总线的总线主电路;以及耦合到所述总线的数据存储电路,所述数据存储电路包括数据存储区域、地址解码器和读取校验和生成器,所述数据存储电路被配置成:从所述总线接收读取地址;由所述地址解码器对接收的所述读取地址进行解码,以产生经解码的读取地址;基于所述经解码的读取地址,从所述数据存储区域访问数据;由所述读取校验和生成器,基于访问的所述数据和所述经解码的读取地址产生读取数据校验字段;以及在所述总线上传输所述读取数据校验字段,而不直接传输所述经解码的读取地址。
示例35.根据示例34所述的集成电路,其中所述数据存储电路还包括写入校验和电路,并且所述数据存储电路还被配置成:从所述总线接收写入地址、写入数据和第一写入数据校验字段;使用所述地址解码器对接收的所述写入地址进行解码,以产生经解码的写入地址;基于所述经解码的写入地址,选择所述数据存储区域;在写入所述写入数据之后,基于所述经解码的写入地址,从选择的所述数据存储区域读取验证数据;使用所述写入校验和电路,基于所述经解码的写入地址和所述验证数据,产生第二写入数据校验字段;使用所述写入校验和电路,将所述第一写入数据校验字段与所述第二写入数据校验字段进行比较;以及如果所述第一写入数据校验字段与所述第二写入数据校验字段匹配,则将所述写入数据写入到选择的所述数据存储区域。
示例36.根据示例34或35中的一个所述的集成电路,其中所述数据存储电路还被配置成在所述总线上传输访问的所述数据。
尽管已经参考说明性实施例描述了本发明,但是该描述并非旨在以限制性的意义来解释。在参考本描述时,对说明性实施例的各种修改和组合、以及本发明的其他实施例对于本领域技术人员将是显而易见的。因此,旨在的是所附权利要求涵盖任何这种修改或实施例。
Claims (21)
1.一种传送数据的方法,所述方法包括:
由第一设备基于预定标识字段和多个数据比特,来确定数据帧的数据校验字段,其中所述预定标识字段表示所述多个数据比特的内容、源或目标中的至少一个;以及
由所述第一设备向第二设备传输包括所述多个数据比特和所述数据校验字段的所述数据帧,而不直接传输所述预定标识字段。
2.根据权利要求1所述的方法,其中所述多个数据比特的所述源是基于经解码的读取地址。
3.根据权利要求1所述的方法,其中所述多个数据比特的所述目标是基于经解码的写入地址。
4.根据权利要求1所述的方法,其中所述多个数据比特的所述源是基于所述第一设备的设备标识符或所述第一设备的地址。
5.根据权利要求1所述的方法,其中确定所述数据校验字段包括:将哈希函数应用于所述预定标识字段和所述多个数据比特,以产生所述数据校验字段。
6.根据权利要求1所述的方法,其中确定所述数据校验字段包括:
利用所述多个数据比特和所述预定标识字段执行可逆操作,以产生第一数据值;以及
向所述第一数据值应用哈希函数,以产生所述数据校验字段。
7.根据权利要求6所述的方法,其中:
所述可逆操作包括异或操作;并且
应用所述哈希函数包括:从所述多个数据比特计算循环冗余校验和。
8.根据权利要求1所述的方法,其中确定所述数据校验字段包括:
将哈希函数应用于所述多个数据比特,以产生第一校验和;以及
利用所述第一校验和以及所述预定标识字段执行可逆操作,以产生所述数据校验字段。
9.根据权利要求1所述的方法,其中所述预定标识字段包括写入地址,第一接收数据被写入到所述写入地址。
10.根据权利要求9所述的方法,还包括:在确定所述数据校验字段之前,由所述第二设备从所述第一设备接收所述第一接收数据和所述写入地址。
11.根据权利要求10所述的方法,其中所述第一接收数据包括多个数据字,并且所述写入地址包括多个写入地址。
12.根据权利要求1所述的方法,还包括:
由所述第二设备从所述第一设备接收所述多个数据比特和所述数据校验字段;以及
由所述第二设备,通过基于接收的所述多个数据比特和所述预定标识字段的本地存储版本来验证所述数据校验字段,来确定所述预定标识字段。
13.一种被配置成耦合到总线的电路,所述电路包括:
第一电路,被配置成基于预定标识字段和多个数据比特来确定数据帧的数据校验字段,其中所述预定标识字段表示所述多个数据比特的内容、源或目标中的至少一个;以及
发射器,耦合到所述第一电路,并且被配置成耦合到所述总线,并且将包括所述多个数据比特和所述数据校验字段的所述数据帧传输给第二电路,而不直接传输所述预定标识字段。
14.根据权利要求13所述的电路,其中所述第一电路和所述发射器被布置在电池单元集成电路上,所述电池单元集成电路被配置成耦合到电池单元,并且其中所述第二电路是主机控制器。
15.根据权利要求13所述的电路,其中所述第一电路被配置成通过以下方式确定所述数据校验字段:
利用所述多个数据比特和所述预定标识字段执行可逆操作,以产生第一数据值;以及
将哈希函数应用于所述第一数据值,以产生所述数据校验字段。
16.根据权利要求13所述的电路,其中所述第一电路被配置成通过以下方式确定所述数据校验字段:
将哈希函数应用于所述多个数据比特,以产生第一校验和;以及
利用所述第一校验和以及所述预定标识字段来执行可逆操作,以产生所述数据校验字段。
17.根据权利要求13所述的电路,其中所述第二电路被配置成耦合到所述总线并且包括接收器,所述接收器被配置成从所述发射器接收所述多个数据比特和所述数据校验字段,其中所述第二电路被配置成:通过基于接收的所述多个数据比特和所述预定标识字段的本地存储版本来验证所述数据校验字段,来确定所述预定标识字段。
18.根据权利要求17所述的电路,其中所述发射器、所述接收器、所述第一电路和所述第二电路被布置在单片半导体电路上。
19.一种集成电路,包括:
总线;
耦合到所述总线的总线主电路;以及
耦合到所述总线的数据存储电路,所述数据存储电路包括数据存储区域、地址解码器和读取校验和生成器,所述数据存储电路被配置成:
从所述总线接收读取地址,
由所述地址解码器对接收的所述读取地址进行解码,以产生经解码的读取地址,
基于所述经解码的读取地址,从所述数据存储区域访问数据,
由所述读取校验和生成器,基于访问的所述数据和所述经解码的读取地址产生读取数据校验字段,以及
在所述总线上传输所述读取数据校验字段,而不直接传输所述经解码的读取地址。
20.根据权利要求19所述的集成电路,其中所述数据存储电路还包括写入校验和电路,并且所述数据存储电路还被配置成:
从所述总线接收写入地址、写入数据和第一写入数据校验字段,
使用所述地址解码器对接收的所述写入地址进行解码,以产生经解码的写入地址,
基于所述经解码的写入地址选择所述数据存储区域,
在写入所述写入数据之后,基于所述经解码的写入地址从选择的所述数据存储区域读取验证数据,
使用所述写入校验和电路,基于所述经解码的写入地址和所述验证数据产生第二写入数据校验字段,
使用所述写入校验和电路,将所述第一写入数据校验字段与所述第二写入数据校验字段进行比较,以及
如果所述第一写入数据校验字段与所述第二写入数据校验字段匹配,则将所述写入数据写入到选择的所述数据存储区域。
21.根据权利要求19所述的集成电路,其中所述数据存储电路还被配置成在所述总线上传输访问的所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/175,457 | 2018-10-30 | ||
US16/175,457 US10841039B2 (en) | 2018-10-30 | 2018-10-30 | System and method for transferring data and a data check field |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130689A true CN111130689A (zh) | 2020-05-08 |
CN111130689B CN111130689B (zh) | 2024-05-24 |
Family
ID=70325872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988402.XA Active CN111130689B (zh) | 2018-10-30 | 2019-10-17 | 传送数据和数据校验字段的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10841039B2 (zh) |
CN (1) | CN111130689B (zh) |
DE (1) | DE102019129275A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210279125A1 (en) * | 2020-03-04 | 2021-09-09 | Infineon Technologies Ag | Device, controller for a device and method of communicating |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018210684A1 (de) * | 2018-06-29 | 2020-01-02 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Codieren eines Steuergerätes eines Fahrzeuges und zum Überprüfen eines Steuergerätes eines Fahrzeuges |
US11144385B2 (en) * | 2018-08-21 | 2021-10-12 | Micron Technology, Inc. | Transmission failure feedback schemes for reducing crosstalk |
GB2583476B (en) * | 2019-04-29 | 2021-05-26 | Canis Automotive Labs Ltd | CAN security invention |
CN112821991B (zh) * | 2020-12-30 | 2022-03-11 | 惠州华阳通用电子有限公司 | 一种数据传输方法及装置 |
CN112988172A (zh) * | 2021-02-20 | 2021-06-18 | 浙江禾川科技股份有限公司 | 一种编码器的程序更新方法、装置、系统 |
JP2022167758A (ja) * | 2021-04-23 | 2022-11-04 | キヤノン株式会社 | 電子機器及びアクセサリとその制御方法、通信システム、プログラム |
CN114035524A (zh) * | 2021-11-11 | 2022-02-11 | 成都卡诺普机器人技术股份有限公司 | 控制方法和自动控制系统 |
US11824556B1 (en) * | 2022-07-25 | 2023-11-21 | Samsung Electronics Co., Ltd. | Error correction using soft decision bits and multiple hypotheses |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018526A (en) * | 1997-02-20 | 2000-01-25 | Macronix America, Inc. | Bridge device with self learning between network media and integrated circuit and method based on the same |
CN1276138A (zh) * | 1996-05-31 | 2000-12-06 | 夸尔柯姆股份有限公司 | 在扩展频谱通信系统中传输高速率数据的方法和设备 |
US6718444B1 (en) * | 2001-12-20 | 2004-04-06 | Advanced Micro Devices, Inc. | Read-modify-write for partial writes in a memory controller |
CN1930814A (zh) * | 2004-01-16 | 2007-03-14 | Zih公司 | 在数据传输系统中计算并验证数据完整性的方法和系统 |
US20090235113A1 (en) * | 2006-05-18 | 2009-09-17 | Rambus Inc. | Memory error detection |
CN101809997A (zh) * | 2007-07-02 | 2010-08-18 | Lg电子株式会社 | 广播接收机和广播信号处理方法 |
US20100315965A1 (en) * | 2009-06-10 | 2010-12-16 | Microchip Technology Incorporated | Packet Based Data Transmission |
EP2605436A2 (de) * | 2011-12-15 | 2013-06-19 | Siemens Aktiengesellschaft | Sicherung eines Telegramms über die Positionierung der CRC-Daten |
US20140025936A1 (en) * | 2012-07-20 | 2014-01-23 | Canon Kabushiki Kaisha | Control apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004057788B4 (de) | 2004-11-30 | 2006-10-19 | Infineon Technologies Ag | Verfahren zum Betreiben eines an ein Bus-, insbesondere LIN-Bus-System anschliessbaren System-Moduls, sowie Halbleiter-Bauelement |
US11086790B2 (en) * | 2017-08-25 | 2021-08-10 | Micron Technology, Inc. | Methods of memory address verification and memory devices employing the same |
-
2018
- 2018-10-30 US US16/175,457 patent/US10841039B2/en active Active
-
2019
- 2019-10-17 CN CN201910988402.XA patent/CN111130689B/zh active Active
- 2019-10-30 DE DE102019129275.1A patent/DE102019129275A1/de active Pending
-
2020
- 2020-09-17 US US17/024,191 patent/US11108499B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276138A (zh) * | 1996-05-31 | 2000-12-06 | 夸尔柯姆股份有限公司 | 在扩展频谱通信系统中传输高速率数据的方法和设备 |
US6018526A (en) * | 1997-02-20 | 2000-01-25 | Macronix America, Inc. | Bridge device with self learning between network media and integrated circuit and method based on the same |
US6718444B1 (en) * | 2001-12-20 | 2004-04-06 | Advanced Micro Devices, Inc. | Read-modify-write for partial writes in a memory controller |
CN1930814A (zh) * | 2004-01-16 | 2007-03-14 | Zih公司 | 在数据传输系统中计算并验证数据完整性的方法和系统 |
US20090235113A1 (en) * | 2006-05-18 | 2009-09-17 | Rambus Inc. | Memory error detection |
CN101809997A (zh) * | 2007-07-02 | 2010-08-18 | Lg电子株式会社 | 广播接收机和广播信号处理方法 |
US20100315965A1 (en) * | 2009-06-10 | 2010-12-16 | Microchip Technology Incorporated | Packet Based Data Transmission |
EP2605436A2 (de) * | 2011-12-15 | 2013-06-19 | Siemens Aktiengesellschaft | Sicherung eines Telegramms über die Positionierung der CRC-Daten |
US20140025936A1 (en) * | 2012-07-20 | 2014-01-23 | Canon Kabushiki Kaisha | Control apparatus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210279125A1 (en) * | 2020-03-04 | 2021-09-09 | Infineon Technologies Ag | Device, controller for a device and method of communicating |
US11709728B2 (en) * | 2020-03-04 | 2023-07-25 | Infineon Technologies Ag | Device, controller for a device and method of communicating |
Also Published As
Publication number | Publication date |
---|---|
US20200136754A1 (en) | 2020-04-30 |
CN111130689B (zh) | 2024-05-24 |
US11108499B2 (en) | 2021-08-31 |
US10841039B2 (en) | 2020-11-17 |
US20210006353A1 (en) | 2021-01-07 |
DE102019129275A1 (de) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111130689B (zh) | 传送数据和数据校验字段的系统和方法 | |
US7480847B2 (en) | Error correction code transformation technique | |
CN110914807A (zh) | 事务标识同步 | |
US9652322B2 (en) | User station of a bus system and method for transmitting messages between user stations of a bus system | |
CN114328316A (zh) | Dma控制器、soc系统及基于dma控制器的数据搬运方法 | |
JP2013137708A (ja) | メモリコントローラ、データ記憶装置およびメモリ制御方法 | |
US8843800B2 (en) | Semiconductor integrated circuit | |
CN109074294A (zh) | 通信装置和通信系统 | |
US8489978B2 (en) | Error detection | |
EP4266178A1 (en) | Error correction code validation | |
CN110351012B (zh) | 经由故障安全的通信连接传输数据时识别数据损坏的方法 | |
US10972268B2 (en) | Cryptographic diversity | |
US20230273854A1 (en) | Serial management interface with improved reliability | |
CN113722770B (zh) | 基于分级的数据完整性的端到端的保护方法及系统 | |
CN114128180B (zh) | 具有crc生成器的电子设备和用于将数据从电子设备传输至控制单元的方法 | |
US11977508B2 (en) | Serial data communication with in-frame response | |
US20240134743A1 (en) | Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system | |
US11797306B2 (en) | Circuit for verifying the content of registers | |
CN118394281B (zh) | 数据读取方法、装置和芯片 | |
US11314513B2 (en) | Circuit for verifying the content of registers | |
JP7309951B2 (ja) | マスタ、スレーブ、マスタスレーブ通信システム、オンチップインターコネクトシステム、マスタを動作させる方法、スレーブを動作させる方法、マスタスレーブ通信システムを動作させる方法、およびオンチップインターコネクトシステムを動作させる方法 | |
US20230032989A1 (en) | Serial data communication with in-frame response | |
CN117331747A (zh) | 非缓存数据传送 | |
WO2009024886A2 (en) | System and method for error protection of a memory |
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 |