摘要:智能化开关柜对内部各智能化模块的通信网络的通信速度、通信距离、抗干扰性都有严格的要求。针对这一要求介绍了利用CAN (Controller Area Network)总线组建的多主分布式通信网络在智能化开关柜系统中的应用,并对CAN 总线设计中的难点进行了有针对性的论述。
关键字:智能开关柜;CAN总线;SJA1000
随着电力系统综合自动化程度的提高,组成电力系统基础设备的智能开关柜的智能化程度也相应提高,对智能开关柜控制系统的组成方式及其不同控制单元之间的数据通信的要求也越来越高。实践证明以CAN(Controller Area Network)总线构成的智能开关柜的多主结构分布式通信网络能满足智能开关柜系统的通信速度、通信距离、抗干扰性等各方面的要求。本文介绍了在智能化开关柜中CAN 总线网络的系统构架、硬件组成、软件设计,并针对CAN总线技术应用中的难点做出了针对性的论述。
1 CAN 总线
现场总线是现场仪表与控制室系统之间的一种开放的全数字化双向多站通信系统。
CAN 是一种得到广泛应用的、成熟的现场总线技术,最先由德国保时捷公司应用于汽车电子系统的互连,因其性能优越、价格适宜、通信距离远、速率高、抗干扰强,从而逐渐应用于工业测控领域进行数据通信的各个方面,并且已经成为国际标准化组织的ISO11898标准。CAN 总线作为现场总线应用于测控领域主要有下面的一些特点。
a. 总线采用多主站结构方式。由于采用多主站结构,使得总线开放时,任何通信节点可在任意时刻向网络发送信息,这是CAN 总线的最大特点和优势。
b. 可靠性高,传输性能稳定。通过基于优先权的仲裁技术,提高了总线的仲裁速度,避免网络瘫痪,依靠自带完善的错误检测和出错信令,保证了数据出错率低、通信稳定可靠。可对丢失的数据帧或出错数据帧自动重发,在节点错误严重时,自动切断节点与总线的联系,确保通信网络的可靠运行。
c. 可编程设置CAN 总线达到较高的通信速度或较远的通信距离。二者之间的关系如表1所示(表中L为通信长度,v为传输速率)。
目前生产CAN 总线芯片的厂商主要有Philips,Microchip,Intel,Motorola,Texas,Instrument等。其类型主要有两种:一种是自带CAN 功能的微处理器,如Philips公司的80C592;另一种则是专用的CAN收发控制器芯片,如国内广为使用的Philips公司的SJA1000。
2 用CAN 总线构成的系统方案设计
在设计中,智能化开关柜的测控系统由与各智能开关柜相联系的若干单元测控模块和一个总控制模块所构成。单元测控模块负责对相应智能开关柜的绝缘性能、导电回路的导电性能,机械开关的动作性能等规则进行自动监视和检测,并实时地将这些数据传送到总控制室。总控室根据指定的条件向各单元测控模块发出动作执行命令,必要时发出报警信号。各单元模块之间也可以通过CAN 总线网络进行对等的数据通信[1,2]。系统方案设计如图1所示,此种方式可以灵活地进行节点模块的扩展,其节点数最多可达到110个,因此,完全能够满足绝大多数智能化开关柜测控系统的内部通信要求。
CAN 总线上的电平传输方式采用能够利用接收器高共模抑制性能的差分传输方式,可由较为廉
价的双绞屏蔽线组成,为了消除长线反射所引起的干扰,在双绞线的两端必须分别连接2个抑制反射的匹配电阻R,阻值为124Ω。
根据当前CAN 芯片市场的价格、相应开发工具的比较,设计中选择了Philips公司的CAN 控制器芯片SJA1000和电平驱动芯片PCA82C250作为CAN 通信模块的组成部分。同时,为了简化硬件电路设计和调试,选择了将上述主要芯片集成在一起的集成化的CAN 通信模块——CAMDC-16M。由于它内部有相应的隔离电源,因此只需要提供单一工作电源即可工作。它与主控制器的连接关系如图2所示。若需要利用独立的SJA1000和PCA82C250作为CAN 通信模块,其硬件电路连接关系可参照相关文献①。
通信模块上的节点主控制器为Philips公司的89C51RD,由于SJA1000 控制器有专为Intel系列
或Motorala系列所提供的以总线连接方式进行操作的读写控制端口ALE,/WR,/RD,将这3根控制线与控制器的相应控制端口相连接,再将/CS端与地址线的其中一位相连接,从而可以用总线读写方式对SJA1000 进行控制。对于89C51系列的微控制器,可以用MOVX指令一次完成地址选通和数据传输的操作。
在某些应用系统的设计中,由于没有多余地址线,则可以通过将ALE,/WR,/RD,/CS连接到控制器的空闲I/O口上。在此情况下,节点主控制器必须通过所连接的I/O口完成地址选通的控制操作,然后再进行与SJA1000 的数据交换。
在本文的设计中(如图2),节点主控制器89C51RD+与CAN 控制器芯片SJA1000 的连接方式为总线方式。设计人员也可根据实际应用系统的情况将节点控制器设计为I/O方式连接。
由于SJA1000 是一个可编程智能芯片,上电时需要有一个上电复位电平。同时,在SJA1000 失去控制之后,可以通过对复位电平的操作使之重新工作。因此,在模块设计中,将其复位电平连接在89C51的一个I/O口上,由I/O口在上电复位和SJA1000 失去控制之后复位电平信号,从而简化设计并提高系统的稳定性。
同时,在CAN 模块中所使用的总线驱动器PCA82C250 用于隔离控制器芯片SJA1000 和CAN
总线网络,这样可使总线不受瞬态冲击的影响,并可同时提高节点的总线驱动能力,增强系统抗电磁干扰的能力。
3 CAN 通信模块的程序设计
CAN 总线灵活方便的工作模式,简便易行的扩展功能是通过对控制器芯片SJA1000 的控制寄存器进行编程而实现的,对CAN 总线芯片进行控制的程序设计是CAN 总线通信模块设计的难点和重点。
SJA1000 的工作模式主要有以CAN2.0A作为协议标准的BasicCAN和以CAN2.0B作为协议标准的PeliCAN两种工作模式。文中各个模块的通信程序是根据CAN2.0A的BasicCAN为协议标准进行设计的,若在实际设计时需要以CAN2.0A的BasicCAN为协议标准进行设计时,只需要参照文献[1]对其关键工作寄存器进行对应修改,就可使其工作于PeliCAN的工作模式。
与大多数变电站自动化系统的工作模式一样,在设计中,总控制室是由一台工控机作为主监视器,根据监控人员的控制指令,要求指定模块将相应的数据上传至总控制室,或者将总控制室的指令传送到指定的测控模块并控制其工作。
根据实际的工作流程,本文用嵌入式C语言设计了通用的CAN 通信模块,该CAN 通信模块以查询方式进行数据发送,并以中断方式进行数据接收,程序结构清楚,能满足实时性要求。
对CAN 总线主控制器芯片操作的关键在于灵活的设计,通过主控制器完成对SJA1000 内部寄存器的操作,方便灵活地设置传输优先级和通信速率,从而按设定协议进行数据传输。假定SJA1000 的寄存器的首地址为0x0。在头文件中,可如下定义:
对CAN器件进行初始化的过程就是对这些关键控制寄存器进行编程的过程。只有当CR控制寄
存器的复位请求位被设为高时,才可以对CAN控制器进行初始化设置,而主控制器必须在确定CAN控制器已经进入初始化复位状态时,才能对其他的CAN控制寄存器进行写入操作。
ACR和AMR寄存器分别是CAN 器件的接收码寄存器和接收屏蔽寄存器,它们共同完成CAN 系统的验收滤波设置。当节点的CAN 接收缓冲器处于空状态,并且所接收的报文标志符满足以下条件:AMR的所有8位均设置为不相关,即AMR=0xff;ACR被设置为相关位的位置上,接收报文标志符与ACR的对应位相同,该节点可以完整地接收整条报文信息,否则信息不会被接收。
系统通过对这2个寄存器的设置完成对节点优先级的设置并判断是否接收总线上的数据。BTR0和BTR1是SJA1000的总线时序寄存器,通过对BTR0进行设置,可确定波特率预分频器的分频数和同步跳转宽度;对BTR1进行设置,可确定位周期的宽度、采样点的位置及每个采样点采集数据的次数。通过对这2个寄存器进行设置,可以唯一确定采样波特率和同步跳转宽度。需要明确的是系统内所有节点的通信波特率必须完全一致,同时必须满足距离与速率的关系。
对输出控制寄存器OCR写入控制字,可以控制输出寄存器的驱动方式。
上述寄存器是CAN 通信的主要功能寄存器,在完成了对这几个功能寄存器的设置之后,需要对CR寄存器进行清复位标志位,以便使CAN 控制器进入正常的收发状态。
对CAN 控制器芯片进行了正确的初始化之后,可以根据系统的要求随时发送数据。在进行数据发送时,只要检测到发送数据缓冲区的标志位是高时,就可以将所需要发送的数据送入SJA1000控制器的数据发送缓冲区中,在完成了传送数据过程之后,再把发送寄存器CMR置为高电平,就可完成整个数据的发送。
本系统以中断方式对数据进行接收,当节点有数据接收时,SJA1000将向主控制器发出中断申请,主控制器在中断服务程序内完成对数据信息的接收。由于存在数据传输错误的可能性,在中断接收处理程序中,应该有对出错情况的处理。因此必须要有相应的错误处理方式,设计人员可根据需要编写错误处理程序。
4 结论
在智能化开关柜系统设计中,采用了以CAN 总线构建智能化开关柜的内部通信网络,由于CAN 总线采用的是多主结构,并可根据各开关柜实际距离的远近,而采用不同的通信速度,使得该内部通信网络通信方式灵活,而CAN 总线所特有的差分传输方式和基于优先权的仲裁技术使得其性能可靠。而多达110个通信节点的连接能力使其有较强的扩展功能。现场的良好运行证明利用CAN 总线完全保证了智能化开关柜设备在恶劣现场的可靠运行。
① PCA82C250 CAN controller interface, Philips Semiconductors, 2000.
参考文献:
[1]邬宽明. CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1999
[2]周凤余,李贻斌,李彩凤,等.CAN 总线及其在喷浆机器人中的应用[I].测控技术,2000,(3):30-33
1楼
0
0
回复
关键字:智能开关柜;CAN总线;SJA1000
随着电力系统综合自动化程度的提高,组成电力系统基础设备的智能开关柜的智能化程度也相应提高,对智能开关柜控制系统的组成方式及其不同控制单元之间的数据通信的要求也越来越高。实践证明以CAN(Controller Area Network)总线构成的智能开关柜的多主结构分布式通信网络能满足智能开关柜系统的通信速度、通信距离、抗干扰性等各方面的要求。本文介绍了在智能化开关柜中CAN 总线网络的系统构架、硬件组成、软件设计,并针对CAN总线技术应用中的难点做出了针对性的论述。
1 CAN 总线
现场总线是现场仪表与控制室系统之间的一种开放的全数字化双向多站通信系统。
CAN 是一种得到广泛应用的、成熟的现场总线技术,最先由德国保时捷公司应用于汽车电子系统的互连,因其性能优越、价格适宜、通信距离远、速率高、抗干扰强,从而逐渐应用于工业测控领域进行数据通信的各个方面,并且已经成为国际标准化组织的ISO11898标准。CAN 总线作为现场总线应用于测控领域主要有下面的一些特点。
a. 总线采用多主站结构方式。由于采用多主站结构,使得总线开放时,任何通信节点可在任意时刻向网络发送信息,这是CAN 总线的最大特点和优势。
b. 可靠性高,传输性能稳定。通过基于优先权的仲裁技术,提高了总线的仲裁速度,避免网络瘫痪,依靠自带完善的错误检测和出错信令,保证了数据出错率低、通信稳定可靠。可对丢失的数据帧或出错数据帧自动重发,在节点错误严重时,自动切断节点与总线的联系,确保通信网络的可靠运行。
c. 可编程设置CAN 总线达到较高的通信速度或较远的通信距离。二者之间的关系如表1所示(表中L为通信长度,v为传输速率)。
目前生产CAN 总线芯片的厂商主要有Philips,Microchip,Intel,Motorola,Texas,Instrument等。其类型主要有两种:一种是自带CAN 功能的微处理器,如Philips公司的80C592;另一种则是专用的CAN收发控制器芯片,如国内广为使用的Philips公司的SJA1000。
2 用CAN 总线构成的系统方案设计
在设计中,智能化开关柜的测控系统由与各智能开关柜相联系的若干单元测控模块和一个总控制模块所构成。单元测控模块负责对相应智能开关柜的绝缘性能、导电回路的导电性能,机械开关的动作性能等规则进行自动监视和检测,并实时地将这些数据传送到总控制室。总控室根据指定的条件向各单元测控模块发出动作执行命令,必要时发出报警信号。各单元模块之间也可以通过CAN 总线网络进行对等的数据通信[1,2]。系统方案设计如图1所示,此种方式可以灵活地进行节点模块的扩展,其节点数最多可达到110个,因此,完全能够满足绝大多数智能化开关柜测控系统的内部通信要求。
CAN 总线上的电平传输方式采用能够利用接收器高共模抑制性能的差分传输方式,可由较为廉
价的双绞屏蔽线组成,为了消除长线反射所引起的干扰,在双绞线的两端必须分别连接2个抑制反射的匹配电阻R,阻值为124Ω。
根据当前CAN 芯片市场的价格、相应开发工具的比较,设计中选择了Philips公司的CAN 控制器芯片SJA1000和电平驱动芯片PCA82C250作为CAN 通信模块的组成部分。同时,为了简化硬件电路设计和调试,选择了将上述主要芯片集成在一起的集成化的CAN 通信模块——CAMDC-16M。由于它内部有相应的隔离电源,因此只需要提供单一工作电源即可工作。它与主控制器的连接关系如图2所示。若需要利用独立的SJA1000和PCA82C250作为CAN 通信模块,其硬件电路连接关系可参照相关文献①。
通信模块上的节点主控制器为Philips公司的89C51RD,由于SJA1000 控制器有专为Intel系列
或Motorala系列所提供的以总线连接方式进行操作的读写控制端口ALE,/WR,/RD,将这3根控制线与控制器的相应控制端口相连接,再将/CS端与地址线的其中一位相连接,从而可以用总线读写方式对SJA1000 进行控制。对于89C51系列的微控制器,可以用MOVX指令一次完成地址选通和数据传输的操作。
在某些应用系统的设计中,由于没有多余地址线,则可以通过将ALE,/WR,/RD,/CS连接到控制器的空闲I/O口上。在此情况下,节点主控制器必须通过所连接的I/O口完成地址选通的控制操作,然后再进行与SJA1000 的数据交换。
在本文的设计中(如图2),节点主控制器89C51RD+与CAN 控制器芯片SJA1000 的连接方式为总线方式。设计人员也可根据实际应用系统的情况将节点控制器设计为I/O方式连接。
由于SJA1000 是一个可编程智能芯片,上电时需要有一个上电复位电平。同时,在SJA1000 失去控制之后,可以通过对复位电平的操作使之重新工作。因此,在模块设计中,将其复位电平连接在89C51的一个I/O口上,由I/O口在上电复位和SJA1000 失去控制之后复位电平信号,从而简化设计并提高系统的稳定性。
同时,在CAN 模块中所使用的总线驱动器PCA82C250 用于隔离控制器芯片SJA1000 和CAN
总线网络,这样可使总线不受瞬态冲击的影响,并可同时提高节点的总线驱动能力,增强系统抗电磁干扰的能力。
3 CAN 通信模块的程序设计
CAN 总线灵活方便的工作模式,简便易行的扩展功能是通过对控制器芯片SJA1000 的控制寄存器进行编程而实现的,对CAN 总线芯片进行控制的程序设计是CAN 总线通信模块设计的难点和重点。
SJA1000 的工作模式主要有以CAN2.0A作为协议标准的BasicCAN和以CAN2.0B作为协议标准的PeliCAN两种工作模式。文中各个模块的通信程序是根据CAN2.0A的BasicCAN为协议标准进行设计的,若在实际设计时需要以CAN2.0A的BasicCAN为协议标准进行设计时,只需要参照文献[1]对其关键工作寄存器进行对应修改,就可使其工作于PeliCAN的工作模式。
与大多数变电站自动化系统的工作模式一样,在设计中,总控制室是由一台工控机作为主监视器,根据监控人员的控制指令,要求指定模块将相应的数据上传至总控制室,或者将总控制室的指令传送到指定的测控模块并控制其工作。
根据实际的工作流程,本文用嵌入式C语言设计了通用的CAN 通信模块,该CAN 通信模块以查询方式进行数据发送,并以中断方式进行数据接收,程序结构清楚,能满足实时性要求。
对CAN 总线主控制器芯片操作的关键在于灵活的设计,通过主控制器完成对SJA1000 内部寄存器的操作,方便灵活地设置传输优先级和通信速率,从而按设定协议进行数据传输。假定SJA1000 的寄存器的首地址为0x0。在头文件中,可如下定义:
对CAN器件进行初始化的过程就是对这些关键控制寄存器进行编程的过程。只有当CR控制寄
存器的复位请求位被设为高时,才可以对CAN控制器进行初始化设置,而主控制器必须在确定CAN控制器已经进入初始化复位状态时,才能对其他的CAN控制寄存器进行写入操作。
ACR和AMR寄存器分别是CAN 器件的接收码寄存器和接收屏蔽寄存器,它们共同完成CAN 系统的验收滤波设置。当节点的CAN 接收缓冲器处于空状态,并且所接收的报文标志符满足以下条件:AMR的所有8位均设置为不相关,即AMR=0xff;ACR被设置为相关位的位置上,接收报文标志符与ACR的对应位相同,该节点可以完整地接收整条报文信息,否则信息不会被接收。
系统通过对这2个寄存器的设置完成对节点优先级的设置并判断是否接收总线上的数据。BTR0和BTR1是SJA1000的总线时序寄存器,通过对BTR0进行设置,可确定波特率预分频器的分频数和同步跳转宽度;对BTR1进行设置,可确定位周期的宽度、采样点的位置及每个采样点采集数据的次数。通过对这2个寄存器进行设置,可以唯一确定采样波特率和同步跳转宽度。需要明确的是系统内所有节点的通信波特率必须完全一致,同时必须满足距离与速率的关系。
对输出控制寄存器OCR写入控制字,可以控制输出寄存器的驱动方式。
上述寄存器是CAN 通信的主要功能寄存器,在完成了对这几个功能寄存器的设置之后,需要对CR寄存器进行清复位标志位,以便使CAN 控制器进入正常的收发状态。
对CAN 控制器芯片进行了正确的初始化之后,可以根据系统的要求随时发送数据。在进行数据发送时,只要检测到发送数据缓冲区的标志位是高时,就可以将所需要发送的数据送入SJA1000控制器的数据发送缓冲区中,在完成了传送数据过程之后,再把发送寄存器CMR置为高电平,就可完成整个数据的发送。
本系统以中断方式对数据进行接收,当节点有数据接收时,SJA1000将向主控制器发出中断申请,主控制器在中断服务程序内完成对数据信息的接收。由于存在数据传输错误的可能性,在中断接收处理程序中,应该有对出错情况的处理。因此必须要有相应的错误处理方式,设计人员可根据需要编写错误处理程序。
4 结论
在智能化开关柜系统设计中,采用了以CAN 总线构建智能化开关柜的内部通信网络,由于CAN 总线采用的是多主结构,并可根据各开关柜实际距离的远近,而采用不同的通信速度,使得该内部通信网络通信方式灵活,而CAN 总线所特有的差分传输方式和基于优先权的仲裁技术使得其性能可靠。而多达110个通信节点的连接能力使其有较强的扩展功能。现场的良好运行证明利用CAN 总线完全保证了智能化开关柜设备在恶劣现场的可靠运行。
① PCA82C250 CAN controller interface, Philips Semiconductors, 2000.
参考文献:
[1]邬宽明. CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1999
[2]周凤余,李贻斌,李彩凤,等.CAN 总线及其在喷浆机器人中的应用[I].测控技术,2000,(3):30-33