CN106292403A - 一种医疗设备控制系统的can通信协议 - Google Patents
一种医疗设备控制系统的can通信协议 Download PDFInfo
- Publication number
- CN106292403A CN106292403A CN201510291777.2A CN201510291777A CN106292403A CN 106292403 A CN106292403 A CN 106292403A CN 201510291777 A CN201510291777 A CN 201510291777A CN 106292403 A CN106292403 A CN 106292403A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- bytes
- frame
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25032—CAN, canbus, controller area network bus
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Communication Control (AREA)
Abstract
一种医疗设备控制系统的CAN通信协议,属于医疗器械技术领域。其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。其优点是:简单、灵活、移植方便。
Description
技术领域
本发明属于医疗器械技术领域。
背景技术
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.0 0为扩展位,‘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总线上接收下的数据,临时缓冲区采用三维数组的格式,容量为4*3*64,第一维的容量为4,分别指示发送节点的地址;第二维容量为3,作为数据的扩展缓存,指示可连续存放来自于同一节点的包的数目;第三维的容量为64,用来存放经过整理以后的数据。
一般来说,开辟一个二维的空间就可以使协议周转,但是,在实际系统中可能会出现CPU还未能将整理完毕的数据取走此时又接到来自于同一节点的新的数据,这样就可能导致新的数据覆盖掉原来的数据,造成数据的丢失;为避免这种潜在的危险,因此开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据,大大降低了数据丢失的可能性。
Claims (5)
1.一种医疗设备控制系统的CAN通信协议,其特征在于:解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输;建立待发送数据的格式化打包和定时循环扫描发送机制;实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层;开辟三维空间,在特殊的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。
2.根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:所述的解决CAN总线传输中传输数据大小限制的问题,其中传输数据小于8个字节采用单帧传输,传输数据大于8个字节采用多帧传输,DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。
3.根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:所述的建立待发送数据的格式化打包和定时循环扫描发送机制,主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的数据包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的正常运转;在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线;
当CPU有数据需要发送时,调用打包函数,要求给出待发送数据的存放地址;打包函数按照本协议规定的格式将发送节点地址、接收节点地址、信息类型、任务标识、数据标识等参数整理为CAN数据链路层ID的格式,将数据组装成符合应用层协议所规定的数据帧,实现对长度大于7字节的数据的打包处理,按照所填加索引号的顺序放到发送循环队列中等待发送;
根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:所述的实现接收CAN总线数据的合理封装保存方法,使得接收数据准确无误的传递给上层,就是CAN数据从CAN总线上接收下来,按照数据源节点的地址将其还原为发送前的格式,准确无误的传递给上层,并负责为上层提供接口函数,在CPU将数据取走以后,清空相应的数组。
4.在底层开辟了一个临时缓冲区用于暂时存放从CAN总线上接收下的数据,临时缓冲区采用三维数组的格式,容量为4*3*64;第一维的容量为4,分别指示发送节点的地址;第二维容量为3,作为数据的扩展缓存,指示可连续存放来自于同一节点的包的数目;第三维的容量为64,用来存放经过整理以后的数据。
5.根据权利要求1所述的一种医疗设备控制系统的CAN通信协议,其特征在于:当在实际系统中出现CPU还未能将整理完毕的数据取走,此时又接到来自于同一节点的新的数据,这样就可能导致新的数据覆盖掉原来的数据,造成数据的丢失,因此开辟三维空间,在特殊情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510291777.2A CN106292403A (zh) | 2015-06-01 | 2015-06-01 | 一种医疗设备控制系统的can通信协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510291777.2A CN106292403A (zh) | 2015-06-01 | 2015-06-01 | 一种医疗设备控制系统的can通信协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106292403A true CN106292403A (zh) | 2017-01-04 |
Family
ID=57655277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510291777.2A Withdrawn CN106292403A (zh) | 2015-06-01 | 2015-06-01 | 一种医疗设备控制系统的can通信协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106292403A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110233707A (zh) * | 2019-06-24 | 2019-09-13 | 北京智慧远景科技产业有限公司 | 一种网关及其数据传输方法 |
CN110474950A (zh) * | 2019-06-27 | 2019-11-19 | 陕西法士特齿轮有限责任公司 | Uds网络层协议实现方法、计算机可读存储介质、计算机设备 |
CN111328257A (zh) * | 2020-03-11 | 2020-06-23 | 广东省电信规划设计院有限公司 | 一种上下位机的数据同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560806A (zh) * | 2004-03-04 | 2005-01-05 | 深圳市泛海三江电子有限公司 | 基于can2.0b的火灾报警应用层数据传输方法 |
CN101552785A (zh) * | 2009-05-07 | 2009-10-07 | 浙江大学 | 基于消息机制的用于海量数据传输的can总线通信协议 |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN103546354A (zh) * | 2013-10-22 | 2014-01-29 | 天津七一二通信广播有限公司 | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 |
-
2015
- 2015-06-01 CN CN201510291777.2A patent/CN106292403A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560806A (zh) * | 2004-03-04 | 2005-01-05 | 深圳市泛海三江电子有限公司 | 基于can2.0b的火灾报警应用层数据传输方法 |
CN101552785A (zh) * | 2009-05-07 | 2009-10-07 | 浙江大学 | 基于消息机制的用于海量数据传输的can总线通信协议 |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN103546354A (zh) * | 2013-10-22 | 2014-01-29 | 天津七一二通信广播有限公司 | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110233707A (zh) * | 2019-06-24 | 2019-09-13 | 北京智慧远景科技产业有限公司 | 一种网关及其数据传输方法 |
CN110474950A (zh) * | 2019-06-27 | 2019-11-19 | 陕西法士特齿轮有限责任公司 | Uds网络层协议实现方法、计算机可读存储介质、计算机设备 |
CN111328257A (zh) * | 2020-03-11 | 2020-06-23 | 广东省电信规划设计院有限公司 | 一种上下位机的数据同步方法及装置 |
CN111328257B (zh) * | 2020-03-11 | 2022-03-22 | 广东省电信规划设计院有限公司 | 一种上下位机的数据同步方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101917316B (zh) | 一种高速实时工业以太网的通信方法及装置 | |
CN107210943B (zh) | 借助于通用通信驱动器的装置访问 | |
CN102053813B (zh) | 一种拼接墙控制方法及其装置 | |
CN101873299B (zh) | 串行总线和通信方法及系统 | |
CN110177013A (zh) | 一种基于FPGA的EtherCAT主从站设计与实现方法 | |
CN105187283A (zh) | 基于EtherCAT协议的工业控制网络从站通信方法及装置 | |
CN102035688B (zh) | 一种快速控制网络链路访问设计方法 | |
CN104283817A (zh) | 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 | |
KR101400329B1 (ko) | 통신 네트워크 시스템 | |
CN103218337A (zh) | 基于wishbone总线实现主与主、从与从通信的片上系统和方法 | |
CN104009976A (zh) | 一种用于多主站系统之间的实时通信方法及其设备 | |
CN106292403A (zh) | 一种医疗设备控制系统的can通信协议 | |
CN104486783A (zh) | 用于多态无线监控网络的多态无线网关系统及控制方法 | |
CN106506303A (zh) | 一种控制器实时以太网EtherCAT的主站系统 | |
CN101426015B (zh) | 面向多媒体传输的IEEE1394/GbE变换器及数据采集系统 | |
CN103392315B (zh) | 站、目标设备和启动设备 | |
CN101895462B (zh) | 串行通信网关 | |
CN102255800A (zh) | Can总线上ip数据包和can消息之间数据格式相互转换的方法 | |
CN114338274B (zh) | 一种异构工业现场总线融合方法及系统 | |
CN108614792A (zh) | 1394事务层数据包存储管理方法及电路 | |
CN101415027B (zh) | 基于hdlc协议的通讯模块及数据实时转发存储控制方法 | |
CN103728957A (zh) | 一种基于实时数据库的hart现场设备管理方法及系统 | |
CN109696878A (zh) | 基于多缓冲区的控制器 | |
CN101809941B (zh) | 控制节点网络的控制节点 | |
CN107040963A (zh) | 一种应用于工业通信的业务逻辑管道管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170104 |
|
WW01 | Invention patent application withdrawn after publication |