CN115701595A - 具有帧内响应的串行数据通信 - Google Patents
具有帧内响应的串行数据通信 Download PDFInfo
- Publication number
- CN115701595A CN115701595A CN202210865406.0A CN202210865406A CN115701595A CN 115701595 A CN115701595 A CN 115701595A CN 202210865406 A CN202210865406 A CN 202210865406A CN 115701595 A CN115701595 A CN 115701595A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- payload
- read
- header
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 title abstract description 42
- 238000004891 communication Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000002123 temporal effect Effects 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Small-Scale Networks (AREA)
Abstract
本公开的实施例涉及具有帧内响应的串行数据通信。下面描述一种用于总线节点的方法。根据一个实施例,该方法包括经过第一数据通道接收第一帧。第一帧至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段。该方法还包括对由第一报头数据确定的读取地址执行读取操作并生成第二帧,其至少包含带有第二有效载荷数据的第二有效载荷字段。这些第二有效载荷数据基于执行读取操作时读取的数据。该方法还包括经过第二数据通道发送第二帧,同时经过第一数据通道接收第一帧,并基于第一有效载荷数据执行写入操作。
Description
技术领域
本说明涉及经过串行数据总线进行基于帧的串行数据通信领域,串行数据总线诸如SPI(串行外设接口)、HSSL(高速串行链路)、MSB(微秒总线)、I2C总线(集成电路间总线)等等。
背景技术
串行数据通信用于各种应用。例如,可以借助于串行数据传输,在电路板上的两个芯片之间、在同一芯片内的两个电路之间、或在两个单独的电子控制单元(ECU)之间传输数据。彼此间进行串行数据传输的数据通信参与者也称为总线节点。已知有多种标准化串行总线系统(在某些情况下还有专有标准)。例如,SPI总线很普遍。术语“总线”表示通信需要多个信号或线路。在使用SPI时,除了数据线(通常称为MISO和MOSI)外,还有移位时钟信号(通常称为SCK)和数据帧控制信号(通常称为片选,CSN)。这两个信号确定了串行传输数据的数据传输速率和数据帧的长度。在使用SPI时,随着每个方向不同数量的数据线而存在变化。特别是对于高数据速率的应用,通常每个方向使用多条数据线,例如4条或8条。以下将每个方向的数据线称为数据通道,而与数据线的数量无关。
产生片选信号和移位时钟信号的单元通常称为通信主单元(或简称主机),而接收这些信号的单元通常称为通信从单元(或简称从机)。因此,上述缩写MISO表示主输入从输出(数据从从机传输到主机)和MOSI表示主输出从输入(数据从主机传输到从机)。
在许多应用中,数据在两个方向(全双工)双向同时传输,数据通常以称为数据帧(简称帧)的短序列传输。一个帧包括许多数据位或符号,其中数据位或符号可以具有不同的含义。例如,帧的一组数据位/符号(通常称为“字段”)可以表示标识符(直接标识符或报头的一部分)。另外,标识符可以识别数据传输的发送者和/或目的地。特别地,标识符可以表示要写入数据的地址或要从中读取数据的地址。此外,标识符可以包含一个特定的命令,该命令规定随着要传输的数据应该发生什么(例如读取或写入)。例如,帧的另一个字段可能包含表示要写入的数据或读取的数据的数据位/符号。该字段通常称为有效载荷字段,因为它包含实际的有效载荷。最后,另一个字段可以包含一个校验和,它允许错误检测(以及如果需要,错误纠正)。例如,可以使用循环冗余校验(CRC)来计算校验和。然而,其他方法也是已知的,例如纠错码(ECC)等。
一些响应使用称为帧内响应(IFR)的概念。这涉及从从机接收的帧在报头中包含一个标识符的情况,该标识符表示要从中读取数据的地址(读取地址)。在完整接收地址后立即执行读取操作,并将读取的数据插入响应帧的有效载荷字段或有效数据字段中,然后将其发送回发送者(从从机返回到主机),而帧的其余部分仍被接收。因此,具有读取地址的接收帧和响应帧在同一时间窗口中被同时发送。发明人自身所设定的任务在于,改进用于使用IFR进行串行数据传输的已知概念。
发明内容
所述任务通过根据本申请的方法和总线节点来实现。各种实施例和进一步的发展是以下内容。
下面描述一种用于总线节点的方法。根据一个实施例,该方法包括经过第一数据通道接收第一帧。第一帧至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段。该方法还包括对通过第一报头数据确定的读取地址执行读取操作并生成第二帧,第二帧至少包含带有第二有效载荷数据的第二有效载荷字段。第二有效载荷数据基于在执行读取操作时所读取的数据。该方法还包括经过第二数据通道发送第二帧,同时经过第一数据通道接收第一帧,并基于第一有效载荷数据执行写入操作。
另一个实施例涉及一种总线节点。根据一个示例性实施例,总线节点具有发送和接收设备,其被设计为经过第一数据通道接收第一帧。第一帧至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段。总线节点还具有控制逻辑部,其被设计为对通过第一报头数据确定的读取地址执行读取操作。控制逻辑部还被设计为基于第一有效载荷数据执行写入操作。总线节点的帧编码器被设计为生成第二帧,该第二帧至少包含带有第二有效载荷数据的第二有效载荷字段,其中第二有效载荷数据基于在执行读取操作时读取的数据,并且发送和接收设备还被设计为经过第二数据通道发送第二帧,同时经过第一数据通道接收第一帧。
附图说明
下面借助图示更详细地解释示例性实施例。图示不一定按比例绘制并且示例性实施例不仅限于图示的方面。相反,重点在于呈现示例性实施例所基于的原理。关于图片:
图1示出了一个系统示例,该系统具有两个通过SPI总线连接的总线节点。
图2示意性地示出了经过串行总线基于帧的全双工总线通信。
图3示意性地示出了在基于帧的串行总线通信的情况下的帧内响应(IFR)的概念。
图4示出了在从总线节点中执行的、用于在使用帧内响应时借助校验和来保护响应帧的方法的示例。
图5示出了在主总线节点中实现的用于在使用帧内响应时检查响应帧中包含的校验和的方法的示例。
图6和图7示意性地示出了用于读取访问和写入访问的基于帧的数据传输。
图8示出了用于利用嵌入式写入命令进行读取访问的新的帧类型的示例。
图9说明了用于使用嵌入式写入命令进行读取访问的新的帧类型的另一个示例。
图10是说明本文所述方法的示例的流程图。
具体实施方式
图1说明了一个系统示例,该系统具有经过SPI总线连接的两个总线节点。然而,这里描述的示例性实施例不限于SPI总线,这里描述的概念还可以应用于任何其他串行总线系统,例如HSSL(高速串行链路)、MSB(微秒总线)、I2C总线(集成电路间总线)等可以被应用。
图1所示的总线节点10在下文中被称为控制器或主总线节点,其控制总线通信。总线节点10例如可以是带有SPI接口11和至少一个处理器12的微控制器,处理器被设计为执行包含在存储器中的软件指令,以实现本文描述的概念、功能和方法步骤。具有SPI接口的可编程微控制器本身是已知的,因此这里不再详细描述。然而不言而喻的是,总线节点10不一定必须具有用于执行软件指令的处理器。附加地或替代地,也可以使用硬连线或一次性可编程(OTP)逻辑。软件和硬连线逻辑的组合也是可能的。
总线节点10的SPI接口11经过多条总线与另一总线节点20的对应SPI接口21(通常称为发送和接收设备)连接,在SPI总线的情况下,通常标有CSN(片选)、SCK(串行时钟)、MOSI(主出从入)和MISO(主入从出)。通过各个总线传输的信号也用CSN、SCK、MOSI和MISO表示。主总线节点规定发送帧的时间(通过激活CSN)以及数据传输速率(时钟信号SCK的生成)。此外,主总线节点还定义了数据是否被读取或写入以及哪些数据被读取或写入(分别从主总线节点的角度来看)。
在某些应用中,信号CSN是可选的。特别是在多个从总线节点连接到一个主总线节点时使用该信号。在其他应用中,CSN是必不可少的。例如,CSN可以包含在组件的安全概念中。时钟信号SCK通常是移位时钟信号,该信号由主总线节点10产生用于同步数据通道MISO和MOSI上的数据传输。MOSI数据通道(带有至少一条数据线)用于从主总线节点10到从总线节点20(下行链路)的数据传输,MISO数据通道(也带有至少一条总线)用于另一方向(上行链路)的数据传输。在全双工数据传输的情况下,数据在MOSI和MISO这两个数据通道上同时且与移位时钟信号SCK同步地传输。在上述帧内响应(IFR)概念的应用中,由主总线节点10发送的帧和由从总线节点20发送的对应响应帧同时(在由CSN信号确定的同一时间窗口内)且与移位时钟信号SCK同步地传送。
如上所述,串行数据传输基于帧(由总线节点10到总线节点20的MOSI帧;由总线节点20到总线节点10的MISO帧)。稍后将更详细地解释帧的结构。在总线节点20中,由SPI接口21接收的数据DIN被转发到帧解码器/编码器22。在另一方向上,帧解码器/编码器22将要发送的数据DOUT提供给SPI接口。帧解码器/编码器22被设计为:一方面将包含在MOSI帧中的数据“解包”、并可能地话对其进行验证,并且将要在MISO帧中发送的原始数据“打包”、并可能地话利用校验和等进行安全保护。
对包含在帧中的数据进行验证和保护通常涉及计算或验证校验和。在这里描述的一些示例性实施例中,循环冗余校验(CRC)用于计算和验证校验和,尽管用于确定和验证校验和的其他算法也是可能的。在最简单的情况下,校验和由一个或多个奇偶校验位组成。各种CRC方法或CRC多项式和用于求取和验证校验和的其他方法本身是已知的,因此在此不再详细解释。一般而言,帧解码器/编码器22将校验和添加到封装在(要发送的)帧中的那些(原始)数据DREAD,并验证包含在(接收的)帧中的校验和,以检查所接收数据(例如地址ADDR、DWRITE)的完整性。但是,借助校验和保护数据并不是绝对必要的,在不太重要的应用中可以省略。
在写入访问的情况下,总线节点10将数据DWRITE写入到总线节点20中的地址ADDR。为此,必须在一个或多个MOSI帧中传输DWRITE和ADDR。在读取访问的情况下,总线节点10从总线节点20的地址ADDR中读取数据DREAD。为此,地址ADDR必须在至少一个MOSI帧中传输,而所读取的数据DREAD必须在至少一个MISO帧中传输。ADDR地址标记出总线节点20的模块或存储器区域中的能写入数据的存储器位置。
在(从)总线节点20中的MOSI帧中接收到的数据在本示例中由DWRITE和ADDR表示并且被馈送到控制逻辑部23。总线节点20在MISO帧中发送的数据由控制逻辑部23输出到帧解码器/编码器22,并且在本示例中被标记为DREAD。帧的结构和其中所包含的数据的含义将在后面更详细地解释(见图3)。例如,控制逻辑部23可以经过内部数据总线25访问存储器26以及一个或多个模块X、Y、Z。模块可以是任何数据源或数据接收器。在一个简单的示例中,模块是一个简单的半导体开关,其可以通过特定命令被接通或断开,或者根据请求为流过(闭合)开关的电流提供值。模块也可以是提供定期更新的测量值(例如温度)的传感器。在一个简单的示例中,存储器是一个可以存储写入数据并在需要时可以读取的元件(例如,基于触发器、RAM单元等)。
图2示意性地示出了经过串行总线的基于帧的全双工数据传输,其中帧序列既经过MOSI数据通道又经过MISO数据通道传输。经过MOSI数据通道传输的帧F1(即其中包含的数据)可以被解释为所示示例中的命令,例如写入和读取命令(例如“写入A”、“读取B”等)。经过MISO数据通道传输的帧F2包含对相应命令的响应(例如,从寄存器读取的数据)。
帧F1和F2被同时传输。在此处描述的示例中,“同时”意味着两个帧(从主机和到主机)至少在时间上重叠。在一个实施例中,MISO帧也在传送MOSI帧的特定时间间隔内被同时传送(参见例如图2,时间间隔TFRAME)。特别是在SPI的情况下,传输是同步的,因为两个帧(除了不可避免的运行时间影响)基本上同时开始和结束。帧F1和F2可以与时钟信号(由总线节点10产生并在SCK线路上输出)同步传输,例如在简单的SPI总线的情况下。对于更高的数据速率(例如超过10Mbaud),帧F1和F2可以参考分离的SCK信号。
在具有下一帧响应(NFR)结构的系统中,对在MOSI帧中传输的命令的响应仅在时间上随后的MISO帧中传输。在这种情况下,MISO帧F2比对应的MOSI帧F1滞后至少一个帧持续时间。然而,在某些应用中,这种时间偏移是不期望的,称为帧内响应(IFR)的概念因此而得到发展。对此的示例在图3中示出。
如图3所示,每个帧(MOSI和MISO帧)至少包括带有报头数据的第一字段、带有有效载荷数据的第二字段和带有校验和的第三字段。从总线节点(例如总线节点20)可以取决于包含在MOSI帧F1中的数据执行特定功能。例如,这可能取决于报头数据。例如,报头数据可以标明用于写入或读取操作的地址(例如,寄存器地址)。报头数据的一部分(在简单情况下只有一位)指示是要执行写入操作还是读取操作。然而,与要执行的功能/操作有关的信息也可以被视为地址的一部分。在写入操作的情况下,要写入的数据在MOSI帧F1的有效载荷数据字段中。在读取操作的情况下,MOSI帧F1的有效载荷数据也可以是虚拟数据(例如零序列),这是因为它们在功能上不被从总线节点进一步考虑。MOSI帧F1的校验和字段中的校验和(MOSI CRC)保护包含在MOSI帧的报头字段和有效载荷字段中的数据。对于所示示例,这意味着在主总线节点10中基于报头数据和有效载荷数据计算CRC校验和(MOSI CRC)。
在帧内响应的情况下,一旦接收到MOSI帧F1的报头数据,从总线节点20就已经执行主总线节点请求的功能(例如读取操作)。此时,MOSI CRC值尚未被完全接收和评估。响应(例如,从位于ADDR位置的寄存器读取的数据DREAD)在MISO帧F2的有效载荷字段中传输,同时仍接收对应的MOSI帧F1。MISO帧F2的报头数据可以是虚拟数据(例如0序列),取决于当前接收到的MOSI报头数据或者例如是指示总线节点20的当前状态的状态信息(例如与当前正在执行的操作无关)。在一个示例中,当前在MOSI帧F1中接收到的报头数据(ADDR)被逐位复制到MISO帧F2的报头数据字段中(状态信息等于MOSI报头数据)。MISO帧F2的校验和字段中的校验和(MISO CRC)保护MISO帧F2的有效载荷数据以及可选地还保护MISO帧F2的报头数据。对于所示的示例,这意味着从总线节点20中的CRC校验和(MISO CRC)(例如,在帧解码器/编码器22中)基于有效载荷数据并且可选地还基于MISO帧F2的报头数据被计算出来。
从图3所示的时序已经可以看出,在从总线节点20接收到MOSI帧F1的报头数据(例如,用于读取操作的地址ADDR)的时间点,必须立即执行所请求的功能(例如读取操作),甚至在存在验证校验和(MOSI CRC)的客观可能性以验证由从总线节点20接收的数据之前。在从总线节点20中的帧解码器/编码器22-可能-发觉接收到的帧F1有故障的时间点,具有响应的帧F2已经被发送回到主总线节点10。在验证校验和(MOSI CRC)失败的情况下(例如由于读取地址ADDR中的传输错误),从总线节点20之后只会注意到:已发送对“错误理解的问题”的响应。然而,从总线节点20只能利用下一个MISO帧F2将错误的校验和报告主总线节点10,这将至少部分地否定帧内响应的优势。在下面的图4和图5中解释了一个概念,它使得主总线节点10已经能够根据包含帧内响应的MISO帧来判断从总线节点20是否执行了正确的功能(并且“正确理解了”该问题)。如果MISO帧F2的报头包含读取地址的副本,则总线节点10在接收到MOSI帧后,可以将实际读取地址(来自MISO帧F2)与最初期望的读取地址(包含在MOSI帧F1中)进行比较,并做出相应的反应。在某些情况下,MISO帧F2中的报头字段配备有其他数据(状态等),使得实际读取地址无法在MISO帧F2中完整传输。
图4示出了在从总线节点20中验证包含在MOSI帧F1中的校验和(MOSI CRC)以及生成/计算在MISO帧F2中要发送的校验和(MISO CRC)(参见图1)。包含在总线节点20中的帧解码器/编码器22在功能上可以分为两部分,以下分别称为帧解码器221和帧编码器222。帧解码器221接收所接收的MOSI帧的数据DIN并从中提取包含在其中的报头数据(例如,用于写入访问的地址ADDR)、有效载荷数据(例如,要写入的数据字DWRITE)和校验和(MOSI-CRC)。帧解码器221还被设计为验证所接收的校验和。如果检测到校验和错误,则例如不对地址执行写入操作,而是例如在错误寄存器中显示预定值。在验证校验和时,基于所接收的MOSI帧F1的报头数据和有效载荷数据进行计算,并与校验和字段中所接收的校验和进行比较。如果计算的校验和与所接收的校验和之间存在差异,则会发出错误信号。只有在接收到完整的MOSI帧之后(例如,在CSN信号停用之后)才能利用(借助CRC)安全数据进行完整的检查和写入过程。
在本示例中,在执行写入操作之前,读取寻址寄存器的内容(数据字DREAD),并将读取的数据字DREAD作为对写入命令的帧内响应返回发送到总线节点10(主节点)。在接收到MOSI报头数据字段中的目的地址ADDR之后(甚至在检查MOSI CRC之前),控制逻辑部23对所接收的地址ADDR执行读取操作,并将从那里读取的数据传输到帧编码器222。帧编码器222接收数据字DREAD(例如从控制逻辑部23)和状态信息,并由此生成要发送的MISO/响应帧F2,其中MISO报头数据表示状态信息,并且MISO有效载荷数据表示数据字DREAD。帧编码器222被设计为基于刚刚接收到的MOSI帧F1的MOSI头数据(地址)、刚刚更新的MISO帧F2的MISO有效载荷数据、以及可选地还基于刚刚更新的MISO-帧F2的MISO报头数据来计算校验和。计算出的校验和值MISO CRC被写入当前MISO帧F2的校验和字段,并经过总线传输到主总线节点10。如前所述,接收到的MOSI帧F1和响应帧F2(MISO帧)在同一时隙中并行传输。在使用SPI接口时,MOSI和MISO帧同时同步传输(由公共信号CSN和SCK控制)。在使用其他传输接口时,可以彼此时间偏移地传输MOSI和MISO帧。一旦从总线节点触发对仅部分接收的MOSI帧的行动(仍在检查完整的MOSI帧之前),此处描述的机制可用于保护MISO帧。
与已知概念不同-如图4示意性所示-在进行响应的从总线节点20中,当计算校验和以确保MISO/响应帧F2安全时,考虑包含在刚刚接收到的MOSI帧F1中的报头数据。在此,从总线节点20使用数据来创建MISO校验和,该校验和源自同时或以重叠方式传输的当前帧F1和F2。
主总线节点10利用其SPI接口11(见图1)接收MISO/响应帧F2(由从总线节点发送的数据DOUT),并对包含在接收到的MISO/响应帧F2中的校验和(MISO CRC)基于以下项进行验证:之前用于生成与MISO帧F2同时或重叠传输的MOSI帧F1的MOSI报头数据(地址);以及刚刚接收到的MISO/响应帧F2的MISO有效载荷数据;和可选地,刚刚接收到的MISO/响应帧F2的MISO报头数据。这在图5的下部示出。图5的上部示出了对在主总线节点10中要发送的MOSI帧F1的保护,为此基于MOSI报头数据(地址)和与MOSI有效载荷数据相关的帧,以常规方式计算校验和(MOSI CRC)。
在验证接收到的MISO/响应帧F2的校验和时,主总线节点10已经可以识别从总线节点20是否已经正确接收到对应MOSI帧F1的MOSI报头数据(其例如包含用于写入或读取操作的地址)。如果不是这种情况,那么在从总线节点20中接收到的(MOSI帧F1的)报头数据将与在主总线节点10中用于生成MOSI帧的报头数据不同(在这种情况下从总线节点20将会“错误理解”主总线节点10)。由于在从总线节点中进行校验和计算时考虑了接收到的MOSI报头数据并且在主总线节点中进行校验和验证时考虑了预期的MOSI报头数据,因此主总线节点在验证接收到的MISO/响应帧的校验和时可以立即识别:从总线节点20是否已正确接收到对应MOSI帧的报头数据(进而关于要执行的功能/操作的信息)。
图6和7示意性地示出了用于读取访问的MOSI帧F1或用于写入访问的MOSI帧F1以及所属的MISO/响应帧F2。在本示例中,读取或写入命令是地址的一部分,即不同的地址区域被用于读取和写入操作。对带有读取命令的MOSI帧F1的响应直接发生在与MOSI帧F1以时间重叠(直到实际同时)的方式传输的MISO帧F2中。然而,如上所述,接收到的读取地址只能在帧结束时、即在帧已被完全接收之后被验证。在本示例中,对带有写入命令的MOSI帧F1的帧内响应包含在重写之前存储在写入地址处的数据。在其他示例中,也可以在响应帧F2中传输其他数据(例如状态信息、虚拟数据等)。
如图6所示,MOSI帧F1的有效载荷数据对于读取访问是无关的或未定义的。也就是说,不使用帧F1的有效载荷数据字段,因为读取访问所需的所有信息(即读取地址)都包含在报头字段中。由于MISO帧和MOSI帧通常同时且与时钟信号同步传输,因此至少帧控制信号是相同的(例如在使用SPI总线时的CSN),因此也不能缩短MOSI帧用于读取访问。下面描述一个概念,根据该概念,可以使用其报头字段包含读取地址的MOSI帧中的有效载荷数据字段来使主总线节点/控制器10与从总线节点20之间的通信更有效。一个示例在图8中示出。
根据来自图8的示例,在MOSI帧F1中的报头字段中,传输读取地址用于读取访问,并且在有效载荷数据字段中传输有效数据,其在接收帧F1的从总线节点20中被写入一个或多个已定义的存储器位置。具有对读取命令的帧内响应的对应MISO帧以与上面参考图6解释的相同方式生成。接收到的MOSI帧F1的有效载荷数据字段中的有效数据只有在帧被完全接收后才被写入。如果帧带有校验和,则写入过程仅在帧中包含的数据已被验证(例如借助CRC)时发生。
接收到的MOSI帧F1的有效载荷数据字段中的有效数据可以例如是控制位、状态标志、配置数据等,它们被写入预定的存储区域,以便例如配置从总线节点用于期望目的或期望操作模式。在另一示例中,接收到的MOSI帧F1的有效载荷数据字段包含写入地址和要写入该地址的数据。这种情况如图9所示,除了MOSI帧F1的有效载荷数据字段外,与图8相同。在一个示例中,帧可能长为32位,其中报头字段为8位,有效载荷字段具有16位,校验和也有8位。在该示例中,例如,可以在有效载荷字段中传输8位写入地址和8位要写入的数据。然而,这种分成两次8位不是强制性的。在另一个示例中,可以传输4位写入地址和12位要写入的数据。具体设计取决于应用。当然,写入命令仅在完整接收帧后执行,并且如有必要,在借助CRC验证接收数据后执行。
写入操作并不一定意味着准确写入了有效载荷数据字段中包含的有效数据。写入操作还可以包括修改现有数据(例如状态标志),其中修改的类型可以取决于有效载荷数据字段中包含的有效数据。此外,写入地址并不一定意味着数据实际上存储在存储器中。将(有效)数据写入地址还可以触发取决于(有效)数据的特定行为,例如删除状态信息或转接(Weiterschalten)状态机。此外,有效载荷字段不一定必须直接包含写入地址;相反,有效载荷字段可以包含一个指向实际地址的指针。一般来说,有效载荷字段一方面包含有关写入地址(例如地址本身或指针)的信息,另一方面还包含数据,这些数据以某种方式确定/指示应写入写入地址什么、或如何修改写入地址处的数据。
根据图9的帧类型(具有嵌入式写入访问的读取访问)可以完全替代根据图7的帧类型(正常写访问)。根据应用,也可以使用这两种类型。在操作期间进行的读取访问远远多于写入访问的应用中,根据图9的新的帧类型具有以下优点:可以将(少量的)写入命令实际上“背负”在用于读取访问的帧上传输。这意味着实际上没有额外的总线通信可用于写入访问。
在具有32位帧长度(8位报头、16位有效载荷、8位校验和)的前一个示例中,使用根据图9的新的帧类型,可以寻址的存储器与使用传统写入访问(见图7)时一样多。在传统写入访问中,对于地址可以使用7位报头字段(报头的第8位用于区分读取和写入访问),而16位有效载荷数据(2个字节)可以在一个操作中被写入。这产生256个字节的可寻址存储器(128个地址,每个2字节)。利用新的帧类型的嵌入式写入命令(见图9),对于地址(有效载荷字段的前半部分)可使用8位,而8位(1字节,有效载荷字段的后半部分)可以在一个操作中被写入。这也提供了一个256字节的可寻址存储器(256个地址,每个1字节)。
下面参考图10中的流程图总结了图8和图9中所示的用于具有嵌入式写命令的读取访问的帧的概念。可以理解,标记为S1-S5的步骤并不意味着按时间顺序排列。相反,它们有时会同时运行,这也反映在术语“帧内响应”中。图10涉及在总线节点中执行的方法,例如图1所示的从总线节点20。因此,该方法包括经过第一数据通道接收第一帧(MISO帧)(参见图10,步骤S1),其中MISO帧至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段。该方法还包括在通过第一报头数据确定的读取地址处执行读取操作(参见图10,步骤S2),并生成第二帧(MISO帧),其至少包含带有第二有效载荷数据的第二有效载荷字段,其中第二有效载荷数据基于在在步骤S2中读取的数据(参见图10,步骤S3)。该方法还包括与经过第一数据通道接收第一帧时间重叠或同时地经过第二数据通道发送第二帧(参见图10,步骤S4),并基于第一有效载荷数据执行写入操作(见图10,步骤S5)。
第一帧(MOSI帧)的接收和第二帧(MISO帧,响应帧)的传输在时间上重叠或同时,因此称为帧内响应。可以在接收到第一个报头数据之后并且还在完全接收到MOSI帧之前,随即执行读取操作。两个帧(MISO和MOSI帧)可以在相同的时间间隔(参见图2,时间间隔TFRAME)中传输。两个帧通常与时钟信号同步传输。
在一个实施例中,MOSI帧还包含校验和。在这种情况下,只有在成功检验校验和后才执行写入操作。(接收到的MOSI帧的)第一个有效载荷数据可以包含关于写入地址的信息和(有效)数据字。在这种情况下,执行写入操作包括将基于数据字的数据写入到通过写入地址指定的一个或多个存储器的区域。
由于甚至在整个MOSI帧被完全接收和验证之前执行读取操作,所以MOSI帧的校验和不一定要包含读地址。在一个示例中,MOSI校验和可以包括读取地址,以便也能够分析帧的这部分,例如关于传输中的现有干扰。
Claims (10)
1.一种方法,包括:
经过第一数据通道接收第一帧(F1),其中所述第一帧(F1)至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段;
对通过所述第一报头数据确定的读取地址进行读取操作;
生成第二帧(F2),所述第二帧至少包含带有第二有效载荷数据的第二有效载荷字段,所述第二有效载荷数据基于在执行所述读取操作时所读取的数据;
与经过所述第一数据通道接收所述第一帧(F1)时间重叠地经过第二数据通道发送所述第二帧(F2);以及
基于所述第一有效载荷数据执行写入操作。
2.根据权利要求1所述的方法,
其中所述第一帧(F1)附加地包含校验和,并且只有在所述校验和被成功检验后才执行所述写入操作。
3.根据权利要求1或2所述的方法,
其中所述第一有效载荷数据包含与写入地址和数据字有关的信息,并且其中执行所述写入操作包括将基于所述数据字的数据写入到所述写入地址。
4.根据权利要求1至3中任一项所述的方法,
其中在接收到所述第一帧(F1)的相同时间间隔内发送所述第二帧(F2)。
5.根据权利要求1至3中任一项所述的方法,
其中与时钟信号同步地接收或发送所述第一帧(F1)和所述第二帧(F2)。
6.根据权利要求1至5中任一项所述的方法,
其中在接收到所述第一报头数据之后并且还在所述第一帧(F1)已经被完全接收之前,随即执行所述读取操作。
7.一种总线节点,具有:
发送和接收设备(21),被设计为经过第一数据通道(MOSI)接收第一帧(F1),其中所述第一帧(F1)至少包括带有第一报头数据的第一报头字段和带有第一有效载荷数据的第一有效载荷字段;
控制逻辑部(23),被设计为对通过所述第一报头数据确定的读取地址执行读取操作,并且所述控制逻辑部还被设计为基于所述第一有效载荷数据执行写入操作;和
帧编码器(222),被设计为生成第二帧(F2),所述第二帧至少包含带有第二有效载荷数据的第二有效载荷字段,所述第二有效载荷数据基于在执行所述读取操作时所读取的数据;
其中所述发送和接收设备(21)还被设计为:与经过所述第一数据通道接收所述第一帧(F1)时间重叠地经过第二数据通道发送所述第二帧(F2)。
8.根据权利要求7所述的总线节点,
其中所述第一帧(F1)附加地包含校验和,并且所述控制逻辑部(23)被设计为只有在所述校验和被成功检验后才执行所述写入操作。
9.根据权利要求7或8所述的总线节点,
其中所述第一有效载荷数据包含与写入地址和数据字有关的信息,以及
其中执行所述写入操作包括将基于所述数据字的数据写入到所述写入地址。
10.根据权利要求7至9中任一项所述的总线节点,
其中所述控制逻辑部(23)被设计为:在接收到所述第一报头数据之后并且还在所述第一帧(F1)已经被完全接收之前,随即执行所述读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021119998.0A DE102021119998B3 (de) | 2021-08-02 | 2021-08-02 | Serielle datenkommunikation mit in-frame-antwort |
DE102021119998.0 | 2021-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115701595A true CN115701595A (zh) | 2023-02-10 |
Family
ID=83899094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210865406.0A Pending CN115701595A (zh) | 2021-08-02 | 2022-07-21 | 具有帧内响应的串行数据通信 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230032989A1 (zh) |
CN (1) | CN115701595A (zh) |
DE (1) | DE102021119998B3 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240338337A1 (en) * | 2023-04-10 | 2024-10-10 | Nxp Usa, Inc. | Enhanced serial peripheral interface |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102010028485B4 (de) | 2010-05-03 | 2024-05-29 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Absicherung von über eine Schnittstelle zu übertragenden Datenpaketen |
US10216678B2 (en) | 2014-10-07 | 2019-02-26 | Infineon Technologies Ag | Serial peripheral interface daisy chain communication with an in-frame response |
-
2021
- 2021-08-02 DE DE102021119998.0A patent/DE102021119998B3/de active Active
-
2022
- 2022-07-21 CN CN202210865406.0A patent/CN115701595A/zh active Pending
- 2022-07-22 US US17/814,370 patent/US20230032989A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230032989A1 (en) | 2023-02-02 |
DE102021119998B3 (de) | 2022-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4917671B2 (ja) | マスタ装置とスレーブ装置との間でのデータ伝送方法 | |
US11108499B2 (en) | System and method for transferring data and a data check field | |
CN110347529B (zh) | 用于执行错误侦测协议的存储器装置及方法 | |
CN104699576B (zh) | 串行通信测试装置、包括该装置的系统及其方法 | |
CN114328316B (zh) | Dma控制器、soc系统及基于dma控制器的数据搬运方法 | |
CN101123485B (zh) | iSCSI报文处理方法和装置、错误恢复方法和装置 | |
US9065732B2 (en) | Communication configuration and method for debugging, respectively for programming one or more participants of the communication configuration | |
CN115701595A (zh) | 具有帧内响应的串行数据通信 | |
US11283646B2 (en) | Monitoring local interconnect network (LIN) nodes | |
US7032080B2 (en) | Plural station memory data sharing system | |
US7363565B2 (en) | Method of testing apparatus having master logic unit and slave logic unit | |
US11928019B2 (en) | Serial management interface with improved reliability | |
US11977508B2 (en) | Serial data communication with in-frame response | |
US6987776B1 (en) | Multiplex communication method, the device and the system thereof | |
US20240248858A1 (en) | Serial bus communication without read indication | |
EP1020798B1 (en) | Unidirectional verification of bus-based systems | |
CN112445744A (zh) | I2c通信 | |
US20190222355A1 (en) | Method, Sensor, and Controller for Transmitting a Data Packet from a Sensor to a Controller | |
US6771716B1 (en) | Method of communication with coherence checking and device for the implementation thereof | |
CN114726482A (zh) | 一种spi数据传输方法 | |
JP2000022672A (ja) | 通信装置及び通信システム | |
JP2006221580A (ja) | マイクロコントローラ | |
JPH03154951A (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 |