一种医疗设备控制系统的CAN通信协议技术方案

技术编号:14339822 阅读:111 留言:0更新日期:2017-01-04 12:19
一种医疗设备控制系统的CAN通信协议,属于医疗器械技术领域。其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。其优点是:简单、灵活、移植方便。

【技术实现步骤摘要】

本专利技术属于医疗器械

技术介绍
CAN是ISO国际标准化的串行通信协议,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视,由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展,CAN即控制器局域网络,属于工业现场总线的范畴,现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网,它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
技术实现思路
本专利技术的目的是:提供一种医疗设备总线控制系统的CAN通信协议,在CAN2.0规范中规定,每次收发最多只能传送8字节,这可以满足大多数工业领域中控制命令、工控状态和测试数据的一般要求;但实际应用中,往往出现传送多于8字节的要求,此时通过报文的拆卸和拼接技术完成了单帧数据和多帧数据准确快捷的传输。本专利技术所采用的技术方案:本医疗设备控制系统的CAN通信协议,其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输,DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。建立待发送数据的格式化打包和定时循环扫描发送机制,主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的数据包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的正常运转;在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线。当CPU有数据需要发送时,调用打包函数,要求给出待发送数据的存放地址;打包函数按照本协议规定的格式将发送节点地址、接收节点地址、信息类型、任务标识、数据标识等参数整理为CAN数据链路层ID的格式,将数据组装成符合应用层协议所规定的数据帧,实现对长度大于7字节的数据的打包处理,按照所填加索引号的顺序放到发送循环队列中等待发送。实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层,就是CAN数据从CAN总线上接收下来,按照数据源节点的地址将其还原为发送前的格式,准确无误的传递给上层,并负责为上层提供接口函数,在CPU将数据取走以后,清空相应的数组。在底层开辟了一个临时缓冲区用于暂时存放从CAN总线上接收下的数据,临时缓冲区采用三维数组的格式,容量为4*3*64;第一维的容量为4,分别指示发送节点的地址;第二维容量为3,作为数据的扩展缓存,指示可连续存放来自于同一节点的包的数目;第三维的容量为64,用来存放经过整理以后的数据。一般来说,开辟一个二维的空间就可以使协议周转,但是,在实际系统中可能会出现CPU还未能将整理完毕的数据取走此时又接到来自于同一节点的新的数据,这样就可能导致新的数据覆盖掉原来的数据,造成数据的丢失,为避免这种潜在的危险,因此开辟三维空间,在最坏的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据,大大降低了数据丢失的可能性。本专利技术的有益效果是:简单、灵活、移植方便。附图说明图1为本专利技术的CAN总线拓扑结构图。实施方式参照附图,本专利技术的实施步骤为:步骤一:根据CAN总线通信协议,其各位的含义如下:FF:0表示为标准格式,1表示为扩展格式;RTR:0表示为数据帧,1表示为远程帧;DLC.X:数据长度代码位(0~8);ID.X:信息标识符位;ID.28~ID.26为信息功能标识;ID.25~ID.21为接收任务标识;ID.20~ID.18为接收节点地址标识;X:保留位,默认为0,不能对保留位进行写操作;DATA0:数据场的第一个字节,本协议中用来表明数据的属性;DATA0.7~DATA0.5为发送节点地址标识;DATA0.4~DATA0.1为数据功能标识;DATA0.00为扩展位,‘0’表明数据长度小于8不用扩展,‘1’表示数据长度大于8需要扩展DATA1作传递次数索引;DATA1:DATA0.0为0时,传递数据;DATA0.0为1时,为数据传递次数的索引。步骤二:DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,解决了大于8字节的字符串的传输问题,当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。这样克服了CAN只能传输小于等于8字节数据的缺点,实现了大于8字节的数据的传输。步骤三:为了识别多帧传输中可能会出现的重帧和丢帧现象,本协议规定数据场第一字节作为多帧数据传输次序的索引,按照本协议制定的格式传输数据时,单帧最多传输7字节的实际数据:当数据流长度大于7字节时,就要分成多帧传送。步骤四:发送主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的小包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的正常运转,在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线。步骤五:在底层开辟一个临时缓冲区用于暂时存放等待发送的小包,临时缓冲区采用循环队列的存储结构,对数据实行先入先出的管理模式,循环队列用来暂时安置CPU即将发送的数据,数据被顺序安排在循环队列中等待发送,每增加一帧数据,循环队列的尾指针加1;每成功发送完一帧数据,循环队列的头指针减1;当循环队列中没有数据时,队列的状态为空,否则指示为不空;若循环队列的头指针和尾指针重合而队列又处于不空的状态,此时队列为满的状态;当队列处于满的状态时,禁止向队列再写入数据,否则容易导致数据的覆盖或丢失;队列中数据遵循先入先出的原则,CPU将数据从队列尾部装入,向CAN总线发送数据时则从队列头部将数据读走,发送循环队列的单位为帧;在发送机制运转前,首先对发送循环队列初始化,将循环队列的头指针、尾指针赋值为零,将已占用的空间也赋值为零。CAN发送机制主要由两大模块组成:打小包模块和帧发送模块,当CPU有数据需要发送时,调用打小包函数,要求给出待发送数据的存放地址,打小包函数将会按照本协议规定的格式将发送节点地址、接收节点地址、信息类型、任务标识、数据标识等参数整理为CAN数据链路层ID的格式,将数据组装成符合应用层协议所规定的数据帧(小包),实现对长度大于7字节的数据的打小包处理,按照所填加索引号的顺序放到发送循环队列中等待发送。步骤六:CAN接收数据负责将数据从CAN总线上接收下来,按照数据源节点的地址将其还原为发送前的格式,准确无误的传递给上层,并负责为上层提供接口函数,在CPU将数据取走以后,清空相应的数组。在底层开辟了一个临时缓冲区用于暂时存放本文档来自技高网...
一种医疗设备控制系统的CAN通信协议

【技术保护点】
一种医疗设备控制系统的CAN通信协议,其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。

【技术特征摘要】
1.一种医疗设备控制系统的CAN通信协议,其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。2.根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:所述的解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输,DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。3.根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:所述的建立待发送数据的格式化打包和定时循环扫描发送机制,主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的数据包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的正常运转;在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线;当CPU有数据需要发送时,调用打包函数,要求给出待发送数据的存放地...

【专利技术属性】
技术研发人员:李劲生吴林成
申请(专利权)人:南京普爱医疗设备股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1