微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线技术在功率因素动态补偿系统中的应用

CAN总线技术在功率因素动态补偿系统中的应用

时间:06-14 来源:互联网 点击:

这七个子程序,可以完成CAN总线通讯软件的大部分工作,极大地降低了开发人员的工作难度,减小了工作量,缩短了开发周期。

5. 控制系统通讯的软件实现

  因为CAN控制器发送一个数据帧需要的时间是微秒级,补偿系统控制周期的时序是毫秒级(20毫秒),而上位机中断频率最高不过几秒,因此,每个智能节点的微处理器在外部中断服务程序中接受上位机发来的信息,在主程序内不断地向上位机传输数据信息,根据CAN协议ID标识符越低其优先权越高,所以通过定义不同的ID标识符使上位机比智能节点优先发送的数据。其主程序和外部中断服务程序流程图分别如图3、图4所示。

  通过反复调试,已把通信部分的程序做成了模块,在实际系统中的应用良好。下面给出通信模块程序的部分代码(采用C96高级语言编写),

  main()

  {

  ……

  *CR=0x001b; /*开始复位模式,开放接收、出错、超载中断,并置位

  *ACR=0x02; /*初始化接受代码寄存器

  *AMR=0xfd; /*初始化接受屏蔽寄存器

  *BTR0=0x00;

  *BTR1=0x14; /*确定波特率、同步跳转宽度、位周期长度、采样数目

  *OCR=0xaa; /*选择输出方式

  *CR=0x001a; /*初始化结束,SJA1000返回其工作模式

  ……

  cansend:

  temp2=*SR0x04; /*查询状态寄存器

  if(temp2==0x00)goto cansend;

  sebuffer=(unsigned char*)0x800c;

  *seid=0; /*发送数据的目的地

  *sedlc=i1; /*发送数据的数目

  for(i1=0;i16;i1++)

  {

  *sebuffer=a[i1];

  sebuffer++;

  } /*送数据至发送缓冲区

  *CMR=0x05; /*发送数据

  wait1:

  temp2=*SR0x00;

  if(temp2==0x08)goto wait1 /*发送完毕否

  callms( ); /*延时

  goto cansend; /*继续发送数据

  }

6. 结 论

  CAN通讯系统经过充分的调试在功率因素动态补偿系统的控制和监测中取得实际的应用。实践证明,CAN现场总线监控系统具有全数字化通讯、抗干扰能力强、实时性能好、测量及控制精度高的优点,所以它必将随自动化监控系统的发展而被广泛采用。

参考文献

  [1] 邬宽明. CAN总线原理和应用系统设计. 北京:北京航空航天大学出版社,1996.

  [2] 阳宪惠. 现场总线技术及其应用. 北京:清华大学出版社,1999.

  [3] 蔡月明. 基于CAN总线的工业控制系统. 中国仪器仪表, 2001, 第5期:16-18.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top