数据传输的方法、电子设备及存储介质与流程

文档序号:20917690发布日期:2020-05-29 13:44阅读:176来源:国知局
数据传输的方法、电子设备及存储介质与流程
本申请属于现场总线
技术领域
,尤其涉及一种数据传输的方法、电子设备及存储介质。
背景技术
:控制器局域网络(controllerareanetwork,can)总线是国际上应用最广泛的现场总线之一,广泛应用于工业控制、楼宇自动化、汽车、船舶等领域。与一般通信总线相比,can总线的数据通信具有更强的可靠性、实时性及灵活性。但can只定义了物理层和数据链路层,在应用时须设计相应的高层协议。现有的技术方案通过目的地址和源地址可以点对点的进行通信,通过帧序号来实现多帧传输,但该方案只能进行点对点的传输,存在无法进行并发传输的缺点。技术实现要素:本申请实施例提供了一种数据传输的方法、电子设备及存储介质,可以解决以上问题的至少一部分。第一方面,本申请实施例提供了一种数据传输的方法,包括:响应于针对至少一个第一数据对象的数据发送指令,在多个逻辑信道中,针对各个所述第一数据对象,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道;将各个所述目标逻辑信道的信道状态设置为占用态;通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点;每个所述第一数据对象所在的目标逻辑信道,由该第一数据对象对应的can总线数据帧中包含的信道编号标识;若一个所述第一数据对象发送完毕,则将该第一数据对象对应的所述目标逻辑信道的信道状态设置为空闲态。可以理解的是,通过提供多个并行的逻辑信道,在数据传输的过程中,将数据对象分别通过多并行的逻辑信道承载,再将逻辑信道的数据通过物理信道传输,充分利用了物理信道的资源,实现了并行数据传输的效果。第二方面,本申请实施例提供了一种数据传输的方法,包括:响应于接收到源节点通过can总线发送的数据帧,根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的第一数据对象。第三方面,本申请实施例提供了一种数据传输的装置,包括:信道选择模块,用于响应于针对至少一个第一数据对象的数据发送指令,在多个逻辑信道中,针对各个所述第一数据对象,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道;第一状态修改模块,用于将各个所述目标逻辑信道的信道状态设置为占用态;数据发送模块,用于通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点;每个所述第一数据对象所在的目标逻辑信道,由该第一数据对象对应的can总线数据帧中包含的信道编号标识;第二状态修改模块,用于若一个所述第一数据对象发送完毕,则将该第一数据对象对应的所述目标逻辑信道的信道状态设置为空闲态。第四方面,本申请实施例提供了一种数据传输的装置,包括:数据接收模块,用于响应于接收到源节点通过can总线发送的数据帧,根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的第一数据对象。第五方面,本申请实施例提供了一种电子设备,包括:包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的方法步骤。第六方面,本申请实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤。第七方面本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面所述的方法步骤。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请一实施例提供的can总线系统示意图;图2是本申请一实施例提供的多逻辑信道结构示意图;图3是本申请一实施例提供的数据传输的方法的流程示意图;图4是本申请一实施例提供的多逻辑信道一对多数据传输示意图;图5是本申请一实施例提供的多逻辑信道一对一数据传输示意图;;图6是本申请另一实施例提供的数据传输的方法的流程示意图;图7是本申请一实施例提供的数据传输的装置的示意图;图8是本申请另一实施例提供的数据传输的装置的示意图;图9是本申请实施例提供的电子设备的结构示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。控制器局域网络(controllerareanetwork,can)总线是国际上应用最广泛的现场总线之一,广泛应用于工业控制、楼宇自动化、汽车、船舶等领域。与一般通信总线相比,can总线的数据通信具有更强的可靠性、实时性及灵活性。但can只定义了物理层和数据链路层,在应用时须设计相应的高层协议。现有的技术方案通过目的地址和源地址可以点对点的进行通信,通过帧序号来实现多帧传输,但该方案只能进行点对点的传输,存在无法进行并发传输的缺点。在can总线的应用中的一些场景需要实现并行数据传输,例如,在一种场景中会出现源节点向目标节点发送数据的过程中,需要响应紧急任务中断当前数据的发送而优先发送紧急任务的数据,但是重新发送被中断的任务的数据浪费了系统资源,并且延时较大;在另一种场景中,需要源节点向目标节点发送多个不同任务的数据,但是需要达到目标节点同时响应源节点发送的多个不同任务数据的效果;在又一种场景中,源节点向多个目标节点发送数据,需要多个目标节点在接近的时间接收完数据并响应。对于需要并行传输的各个应用场景,本申请实施例提供了一种数据传输的方法,通过在can总线的链路层之上增加多个逻辑信道,并通过对逻辑信道的控制实现接近并行传输效果。图1示出的是本申请实施例提供的一种can总线通信系统。该系统包括:can总线110和通过can总线通信的多个can总线节点120。其中,所述can总线节点120为挂接在can总线上的单元,并能通过can总线实现各个节点间的通信,以实现复杂的控制过程。所述can总线节点可为挂接在can总线上的独立计算设备,也可以为挂接在can总线上的传感器,还可以为一个整机设备中挂接在can总线上的各个部件,这里不做具体的限定。在本申请的提供的实施例中,如图2所示,提供了在can总线协议的基础上,通过多个逻辑信道实现节点间的并行数据传输。图2中a节点和b节点之间通过多个逻辑信道进行数据传输,当有两个数据包:e数据包,g数据包,需要从a节点发送到b节点时,为e数据包在逻辑信道的信道0至n中选择任意一个信道状态为空闲的信道,作为传输e数据包的逻辑信道,为g数据包在逻辑信道的信道0至n中选择任意一个信道状态为空闲的信道。在e数据包和g数据包传输过程中,对应的传输任务独占该信道,在e数据包或g数据包的传输任务结束后释放对应的逻辑信道,被释放的逻辑信道的信道状态设备为空闲态,被释放的信道可以被重新分配给其他数据包的传输任务。可以理解的是,通过提供多个并行的逻辑信道,在数据传输的过程中,将数据对象分别通过多并行的逻辑信道承载,再将逻辑信道的数据通过物理信道传输,充分利用了物理信道的资源,实现了并行数据传输的效果。表1为本申请的一些实施例中can扩展帧的仲裁域中canid定义。将can的仲裁id和数据位做统一定义,将29bit的扩展帧分为4部分:目的节点地址、源节点地址、帧序号、信道编号。目的节点地址:是指接收方节点身份标识id。示例性的,第28-21bit为目的节点地址,can通信系统中的每个节点都有一个唯一id身份识别码,发送方通过在目的地址中填充唯一id可以使发送方对指定方接收数据包信息。源节点地址:是指发送方节点身份标识id。示例性的,第20-13bit为源节点地址,每个系统的can接收过滤都是以自身的系统id和广播id为基准,即只接收目的系统id为自身系统id和广播id的数据包,接收方节点接收到数据帧时通过源节点地址可以识别此帧的发送方。帧序号:是指数据帧编号,从0开始依次加1进行累加,帧序号包含9位这也意味着帧序号最大为511。示例性的,第12-4bit为帧序号信息,对于大块数据包,最大支持4096字节,发送方需要将数据包拆分成多个数据帧,对每个数据帧进行按序编号处理,接收方通过帧序号将按序进行组包处理,最终还原成原始发送包。信道编号:是指两节点间通过can总线通信的逻辑通道,信道编号是多个信道的标识号,信道编号是4位,信道编号的标识号从0-15。示例性的,第3-0bit为本通信协议的逻辑信道,发送方通过信道编号来对数据包设置优先级发送,通过信道编号进行并发传输。本领域技术人员可以在实施本申请实施时,在本申请的教导下选择实际情况的数据位定义的长度,这里并不是对本申请的具体限定。数据位28-2120-1312-43-0定义目的节点地址源节点地址帧序号信道编号表1通过表1中的can扩展帧仲裁域的canid定义,数据发送节点在发送数据时根据表1的定义填充canid,数据接收节点则根据其中的目的地址确认是否为该接收节点需要接收的数据,并根据信道编号区分数据对象,例如根据信道编号区分e数据包数据、g数据包数据;其中的信道编号与发送节点选择的逻辑信道编号一致。可以理解的是,通信协议中的关键功能码,即目的节点地址、源节点地址、帧序号、信道编号是在can2.0b扩展帧中的仲裁域中的标识符进行定义,不占用数据域中的空间,提高了传输效率。表2为本申请一些实施例中对逻辑信道的逻辑数据帧结构的定义。表2表3为本申请一些实施例中对数据对象,即应用层数据包的结构定义。表3表4为本申请一些实施例中对can总线网络模型的定义。表4图3示出了本申请实施例提供的数据传输的方法,应用于上述图1所示的can总线通信系统中的can总线节点120,可由所述can总线节点的软件/硬件实现,该节点为can总线系统中用于发送数据的源节点。如图2所示,该方法包括步骤s110~s140。各个步骤的具体实现原理如下:s110,响应于针对至少一个第一数据对象的数据发送指令,在多个逻辑信道中,针对各个所述第一数据对象,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道。非限定性的,所述第一数据对象可以为表3定义的应用层数据包中的数据信息,也可以为其他指明了目的节点地址、源节点地址、优先级和数据长度的数据对象。非限定性的,信道状态获取可以由发送节点通过读取can总线系统中对应与逻辑信道的标志位获取,该标志位可存储于与can总线通信耦合的存储介质中。在一个非限定性的示例中,源节点响应于用户指令或传感器触发条件等触发动作触发的,针对一个或多个数据对象的数据发送指令,该数据发送指令用于指示源节点将各个数据对象发送到同一个目标节点,或者分别发送给不同的目标节点;源节点针对各个第一数据对象,为每一个数据对象选择一个信道状态为空闲态的逻辑信道作为承载每个第一数据对象的目标逻辑信道。在一个非限定性的示例中,所述第一数据对象为表3定义的应用层数据包,将该第一数据对象组帧为逻辑信道帧时,通过将表2中的帧头中对应的逻辑信道帧的信道编号字段指定承载该第一数据对象的逻辑信道。s120,将各个所述目标逻辑信道的信道状态设置为占用态。在一个非限定性的示例中,源节点将用于传输第一数据对象的各个目标逻辑信道的信道状态设置为占用态;非限定性的,通过修改与源节点通信耦合的存储介质中,与目标逻辑信道对应的状态标志修改目标逻辑信道的状态。s130,通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点;每个所述第一数据对象所在的目标逻辑信道,由该第一数据对象对应的can总线数据帧中包含的信道编号标识。在一个非限定性的示例中,源节点通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点;每个所述第一数据对象所在的目标逻辑信道,由该第一数据对象对应的can总线数据帧中包含的信道编号标识。在一个非限定性的示例中,源节点将第一数据对象,即根据表3定义的数据包结构生成的数据包,组帧构成如表2所示的结构的逻辑信道帧后,将逻辑信道帧的帧头映射到can总线数据帧的仲裁域,将逻辑信道帧的帧数据映射到can总线数据帧的数据域。可以理解的是,can总线数据帧为can2.0b扩展数据帧。表1所示的信道编号与表2所示的信道编号为一一对应的关系。在一个非限定性的示例中,多个逻辑信道承载的第一对象数据,以逻辑信道帧的数据帧为单位交替发送,每个第一数据对象的每个发送周期发送的逻辑信道帧的数据帧个数由预设的数据帧个数确定。s140,若一个所述第一数据对象发送完毕,则将该第一数据对象对应的所述目标逻辑信道的信道状态设置为空闲态。在一个非限定性的示例中,一个或多个第一数据对象中的一个第一数据对象发送完毕后,源节点将被选定用于传输该第一数据对象的目标逻辑信道的信道状态设置为空闲态;非限定性的,通过修改与源节点通信耦合的存储介质中,与目标逻辑信道对应的状态标志修改目标逻辑信道的状态。在上述图3所示的数据传输的方法的实施例的基础上,所述第一数据对象具有优先级,所述优先级为有限个预设的从高到低的优先级中的一个;步骤s130,通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点,包括步骤s130’,s130’,通过can总线数据帧,根据目标逻辑信道对应的第一数据对象的优先级,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点。在一个非限定性的示例中,每个第一数据对应具有如表1所示的优先级。非限定性的,优先级可以为从高到低15个优先级,分别编号为0~14。示例性的,第一数据对象为采用表3的数据包结构封装的数据包,其中优先级字段为该第一数据对象对应的优先级编号。在一个非限定性的示例中,源节点通过can总线数据帧,根据目标逻辑信道对应的第一数据对象的优先级,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点。示例性的,优先发送优先级高的第一数据对象;示例性的,以预设的逻辑信道数据帧的个数,交替发送相同优先级的第一数据对象。在一个非限定性的示例中,步骤s130’,通过can总线数据帧,根据目标逻辑信道对应的第一数据对象的优先级,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点,包括:对于优先级相同的多个第一数据对象,由预设的交替方式,通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,交替发送给所述第一数据对象对应的目标节点;对于优先级不同的多个第一数据对象,则根据第一数据对象的优先级次序,通过can总线数据帧,将所述目标逻辑信道承载的第一数据对象,依次发送给所述第一数据对象对应的目标节点。在一个非限定性的示例中,对于优先级不同的多个第一数据对象,则根据第一数据对象的优先级次序,通过can总线数据帧,将所述目标逻辑信道承载的第一数据对象,发送给所述第一数据对象对应的目标节点,包括:若当前通过can总线数据帧发送的第一数据对象为高优先级第一对象,则在发送完高优先级的第一数据对象后,继续发送低优先级的数据对象;若当前通过can总线数据帧发送的第一数据对象为低优先级第一数据对象,响应于高优先级的第一数据对象的数据发送指令,暂停低优先级的第一数据对象的发送;在发送完高优先级的第一数据对象后,继续发送暂停的低优先级的第一数据对象。在一个非限定性的示例中,预设数据帧个数为k个,对于优先级相同的多个第一数据对象,依次循环发送每个第一数据对象,每个发送周期发送k个数据帧的第一数据对象。在一个非限定性的示例中,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道,包括:选择一个信道编号与第一对象的优先级对应的,并且信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道。示例性的,逻辑信道帧的信道编号为0~15,第一对象的优先级从高到低的编号为0~15,逻辑信道帧的信道编号与第一对象优先级的编号一一对应。在一个非限定性的示例中,如图4所示的应用场景中,需要从一个源节点发送分别发送数据包给多个目标节点。如图4所示,作为发送方的源节点为a节点,作为接收方目标节点为b节点和c节点。a节点发送到b节点的数据包为1号数据包,该数据包中的数据信息为第一数据对象,a节点发送到c节点的数据包为2号数据包,该数据包中的数据信息为第一数据对象。在a节点的应用层中,如表3数据包结构定义中,1号数据包的数据包结构中的目的节点地址填充b节点地址,源节点地址中填充a节点地址,数据信息填充需要发送给b节点的数据信息,数据长度为数据信息的长度(单位为字节)。在2号数据包的数据包结构中的目的节点地址中填充c节点地址,源节点地址中填充a节点地址,数据信息填充需要发送给c节点的数据信息,数据长度为数据信息的长度(单位为字节)。1号和2号两个数据包优先级设置为相同。示例性的,都为优先级0~15中的第5优先级。a节点在应用层的数据包结构填充完成时将数据包传送到传输层。在a节点的传输层中,传输层将会对1号和2号数据包进行拆包分帧处理,如表2的数据帧结构定义中,在数据帧结构中的源节点地址和目的节点地址中填充相应的源节点地址和目的节点地址,帧号是数据包拆分的多个数据帧按序填充,1号数据包的信道在0-15中选择占用状态为空闲态的信道进行填充,选择后将相应的信道编号设置为占用态,2号数据包然后在剩余的占用状态为空闲态信道中选择一个信道作为2号数据包的逻辑信道。因为优先级设置相同,1号数据包和2号数据包拆分后的数据帧将交替传送给链路层。链路层将提取源节点地址、目的节点地址、序号、信道编号等数据帧信息按照表1的canid的29bit位进行填充。最终通过物理层将can数据发送给b和c节点,从而实现1对多并发传输。在一个非限定性的示例中,如图5所示的应用场景中,需要从一个源节点发送分别发送多个数据包给单个目标节点。如图5所示,作为发送方的源节点为a节点,作为接收方的目标节点为b节点。a节点发送到b节点的低优先级数据包为1号数据包,该数据包中的数据信息为第一数据对象,a节点发送到b节点的高优先级数据包为2号数据包,该数据包中的数据信息为第一数据对象。假定1号数据包先发,2号数据包后发送,发送两个数据中间间隔小于发送完1号数据包所需时间。在a节点的应用层中,如表3数据包结构定义中,1号和2号数据包的数据包结构中的目的节点地址填充b节点地址,源节点地址中填充a节点地址,数据信息填充需要发送给b节点的数据信息,数据长度为数据信息的长度(单位为字节)。1号数据包的优先级设置为高优先级,例如从高到低0~15个优先级中的2优先级;2号数据包优先级设置为低优先级,例如从高到低0~15个优先级中的9优先级。a节点在应用层的数据包结构填充完成时将数据包传送到传输层。在a节点的传输层中,传输层从待发送的多个数据包中,此时只有1号数据包,挑选优先级最高的一个数据包即1号数据包,按照表2的数据帧结构定义中,在数据帧结构中的源节点地址和目的节点地址中填充1号数据的源节点地址和目的节点地址,帧号是数据包拆分的多个数据帧按序填充,1号数据包的信道在0-15中选择空闲的信道编号进行填充,1号数据包此时将优先享有can物理通道的使用权,传输层将1号数据包拆分0-n(n<=511)个数据帧给链路层,每次拆分一个数据帧后将该数据帧传送到链路层时,传输层将从待发送数据包中重新查找一个最高优先级的数据包,1号数据包拆分到x帧时(0<x<n),待发送的数据包中有了2号数据包,此时传输层查找到2号数据包比1号数据包优先级更高,传输层将挂起1号数据包的发送,将2号数据包进行拆包分帧处理,处理过程可以参考对1号包处理过程,此时2号数据包此时将优先享有can物理通道的使用权,待2号数据包拆分的数据帧全部传送到链路层后。此时传输层将从剩下的待发送的多个数据包中再次挑选优先级最高的数据包,此时即1号数据包,1号数据包将恢复发送,每拆分一帧数据帧给链路层后,传输层将继续挑选优先权高的数据包工作,直至所有的待发送数据包为空为止。链路层将提取源节点地址、目的节点地址、序号、信道编号等数据帧信息按照表1的canid的29bit位进行填充。最终通过物理层将can数据发送给b节点,从而实现1对1并发传输。可以理解的是,参考以上实施例,并将上述实施例中的步骤进行组合替换,本领域技术人员可以得到源节点将一个或多个具有不同优先级的第一数据对象发送给不同的目标节点的方案;也可以得到源节点将一个或多个具有相同优先级的第一数据对象发送给同一个目标节点的方案,这里不再赘述。可以理解的是,通过提供多个并行的逻辑信道,在数据传输的过程中,将数据对象分别通过多并行的逻辑信道承载,再将逻辑信道的数据通过物理信道传输,充分利用了物理信道的资源,实现了并行数据传输的效果。在上述图2所示的数据传输的方法的实施例的基础上,步骤s110,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道后,还包括:若所述第一数据对象的数据长度超过逻辑信道的承载单元的第一预设长度;所述逻辑信道的承载单元为逻辑信道数据帧,第一预设长度为逻辑信道数据帧长度;则,获取所述第一数据对象的校验结果,和所述第一数据对象的数据长度;将所述第一数据对象、所述校验结果和数据长度合并为第二数据对象;根据所述第一预设长度将所述第二数据对象拆分成若干个子数据对象;其中,每个子数据对象具有标识该子数据对象的第一序号;示例性的,所示子数据对象为逻辑信道帧的数据帧的数据净荷;示例性的,所述第一序号为表2中的帧序号;将所述目标逻辑信道作为承载所述第二数据对象的各个子数据对象的逻辑信道;相应的,步骤130,通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点,包括:s130’,通过can总线数据帧,逐一将各个所述目标逻辑信道承载的所述第二数据对象的各个子数据对象和各个子数据对象的所述第一序号,发送给所述第一数据对象对应的目标节点。在一个非限定性的示例中,如图5所示的应用场景中,作为发送方的源节点为a节点,作为接收方目标节点为b节点。a节点发送到b节点的数据包为1号数据包,一号数据包中数据信息长度为123byte。在a节点的应用层中,如表3数据包结构定义中,1号和2号数据包的传输结构中的目的节点地址填充b节点地址,源节点地址中填充a节点地址,数据信息填充需要发送给b节点的数据信息,数据长度为数据信息的长度大小即123。a节点在应用层的数据包结构填充完成时将数据包给传输层处理。在a节点的传输层中将对大块数据包进行拆包分帧处理,一号数据包长度为123字节将会被拆分成16个(123/8+1)数据帧,按照表2的数据帧结构定义中,在数据帧结构中的源节点地址和目的节点地址中填充1号数据包的源节点地址和目的节点地址,每拆分成一个数据帧,帧号累加一次,对于1号数据包将会依次累加到15(从0号帧号开始),1号数据包的信道编号在0-15中选择空闲的信道进行填充,如果没有空闲的信道,则会将此数据包放入到等待发送的工作队列中,直至信道有空闲位置时将会将的等待的发送包的信道号重新填充发送。a节点的链路层将提取源节点地址、目的节点地址、序号、信道编号等数据帧信息按照表1的canid的29bit位进行填充。b节点的链路层获取b节点物理层接收到a节点的can数据时,将按照表1的格式进行解析,将解析后得到的源节点地址、目的节点地址、帧序号、信道编号等can数据信息按照表2的数据结构中进行相应的填充。填充完成后将此数据帧交给b节点的传输层,传输层将属于同一个信道的数据帧按照表3的数据结构填充,从第0帧中获取校验码和数据长度,将源节点地址、目的节点地址进行填充,对于数据信息将按照数据帧的帧序号进行偏移填充,偏移量为8*帧序号。通过数据长度判断一个数据包是否完成,完成后进行校验计算,将计算结果与a节点传送来的校验进行比较是否正确。如果正确则将此数据包交给应用层。b节点的应用层接收到1号数据包后进行应用交互处理。至此基于逻辑信道的大数据包传输完成。非限定性的,为了防止第一数据对象在传输过程中被篡改,保证数据包的完整性。作为发送的源节点将计算发送数据包的校验码;源节点将校验码填充到首帧,即第0帧,数据域中的字节中;作为接收方的目标节点接收到首帧数据帧时将保存数据包校验码;接收方接收到完整的一个数据包时,对整个数据包进行校验计算,将计算的校验码与保存的校验码进行比较是否相同,如果相同则表明该数据包具有完整性。在一个非限定性的示例中,所述can总线数据帧为扩展帧;所述扩展帧的仲裁段用于承载目的节点地址、源节点地址、所述第一序号和信道编号;所述扩展帧的数据段用于承载所述第二数据对象的各个子数据对象。图6示出了本申请实施例提供的数据传输的方法,应用于上述图1所示的can总线通信系统中的can总线节点120,可由所述can总线节点的软件/硬件实现,该can总线节点为用于接收数据的目标节点。如图2所示,该方法包括步骤s210。各个步骤的具体实现原理如下:s210,响应于接收到源节点通过can总线发送的数据帧,根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的第一数据对象。在一个非限定性的示例中,目标节点接收到can总线数据帧后对can总线数据帧进行处理;目标节点根据数据帧的信道编号,将该信道编号内的数据净荷解析出来,根据帧序号将该信道编号对应的逻辑信道中的数据拼接成完整的第一数据对象。在一个非限定性的示例中,目标节点根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的第一数据对象,包括:目标节点根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的全部子数据对象、各个子数据对象对应的第一序号;目标节点根据各个子数据对象的第一序号将全部子数据对象组合成为第二数据对象;目标节点对第二数据对象中的第一数据对象进行校验获得第二校验结果;若所述第二校验结果与第二数据对象中的校验结果相同,则提取所述第二数据对象中的第一数据对象。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。对应于上述图3所示的数据传输的方法,图7示出的是本申请实施例提供的一种数据传输的装置,包括:信道选择模块m110,用于响应于针对至少一个第一数据对象的数据发送指令,在多个逻辑信道中,针对各个所述第一数据对象,选择一个信道状态为空闲态的逻辑信道作为承载所述第一数据对象的目标逻辑信道;第一状态修改模块m120,用于将各个所述目标逻辑信道的信道状态设置为占用态;数据发送模块m130,用于通过can总线数据帧,将各个所述目标逻辑信道承载的所述第一数据对象,发送给所述第一数据对象对应的目标节点;每个所述第一数据对象所在的目标逻辑信道,由该第一数据对象对应的can总线数据帧中包含的信道编号标识;第二状态修改模块m140,用于若一个所述第一数据对象发送完毕,则将该第一数据对象对应的所述目标逻辑信道的信道状态设置为空闲态。可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。对应于上述图6所示的数据传输的方法,图8示出的是本申请实施例提供的一种数据传输的装置,包括:数据接收模块m210,用于响应于接收到源节点通过can总线发送的数据帧,根据can总线数据帧中包含的信道编号,解析得到所述信道编号对应的逻辑信道承载的第一数据对象。可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。图9为本申请一实施例提供的电子设备的结构示意图。所述电子设备用于实现can总线上的节点设备。如图9所示,该实施例的电子设备d9包括:至少一个处理器d90(图9中仅示出一个)处理器、存储器d91以及存储在所述存储器d91中并可在所述至少一个处理器d90上运行的计算机程序d92,所述处理器d90执行所述计算机程序d92时实现上述任意各个方法实施例中的步骤。或者,所述处理器d90执行所述计算机程序d92时实现上述各装置实施例中各模块/单元的功能。所述电子设备d9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备可包括,但不仅限于,处理器d90、存储器d91。本领域技术人员可以理解,图9仅仅是电子设备d9的举例,并不构成对电子设备d9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。所称处理器d90可以是中央处理单元(centralprocessingunit,cpu),该处理器d90还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述存储器d91在一些实施例中可以是所述电子设备d9的内部存储单元,例如电子设备d9的硬盘或内存。所述存储器d91在另一些实施例中也可以是所述电子设备d9的外部存储设备,例如所述电子设备d9上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器d91还可以既包括所述电子设备d9的内部存储单元也包括外部存储设备。所述存储器d91用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器d91还可以用于暂时地存储已经输出或者将要输出的数据。需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1