基于CAN总线的光伏跟踪支架控制系统设计论文_吴伟宾,石维

上海太阳能科技有限公司 上海 201100

摘要:应用CAN总线设计了一种开放式、模块化的光伏跟踪支架控制系统。详细介绍了控制系统的框架、CAN总线应用层协议和基于AT89S52的智能节点的软、硬件设计方法。应用于光伏跟踪支架的控制系统,获得了成功。

关键词:CAN总线,控制系统,光伏跟踪系统

1 前言

基于现场总线的分布式控制系统是工业控制系统的一个新的发展方向,也是当前的研究热点。[1]本文以光伏跟踪支架为基础,采用CAN总线设计了一套开放式、模块化的控制系统,取得了成功。该系统采用Basic CAN模式,遵循CAN2.0A协议,可接入节点多达110个。

2 基于AT89S52的智能节点设计

出于设计灵活性和结构紧凑性的考虑,在此采用独立式控制器。即,采用AT89S52单片机作为CAN节点的控制核心,并用CAN总线控制器SJA1000扩展通信接口,再通过CAN总线驱动器TJA1040连接到CAN 总线上(见图1)。

2.1 硬件设计

图1 基于AT89S52的智能节点电路原理图

MODE端接5V电源高电平,使SJA1000采用Intel二分频模式。由于SJA1000有地址锁存功能,故其地址/数据端直接和AT89S52的P0口相连。控制信号线/WR、/RD、ALE亦直接和单片机对应引脚相连。另外,/INT端口则与/INT0引脚直接相连,以便使用外部中断/INT0来激发响应接收数据中断子程序。

考虑到不同CAN节点对IO端口需求不同,所以在发送节点和接收节点3中,SJA1000片选线和单片机的P2.0直接相连,采用16位外部选址方式;而在接收节点1、2中,SJA1000片选端口则直接接地,使其处于时时选通状态,从而采用低8位外部选址方式,以释放出P2口,用于驱动控制电动机驱动模块。

为保证AT89S52和SJA1000之间时序的同步,采用SJA1000给单片机提供时钟信号。即:SJA1000的XTAL1、XTAL2端口接由12MHz石英晶振和30pF电容构成的定时反馈回路,再由CLKOUT端口给AT89S52提供时钟信号。

由参考文献:[2]可知,CLKOUT信号的频率可通过时钟分频寄存器改变,即:

fCLKOUT=fXTAL/时钟分频因子(1,2,4,6,8,10,12,14)

SJA1000采用Intel模式,故取时钟分频因子=2,CLKOUT所提供的频率为6MHz。

2.2 软件设计

2.2.1节点的初始化

考虑到系统发送节点只发送不接收,而接收节点只接收不发送,故在发送节点的初始化中,只需设置总线时分寄存器0和1、输出控制寄存器和时钟分频寄存器;而在接收节点的初始化中,不仅要设置该四个寄存器,另外还要设置接收代码寄存器和接收屏蔽寄存器,不同的接收节点这两个寄存器的设置值应该不同,以便节点滤除不需要的指令。

进入复位状态后,相关寄存器需进行如下设置:

总线时分寄存器0设置值为00H。用于定义波特率预设值(BRP)和同步跳转宽度(SJW)。其中,波特率预设值是可编程的,可决定位时序。同步跳转宽度则用于定义每一位周期可被重新同步缩短或延长的时钟周期的最大数目,因为任何总线控制器必须在当前传送的相关信号边沿重新同步,以补偿不同总线控制器时钟振荡器之间的相位偏移。

由参考文献:[2],可分别计数出CAN系统时钟和同步跳转宽度,即:

总线时分寄存器1设置值为1CH。用于定义每个位周期的长度、采样点的位置和在每个采样点的采样数目。

其中,SAM是采样位,由于这里采用高速CAN总线,故设置SAM=0。由参考文献:[3],可分别计数出TSEG1和TSEG2,用于确定每位的时钟周期数目和采样点位置,即:

故,系统CAN总线位速率tB=tSCL+tTSEG1+tTSEG2=375kbps。

输出控制寄存器设置值为1AH。该寄存器可以实现由软件控制不同输出驱动配置的建立。

在此采用正常输出模式,故设置OCMODE1=1、OCMODE0=0。

时钟分频寄存器设置值为40H。该寄存器不仅可以控制CLKOUT的频率或屏蔽该引脚,还可以控制TX1上的专用接收中断脉冲、接收比较通道和Basic CAN模式与Peli CAN工作模式的选择。

其中,BIT4位不能被写,其值总为0。而系统要求SJA1000工作于Basic CAN工作模式,故设置CDR.7=0。为了激活RX0引脚,因此设置CBP=1。RXINTEN位是用于允许TX1输出,在此无需用到TX1引脚,所以将RXINTEN位置“0”。如上所述,系统采用SJA1000给单片机提供时钟信号,故CDR.3位要置“0”。另外,SJA1000采用Intel 模式,所需输出的频率应为fosc/2,故设置CD.0、CD.1、CD.2均为零。

接收代码寄存器和接收屏蔽寄存器则需针对各个接收节点来设置。

2.2.2 报文的发送

CAN控制器发送报文时,发送报文程序把数据存储区中待发送的数据取出,加上标识符等信息,组成帧的形式,等发送缓冲区清空后,再将帧发送到CAN控制器的发送缓冲区。在接收到主机的发送请求后,发送程序启动发送命令,则将帧发送出去。帧从CAN控制器发送到总线是由CAN控制器自动完成的。

由于系统无需用到远程发送,故设远程发送请求位(RTR)为低。一般所需发送的指令只有1个字节,故由下列等式计算得出数据长度(DLC.3~DLC.0)均为零。

2.2.3 报文的接收

接收报文时,帧从CAN总线传到CAN控制器的接收缓冲区,该过程也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取指令信息,并将其存储在数据存储区RDATA中。由于接收节点中单片机不仅要接收指令,还要控制驱动电动机模块,为了提供单片机的运行效率,故采用中断服务子程序来接收报文。

其中,当单片机读中断寄存器时,接收中断位便自动清零,从而保证了接收中断下一次的正常相应;接收缓冲器的释放则是通过软件设置命令寄存器中的释放接收缓冲器位为高来实现的。

3 结论

通过相关实验验证,该控制系统不仅具有稳定性好、可靠性高、实时性强、性价比较高等优点,还具有开放式、模块化等特点,扩充、改型容易,可适用于不同场景的控制需要。

参考文献:

[1]朱学军.分布式控制系统发展综述[J].机床电器,2004,1.

[2]刘泽祥.现场总线技术[M].北京:机械工业出版社,2005.253-284.

[3]邬宽明.现场总线技术应用选遍1(上)[M].北京:北京航空航天大学出版社,2003.292-370.

[4]刘必广.基于CAN总线的轮式移动机器人通讯设计[J].福建电脑,2018,11.

论文作者:吴伟宾,石维

论文发表刊物:《基层建设》2019年第12期

论文发表时间:2019/7/22

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于CAN总线的光伏跟踪支架控制系统设计论文_吴伟宾,石维
下载Doc文档

猜你喜欢