CN103546354B - 基于物联网电力测温设备的rs485与can总线兼容的通信方法 - Google Patents
基于物联网电力测温设备的rs485与can总线兼容的通信方法 Download PDFInfo
- Publication number
- CN103546354B CN103546354B CN201310498247.6A CN201310498247A CN103546354B CN 103546354 B CN103546354 B CN 103546354B CN 201310498247 A CN201310498247 A CN 201310498247A CN 103546354 B CN103546354 B CN 103546354B
- Authority
- CN
- China
- Prior art keywords
- packet
- byte
- frame
- address
- data
- 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.)
- Active
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
一种基于物联网电力测温设备的RS485与CAN总线兼容的通信方法,采用为RS485与CAN总线规定统一的主从设备规则、网络地址分配规则、帧格式、数据包格式、总线资源分配规则、保留字规则的方法,首先定义网络主设备和从设备,然后定义网络地址、帧格式、数据包格式、总线资源分配、保留字,指定RS485与CAN总线网络中一个节点作为主设备,其他所有节点作为从设备;主设备负责总线资源分配;从设备中存储一个变量,用于记录当前总线类型;使两种总线能够使用统一的方法进行通信,本方法对RS485和CAN总线兼容性好,同时应用层不必关心硬件设备类型,可避免同一种设备开发两套软件的造成的时间浪费,同时,也可降低系统复杂度,减小错误几率,节省开发和维护环节的成本。
Description
技术领域
本发明涉及基于物联网电力测温设备的通信方法,特别涉及基于物联网电力测温设备的能够同时兼容RS485与CAN总线的通信的通信方法,本发明可扩展应用至物联网、工业控制及其他领域中使用RS485与CAN总线进行通信的设备。
背景技术
随着物联网技术的深入发展,物品管理、设备运行监控已成为物联网的重要前端技术。利用SAW-RFID实现设备运行时的时时监控,可令电力运营部门预测故障,提前解决问题,避免了故障发生时带来的巨额经济损失以及人员伤亡。
利用SAW-RFID测温设备进行测温的原理是:随着标签温度的改变,标签的响应频点也会按一定规律变化。首先测温设备向标签发射射频信号,接下来测量标签返回的射频信号,然后对接收到的射频信号进行分析处理,得到标签的响应频点。最终将标签的响应频点转换为对应的温度。
在物联网领域中的设备之间,通常使用RS485总线或CAN总线进行通信。其中,RS485总线应用较早,应用范围较广,在成熟产品中使用率较高。但在技术不断发展的今天,RS485总线也面临着传输速率慢、传输距离短、误码率高,无总线资源硬件仲裁功能诸多缺点。CAN总线是一种较新型的串行总线,其优点是:传输速率较快,可达1Mbps;传输距离长,最长可达10公里;可靠的数据处理与检错机制;自带总线资源硬件仲裁功能。但目前在物联网领域中,CAN总线普及率不高。所以,目前的物联网设备往往同时带有RS485、CAN两套通信接口。
依据ISO/OSI网络分层模型,RS485总线与CAN总线只规定了物理层与数据链路层这两个底层通讯协议,没有规定高层通信协议,导致应用这两种总线的设备需要独立开发两套软件,分别实现以上两种总线的高层通信协议。本发明是一套能同时兼容RS485总线与CAN总线的基于高层通信协议的实现方法。应用本发明,同一设备只需开发一套软件即可同时支持RS485总线与CAN总线,极大的降低了软件开发成本。
发明内容
鉴于上述现有技术现状,本发明提供一种基于物联网电力测温设备的RS485与CAN总线兼容的通信方法。本方法采用为RS485与CAN总线规定统一的主从设备规则、网络地址分配规则、帧格式、数据包格式、总线资源分配规则、保留字规则等方法,使两种总线能够使用统一的方法进行通信
本发明所采取的技术方案是:一种基于物联网电力测温设备的RS485与CAN总线兼容的通信方法,其特征在于,在应用层使用一套实现方法,即可使设备同时支持RS485与CAN总线;
所述方法包括如下步骤:
(1)、定义网络主设备和从设备:
指定RS485与CAN总线网络中一个节点作为主设备,其他所有节点作为从设备;主设备负责总线资源分配;从设备中存储一个变量,用于记录当前总线类型;
(2)定义网络地址:
总线网络中地址范围从0~255,分别为以下节点分配地址:主设备地址、从设备地址范围、广播地址;
(3)定义帧:
定义总线中数据传输的最小单位叫做帧,每帧固定包含8字节数据;定义若干帧组成的一个包含完整意义的结构叫做数据包;帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+4字节的的数据;
上述定义中,“数据包信息”字节中的第7位表示数据包类型,0表示单帧数据包,1表示多帧数据包;数据包的长度小于等于4字节的数据包叫做单帧数据包;数据包长度大于4字节的数据包叫做多帧数据包;多帧数据包分为头帧与数据帧;“数据包信息”字节中的第0~6位用于标记数据包ID;
多帧数据包中,头帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+1字节的数据包ID+1字节的数据包字节长度+2字节的数据包校验值;
多帧数据包的头帧中,“数据包信息”字节固定为0xFF;
多帧数据包中,数据帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+4字节的数据;
上述定义中,“数据包信息”的第0~6位表示数据帧编号;多帧数据包中,每个数据帧都拥有唯一编号;多帧数据包中,“数据包信息”的第7位固定为1;
(4)定义数据包:
一组帧可组成一个包含完整意义的数据包;数据包格式定义如下:
1字节的源地址+1字节的目的地址+1字节的数据包ID+若干字节的数据;
(5)接收数据包:
接收数据包的流程如下:
a、计算帧校验值,若校验不通过,则抛弃本帧;
b、若目的地址不是本机地址或广播地址,则抛弃本帧;
c、若数据包类型为单帧数据包,则直接接收数据,得到一个完整的数据包;
d、若数据包类型为多帧数据包,则从头帧中获取数据包ID、数据包长度、数据包校验值,然后依次接收数据帧,最后校验数据包校验值,得到一个完整的数据包;若接收过程中帧编号不正确或数据包校验值不正确,则抛弃本数据包中的所有帧;
(6)总线资源分配规则:
CAN总线具有硬件自仲裁功能;RS485总线需要定义软件总线资源分配方法;RS485总线资源分配方法描述如下:
a、总线中,每个从设备都具有唯一的地址;主设备上电时先执行初始化过程:首先向广播地址发送ID为“扫描”的单帧数据包,然后,主设备轮流向0~255范围内的每个地址点名,各从设备依次向主设备应答本从设备地址;主设备确认当前总线中存在的所有地址,完成初始化;
b、完成初始化后,主设备以时间片为单位,轮流向每个地址点名;被点到名的地址获得总线占用权,点名操作占用2字节,数据格式为:1字节点名关键字+1字节点名地址;一旦其他地址被点名,当前地址立即失去总线占用权;
(7)保留字:
RS485总线中保留1字节数据作为点名关键字;若数据包中的数据字段中存在点名关键字,则将其转义后才能传输。
本发明的有益效果是:优化设计之后的标签用于物联网电力测温设备中,对RS485和CAN总线兼容性好,同时应用层不必关心硬件设备类型。可避免同一种设备开发两套软件的造成的时间浪费。同时,也可降低系统复杂度,减小错误几率,节省开发和维护环节的成本。
具体实施方式
为了更清楚的理解本发明,结合实施例详细描述本发明:
1)、定义网络主设备和从设备:
RS485与CAN总线均属于半双工通信,两者在物理上均属于总线型网络,在逻辑上属于星型网络。在物联网电力测温设备(WL-002)中,包含上位机控制端及若干通过串行总线网络与上位机连接的读卡器。因此,指定网络中的上位机控制端为主设备,所有读卡器作为从设备。主设备负责总线资源分配,从设备中存储1字节无符号变量cMask,初始值为0,用于记录当前总线类型。主设备向总线发送数据时,从设备根据触发的中断类型,设置该变量的不同标记位:当触发RS485中断时,置cMask变量的第0位为1;当触发CAN中断时,置cMask变量的第1位为1。此后,根据cMask变量的位标记执行不同的操作流程。
2)定义网络地址:
总线网络中地址范围从0x00~0xFF,分配如下:
0x00:为扩展保留
0x01:广播地址
0x02~0xD0:从设备地址
0xD1~0xF0:为扩展保留
0xF1:主设备地址
0xF2~0xFF:为扩展保留
3)定义帧:
定义总线中数据传输的最小单位叫做帧,每帧固定包含8字节数据。定义若干帧组成的一个包含完整意义的结构叫做数据包。
帧格式定义如下:
目的地址(1字节)+源地址(1字节)+数据包信息(1字节)+帧校验值(1字节)+数据(4字节);
若当前总线类型为CAN,由于总线协议规定每帧数据的长度为8字节,因此,数据直接按帧格式填充。若当前总线类型为RS485,则将数据按上述帧格式分割为若干帧。
上述定义中,“数据包信息”字节中的第7位表示数据包类型,0表示单帧数据包,1表示多帧数据包。数据包的长度小于等于4字节的数据包叫做单帧数据包。数据包长度大于4字节的数据包叫做多帧数据包。多帧数据包分为头帧与数据帧。“数据包信息”字节中的第0~6位用于标记数据包ID。
多帧数据包中,头帧格式定义如下:
目的地址(1字节)+源地址(1字节)+数据包信息(1字节)+帧校验值(1字节)+数据包ID(1字节)+数据包长度(1字节)+数据包校验值(2字节);
多帧数据包的头帧中,“数据包信息”固定为0xFF。
多帧数据包中,数据帧格式定义如下:
目的地址(1字节)+源地址(1字节)+数据包信息(1字节)+帧校验值(1字节)+数据(4字节)
上述定义中,“数据包信息”的第0~6位表示数据帧编号。多帧数据包中,每个数据帧都拥有唯一编号。多帧数据包中,“数据包信息”的第7位固定为1。
4)定义数据包:
一组帧可组成一个包含完整意义的数据包。数据包格式定义如下:
源地址(1字节)+目的地址(1字节)+数据包ID(1字节)+数据(若干字节);
5)接收数据包:
接收数据包的流程如下:
a、计算帧校验值,若校验不通过,则抛弃本帧;
b、若目的地址不是本机地址或广播地址,则抛弃本帧;
c、若数据包类型为单帧数据包,则直接接收数据,得到一个完整的数据包;
d、若数据包类型为多帧数据包,则从头帧中获取数据包ID、数据包长度、数据包校验值,然后依次接收数据帧,最后校验数据包校验值,得到一个完整的数据包。若接收过程中帧编号不正确或数据包校验值不正确,则抛弃本数据包中的所有帧。
6)总线资源分配规则:
CAN总线具有硬件自仲裁功能;RS485总线需要定义软件总线资源分配方法。RS485总线资源分配方法描述如下:
a、总线中,每个从设备都具有唯一的地址。主设备上电时先执行初始化过程:首先向广播地址发送ID为“扫描”的单帧数据包,然后,主设备轮流向0~255范围内的每个地址点名,各从设备依次向主设备应答本从设备地址;主设备确认当前总线中存在的所有地址,完成初始化。
b、完成初始化后,主设备以时间片为单位,轮流向每个地址点名。被点到名的地址获得总线占用权,点名操作占用2字节,数据格式为:0xA0+1字节点名地址。一旦其他地址被点名,当前地址立即失去总线占用权。
7)保留字:
RS485总线中保留1字节数据“0xA0”作为点名关键字。若数据包中的数据字段存在0xA0,则先将其转义,然后才能传输。转义规则定义如下:
数据包中若存在1字节数据“0xA0”,则将其转义为2字节数据“0xBB+0xBC”;数据包中若存在1字节数据“0xBB”,则转义为2字节数据“0xBB+0xBD”。
根据上述说明,结合本领域技术可实现本发明的方案。
Claims (1)
1.一种基于物联网电力测温设备的RS485与CAN总线兼容的通信方法,其特征在于,在应用层使用一套所述方法,即可使设备同时支持RS485与CAN总线;所述方法包括如下步骤:
(1)定义网络主设备和从设备:
指定RS485与CAN总线网络中一个节点作为主设备,其他所有节点作为从设备;主设备负责总线资源分配;从设备中存储一个变量,用于记录当前总线类型;
(2)定义网络地址:
总线网络中地址范围从0~255,将所有节点分配为以下地址:主设备地址、从设备地址范围、广播地址;
(3)定义帧:
定义总线中数据传输的最小单位叫做帧,每帧固定包含8字节数据;定义若干帧组成的一个包含完整意义的结构叫做数据包;帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+4字节的数据;
上述定义中,“数据包信息”字节中的第7位表示数据包类型,0表示单帧数据包,1表示多帧数据包;数据包的长度小于等于4字节的数据包叫做单帧数据包;数据包长度大于4字节的数据包叫做多帧数据包;多帧数据包分为头帧与数据帧;“数据包信息”字节中的第0~6位用于标记数据包ID;
多帧数据包中,头帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+1字节的数据包ID+1字节的数据包字节长度+2字节的数据包校验值;
多帧数据包的头帧中,“数据包信息”字节固定为0xFF;
多帧数据包中,数据帧格式定义如下:
1字节的目的地址+1字节的源地址+1字节的数据包信息+1字节的帧校验值+4字节的数据;
上述定义中,“数据包信息”的第0~6位表示数据帧编号;多帧数据包中,每个数据帧都拥有唯一编号;多帧数据包中,“数据包信息”的第7位固定为1;
(4)定义数据包:
一组帧可组成一个包含完整意义的数据包;数据包格式定义如下:
1字节的源地址+1字节的目的地址+1字节的数据包ID+若干字节的数据;
(5)接收数据包:
接收数据包的流程如下:
a、计算帧校验值,若校验不通过,则抛弃本帧;
b、若目的地址不是本机地址或广播地址,则抛弃本帧;
c、若数据包类型为单帧数据包,则直接接收数据,得到一个完整的数据包;
d、若数据包类型为多帧数据包,则从头帧中获取数据包ID、数据包长度、数据包校验值,然后依次接收数据帧,最后校验数据包校验值,得到一个完整的数据包;若接收过程中帧编号不正确或数据包校验值不正确,则抛弃本数据包中的所有帧;
(6)总线资源分配规则:
CAN总线具有硬件自仲裁功能;RS485总线需要定义软件总线资源分配方法;总线资源分配规则描述如下:
a、总线中,每个从设备都具有唯一的地址;主设备上电时先执行初始化过程:首先向广播地址发送ID为“扫描”的单帧数据包,然后,主设备轮流向0~255范围内的每个地址点名,各从设备依次向主设备应答本从设备地址;主设备确认当前总线中存在的所有地址,完成初始化;
b、完成初始化后,主设备以时间片为单位,轮流向每个地址点名;被点到名的地址获得总线占用权,点名操作占用2字节,数据格式为:1字节点名关键字+1字节点名地址;一旦其他地址被点名,当前地址立即失去总线占用权;
(7)保留字:
RS485总线中保留1字节数据作为点名关键字;若数据包中的数据字段中存在点名关键字,则将其转义后才能传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498247.6A CN103546354B (zh) | 2013-10-22 | 2013-10-22 | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498247.6A CN103546354B (zh) | 2013-10-22 | 2013-10-22 | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103546354A CN103546354A (zh) | 2014-01-29 |
CN103546354B true CN103546354B (zh) | 2016-06-29 |
Family
ID=49969429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310498247.6A Active CN103546354B (zh) | 2013-10-22 | 2013-10-22 | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103546354B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410557A (zh) * | 2014-12-25 | 2015-03-11 | 深圳中科讯联科技有限公司 | 一种基于rs-485的动态组网方法及通讯方法 |
CN104683205A (zh) * | 2015-02-14 | 2015-06-03 | 谭旗 | 一种智能终端间数据并行传输的方法和装置 |
CN106292403A (zh) * | 2015-06-01 | 2017-01-04 | 南京普爱医疗设备股份有限公司 | 一种医疗设备控制系统的can通信协议 |
CN106610906A (zh) * | 2015-10-27 | 2017-05-03 | 深圳市中兴微电子技术有限公司 | 一种数据访问方法及总线 |
CN105656741B (zh) * | 2016-01-05 | 2018-12-25 | 深圳警翼数码科技有限公司 | 一种警环或警掌和执法记录仪之间的蓝牙串口数据传输方法 |
CN105915456B (zh) * | 2016-06-14 | 2019-01-15 | 南京工业职业技术学院 | 一种可变报头的中继通讯协议方法 |
CN107656725B (zh) * | 2017-09-29 | 2021-09-17 | 山东东润仪表科技股份有限公司 | 一种多参数水质分析仪软件的实现方法 |
CN110166338B (zh) * | 2019-05-17 | 2022-06-14 | 华东师范大学 | 一种串行通信接口的级联方法 |
CN112654101B (zh) * | 2020-12-15 | 2023-05-02 | 华北科技学院 | 基于射频收发芯片的无线透传方法和系统 |
CN112799331B (zh) * | 2021-01-26 | 2022-09-20 | 芜湖中科思萌特物联网科技有限公司 | 一种fpga解卡程序的解调方法 |
CN118018350B (zh) * | 2024-02-05 | 2024-10-18 | 广东联想懂的通信有限公司 | 软件实现uart-ttl的低成本松耦合总线控制网络方法 |
CN118210751B (zh) * | 2024-05-15 | 2024-07-23 | 深圳市华芯控股有限公司 | 基于can与rs485总线二合一的bms协议的通信方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556608A (zh) * | 2004-01-05 | 2004-12-22 | 中兴通讯股份有限公司 | 利用通用异步收发器实现rs485主从多机通讯的方法 |
CN101662404A (zh) * | 2008-08-27 | 2010-03-03 | 上海海事大学 | 基于can总线船舶电站控制仪表通信方法 |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN202119545U (zh) * | 2011-03-04 | 2012-01-18 | 易门供电有限公司 | 无线测温系统 |
CN102665292A (zh) * | 2012-04-17 | 2012-09-12 | 南京拓诺传感网络科技有限公司 | 一种无线传感器网络传感节点装置及其运行方法 |
-
2013
- 2013-10-22 CN CN201310498247.6A patent/CN103546354B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556608A (zh) * | 2004-01-05 | 2004-12-22 | 中兴通讯股份有限公司 | 利用通用异步收发器实现rs485主从多机通讯的方法 |
CN101662404A (zh) * | 2008-08-27 | 2010-03-03 | 上海海事大学 | 基于can总线船舶电站控制仪表通信方法 |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN202119545U (zh) * | 2011-03-04 | 2012-01-18 | 易门供电有限公司 | 无线测温系统 |
CN102665292A (zh) * | 2012-04-17 | 2012-09-12 | 南京拓诺传感网络科技有限公司 | 一种无线传感器网络传感节点装置及其运行方法 |
Non-Patent Citations (1)
Title |
---|
基于RFID的电力温度监控系统的软件分析与设计;谢小芳;《电子技术应用》;20130106;第39卷(第1期);第23-26页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103546354A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103546354B (zh) | 基于物联网电力测温设备的rs485与can总线兼容的通信方法 | |
US9286249B2 (en) | USB device communication method, device and system wherein a human interface device (HID) descriptor and report are added to a driver of USB device | |
CN103616927B (zh) | 一种数据通讯服务器 | |
CN108650136A (zh) | 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法 | |
CN108768981A (zh) | 一种实现Powerlink工业实时以太网通讯的IP核 | |
CN103558812B (zh) | 基于fpga和arm的mvb网络四类设备网卡 | |
CN106814657A (zh) | 基于ARM的嵌入式实时EtherCAT主站构建方法 | |
CN106656714A (zh) | 一种基于EtherCAT总线的通信协议方法及系统 | |
CN106899327A (zh) | 数据传输的方法和装置 | |
CN101304342B (zh) | 一种增强型以太网接口装置 | |
CN104104412A (zh) | 一种基于dma的电力线网络系统及其通讯方法 | |
CN105243044A (zh) | 基于串口的管理系统及管理方法 | |
CN108345558B (zh) | 一种支持多协议的rs485集配单元 | |
CN107885691A (zh) | 串口数据传输方法、分布式设备及主机 | |
CN104821849A (zh) | 一种基于fpga的无线电光纤连接接口通信库及其实现方法 | |
CN105515925A (zh) | 一种uart多主实时通信系统 | |
CN115550104A (zh) | Axi总线扩展方法、装置、电子设备及存储介质 | |
CN205647570U (zh) | 一种EtherCAT与DeviceNET的通信网关 | |
CN115150308B (zh) | 一种流量统计方法和装置 | |
CN207625600U (zh) | 基于交换机芯片的以太网扩展电路 | |
CN107395478B (zh) | 一种用于高速卷烟包装设备的网络控制系统以及网络通信模块 | |
CN102932208A (zh) | 站点监控方法及装置 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN202798769U (zh) | 一种用于万兆网络的数据采集与处理设备 | |
CN113341853B (zh) | 一种ip核、fpga芯片、交流伺服驱动器及通讯方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: 300462 No. 141 North Main Street, economic development zone, Binhai New Area, Tianjin Patentee after: Tianjin 712 Communications Broadcasting Limited by Share Ltd Patentee after: Beijing Hualongtong Technology Co., Ltd. Address before: 300462 No. 141 North Main Street, economic development zone, Binhai New Area, Tianjin Patentee before: Tianjin 712 Communication Broadcast Co., Ltd. Patentee before: Beijing Hualongtong Technology Co., Ltd. |