数字继电保护系统中CAN总线通信的实现 |
摘 要:介绍了CAN总线的介质访问方法与技术特点,分析了CAN总线在数字继电保护系统中的应用可行性和所传送数据流的性质,给出了DSP的McBSP(多通道缓冲串行接口)与CAN控制器接口的硬件配置方案和软件设计流程。 关键词:CAN总线; 数字继电保护; 多通道缓冲串行接口 CAN总线是德国BOSCH公司在上世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。由于CAN总线的高可靠性和独特的设计,目前在电力系统、移动设备、医疗和测试仪器中得到广泛应用,被公认为最有前途的现场总线之一。1993年11月国际标准化组织(ISO)正式颁布了高速通信控制器局部网(CAN)国际标准ISO11898[2],为CAN总线标准化、规范化推广铺平了道路。 1 CAN总线在数字保护系统中应用的可行性分析 CAN总线是一种多主总线,即每个节点机均可成为主机,且节点机之间也可进行通信,总线上各个节点共享通信介质,因此必须解决各节点竞争使用总线而引起的冲突问题。CAN总线采用了一种独特的基于报文静态优先级的非破坏性带冲突检测的载波侦听多路访问(Nondestructive CSMA/CD)总线仲裁技术[3]。 报文的头部识别符定义一个静态的报文优先级。只要总线空闲,任何节点都可以开始发送报文。如果2个或2个以上的节点同时开始传送报文,此时就会出现总线访问冲突。通过识别符的按位仲裁可以解决这个冲突。仲裁期间,每一个发送器都对发送位的电平与被侦听的总线电平进行比较。如果电平相同,则这个节点可以继续发送;如果不同,退出发送。 CAN总线上电平用“显性”(逻辑“0”)和“隐性”(逻辑“1”)来表示,当同时出现“显性”和“隐性”时,其结果是总线电平呈“显性”。如果节点1发送的是“隐性”电平而节点2发送的是“显性”电平,两节点侦听到的总线电平则是“显性”,这样节点1就失去了仲裁,必须退出发送状态,而节点2赢得仲裁可以继续不受影响地发送报文。CAN总线这种非破坏性总线仲裁机制确保了报文和时间均不损失。 除了上述非破坏性总线仲裁机制的特点,CAN总线还具有如下显著的特点[4]:① CAN总线具有完善的错误处理机制,包括侦听、CRC校验、位填充技术、帧格式检查等以及一些相应的准则。CAN总线上,任何检测到错误的节点都会发出一串称为“错误标志”的位流,标记出已损坏的报文。此报文会失效并将自动地开始重新传送。 因此,它的可靠性很高。 ② 数据段长度最多为8个字节,不会占用总线时间过长,从而保证了通信的实时性。如MCP2510 CAN控制器的串行速率为1M,最长报文发送时延为64µs(8×8/1=64)。但这同时也反映了其不适于传输长报文的局限性。 考虑到数字继电保护系统中的开关量信号,包括断路器位置状态信号、保护投入信号、分合闸与报警信号等,都是几个字节的小数据量信息,但是对实时性和可靠性要求很高,在保护系统中应用CAN总线传输开关量信号,可以充分发挥CAN总线的技术优势。 2 DSP的McBSP与CAN控制器接口的设计 CAN总线通信模块由MICROCHIP公司的CAN总线控制器MCP2510[5]和TI公司CAN总线收发器SN65HVD232[6]组成,如图1所示。MCP2510是带SPI接口的CAN控制器,与CAN2.0A/B协议兼容,支持CAN1.2、CAN2.0A、CAN2.0B的被动/主动版本协议,实现CAN总线的逻辑链路控制和介质访问控制,能够发送、接收标准和扩展报文,位速率可达1Mbps,它还具有验收过滤和消息管理的功能,包括3个发送缓冲器和2个接收缓冲器,减少了微控制器(MCU)管理的负担。SN65HVD232是CAN协议控制器和物理总线的驱动接口,为总线提供不同的发送能力和对CAN控制器提供不同的接收能力,与ISO11898标准兼容。 图1 CAN通信的硬件电路 本文选用TI公司高性能C54系列的DSP作为控制核心,型号为TMS320VC5410A,工作主频160MHz。TMS320VC5410A提供高速、双向、多通道带缓冲串行接口McBSP与MCP2510的SPI(工业标准串行外围接口)接口,两者连接关系如图2所示。 McBSP功能强大,结构复杂,要实现二者的通信,关键要对McBSP的各寄存器进行合理配置,包括主从方式选择,时钟信号、帧同步信号的产生,数据收发的沿边选择,时序配合等,下面分别加以论述。 图2 DSP的McBSP与MCP251连接关系 时钟与帧同步信号的连接关系表明McBSP工作在主(Master)方式,MCP2510 工作在从(Slave)方式。McBSP的发送时钟由DSP内部采样率发生器产生(发送时钟模式位CLKXM=1),采样率发生器时钟由DSP内部时钟产生(采样率发生器时钟模式位CLKSM=1),McBSP的接收时钟由发送时钟驱动(接收时钟模式位CLKRM=0),MCP2510的时钟由McBSP给出,总之,所有的时钟源头是DSP的内部时钟;同时,发送帧同步信号FSX由McBSP内部寄存器DXR向XSR的数据拷贝动作产生(发送帧同步模式位FSXM=1,采样率发生器发送帧同步模式位FSGM=0),接收帧同步信号由发送帧同步信号驱动(接收帧同步模式位FSRM=0)。 根据如图3所示的内部连接图中时钟和同步信号流程分析,McBSP内部时钟信号(Internal CLKX、Internal CLKR)、帧同步信号(Internal FSX、Internal FSR)与MCP2510的时钟信号、片选信号同步产生与停止。McBSP内部发送帧同步信号Internal FSX是从低电平跳到高电平,而与之相连的MCP2510片选信号是高电平跳到低电平有效,相位相反,故McBSP内部寄存器的发送帧同步信号极性位FSXP=1,而McBSP内部帧同步信号Internal FSR与Internal FSX必须一致,故Internal FSR也必须和MCP2510片选信号反相,接收帧同步信号极性位FSRP=1。 图3 DSP McBSP 内部逻辑图 McBSP在内部发送时钟Internal CLKX的上升沿发送数据,而在内部接收时钟Internal CLKR的下降沿接收数据。反之,MCP2510在外部时钟CLK的上升沿接收数据,在外部时钟CLK的下降沿发送数据。根据前面对时钟与帧同步信号的分析可知:Internal CLKX、Internal CLKR与CLK为同一时钟,要保证可靠收发数据,必须配置发送时钟极性位CLKXP=1(Internal CLKX 与 CLKX反相)和接收时钟极性位CLKRP=1(Internal CLKR 与 CLKR反相)。这样,一方在上升沿发送,另一方在下降沿接收,通信可靠;否则双方在同一时钟的同一边沿收发数据,不能保证可靠通信。 3 通信软件流程设计 DSP通过McBSP与MCP2510的SPI接口传送数据。MCP2510的发送寄存器作为发送缓冲区的映射寄存器,DSP通过访问发送寄存器将数据传送到发送缓冲区。MCP2510有6个过滤器,CAN总线上通过接收过滤器过滤的数据首先被放到接收缓冲区中。接收寄存器作为接受缓冲区的映射寄存器,DSP通过访问接收寄存器来接受缓冲区中的数据。 图4 CAN发送子程序框图 DSP与MCP2510之间的通信过程分两步:① 按照以上分析得出的结论对McBSP的控制寄存器配置,发送过程为:将数据写入McBSP的发送寄存器DXR,然后通过发送移位寄存器XSR将数据经引脚BDX移出发送,接收过程为:通过McBSP引脚BDR接收的数据移入接收移位寄存器RSR,并复制这些数据到接收缓冲寄存器RBR,然后再复制到接受寄存器DRR,最后由DSP读入。② McBSP与MCP2510之间的通信按照McBSP内部配置好的时钟、帧同步信号交换数据。 为了提高通信效率,DSP发送采取主动发送方式,由DSP的HD口(配置为IO口)和MCP2510的TXRTS端相连,以选择发送缓冲单元,发送流程如图4所示;而接收采取中断方式,一旦MCP2510接收缓冲器满,则发中断信号给DSP,通知DSP读取数据,接收流程如图5所示。 图5 CAN接收中断子程序框图 4 结语 本文针对CAN总线短字节通信实时性好、可靠性高的特点,分析了CAN总线在数字保护系统中的应用可行性,给出了DSP的McBSP与CAN控制器接口的硬件配置方案和软件设计流程。在数字保护系统中实际通信试验所得到的数据证明CAN通信方案高效可靠,能够满足数字继电保护对实时通信的要求,充分发挥了CAN总线的优点。 本文作者创新点:针对CAN总线的特点论述了数字继电保护中CAN总线应用的可行性,详细分析了TMS320VC54X DSP的高速、双向、多通道带缓冲串行接口McBSP的内部时钟和同步信号流程,由此得出McBSP与CAN控制器接口的主从方式选择,时钟信号、帧同步信号的产生,数据收发的沿边选择,时序配合等寄存器关键位的配置。 |