CAN规约Word格式文档下载.docx
《CAN规约Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CAN规约Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
![CAN规约Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/6/11a30dd7-f22b-433a-a13c-d82722cba843/11a30dd7-f22b-433a-a13c-d82722cba8431.gif)
6.7km
67H
5K
10km
7FH
3.CANBUS链路层
CANBUS网络通信以帧为单位进行。
CAN2.0B协议规定的帧格式如下:
FFRTRXXDLC.3DLC.2DLC.1DLC.0
ID.28ID.27ID.26ID.25ID.24ID.23ID.22ID.21
ID.20ID.19ID.18ID.17ID.16ID.15ID.14ID.13
ID.12ID.11ID.10ID.09ID.08ID.07ID.06ID.05
ID.04ID.03ID.02ID.01ID.00XXX
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
本规约规定:
(1)CAN帧一律为8Byte数据的扩展格式帧,帧ADDR0中各bit定义为:
FF=1;
RTR=0;
X,X=任意0,1(为了统一,可定义为0)
DLC.3—DLC.0=1000
(2)扩展格式帧共有29位ID,ID28—ID0分别定义为:
ID28—ID21共8bit目标地址
ID20—ID19共2bit用于扩展’当前帧号’或表示其它内容
ID18—ID13共6bit当前帧号
ID12—ID05共8bit源地址
ID04—ID03共2bit用于扩展’帧类型’或表示其它内容
ID02—ID00共3bit帧类型
其中,
ID28—ID21为单元地址。
256个单元地址中,0是管理机地址;
255是广播地址;
1—62是普通单元地址;
其余地址暂不能使用。
ID20—ID19在特殊场合下可另作定义,未定义时填00。
ID18—ID13,定义为当前帧号。
范围:
0—63。
ID04—ID03同ID20—ID19;
帧类型定义:
ID2ID1ID0报文类型
000对时报文
001数据短报文
010保护交互信息报文
011CMU与CMU交换信息
111数据长报文
…其它未定义
以DSA-123装置为例,SJA1000有关ID的寄存器设置如下:
ACCCODE0:
本单元地址ACCMASK0:
00000000B
ACCCODE1:
00000000BACCMASK1:
11111111B
ACCCODE2:
11111111BACCMASK2:
ACCCODE3:
00000000BACCMASK3:
发送的CAN帧ID28—ID21为目标地址,ID20—ID19为00,ID12—ID5为本单元地址,ID4—ID3为00,ID2—ID0为帧类型。
(3)DATA0—DATA7CAN帧数据。
4.通信进程
本规约采用点对点和点对多点的问答方式通信。
各点(包括管理机)均被视为地位平等的单元,每一点既可作为主动站,又可作为从动站。
且任意两点之间都可实现信息交换。
根据装置功能和实现功能所采用手段的不同,将连在CAN网上的设备分为3类,第一类是完成变电站基本功能的设备,它们采集变电站内的各种信息,适时地通过CAN网将信息上传;
第二类是通信管理机,它介于总控装置与变电站最底层设备之间,实现变电站内大部分信息的收集和交互功能;
第三类是智能综合装置,它既可以通过自身对变电站一些信息进行采集,在信息量不够时又可通过CAN网收集其它设备的信息加以综合。
(1)第一类设备
第一类设备担负着向第二、三类设备提供信息的任务,由于可能出现如下情况:
在处理报文过程中,一次进程未结束,另一设备又提出其他请求的情况,所以规定:
在一次进程未结束时,若又收到其他CAN帧报文,除了广播报文或其它不需应答的特殊报文,均向所收报文的源地址回答一“正忙”报文。
源地址设备收到“正忙”报文,要么放弃本次进程,要么延时T1后再进行。
这里说的一次进程是指该设备从收到第一帧来自主动站的有效CAN报文开始,到应答完毕或超时退出为止的这段过程。
<
两个以上设备同时对某一设备操作,如何防止冲突>
变电站稳定运行时,第一类设备接收第二、三类设备周期定时发来的信息查询及校时报文,予以相应应答。
为防止每次其他单元向该单元取信息时,正好都收到该单元回答“正忙”报文,应将第二、三类设备周期定时查询的时间设为不同值。
级差为1秒以上。
有时候,第三类设备需立即取第一类设备信息,遇到第一类设备回答“正忙”报文,可在较短延时(500ms—1s)后,再次取该单元信息,因为正常情况下对某一单元的查询间隔比较长(10s以上)。
当第一类设备检测到某些状态变化事件,将会主动向其它设备报告,此时第一类设备成为主动站,并期待其它设备的应答,等待T2(500ms-10s)时间间隔后,若仍未收到应答,将该信息重发,直到收到应答。
主动上送信息>
此外,第一类设备还会收到来自第二、三类设备不定期的取装置信息和设定装置参数报文,若存在该信息,予以相应应答,否则回答“无法上送该信息”。
(2)第二类设备
第二类设备周期定时查询第一、三类设备,查询间隔时间T3(10s-30s)一般应较长,以空下时间完成其它突发进程。
查询结果填入第二类设备自己的RAM中,以备上级通信设备查询时立即上送。
通信出错的判据是判断在通信软件无误的情况下,由硬件引起的通信中断。
第二类设备应以能否收到周期定时的信息查询结果作为通信出错的判据,而不定期的取装置信息和设定装置,不应作为通信出错的判据。
通信出错的判据>
第二类设备须定时向第一、三类设备发送校时报文,校时间隔不大于10分钟。
第二类设备在通信进程中,经常会碰到“所问非所答”的情况:
a)收到”正忙”报文,一般情况应放弃本次进程。
b)收到COS报文,立即回以确认报文。
c)收到状态变化报文,存入任务队列,以后从任务队列中取出依次执行。
(3)第三类设备
第三类设备需要利用通信来辅助其完成某些功能,由于通信的可靠程度相对来说还不是很高,所以决定了第三类设备只能用于一些对设备可靠性要求不是太高,速度要求不是太快的场合。
本规约约定,接收报文等待时间按如下设置:
●各种需应答的命令自所有CAN帧发送完毕(不论成功与否,不重发。
成功,开始计时;
不成功,向上一级送失败报文,取消进程)开始计时,从此时至收到目标单元的完整报文的时间T5(1s-20s),根据情况各种报文可不同。
若接收帧号不连续,则认为通信失去同步,重新从头接收。
●CAN的硬件初始化,软件中不影响报文的连续接收。
综上所述,与一点对多点的主从问答方式相比较,这种通信方式要注意:
I.各种周期定时查询报文的间隔不能太短,以空出时间给单元处理其它突发事件。
II.各种周期定时查询报文的间隔应不同且互为质数,以防止通信进程死锁。
III.长报文各帧的间隔要考虑其它单元打断的情况。
IV.在本规约的基础上新增功能,应考虑报文实现尽量简单,做到既充分利用CAN网上的空闲时间,又不增加太多CAN网负担。
5.通信报文格式
根据CAN帧的特点,将通信报文分为校时报文、短报文、长报文三种格式。
下面以CPU代表第一类设备,CMU代表第二类设备,CSU代表第三类设备进行说明。
本规约约定,对CPU、CSU而言,在等待其它单元应答时,只收特定单元的信息,未收全特定单元的信息之前,若收到另一单元的信息,一律回答一个短报文“正忙”。
若在收到长报文之前,已收到该单元的短报文,则认为一次完整的接收过程结束,转报文处理。
而若在收到一帧长报文之后,未收全之前,收到来自该单元的一帧短报文,也结束一次完整的接收过程,将短报文作为待处理报文。
对CMU而言,在等待其它单元应答时,可以收任何单元的主动上送信息,但是与CPU、CSU相同的是,以特定单元送来的一帧短报文,或无该单元短报文插入的完整长报文作为一次完整的接收过程,并将收到的报文转接收处理。
【校时报文】
一般情况下,校时报文为广播报文。
ID28—ID21:
11111111目标地址:
广播地址
ID20—ID19:
00保留位置0
ID18—ID13:
000000帧号0
ID12—ID5:
00000000源地址:
管理单元地址
ID4--ID3:
ID2--ID0:
000帧类型:
校时帧
XXX:
000保留位置0
DATA0=Year(0-99)BIN
DATA1=Month(1-12)BIN
DATA2=Date(1-31)BIN
DATA3=Hour(0-23)BIN
DATA4=Minute(0-59)BIN
DATA5=Second(0-59)BIN
DATA6=MSH(0-999)BIN
DATA7=MSL
【短报文】
xxxxxxxx目标地址
xxxxxxxx源地址
001帧类型:
短报文
DATA0-DATA7为短报文传输命令及数据。
DATA0DATA1DATA2DATA3DATA4DATA5DATA6DATA7
SCMDD0D1D2D3D4D5
S:
装置当前状态,定义如下:
bit7:
单元通信状态,0--通信正常;
1--通信中断。
该位由CMU置,CPU、CSU应答时,该位不作定义。
bit6:
有无录波记录,0--无1--有。
bit5:
有无保护事件记录,0--无1--有。
bit4:
有无保护越限记录,0--无1--有。
bit3:
当前有无事件信号未复归0--无1--有。
bit2:
装置运行是否正常0--正常1--不正常。
bit1:
相位是否正确0--正确1--不正确。
bit0:
备用
CMD:
COMMAND特征码
(1)CMD=01HCPU,CSU主动上送状态变化,CMU不用确认
S01HSCHG0SCHG1SCHG2SCHG3SCHG4SCHG5
共支持6*8个状态变化量,现只定义SCHG0的5bit:
SCHG0.0:
=1有带时标工况变化=0无带时标工况变化
SCHG0.1:
=1有不带时标工况变化=0无不带时标工况变化
SCHG0.2:
=1有保护事件=0无保护事件
SCHG0.3:
=1有SOE=0无SOE
SCHG0.4:
=1有变化遥测=0无变化遥测
(2)CMD=10H,11H,12H,13HCPU主动上送COS,CMU需确认
SCMDYXB0YX0YXB1YX1YXB2YX2
CMD=10H后续无效
CMD=11HYXB0,YX0有效,后续无效
CMD=12HYXB0,YX0,YXB1,YX1有效,后续无效
CMD=13HYXB0,YX0,YXB1,YX1,YXB2,YX2有效
YXB0、YXB1、YXB2为对应的YX组号,YX0、YX1、YX2为对应的YX值。
CMU确认:
S1FH000000000000
若CPU在500ms内未收到确认,则继续主动上送。
(3)CMD=20H,21H,22HCPU主动上送变化遥测YCC(越限1.25%),CMU不需确认
SCMDYCNO0YC0LYC0HYCNO1YC1LYC1H
CMD=20H后续无效
CMD=21HYCNO0,YC0L,YC0H有效,后续无效
CMD=22HYCNO0,YC0L,YC0H,YCNO1,YC1L,YC1H有效
YCNO0、YCNO1为对应的YC顺序号,YC0、YC1为对应的YC值。
★变化遥测一般在状态变化报文中上送,由CMU取。
(4)CMD=30HCMU复位CPU,CPU需回答
S30HC0C1C2C3C4C5
C0=总清0FFH清C1-C5所有内容,0无效
C1.0=清通信标志1有效0无效
C1.1=清保护事件1有效0无效
C1.2=清数据库(暂不支持)1有效0无效
C1.3=清COS1有效0无效
C1.4=清SOE1有效0无效
C1.5=清YCC1有效0无效
C1.6=清自诊断(带时标)1有效0无效
C1.7=清自诊断(不带时标)1有效0无效
C2=备用
C3=备用
C4=备用
C5=备用
CPU确认:
S31H000000000000
★该命令亦有广播格式,即目标地址为0FFH,此时CMU不须CPU应答确认。
(5)CMD=32HCMU广播复位CPU数据,CPU不需回答
S32HC0C1C2C3C4C5
(6)CMD=33HCMU广播复归CPU保护动作信号,CPU不需回答
S33H000000000000
(7)CMD=34HCMU设置电度信息
S34HD0D1D2D3D4D5
D0:
00—冻结电度。
D1—D5:
未用,填0。
01—解冻电度。
02—设置电度P+初值。
D1:
YM号(0--N-1)
D2—D5:
电度初值。
03—设置电度P-初值。
04—设置电度Q+初值。
05—设置电度Q-初值。
D0为其它值的功能暂未定义。
★CMU在取各个CPU电度值之前,先广播一次冻结电度报文,CPU若收到,将当前电度值放在某通信专用RAM中待取,并置相应标志,CMU取过一次后,自动清相应标志。
CPU若未收到,则在CMU取电度值时,相应标志未置,则将当前电度值送给CMU。
这样,一般情况下,解冻电度命令不再使用。
(8)CMD=35HCMU广播或非广播暂停CPU主动上送
S35HTLTH00000000
TL,TH:
暂停主动上送的延时时间。
5/3ms的倍数。
该命令暂未使用>
(9)CMD=36HCMU广播或非广播复位通信参数
S36H000000000000
<
(10)CMD=40HCMU遥控CPU
S40HOperSwitchOperSwitchErrTypErrTyp
Oper=CCH/33H/C0H/C1H/C2H/C3H/C4H/C5H/C6H/C7H/FFH/55H/56H/AAH/ABH
Switch=0-255
遥控选择CMU->
CPU
S40HOperSwitchOperSwitch00
Oper:
CCH---合
33H---分
C0H---合环
C1H---检无压
C2H---检同期
C3H---备用
C4H---备用
C5H---备用
C6H---备用
C7H---退出当前操作,即C0--C6的工作全部退出
FFH---电路出错
遥控返校CPU->
CMU
ErrTyp:
00H---变电站正有人操作,请稍后再操作
01H---软件闭锁,不能遥控
02H---遥控号超限
03H---对象继电器返校错
04H---备用
05H---性质继电器返校错
06H---校核正确
遥控执行CMU->
S41HOperSwitchOperSwitch00
AAH---遥控执行
55H---遥控取消
遥控执行返回信息CPU->
AAH---遥控执行成功
ABH---遥控执行失败
55H---遥控取消成功
56H---遥控取消失败
(11)CMD=50HCMU遥调CPU
S50H0xC3DXsetLsetH00
DX=0-255
SET=0-65535
此命令不需回答
(12)CMD=F0HCMU,CPU,CSU应答其它单元“无法上送所请求信息”
SF0Hwhy00000
Why:
无法上送该信息的原因。
01H---本单元“正忙”。
02H---本单元现在没有该类信息(记录)存在。
03H---本单元不支持该特征码。
04H---CMU等待CPU、CSU应答超时(CMU报告RTU)。
05H---CMU发送失败(CMU报告RTU)。
06H---CMU收到RTU错误报文(CMU报告RTU或CPU、CSU)。
07H---CMU收到CPU、CSU错误报文(CMU报告RTU)。
08H---CMU等待RTU应答超时(CMU报告CPU、CSU)。
【长报文】
xxxxxxxx目标地址
xxxxxx当前帧号
111帧类型:
长报文
DATA0-DATA7各帧定义如下:
NumSN0N1N2N3N4N5
N6N7N8N9N10N11N12N13
N14N15N16N17N18N19N20N21
……
其中,Num---总帧数(2+K+6+7)/8
S---定义同短报文。
N0—Nx定义为:
GroupCMDLenLLenHF(0)F
(1)F
(2)…F(K-1)SumLSumH
Group---分组组号,对于超过512byte的报文须分成多组,一般为0
LenL,LenH---=K,最大512-2-6=504
SumL,SumH---Group到F(K-1)的16位累加和
CMD---Command
60H=查询全YC回答全YC
61H=查询变化YC回答变化YC
62H=查询全YX回答全YX
63H=查询全YX并清COS、SOE回答全YX
64H=查询全YM回答全YM
65H=查询全DD_AC回答全DD_AC
66H=查询SOE回答SOE
67H=查询无时标工况回答无时标工况
68H=查询保护事件回答保护事件
69H=操作参数回答参数
6AH