[发明专利]基于消息机制的用于海量数据传输的CAN总线通信协议无效
申请号: | 200910098417.5 | 申请日: | 2009-05-07 |
公开(公告)号: | CN101552785A | 公开(公告)日: | 2009-10-07 |
发明(设计)人: | 蒋凯;叶树明;汤亚伟 | 申请(专利权)人: | 浙江大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L1/16;H04L12/40 |
代理公司: | 浙江杭州金通专利事务所有限公司 | 代理人: | 沈孝敬 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 机制 用于 海量 数据传输 can 总线 通信协议 | ||
技术领域
本发明涉及计算机领域的嵌入式实时系统,更具体的说,是涉及一种应用于海量数据基于连接的CAN总线的通信协议。
背景技术
随着微机控制技术和工业现场总线技术的发展,基于现场总线的通信方式在工业控制中得以越来越广泛的应用。其中CAN总线以其结构简单,成本低廉,良好的功能特性和极高的可靠性,现场抗干扰能力强及开放性的特点而受到众多开发者的青睐。
CAN串行总线具有传输距离长、传输速度快的优点,并且其具有完善的错误检测机制,采用“多重访问冲突仲裁”机制的帧传输方式,可保证不丢失信息;每一帧中最多可以传输8个字节数据,可提供很高的实时性等等。性能上的优势保证了CAN可以应用在很多的领域,在汽车工业、船舶运输、机械控制、工厂自动化、楼宇自动化等都可以看到CAN的应用。
CAN现场总线系统由物理层、数据链路层以及应用层3层构成。CAN的基本协议规范只有物理层协议和数据链路层协议,而利用CAN总线作为传输机制的系统的核心任务之一就是设计CAN总线的应用层协议。当前基于CAN总线的商业协议主要有DeviceNet和CANopen两种协议,这两种总线协议是通用型协议,功能齐全、结构复杂、灵活性差、传输效率较低,并且占用系统资源较多。而当前的嵌入式系统往往功能单一、结构简单、资源有限,但要求传输速度快、可靠性与效率高,所以需要一种结构简单的新型应用层协议。目前由浙江大学吴朝晖等人已经完成的一种应用于大量数据基于连接的CAN总线的通信协议,实现了数据大于8字节的消息发送的基于连接的应用层协议。该协议虽然实现了对大于8字节数据的打包发送,但是缺乏传输的响应机制,因此不能处理传输出错的情况。特别是该协议只能实现最大256*7个字节数据传输,没有海量数据传输 机制,而且不能保证数据传输的准确性。同时该协议基于连接,每次传输需要先建立连接,因此传输效率比较低。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供了一种适用于海量数据传输的基于消息机制的CAN总线通信协议。
为了解决上述技术问题,本发明是通过以下技术方案实现的:
基于消息机制的用于海量数据传输的CAN总线通信方法,其特征在于:定义设备的CAN控制器11位标识符,设备之间采用主从式连接,数据以无连接方式实现传输;数据传输采用消息机制,一条消息最多可发送65536个字节数据;当发送大于65536个字节数据时,采用打包方式,实现最大4G海量数据传输。
作为一种改进,所述的多帧数据的帧序号从0到255标志,序列号从1开始分配,并且连续地循环分配下去直到最后一个单独数据包,而单独数据包也应该从第一个单独数据包开始顺序发送。
作为一种改进,多帧数据除第一帧外,每帧数据必须包含一个序列号和7个字节数据。而第一帧包含数据长度信息。
作为一种改进,海量数据传输时,包头从0到65535标志,从0开始分配,并连续地分配下去直到最后一包,而单包也从第一个数据包开始顺序发送。
作为一种改进,所述的通信协议包括:主从连接管理、消息传输管理和海量数据传输管理。
作为一种改进,所述的主从连接管理包括:主设备初始化和从设备初始化。
作为一种改进,所述的主从连接管理实现过程如下:整个系统只能有一个主设备,最多可以有十四个从设备。主从连接管理包括主设备初始化和从设备初始化,主设备初始化先初始化从设备列表,接着初始化消息队列并广播注册消息,等待从设备响应。从设备初始化从初始化消息队列开始,接着响应主设备广播,进入消息循环处理。所有传输由主设备发起。
作为一种改进,所述的消息机制的每条消息可以是单帧数据,也可以是多帧数据。
作为一种改进,所述的消息传输管理包括:消息发送、等待响应和消息接收。
作为一种改进,所述的消息传输管理实现过程如下:根据消息中不同的功能代码将消息打包成多帧进行发送,接收端同样根据接收到的消息中不同的功能代码将消息解包。每条消息发送完后,等待接收方的反馈消息(如果发送的为反馈消息则不再等待反馈),确认消息是否被正确接收,即接收方在接收完整条消息后,都会发送一条反馈消息(如果接收到的消息为反馈消息则不对该消息反馈),通知发送方内容已被正确接收。如果发送方等待1s未收到反馈消息或反馈消息错误,则重新发送该帧并再次等待1s。若重发到三次,则判定为故障,停止发送并提示出错。否则继续发送下一条消息。这样就保证了每条消息发送的正确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910098417.5/2.html,转载请声明来源钻瓜专利网。