CN200780031869.0
2007.09.28
CN101512990A
2009.08.19
授权
有权
授权|||实质审查的生效|||公开
H04L12/56; H04L12/22
H04L12/56
英特尔公司
R·A·邓斯坦; J·赫里格恩
美国加利福尼亚
2006.9.29 US 11/540,837
永新专利商标代理有限公司
王 英
本发明提供了一种方法及系统,在一些实施例中,该方法包括:由消息始发方计算第一校验和字节;将第一校验和字节附加于消息;通过单线式串行总线将消息从始发方发送到客户端;通过比较第一校验和字节与客户端计算出的第二校验和,客户端确定来自始发方的消息的有效性。
1、 一种方法,包括:消息始发方计算第一校验和字节;将所述第一校验和字节附加于消息;通过单线式串行总线将所述消息从所述始发方发送到客户端;通过比较所述第一校验和字节与所述客户端计算出的第二校验和,所述客户端确定来自所述始发方的所述消息的有效性。2、 如权利要求1所述的方法,其中,当所述第一校验和字节等于所述第二校验和字节时,所述客户端确定所述消息是有效的,而当所述第一校验和字节不等于所述第二字节时,所述客户端确定所述消息是无效的。3、 如权利要求1所述的方法,其中,所述第一校验和字节与所述第二校验和字节包括位于各自校验和之前的至少一个数据字节中每一个数据字节的帧校验序列(FCS)8比特循环冗余校验(CRC)。4、 如权利要求1所述的方法,其中,所述消息包括N字节的写入数据,所述写入数据包括所述第一校验和字节。5、 如权利要求4所述的方法,其中,所述消息还包括地址、读取长度以及写入长度。6、 如权利要求4所述的方法,其中,通过修改第N-1个写入数据字节后的校验和字节计算结果来计算第一校验和字节,并将所述第一校验和字节作为第N个写入数据字节附加于所述消息。7、 如权利要求6所述的方法,其中,所述修改包括:对所述第N-1个写入字节后的所述校验和字节计算结果的最高有效位进行取反。8、 如权利要求6所述的方法,其中,所述修改确保:在发送所述第一校验和之后立即由所述客户端返回至所述始发方的第一校验和字节具有非零值。9、 一种方法,包括:通过单线式串行总线将消息从消息始发方发送到客户端;所述始发方对所述客户端在答复所述始发方发送的所述消息时返回的无效校验和字节进行检测;所述始发方在预定的时间帧内中止所述消息;以及基于所述始发方在所述预定的时间帧内中止所述消息,所述客户端确定所述消息是无效的。10、 如权利要求9所述的方法,其中,所述校验和字节包括:位于所述校验和字节之前的至少一个数据字节中每一个数据字节的帧校验序列(FCS)8比特循环冗余校验(CRC)。11、 如权利要求9所述的方法,其中,所述预定的时间在第一读取数据字节内。12、 一种系统,包括:单线式串行总线;消息始发方设备,连接到所述总线,其中,所述始发方计算第一校验和字节,将所述第一校验和字节附加于消息,并通过所述总线将所述消息从所述始发方发送到客户端;以及客户端设备,连接到所述总线,其中,所述客户端设备通过所述总线从所述始发方接收所述消息,通过比较所述第一校验和字节与所述客户端计算出的第二校验和来确定来自所述始发方的所述消息的有效性。13、 如权利要求12所述的系统,其中,当所述第一校验和字节等于所述第二校验和字节时,所述客户端确定所述消息是有效的,而当所述第一校验和字节不等于所述第二校验和字节时,所述客户端确定所述消息是无效的。14、 如权利要求12所述的系统,其中,所述第一字节与所述第二字节包括位于各自校验和之前的至少一个数据字节中每一个数据字节的8比特循环冗余校验(CRC)。15、 如权利要求12所述的系统,其中,所述消息包括N字节的写入数据,所述写入数据包括所述第一校验和字节。16、 如权利要求15所述的系统,其中,所述消息还包括地址、读取长度以及写入长度。17、 如权利要求15所述的系统,其中,通过修改第N-1个写入数据字节后的校验和字节计算结果来计算所述第一校验和字节,并将所述第一校验和字节作为第N个写入数据字节附加于所述消息。18、 如权利要求17所述的系统,其中,所述修改包括:将所述第N-1个写入数据字节后的所述校验和字节计算结果的最高有效位进行取反。19、 如权利要求17所述的系统,其中,所述修改确保在发送所述校验和之后立即由所述客户端返回至所述始发方的第一校验和字节具有非零值。20、 一种系统,包括:单线式串行总线;客户端,连接到所述总线;以及消息始发方,连接到所述总线,其中,所述始发方通过所述总线向客户端发送消息,并在检测到所述客户端答复所述始发方发送的所述消息时返回的无效校验和字节时,在预定的时间帧内中止所述消息,其中,基于所述始发方在所述预定的时间帧内中止所述消息,所述客户端确定所述消息是无效的。21、 如权利要求20所述的系统,其中,所述校验和字节包括:位于所述校验和字节之前的至少一个数据字节中每一个数据字节的帧校验序列(FCS)8比特循环冗余校验(CRC)。22、 如权利要求20所述的系统,其中,所述预定时间在第一读取数据字节内。23、 一种系统,包括:单线式串行总线;消息始发方设备,连接到所述总线,其中,所述始发方计算第一校验和字节,将所述第一校验和字节附加于消息,并通过所述总线将所述消息从所述始发方发送到客户端;客户端设备,连接到所述总线,其中,所述客户端设备通过所述总线从所述始发方接收所述消息,通过比较所述第一校验和字节与所述客户端计算出的第二校验和来确定来自所述始发方的所述消息的有效性;以及存储器模块,与所述客户端设备相通信。24、 如权利要求23所述的系统,其中,当所述第一校验和字节等于所述第二校验和字节时,所述客户端确定所述消息是有效的,而当所述第一校验和字节不等于所述第二校验和字节时,所述客户端确定所述消息是无效的。
对通过串行总线的设备写入进行验证的方法和系统 背景技术 单线式总线用于在主机与客户端设备之间进行数据通信。在一些情况下,在主机和客户端设备之间传送的命令对主机、客户端设备、关联设备、关联系统、关联平台以及操作环境具有显著的操作效果。一般而言,在主机与客户端设备之间写入和读取数据。在某些情况下,将包括命令的消息从主机发送到一个或多个客户端设备,以便通过客户端设备调用动作。由于通信中的错误,客户端设备可能无法正确接收通过单线式总线发送的消息,和/或从客户端设备返回的数据可能是错误的。 根据一些写入-读取协议,消息始发方(例如主机)接收一个指示,该指示表示目标客户端设备正确接收到消息,并且由客户端设备返回的数据是正确的。然而,基于客户端设备本身不能检测到的通信错误,客户端设备可能接受无效消息并对该无效消息做出动作。 附图说明 图1是根据本发明一些实施例的系统的示例性描述; 图2是涉及本发明一些实施例的消息的示例性描述; 图3是根据本发明一些实施例的过程的流程图; 图4是涉及本发明一些实施例的消息的示例性描述; 图5是根据本发明一些实施例的过程的流程图; 图6是根据本发明一些实施例的系统的示例性描述。 具体实施方式 在本文中描述的几个实施例仅是为了说明的目的。实施例可包括本文描述的元件的任一当前已知版本或今后可知版本。因此,本领域普通技术人员将认识到,根据该说明书可以实现具有各种修改和替换的其它实施例。 参见图1,其示出了根据本发明一些实施例的单线式总线通信系统100的示例性示意图。在一些实施例中,总线130包括单线式串行总线。主机105连接到总线130。多个客户端设备110、115、120以及125也连接到总线130。主机105和客户端设备110、115、120以及125通过总线130在主机和客户端设备之间传送数字数据。一个或多个客户端设备(例如,客户端设备110和115)具有固定地址。一个或多个客户端设备(例如,客户端设备120和125)具有动态分配的地址。因此,一些实施例中的系统100包括具有固定地址的客户端设备和具有动态分配的地址的客户端设备的组合。 尽管图1所示的单线式总线系统包括一个主机和多个客户端设备,但系统100的一些实施例可包括一个主机和一个客户端设备。在一些实施例中,系统100包括一个消息始发方,而在其它的实施例中,系统100可包括多个消息始发方。 在一些实施例中,系统100的总线130的消息符合包括报头和数据的协议。消息协议设定消息数据率,提供关于消息的信息,并确保数据完整性。例如,定时协商用于设定消息的比特率,可以指定目标客户端设备的地址,并且在消息头中提供消息的其它特性。 根据本发明的一些实施例,图2示出了示例性的写入-读取协议200。具体地,写入-读取协议200规定了通过总线130在多个设备之间发送消息。写入-读取协议200首先在消息始发方(例如主机105)和目标客户端(例如一个或多个客户端110、115、120和125)之间写入数据。 根据写入-读取协议200,消息包括报头和数据部分。报头包括地址定时协商(TN)比特205(2比特),其设定消息的地址部分的比特率;用于指定目标设备地址的目标地址210(8比特);消息定时(MT)协商比特215(1比特),用于针对消息的剩余部分,协商消息始发方和一个或多个目标(例如寻址的)客户端设备之间的定时;写入长度220(8比特),其指定了始发方想要发送的N字节的数据;读取长度225(8比特),其指定了始发方希望接收的M字节的数据。将N字节的写入数据230-240写入到目标设备,将M字节的读取数据250-255从目标客户端读出。 在一些实施例中,写入长度和读取长度两者均可为0。在这样的一个实例中,消息指的是空消息,并定义了由连接到总线130的所有设备均支持的设备“ping”。 包括N字节数据的写入数据可选择性地包括命令。在一些实施例中,命令为写入数据的第一个字节230。 在一些实施例中,每条消息需要至少一个帧校验和字节。校验和字节提供一种机制,用于确保在始发方和一个或多个目标客户端之间进行可靠的数据交换。消息始发方和一个或多个客户端设备均执行校验和计算。在一些实施例中,本文的校验和字节作为在循环冗余校验(CRC)之前的每个数据块的帧校验序列(FCS)8比特CRC的结果被获得。 在一些实施例中,在本文中由写入FCS和读取FCS使用的8比特循环冗余校验由如下多项式表示:C(x)=x8+x2+x+1。需要理解的是,在本文中用于校验和计算的CRC包括除了CRC-8多项式之外的多个CRC。 在一些实施例中,消息中的写入FCS不包括TN比特205或MT比特215。然而,在计算中,写入FCS 245包括地址字节210、写入长度字节220以及读取长度字节225。 在一些实施例中,在写入了报头和N个数据字节(例如230-240)之后,写入FCS字节245从目标客户端返回到消息始发方105。报头中的写入长度字节由目标客户端用于确定目标客户端应何时返回写入FCS。即使写入长度字段为0(即没有写入额外的数据字节),目标客户端(例如客户端110)也需要通过报头返回写入FCS。 当从一个或多个目标客户端读取数据时,读取FCS 260跟随读取数据(例如字节250-255)之后。读取FCS字节260由目标客户端驱动。在通过此数据返回读取FCS260之前,读取长度字节225由目标客户端用于确定客户端需要提供给消息始发方的数据字节的数量。不包括写入FCS 245和读取FCS 260作为读取长度的一部分。 由一个或多个目标客户端提供并驱动写入FCS 245和读取FCS 260。由目标客户端提供到始发方的这些FCS为始发方105提供机制,以判断写入是否成功以及是否正确接收到读取数据。 在本发明的一些实施例中,将校验和确保写入(AW)FCS 240附加至消息报头和写入数据。校验和240由目标客户端用于验证消息内容。因此,在客户端设备对消息做出动作之前,目标客户端使用AW FCS 240来核对消息内容。 在一些实施例中,AW(确保写入)FCS 240是8比特循环冗余校验(CRC)的结果。在一些实施例中,AW FCS 240使用与用于写入FCS 245和读取FCS 260的计算相同的8比特循环冗余校验多项式C(x)=x8+x2+x+1。 应该注意到,用于AWFCS 240计算的CRC可以使用除了CRC-8多项式之外的多个CRC。还应该注意到,在单个CRC生成器用于客户端设备的实例中,附加CRC-8接着重新计算新的CRC-8为总是归零的重复过程。在本发明的一些实施例中,出于方便执行和/或遏制成本的目的,例如,客户端设备可包括一个CRC生成器。 在一些示例性的实例中,来自始发方105的消息可命令消息的目标设备执行以下动作:例如,配置目标客户端使其关机一段时间。如果没有一些方法、机制或系统来核对消息的内容,则目标客户端可能会响应错误的消息或无效的消息来执行不可取消的或潜在的有害动作。在目标客户端对消息做出动作之前,AW FCS 240有助于目标客户端核对消息的有效性。以此方式,例如,前述例子的目标客户端可避免错误地使其自身从总线脱离。 继续参照图2,AW FCS 240包括在消息中,作为写入数据内的第N个写入数据字节。在一些实施例中,在对第(N-1)个写入数据字节进行FCS计算之后,AW FCS的初步FCS计算由始发方进行修改。AW FCS的初步FCS计算被修改,从而在下一字节中由目标客户端设备返回的写入FCS 245是非零的。在实施例中,相同的CRC计算用于AW FCS和写入FCS两者,由目标客户端设备返回的写入FCE 245一直为0(例如0 x 00)。 在一些实施例中,通过将第(N-1)个写入数据字节的FSC计算的最高有效位(即msb)取反(invert)来完成初步的FCS修改。以此方式,如果第(N-1)个数据字节的FCS计算为0 x c4,则将msb取反将产生等于0 x 44的AW FCS。 在一些实施例中,使用不同的CRC-8算法来计算客户端中的AW FCS和写入FCS值避免了必须修改校验和的问题,从而避免之后的校验和的值为0。即,在一些实施例中,客户端具有使用不同的CRC算法的两个CRC生成器。 举一个例子,具有三个字节0 x (10 e2 39)的命令/数据集的消息具有其上附加的AWFCS,以得到0 x (20 04 00 10 e2 39 50)的完整的写入序列,其中0 x (20 04 00)包括消息的报头。目标客户端设备用写入FCS字节0 x 89来响应。AW FCS将消息的写入长度增加1,并添加AW FCS作为具有取反的msb的在先字节(0xd0)的CRC-8,以产生0 x 50。 图3根据本发明的一些实施例描述了方法300的示例性流程图。在操作305,第一校验和字节由消息始发方进行计算。第一校验和与图2所示的AW FCS 240相对应。在操作310,将第一校验和附加到来自消息始发方的消息。包括第一校验和的消息与关于图2在本文中示出和讨论的消息协议相对应。 在操作315,通过单线式串行总线将消息从始发方发送到客户端。总线在始发方和客户端之间提供通信。消息包括报头和数据。在一些实施例中,数据包括N字节的写入数据,其中第N个写入数据字节是第一校验和。 在一些实施例中,在计算第一校验和的过程中将初步校验和计算进行修改。可提供修改以获得用于紧接着的随后校验和计算的非零值。修改过程可以作为过程300的其它操作的部分来完成,或与过程300的其它操作分开完成(包括操作305)。 在操作320,客户端确定始发方的消息的有效性。所述确定是基于第一校验和与由客户端内部生成的第二校验和的比较结果。第一校验和与客户端内部生成的第二校验和之间的匹配表示消息内容有效,而第一校验和与客户端生成的第二校验和之间的不匹配表示消息内容无效。在客户端使用第一校验和来确定消息无效的例子中,客户通过不对消息做动作来响应。 在消息的写入协议中使用AW FCS为消息的目标客户端提供了具有确保量度的机制,确保在交付使用数据之前由目标客户端接收的数据是正确的/有效的。 图4示出根据本发明的一些实施例的示例性写入-读取协议400。具体地,写入-读取协议400提供一种机制,基于单线式总线系统的消息始发方的动作,客户端通过这种机制推断出消息是错误的/无效的。写入-读取协议400首先在消息始发方(例如主机205)和目标客户端(例如客户端110、115、120以及125)之间写入数据。 根据写入-读取协议400,消息包括报头和数据部分。报头包括TN比特405、目标地址410、MT协商比特415、用于指定始发方想要发送的N字节数据的写入长度420以及用于指定始发方希望接收的M字节数据的读取长度425。将写入数据430-440的N字节写入目标设备,将M字节的读取数据450-455从目标设备读取回。 在与写入-读取协议400相对应的一些实施例中,写入长度可为零,但读取长度至少为一个字节。 消息协议400的报头和数据部分与参见图2所讨论的报头和数据部分类似。因此,与参见图2在本文别处已讨论的类似的协议400不再进行详细的讨论。而是代为参见图2。 在一些实施例中,如在图5的示例性流程图500中所描述的,在操作505,遵守写入-读取协议400的消息通过单线式总线从始发方发送到客户端。在操作510,始发方105对客户端在答复始发方发送的消息时返回的无效校验和字节进行检测。在一些实施例中,返回的校验和与写入FCS 340相对应。 始发方在接收无效返回校验和(即,写入FCS)时所需的动作是调用主控中止操作,在该操作中中止消息。进一步的需求指示中止发生在预定时间段内。在一些实施例中,预定时间段与紧接着的下一字节周期相对应。连接到总线的客户端利用连接到总线的始发方的中止行为来推断消息是错误的/无效的。相对而言,没有中止操作可解释为来自始发方的消息是正确的或有效的。 预定的时段与读取字节周期相对应,在该预定的时段内,始发方必须判断返回的校验和(即,写入FCS)是否有效,并调用中止操作。因此,从始发方发送消息,并从目标客户端设备返回校验和。在读取第一读取数据字节345期间,始发方判断返回的校验和是否有效,如果无效则调用中止操作。因此,已示出在一些实施例中为何读取长度至少为一个字节。 图5描述了根据本发明的一些实施例的方法500的示例性流程图。在操作505,通过单线式串行总线,将消息从消息始发方发送到客户端。在操作510,始发方对客户端在答复始发方发送的消息时返回的无效校验和字节(例如写入FCS)进行检测。 在确定返回的校验和是无效的或者说是不正确的时,在操作515,始发方中止消息。始发方确定在预定的时间段内中止消息。基于始发方的消息中止动作,客户端设备推断写入FCS是有效的还是无效的。 图6为根据本发明的一些实施例的单线式串行总线通信系统600的示例性示意图。主机605连接到总线630。多个客户端设备610、615、620和625也连接到总线630。主机605和客户端设备610、615、620以及625通过总线630在主机和客户端设备之间传送数据。系统600的客户端设备可具有固定地址或动态地址。系统600与系统100在一些情形上是类似的。然而,系统600包括连接到总线630的存储器模块675。总线630可用于将配置信息写入到存储器模块675,而不是作为用于从存储器读取数据/向存储器写入数据的初级信道。例如,存储器模块675可包括数据,在受到主机和客户端的动作影响时对所述数据做出动作,和/或所述数据包括在来自始发方的消息中。 在一些实施例中,系统600与本文公开的写入-读取协议相兼容,包括参照图2和图4讨论的内容。 尽管图1所示的单线式总线系统包括一个主机和多个客户端设备,但本发明的单线式总线系统的一些实施例可包括一个主机和一个客户端设备。在一些实施例中,单线式总线系统可包括一个消息始发方,而在其它的实施例中,单线式总线系统可包括多个消息始发方。 参照具体的示例性实施例对上述公开的内容进行了描述,然而,显而易见的是,可以做出各种变换和修改,而没有脱离在所附的权利要求中所阐述的较宽的精神和范围。
《对通过串行总线的设备写入进行验证的方法和系统.pdf》由会员分享,可在线阅读,更多相关《对通过串行总线的设备写入进行验证的方法和系统.pdf(18页珍藏版)》请在专利查询网上搜索。
本发明提供了一种方法及系统,在一些实施例中,该方法包括:由消息始发方计算第一校验和字节;将第一校验和字节附加于消息;通过单线式串行总线将消息从始发方发送到客户端;通过比较第一校验和字节与客户端计算出的第二校验和,客户端确定来自始发方的消息的有效性。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1