关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于CAN总线的小水电多功能自动化装置的研发

基于CAN总线的小水电多功能自动化装置的研发

作者: 时间:2009-11-09 来源:网络 收藏

(1) 模块的初始化
控制器运行时,首先必须对MS模块初始化,对它的一些内部寄存器进行设置,CAN模块的初始化流程图如图3所示。

首先使MSCAN进入软件复位状态,因为只有这样才可以对MSCAN设置有关的寄存器进行写入,此时,MSCAN会退出所有的发送和接收操作,并失去同步。所以当MSCAN设置完相关寄存器并退出软件复位状态后,要判断MSCAN与是否同步,只有完成同步,MSCAN才能正常的接收发送数据帧。
(2) CAN模块的数据接收
CAN接收数据帧时采用中断机制,由于MSCAN初始化时设置接收中断允许寄存器,允许接收缓冲区满中断,即在接收缓冲区满时会触发一个MSCAN接收中断请求,CAN接收中断流程图如图4所示。在接收中断服务程序中,为了避免此时再发生中断,在接收数据帧之前设置中断允许寄存器,不允许接收缓冲区满中断,在接收数据帧之后,清除接收缓冲区满标志,并允许接收缓冲区满中断,便于下一次接收中断的处理。

本文引用地址:https://www.eepw.com.cn/article/163498.htm


(3) CAN模块的数据发送
CAN发送数据帧时也采用中断机制,但与接收中断不同的是,由于MSCAN初始化时设置发送器控制寄存器CANTCR,不允许发送缓冲区空中断,所以在发送数据帧时需要通过设置CANTCR允许发送缓冲区空中断,从而启动发送中断,进入发送中断服务程序, CAN发送中断流程图如图5所示。在中断服务程序中,设置CANTCR不允许发送缓冲区空中断,直到下一次启动发送中断。确定发送缓冲区为空时填写发送缓冲数据寄存器并清除发送缓冲区空标志,这样MSCAN才能开始发送数据。


3.3 内部各CPU模块的CAN通讯
内部各CPU模块CAN通讯的信息量很大,所以通讯协议使用CAN 2.0B扩展模式,报文标识符几乎不受限制,此时仲裁场的标识符有29位。
在CAN的规范中,只定义了数据帧的结构,而没有定义有关发送和接收的结构信息,所以在编写通讯程序时,首先需要给数据帧的不同位赋以特定的含义,其中包含数据传输所需要的所有信息,包括传输源地址、目标地址、帧类型、传输字节数、传输信息体等等。由于CAN协议规定,每帧最多传送8个字节的数据,所以,为了尽可能使8个字节中的数据都为传输信息体,较好的解决办法就是将其他的信息包含在29位标识符中。本设计中,CAN通讯的数据帧格式定义如表1所示。


其中,前4个字节是扩展数据帧的仲裁场和控制场,后8个字节是数据场。
表1在设计中:
PRI:优先级。1为低优先级,0为高优先级,剩余的优先级由源地址决定,低地址优先级高,该功能可有效支持紧急信息传送如报警等。
Source Address:发送数据的源地址。
Type:帧类型,包括单帧、多帧、点对点传送、广播传送。
SRR:在数据帧中,SRR必须为“显性”电平,而在远程帧中,SRR必须为“隐性”电平。
IDE:属于仲裁场,为“隐性”电平。
DLC:表示要发送的字节数,等于字节数减1。由于每帧最多发送8个字节的数据,故DLC最大为7。
Data index:索引字节。单帧没有索引字节,所以该字节为空;多帧数据时Data index表示发送数据帧的帧序号。
Destination Address:发送数据的目标地址。
RTR:定义本帧信息为数据帧还是远程数据帧请求位。
Data length (L), Data length (H):多帧信息包的长度,只有在传输多帧数据的第一帧时填充,其他帧不填充,而可以填充要传输的信息体。
6 bytes data:要传输的信息体。
遵循上述约定的CAN协议,各CPU模块之间的通讯快速可靠,抗干扰性强,传输波特率达到500kbps,达到了的性能指标要求。
4 小结
为了实现小型水电站提出的少人值班、无人值班的要求,提高水电站的水平,集发电机测控保护、励磁调节、同期并列、顺控、远程通讯、人机交互等于一体的组合智能是一个经济可行的技术方案,必将成为综合未来发展的趋势。此测控装置采用面向对象的分层分布式结构,各CPU模块采用CAN相连,各模块之间的数据交互快速可靠、抗干扰性强,在外观上这些功能模块都在一个机箱内,结构紧凑,便于安装使用。实际应用中,既可以在现场独立运行和操作,又可以在多机系统联合运行时根据需要配置上位机,构成水电站监控系统,具有非常广泛的应用前景。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭