一种控制局域网中实现数据传输的方法、系统和设备的制作方法

文档序号:7962808阅读:344来源:国知局
专利名称:一种控制局域网中实现数据传输的方法、系统和设备的制作方法
技术领域
本发明涉及计算机通信技术领域,特别是指一种控制局域网中实现数据传输的方法、系统和设备。
背景技术
随着工业控制技术的发展,控制局域网(CAN,Controller AreaNetwork)得到快速发展。控制局域网是于80年代为解决现代汽车中控制器、执行机构、监测仪器、传感器之间的数据通信而提出并开发的总线式串行通信网络。CAN网络总线属于现场总线的一种,它采用双绞线串行通信方式,检错能力强,可在高噪声干扰环境中使用。
由于CAN串行通信总线具有这些特性,它很自然的在汽车制造业以及航空工业中受到广泛应用,现如今,CAN总线已经成为很多工业设备间常用的通信手段。
CAN通信协议描述了在设备之间信息如何传递,对层的定义与开放系统互连模型(OSI,Open System Interconnection)一致。每一层与另一设备上相同的那一层通信。实际的通信是发生在每一设备上相邻的两层,而设备只通过物理层的物理介质互连。CAN的结构定义了模型的最下面的两层数据链路层和物理层。应用层通过不同的新兴协议层和物理层连接,这些新兴协议层主要是专门用于特殊的工业领域加上由个别CAN用户定义的任何合适的方案。
由于CAN网络的发展,网络节点之间的数据传输越来越重要。在一个由多个CAN节点组成的CAN网络中,如果各个节点的位置比较分散,并且某些节点位置可能处于污染环境或者不易抵达的环境,如高电压附近或者高空脚手架,使用传统的编程手段对于该节点上处理器软件分别进行本地更新和维护将非常困难。为了实现远程在线软件更新而为每个节点的处理器都提供一条用于远程维护的通信链路将造成大的资源浪费。如果CAN网络中的节点之间能够实现各类文件、软件等数据的传递,网络节点的更新将较容易的实现。但在现有CAN网络各个节点之间还没有合适的方案来实现大量数据的传输。

发明内容
有鉴于此,本发明所解决的技术问题在于提供一种控制局域网中实现数据传输的方法、系统和设备,使得CAN网络中节点之间实现大量数据的传输。
为解决现有技术中存在的问题,本发明提供一种控制局域网中实现节点数据传输的方法,包括a、主节点对获得待发送的数据进行解析;b、主节点与对应于解析出节点标识的从节点建立连接;c、主节点将前述待发送的数据拆分为固定长度的数据后,发送至从节点;d、接收到数据后,从节点保存数据。
其中,所述步骤a中解析是指主节点获得该数据的大小、循环冗余校验CRC结果、接收该数据的从节点处理器标识。
其中,所述步骤b中建立连接包括b31、主节点向从节点传送本次发送数据的大小、CRC结果、处理器标识信息;b32、从节点收到后,返回确认信息并预留存储空间;b33、主节点与从节点之间发送传输确认消息。
其中,所述步骤c中拆分是指主节点将所传输的数据分解,封装为固定长度数据段组成的数据块,剩余部分不够一个数据段的数据用一个数据段发送。
其中,所述步骤c中发送是指c51、主节点与从节点之间逐次建立块传输的确认连接;c52、主节点与从节点在每个建立块传输的确认连接后传输各个数据段,如果所传的数据段有误,主节点利用从节点返回的信息重传正确的数据段。
其中,该方法进一步包括从节点接收到全部数据后向主节点发送得到的CRC结果,如果有误,主节点重传该数据。
其中,所述步骤d中保存是指从节点将收到的数据保存到空闲的空间或覆盖其它数据。
一种控制局域网中实现从节点软件更新的方法,该方法包括主节点对获得的待发送的数据进行解析;主节点与对应于解析出节点标识的从节点建立连接;主节点将前述待发送的数据拆分为固定长度的数据后,发送至从节点;接收数据后,从节点保存数据;从节点收到主节点的复位命令后,运行前述保存的数据。
一种控制局域网中实现数据传输的设备,其特征在于,包括数据解析单元、数据处理单元、收发控制单元,其中,数据解析单元用于从所发送的数据中解析出接收该数据的从节点处理器名称、该数据的大小、CRC结果;数据处理单元用于将所发送的数据拆分后,以固定长度的数据段封装发送至收发控制单元;收发控制单元用于将封装后的数据段发送至从节点,响应从节点发送的消息进行处理。
其中,该设备还包括复位控制单元,复位控制单元用于向从节点发送复位命令,控制从节点重新复位。
一种控制局域网中实现数据传输的设备,其特征在于,包括数据解析单元、数据处理单元、收发控制单元,其中,数据处理单元用于从收发控制单元中接收到的数据写入到存储器中并合并;收发控制单元用于接收来自主节点发送的数据发送至数据处理单元,向主节点发送收到数据后的响应消息;数据解析单元用于将数据处理单元所保存的数据解析出数据大小、CRC结果,并进行CRC结果比较。
其中,该设备还包括节点复位单元,节点复位单元用于当收发控制单元收到复位消息后重新复位该节点,运行新的数据。
一种控制局域网中实现数据传输的系统,该系统包括控制局域网主节点和从节点,其特征在于,所述主节点用于将所发送的数据解析,利用解析后的结果与从节点建立连接,将所发送的数据拆分为固定长度的数据段后,发送至从节点,所述从节点用于接收来自主节点的数据段并保存。
其中,所述从节点通过接收到数据获得的CRC结果与来自主节点的CRC结果比较,并将比较的结果发送至主节点,主节点根据比较结果确定是否重传数据。
其中,所述主节点向从节点发送节点复位消息,从节点接收到该消息后复位,运行相应的数据。
本发明的方法主节点解析待发送的数据,与解析出节点标识相对应的从节点建立连接,对待发送数据拆分为固定长度的数据段后封装传输到从节点,使得在现有CAN网络中主、从节点之间实现数据传输,对于从节点的软件更新,采用本发明的方法传输要更新的数据文件,使得在不易到达环境下的从节点进行软件更新。


图1为本发明方法的流程图;图2为应用本发明方法的系统示意图;图3为本发明设备的示意图。
具体实施例方式
本发明的方法能够在现有CAN网络中主、从节点之间实现数据传输,用于现有CAN网络节点中各个从节点的软件更新、文件传输等其它方面。
下面结合图1详细描述本发明的方法。
步骤S101主节点获得数据后,解析该数据;主节点获取数据的方式可以是通过网络下载该数据,也可以事先保存到存储器中。解析数据主要是确认接收该数据的从节点处理器标识是属于哪个节点上的数据,并计算出文件的大小和循环冗余校验(CRC,Cyclic Redundancy Check)结果。其中,所发送的数据与接收该数据的节点有对应关系,主节点通过查询对应关系来确定接收该数据的节点。
步骤S102主节点利用解析后的结果,与从节点建立连接;主节点通过解析的结果,向相应的从节点发送数据开始的消息,该消息结构参见表1,该消息中共包含8个字节,其中比特0(bit0)处为最低有效位(LSB,Least Significant Bit),bit7为最高有效位(MSB,Most Significant Bit),字节1表示所发送的消息属性,字节2、3、4表示本次所传送的数据大小,最多为16M。字节5表示接收该数据的处理器标识,字节7、8表示该数据的16位的CRC校验结果。

表1相应的从节点接收到该消息后,向主节点返回传输开始应答消息,该消息参见表2,

表2
从节点向主节点返回的传输开始应答消息中包含处理器有效性检查的消息,如果处理器无效时,则本次发送失败,主节点重新向从节点发送传输开始消息与从节点建立连接并传输数据。
从节点发送完该消息后,在存储器中预留相应大小的空间,该空间可以是空闲空间,也可以是删除或覆盖其它一些过期数据保留出空间。
存放该数据的空间准备完毕后,从节点向主节点发送传输准备完毕消息,该消息参见表3,

表3从节点将传输准备完毕消息发送至主节点,该消息中含有存储空间检查的信息,当该空间为异常时,主节点重新向该从节点发送传输开始消息建立连接并传输数据。
主节点收到该消息后,向从节点发送传输准备完毕应答消息,该消息参见表4,

表4主节点向从节点发送完该消息后,准备发送块传输开始消息。
步骤S103主节点将所发送的数据拆分为固定长度的数据后,发送至从节点;主节点将所发送的数据拆分,封装到固定长度的数据段,加上数据块标识后,发送至从节点。
首先,主节点向从节点发送传输准备完毕消息,该消息参见表5,

表5主节点在该消息中添加所发送数据总块数和当前所发送的块号及所发送该块中所含的数据段个数。
从节点收到该消息后,判断该消息中块号是否有效,记录块的大小以及判断该块是否为最后一块。从节点向主节点返回块传输开始应答消息,该消息参见表6,

表6最初接收的块号是从0开始的,依次递增,从节点在返回的消息中添加当前所接收的块号,以及需要接收的块号,当前的块号是否有效,如果无效,则主节点按照从节点需要接收的块号发送相应的数据块。
主节点收到应答消息后,向从节点传送该数据块所包含的数据段,每个数据段包含6自字节内容,数据段传输消息参见表7,

表7主节点将当前所发送的块中每6个字节为1个数据段发送至从节点。
主节点每发送一个数据段后,都会收到从节点的数据段传输应答消息,根据应答消息决定所执行的操作,在正常情况下,重复步骤S103的流程,发送完所有的数据段和数据块。发送数据的末尾不足一个数据段时,用一个数据段发送。
数据段的传送次数与当前块的大小有关,最多256次,即最大数据块为1536字节,256个数据段,每个数据段传送数据6个字节。数据段号的表示为0至255,当数据块小于1536字节时,最大数据段号为数据块长度与6相除,能够整除时,最大段号为相除的结果减一,不能整除时,为相除的结果。如数据块为60字节,可用数据段号为0至9共10个数据段传送,最大段号为9。
步骤S104从节点接收数据后,保存数据。
从节点每接收到一个数据段后,将向主节点发送一个数据段传输应答消息,并保存数据到存储器中。该消息结构参见表8,

表8从节点在每次收到数据段保存后,都会向主节点发送数据段应答消息,并将所收到数据段的检查结果发送至主节点,该消息中包含当前收到的数据段号和需要接收的数据段号,判断所接收的段号是否有误与前述判断块号是否有误的方式是相同的,最初的段号是从0开始,依次递增,如果有误,则主节点按照从节点需要的数据段号发送相应的数据段,直到所有的数据段传送完毕。
主节点收到传输应答消息后,如果该消息显示最后一个数据段接收后,写入到存储器中操作结果异常时,主节点重新建立连接,传送全部数据段。
步骤S105主节点与从节点之间传递确认信息。
发送完毕后,主节点向从节点发送数据段传输结束消息,表明所有的数据发送完毕,该消息参见表9,

表9从节点收到该消息后,根据本次接收到的所有数据获得CRC校验结果,并将该结果通过传输结束应答消息发送至主节点。该消息参见表10,

表10如果校验结果正确,本次发送成功,如果校验结果错误,主节点重发所有数据。
本发明的方法可以在CAN网络主节点和从节点之间进行数据传输,软件更新等其它方面得到应用。
本发明还提供一种控制局域网中实现数据传输的系统,该系统包括CAN网络主节点和从节点。
主节点可以通过网络下载所要发送的数据,或事先将所发送的数据保存到存储器中,将所发送数据以前述的方法解析,与从节点建立连接,将所发送的数据拆分,封装为固定长度的数据段后发送至从节点,传输结束后,根据从节点发送的CRC结果比较信息确定是否重发数据。并在预定的时间向从节点发送节点复位命令,从节点运行前述所接收到的数据。
作为主节点控制整个数据的传输流程,主节点的设定既可以是CAN网络中的设备,也可以将其它设备设定为主节点后再接入到CAN网络中作为CAN网络中的主节点,如便携式计算机。
从节点实时响应主节点的发送数据请求,将接收的数据可以保存到存储器中空闲的空间,也可以将接收到数据覆盖其它需要更新的相应数据,并对于每次所接收到的数据向主节点返回应答信息。数据接收完毕后,通过数据计算CRC结果,向主节点返回确认信息。在接到主节点的复位消息后,重新复位并运行相应的数据。
通过本发明的方法和系统可在CAN网络中对各个节点做软件更新。参见图2,假设系统中含有201、202、203、204、205共5个CAN网络节点,其中,节点201设定为主节点,从节点202、203、204需要做软件更新,且更新的软件互不相同,主节点事先存储需要发送的软件数据与节点的对应关系,如软件数据001.bin对应从节点202,软件数据002.bin对应节点从203,软件数据003.bin对应从节点204。
如果要对从节点202做软件更新,主节点解析001.bin软件数据后,通过事先存储的需要更新的软件与从节点的对应关系,与从节点202建立连接,按上述文件传输的方法将001.bin软件数据发送至从节点202上,从节点收到数据后保存,并计算CRC校验结果发送至主节点。
主节点如果收到正确的应答消息后,整个更新过程完成,可以在预定的时间向从节点202发送节点复位消息进行复位操作,复位后从节点202运行新的软件数据。该节点复位消息参见表11,

表11以上所述在本发明的方法和系统中使用的各类消息在本发明的方法中还有未定义的部分,可以根据需要添加其它信息以实现更多的功能。
本发明还提供两种控制局域网中实现数据传输的设备,该设备具有CAN网络节点的特性,参见图3,主节点设备301包括数据解析单元303、数据处理单元304、收发控制单元305、复位控制单元302,其中,数据解析单元303用于从所发送的数据中解析出接收该数据的从节点处理器名称、该数据的大小、CRC结果;数据处理单元304用于将所发送的数据拆分后,以固定长度的数据段封装通过收发控制单元305发送至从节点306;收发控制单元305用于将来自数据处理单元304中的数据发送至从节点306,响应从节点306发送的消息进行处理;复位控制单元302用于向从节点306发送复位命令,控制从节点306重新复位。
从节点设备306包括数据解析单元308、数据处理单元309、收发控制单元310、节点复位单元307,其中,数据处理单元309用于从收发控制单元310中接收到的数据写入到存储器中合并;收发控制单元310用于接收来自主节点301发送的数据发送至数据处理单元309,向主节点301发送收到数据后的响应消息;数据解析单元308用于将数据处理单元309所保存的数据解析出数据大小、CRC结果,并进行CRC结果比较;节点复位单元307用于从收发控制单元310收到复位消息后重新复位该节点,运行新的数据。
对于本发明的方法、系统和设备,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种控制局域网中实现数据传输的方法,其特征在于,包括a、主节点对获得待发送的数据进行解析;b、主节点与对应于解析出节点标识的从节点建立连接;c、主节点将前述待发送的数据拆分为固定长度的数据后,发送至从节点;d、接收到数据后,从节点保存数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤a中解析是指主节点获得该数据的大小、循环冗余校验CRC结果、接收该数据的从节点处理器标识。
3.根据权利要求2所述的方法,其特征在于,所述步骤b中建立连接包括b31、主节点向从节点传送本次发送数据的大小、CRC结果、处理器标识信息;b32、从节点收到后,返回确认信息并预留存储空间;b33、主节点与从节点之间发送传输确认消息。
4.根据权利要求1所述的方法,其特征在于,所述步骤c中拆分是指主节点将所传输的数据分解,封装为固定长度数据段组成的数据块,剩余部分不够一个数据段的数据用一个数据段发送。
5.根据权利要求1所述的方法,其特征在于,所述步骤c中发送是指c51、主节点与从节点之间逐次建立块传输的确认连接;c52、主节点与从节点在每个建立块传输的确认连接后传输各个数据段,如果所传的数据段有误,主节点利用从节点返回的信息重传正确的数据段。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括从节点接收到全部数据后向主节点发送得到的CRC结果,如果有误,主节点重传该数据。
7.根据权利要求1所述的方法,其特征在于,所述步骤d中保存是指从节点将收到的数据保存到空闲的空间或覆盖其它数据。
8.一种控制局域网中实现从节点软件更新的方法,该方法包括主节点对获得的待发送的数据进行解析;主节点与对应于解析出节点标识的从节点建立连接;主节点将前述待发送的数据拆分为固定长度的数据后,发送至从节点;接收数据后,从节点保存数据;从节点收到主节点的复位命令后,运行前述保存的数据。
9.一种控制局域网中实现数据传输的设备,其特征在于,包括数据解析单元、数据处理单元、收发控制单元,其中,数据解析单元用于从所发送的数据中解析出接收该数据的从节点处理器名称、该数据的大小、CRC结果;数据处理单元用于将所发送的数据拆分后,以固定长度的数据段封装发送至收发控制单元;收发控制单元用于将封装后的数据段发送至从节点,响应从节点发送的消息进行处理。
10.根据权利要求9所述的设备,其特征在于,该设备还包括复位控制单元,复位控制单元用于向从节点发送复位命令,控制从节点重新复位。
11.一种控制局域网中实现数据传输的设备,其特征在于,包括数据解析单元、数据处理单元、收发控制单元,其中,数据处理单元用于从收发控制单元中接收到的数据写入到存储器中并合并;收发控制单元用于接收来自主节点发送的数据发送至数据处理单元,向主节点发送收到数据后的响应消息;数据解析单元用于将数据处理单元所保存的数据解析出数据大小、CRC结果,并进行CRC结果比较。
12.根据权利要求11所述的设备,其特征在于,该设备还包括节点复位单元,节点复位单元用于当收发控制单元收到复位消息后重新复位该节点,运行新的数据。
13.一种控制局域网中实现数据传输的系统,该系统包括控制局域网主节点和从节点,其特征在于,所述主节点用于将所发送的数据解析,利用解析后的结果与从节点建立连接,将所发送的数据拆分为固定长度的数据段后,发送至从节点,所述从节点用于接收来自主节点的数据段并保存。
14.根据权利要求13所述的系统,其特征在于,所述从节点通过接收到数据获得的CRC结果与来自主节点的CRC结果比较,并将比较的结果发送至主节点,主节点根据比较结果确定是否重传数据。
15.根据权利要求13所述的系统,其特征在于,所述主节点向从节点发送节点复位消息,从节点接收到该消息后复位,运行相应的数据。
全文摘要
本发明公开了一种控制局域网中实现数据传输的方法、系统和设备。该方法包括主节点获得数据后,解析该数据,主节点利用解析后的结果,与从节点建立连接,主节点将所发送的数据拆分为固定长度的数据后,发送至从节点,从节点接收数据后,保存数据。本发明的系统包括控制局域网主节点和从节点。主节点包括数据解析单元、数据处理单元、收发控制单元、复位控制单元,从节点包括数据解析单元、数据处理单元、收发控制单元、节点复位单元。
文档编号H04L29/06GK101094165SQ200610089320
公开日2007年12月26日 申请日期2006年6月19日 优先权日2006年6月19日
发明者王浩, 李军 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1