欢迎光临北京科瑞兴业科技有限公司官网

CAN总线模块通讯协议(北京科瑞兴业K-85系列)

发表时间: 2022-03-08 18:32:12

作者: 北京科瑞兴业科技有限公司

浏览:


3.1  ID分配

CAN2.0B的标准帧中的11位标识符,高4位分配为功能码(Function Code)域,低7分配为节点地址(Node-ID)域,如图3.1.1所示。

 

11 位标识符

10

9

8

7

6

5

4

3

2

1

0

                                                     

   功能码(Function Code)                       节点地址(Node-ID)

 3.1.1


 

节点地址(Node-ID)由系统集成商定义,节点地址(Node-ID)范围是1~1270不允许被使用)

CAN2.0B的标准帧如图3.1.2 所示:

 

 

---

7

6

5

4

3

2

1

0

字节 1

FF

RTR

x

x

DLC 0-0x0A

字节2+字节 3

11 位标识符 (功能码 + 节点地址)

字节 4

数据区数据(数据字节 1


……

字节 11

数据区数据(数据字节8

 3.1.2

 

 

FF  FF=0 为标准格式, FF=1 为扩展格式(协议中固定为0

RTRRTR=0 为数据帧。 RTR=1 为远程帧(协议中固定为0

DLC为本帧有效数据字节个数,可填入0808 表示本帧无后跟数据字节。约定长度数字超过8 后,0x09 表示有后续帧,0x0A 表示本帧为连续帧的最后一帧。

 

 

3.2 功能码(Function Code)定义

在同一功能码下,不同命令由数据字节1 的值进行定义并解析。

节点同步值可进行预设置,占用1 字节,可设定范围:0255

心跳间隔时间值可进行预设置,占用1字节,可设定范围:1255(单位100mS),当设置值为0 时,关闭心跳。

主动上传数据时间间隔参数值可进行预设置,占用1 字节,可设定范围:1255(单位10mS),  当设置值为 0 时,关闭主动上传数据功能。




 

功能码定义表:

 


功能

功能码

ID-bits 10-7

 

备注

保留

0000


广播指令(主节点)

0001

最高优先级

主节点发送从节点配置信息

0010


主节点请求从节点配置信息

0011


保留

0100



主节点请求单通道输入数据(指定)

0101



主节点请求全通道输入数据(全部)

0110



主节点发送单通道输出数据(指定)

0111



主节点发送全通道输出数据(全部)

1000



主节点请求全通道输出数据(全部)

1001


主节点发送计数清零

1010


保留

1011


保留

1100


保留

1101


状态返回指令(从节点)

1110


保留

 

1111


 


 

1) 广播指令:0001

方式:主节点发送从节点接收

地址: 0000000B

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

1

字节2+字节 3

功能码(0001+节点地址(XXXXXXX

字节 4

00/01/02

 

主节点发送帧

 

 

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

X

x

DLC(00x0A)

字节2+字节 3

功能码(0001+节点地址(XXXXXXX

字节 4

数据字节 1

……

……

字节 11

数据字节 8

 

 

从节点发送帧

功能说明

<1> 00 --- 节点收到此指令时,按分配的优先级发送全部数据一次;

<2> 01 --- 节点的同步信号计数器清零;

<3> 02 --- 节点收到此指令时, 节点的同步信号计数器增 1 并与设定值进行比较, 当计数数值

等于设定值时,发送全部数据一次。


 

 

 

2) 主节点发送从节点配置信息:0010

方式:主节点发送从节点接收

地址:从节点地址

 

格式:


---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

7

字节2+字节 3

功能码(0010+节点地址(XXXXXXX

字节 4

要配置的节点地址

字节 5

波特率 0

字节 6

波特率 1

字节 7

波特率 2

字节 8

同步计数值

字节 9

心跳间隔时间参数

字节 10

主动上传时间参数

字节 11

模块其他参数( K-8510 模块是热电偶类型代码,K-8514E 模块

是高级参数,其他模块没有这个字节)

主节点发送帧


功能说明: 从节点收到此指令时,将得到的数据保存。

注:波特率0、波特率1 波特率2的数值在后面的附录A中给出,取值是低24 位。

心跳间隔时间参数值:0 --- 关闭心跳

1FF   --- 心跳间隔( 1255*100mS


 

 


主动上传时间参数值:--- 关闭主动上传

1FF --- 主动上传间隔( 1255*10mS 

 

3) 主节点请求从节点配置信息:0011

方式:主节点发送从节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

0

字节2+字节 3

功能码(0011+节点地址(XXXXXXX

主节点发送帧

 

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

8

字节2+字节 3

功能码(0011+节点地址(XXXXXXX

字节 4

节点地址

字节 5

波特率 0

字节 6

波特率 1

字节 7

波特率 2

字节 8

同步计数值

字节 9

心跳间隔时间参数值

字节 10

主动上传时间参数值


字节 11

模块型号(K-8510 模块是热电偶类型代码,K-8514E  0x6E

                                   从节点发送帧

 

 

功能说明:从节点收到此指令时,发送配置信息一次。

 


心跳间隔时间参数值: --- 关闭心跳

1FF --- 心跳间隔( 1255*100mS

主动上传时间参数值: --- 关闭主动上传

1FF --- 主动上传间隔( 1255*10mS

字节11 说明:1 K-8510 模块返回的是量程代码。具体定义见下面表格。

量程代码

 

代码

热电偶类型

测温范围

0x80

Type J   Thermocouple

0℃~1200

0x81

Type K   Thermocouple

0℃~1300

0x82

Type T   Thermocouple

0℃~400

0x83

Type E   Thermocouple

0℃~1000

0x84

Type R   Thermocouple

0℃~1768

0x85

Type S   Thermocouple

0℃~1768

0x86

Type B   Thermocouple

400℃~1820

 

2 、其他模块返回的是模块型号。

 

 

 

4) 主节点请求单通道输入数据(指定): 0101

方式:主节点发送从节点接收

地址:从节点地址

 

格式: 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

1

字节2+字节 3

功能码(0101+节点地址(XXXXXXX


字节 4

通道号

                                                      主节点发送帧

 

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

3

字节2+字节 3

功能码(0101+节点地址(XXXXXXX

字节 4

通道号

……

通道数据低位

字节 11

通道数据高位

                                                        从节点发送帧

 

 

功能说明: 从节点收到此指令时,发送单通道数据一次。

注: K-8510 模块实际数据=上传数据除以 10 K-8511 模块实际数据=上传数据除以 100

  

5) 主节点请求通道输入数据(全部): 0110

方式:主节点发送从节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

0

字节2+字节 3

功能码(0110+节点地址(XXXXXXX

主节点发送帧


 

 

 

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

DLC(00x0A)

字节2+字节 3

功能码(0110+节点地址(XXXXXXX

字节 4

数据字节 1

……

……

字节 11

数据字节 8

从节点发送帧

 

 

功能说明:从节点收到此指令时,发送全部数据一次。

注意:DLC 为本帧有效数据字节个数, 可填入0808 表示本帧无后跟数据字节。约定长度数字超过8 后,0x09 表示有后续帧,0x0A 表示本帧为连续帧的最后一帧。

K-8510 模块实际数据=上传数据除以10 K-8511模块实际数据=上传数据除以100

 


6) 主节点发送单个通道输出数据:0111

方式:主节点发送从节点接收

地址:从节点地址

 

格式:

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

3

字节2+字节 3

功能码(0111+节点地址(XXXXXXX

字节 4

通道号


字节 5

通道数据低位

字节 6

通道数据高位

主节点发送帧

 

 

功能说明:从节点收到此指令时,将得到的数据值输出。

 

  

 

7) 主节点发送全部通道输出数据:1000

方式:主节点发送从节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

DLC(00x0A)

字节2+字节 3

功能码(1000+节点地址(XXXXXXX

字节 4

数据字节 1

……

……

字节 11

数据字节 8

主节点发送帧

 

 

功能说明:从节点收到此指令时,将全部数据值输出。

注意: DLC 为本帧有效数据字节个数, 可填入 0808 表示本帧无后跟数据字节。约定长度数字超过8 后,0x09 表示有后续帧,0x0A 表示本帧为连续帧的最后一帧。


 

8) 主节点请求通道输出数据(全部)1001

方式:主节点发送从节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

0

字节2+字节 3

功能码( 1001+节点地址(XXXXXXX

主节点发送帧

 

 

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

DLC(00x0A)

字节2+字节 3

功能码( 1001+节点地址(XXXXXXX

字节 4

数据字节 1

……

……

字节 11

数据字节 8

从节点发送帧

 

 

功能说明:从节点收到此指令时,发送全部数据值一次。

注意: DLC 为本帧有效数据字节个数, 可填入 0808 表示本帧无后跟数据字节。约定长度数字超过8 后,0x09 表示有后续帧,0x0A 表示本帧为连续帧的最后一帧。


 

9) 主节点发送计数清零: 1010

方式:主节点发送从节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

1

字节2+字节 3

功能码(1010+节点地址(XXXXXXX

字节 4

00/01/02/03/04/05/06/07/08

 

主节点发送帧

 

 

注:此条指令对K-8514 计数模块有效,K-8514C 模块字节4的数据0007对应18道清零,08为全部通道清零。K-8514E模块字节4的数据0003对应14通道清零,4字节为全部通道清零。

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

DLC(00x0A)

字节 23

功能码(1010+节点地址(XXXXXXX

字节 4

数据字节 1

……

……

字节 11

数据字节 8

从节点发送帧

 

 

功能说明:从节点收到此指令时,将计数器清零,并发送全部数据值一次。

注: K-8514E 没有返回帧。


 

10) 状态返回指令: 1110

方式:从节点发送主节点接收

地址:从节点地址

格式:

 

 

---

7

6

5

4

3

2

1

0

字节 1

0

0

x

x

4

字节 23

功能码(1110+节点地址(XXXXXXX

字节 4

数据字节 1(节点工作状态参数 0)

字节 5

数据字节 2(节点工作状态参数 1)

字节 6

数据字节 3(节点工作状态参数 2)

字节 7

数据字节 4(节点工作状态参数 3)


从节点发送帧

 

 

功能说明:从节点按心跳设置时间发送节点的工作状态参数。

节点工作状态寄存器参数 0

 

7

6

5

4

3

2

1

0

BS

ES

TS

RS

TCS

TBS

DOS

RBS

RBS  ---  1:接收缓冲区状态——如果CANRDACANRDB 寄存器有效,CANRFS CANRID  内接收到的信息可用, 只要以后再无可用的接收信息, 该位通过 CANCMR 的释放接收缓冲区命令清除。

复位值0。

DOS --- 1:数据溢出状态——由于前面传输到CAN控制器的数据未被读出,而接收缓冲区没有及时释放,从而引起后面信息丢失。

0:自从上次的清除数据溢出命令被写入CANCMR(或自从复位后)后就无数据溢出发生。

复位值0。

TBS --- 1:发送缓冲区状态——无发送信息(3Tx缓冲区中任何一个的信息)等待CAN 控制器处理,软件可以向CANTFICANTIDCANTDACANTDB寄存器写入数据。

     0:至少有一条前面队列中的到CAN控制器的信息未被发送,因此,软件不应该向存放信息的那个(那些)Tx 缓冲区的CANTFICANTID CANTDACANTDB 存器写入数据。

复位值1。

TCS --- 1:发送结束状态——所有发送请求都被成功处理。

0:至少有一个请求发送未处理。

复位值1。

RS   --- 1:接收状态:CAN 控制器正在接收数据。

复位值0。

TS   --- 1:发送状态:CAN 控制器正在发送数据。

复位值0。

ES   ---  1:错误状态:发送和接收错误计数器的计数值或其中一个的计数值已经达到出错警

告界限寄存器中设置的阈值。

复位值0。


BS   ---  1:总线状态:由于发送错误计数器的计数值已达到其阈值 255 CAN 控制器目前被 禁止。

复位值0。

节点工作状态寄存器参数 1

Rx 错误计数器的当前值,复位值0。

节点工作状态寄存器参数 2

Tx 错误计数器的当前值,复位值0。

节点工作状态寄存器参数 3

CAN 操作过程中,该值与TxRx错误计数器的计数器相比较,如果其中一个计数值与该值相等,CANSR的错误状态(ES)位置位,复位值0x60


 

3.3 K85系列模块各个模块用到的功能码表

 

功能码

模块型号


8510

8511

8512

8513

8514

8516

8518

8520

8521

8522

8523

0001

0010

0011

0101







0110




0111











1000






1001






1010











1110

 

用户在应用程序编程时,可以根据所使用的模块查阅相关指令帧,并参考我们提供的各模块编程示例进行。

 


图片展示

全国服务热线:

010-51650651

地址:北京市海淀区上地三街9号D座

微信在线客服

添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了