CAN总线技术在智能化开关柜中的应用

[08-09 22:58:19]   来源:http://www.88dzw.com  电工基础知识   阅读:8647

文章摘要:或Motorala系列所提供的以总线连接方式进行操作的读写控制端口ALE,/WR,/RD,将这3根控制线与控制器的相应控制端口相连接,再将/CS端与地址线的其中一位相连接,从而可以用总线读写方式对SJA1000 进行控制。对于89C51系列的微控制器,可以用MOVX指令一次完成地址选通和数据传输的操作。 请登陆:高压开关网 浏览更多信息 在某些应用系统的设计中,由于没有多余地址线,则可以通过将ALE,/WR,/RD,/CS连接到控制器的空闲I/O口上。在此情况下,节点主控制器必须通过所连接的I/O口完成地址选通的控制操作,然后再进行与SJA1000 的数据交换。 在本文的设计中(如图2),

CAN总线技术在智能化开关柜中的应用,标签:电工基础,电工技术,http://www.88dzw.com
  或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 总线通信模块设计的难点和重点。 来源:http://hvsi 
  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个寄存器进行设置,可以唯一确定采样波特率和同步跳转宽度。需要明确的是系统内所有节点的通信波特率必须完全一致,同时必须满足距离与速率的关系。 

上一页  [1] [2] [3]  下一页


Tag:电工基础知识电工基础,电工技术电工基础知识