CAN.docx
- 文档编号:29483621
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:24
- 大小:196.32KB
CAN.docx
《CAN.docx》由会员分享,可在线阅读,更多相关《CAN.docx(24页珍藏版)》请在冰豆网上搜索。
CAN
基于CAN总线的分布式电机控制
作者:
王超于双龙石也军薛永培陈龙飞
目录
基于CAN总线的分布式电机控制1
目录2
摘要3
第一章系统描述3
1.1原理描述3
1、系统结构3
2、系统调速方案4
1.2工作描述5
第二章电路与程序设计5
2.1CAN-光藕电路5
2.2电机调速板电路5
2.3程序设计6
1、CAN总线初始化程序6
2、软件设计7
3、下位机软件设计8
4、部分主程序的内容如下所述是:
9
第三章测试方案与测试结果10
3.1调试器材10
3.1测试步骤10
1、硬件电路制作完成并调试好后,便可将程序编译好下载到单片机上运行,并根据实际情况记录波形。
10
2、系统调试完后应对测量误差和重复一致性行多次实验分析,不断优化系统使其达到实际使用的测量要求。
10
3.2测试结果10
表1测试结果10
结束语10
参考文献10
附录一:
CAN-光藕电路11
附录二:
电机调速12
附录三:
部分程序:
14
摘要
CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。
当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。
提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。
于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。
1993年,CAN已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。
CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。
当信号传输距离达到10Km时,CAN仍可提供高达50Kbit/s的数据传输速率。
由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
本课题主要是通过CAN总线完成对分布式电机的控制,通过编程实现对每个电机的启动、停止、加速、减速,以及实现点对点、点对多点的控制。
关键字CAN总线分布式电机控制
第一章系统描述
1.1原理描述
1、系统结构
本系统为一个基于分布式现场总线CAN总线进行通讯,以单片机为微控制器的电机控制系统。
为一个具有单片机的简单廉价性和CAN总线通信的高性能和高可靠性的优点结合起来的分布式电机控制系统。
系统设计主体分为两部分:
其一执行部件:
由上位机控制电机动作;其二为网络通讯:
CAN实现分布式监控通信。
!
电
编
码
盘
图1系统总体方案图
该系统结构可分为三个层次:
第一层为PC机与CAN总线接口层。
采用CAN—RS232转换器实现Pc机与CAN通讯总线之间的可视化操作控制;第二层为CAN总线与STC89C52RD
接口。
该层实现CAN总线和STC89C52RD控制板的CAN控制器的物理接口和通信;第三层为步进电动机细分驱动接口,完成对步进电动机的实际控制动作。
其中步进电动机细分驱动控制通过LM324/LM568和STC89C52RD单片机内的两个l2位DAC转换器来配合实现。
利用光电编码盘检测步进电动机的转角信号,将位置信息检测反馈给STC89C52RD,可以实现对步进电动机转角位置信息的精确控制。
系统总体结构如上图1所示。
由于CAN总线具有多主站运行和分散仲裁以及广播通信的特点,其不分主次节点可在任意时刻主动向网络上其它节点发送信息,能使系统在信息传输的安全性、准确性、实时性方面达到较高的要求。
PC机作为该系统的上位机,有效的利用PC机计算能力强、容量大、人机界面良好的优点。
PC-CAN是具有高性能价格比的智能CAN总线通讯适配卡,它使PC机方便的连接到CAN总线上,实现CAN总线与主机PC的高速数据交换。
PC-CAN上自带光电隔离,保护PC机避免由于地环流的损坏,增强系统在恶劣环境中使用的可靠性。
2、系统调速方案
如下图2所示,采用PC机作基本速度给定,通过实时数据采集与处理,在线监视各工位的运行状态,并通过现场总线将给定线速度值由监控站传输到系统控制器(PLC)和主变频器11,主变频器11辅助速度由接在主令电机的旋转变压器给出。
变频器12的主速度给定由变频器11通过CAN总线发送,辅助速度由激光位移传感器给定。
变频器13的主速度给定由变频器12通过CAN总线发送,辅助速度由激光位移传感器给定。
变频器14的主速度给定由变频器13通过CAN总线发送,辅助速度由激光位移传感器给定。
通过速度依次传递,实现各段传送带速度平稳跟随。
从而实现生产线运行速度的实时调整和状态监控。
传送带运行速度从35~120m/s,并在此范围内实现无级调速。
图2系统调速方案
1.2工作描述
1、一个CAN总线控制系统,CAN总线上挂有多个电机控制板,分别控制多个电机。
2、控制每个电机的停开快慢和每个电机组的联动。
3、霍尔测速并通过CAN总线反馈给主控系统,保证控制的可靠性。
4、用LABVIEW或vb或vc编写PC端控制界面,PC控制台于CAN主控系统用RS232连接。
通过PC端控制台实现对分布式电机的控制。
同时CAN主控系统亦可实现对每点电机的控制。
第二章电路与程序设计
2.1CAN-光藕电路
CAN-光藕电路主要作用是用于CAN总线的生成,它主要由串行通信模块、单片机+晶振+复位模块、AD转换模块、供电模块及液晶显示模块等几部分组成,具体原理图如附录一所示
2.2电机调速板电路
电机调速板电路主要由基准三角波产生电路、PWM电压输出电路、DA转换电路及电源电路等几部分组成。
下图4为DA转换电路及电源电路的原理图。
具体原理图如附录二所示。
图4DA转换与电源模块
2.3程序设计
1、CAN总线初始化程序
CAN总线节点要有效,实时的完成任务,软件的设计是关键,也是难点。
软件的设计主要包括变频器内部模块的信号流程设计和PC机中CAN通讯和控制软件的设计两部分。
下图5为CAN总线初始化方框图。
图5CAN总线初始化方框图
其中中断接收程序执行过程如下:
系统中发送报文采用查询方式,传感器节点在收到主控机的数据请求命令后发送数据,发送模块首先进行状态查询,判定总线是否空闲,如空闲,则将目的节点地址写入发送标志符寄存器,数据写入发送缓冲器,完成一帧CAN信息发送。
CAN信息格式分为信息和数据两部分,头两个字节是信息部分,其前11位为标志符,标志符的前八位用作接收判断,应包含本信息包的目的节点地址,然后是一位RTR位(0为数据帧,1为远程帧,本例使用数据帧),最后是四位的DLC。
其余八个字节为是数据部分,存有实际要发送的数据。
本例中只用到前两个数据,第一个表示传感器地址,第二个字节表示选择传感器里的两路摄像机中的哪一路采集图像。
2、软件设计
本系统的软件设计是完成基于CAN总线的分布式控制系统的关键所在。
CAN总线的多机通讯由软件编程实现数据的接受和发送。
在两块LF2407-A板上实现两节点通讯:
一块为本地节点,接受远程节点的请求数据帧,并发送数据帧;另一块为远程节点,发送一个请求帧以请求远程节点发送数据。
主要分为:
1、电机控制系统整体---实现系统初始化,并生成电机控制频率信号,以中断方式实现电机控制字的修改,延时子程序实现电机的转速控制,初始化CAN模块。
2、CAN发送一个远程帧请求-----初始化CAN请求帧,令CAN邮箱3为发送请求帧邮箱,CAN邮箱0为接收数据帧邮箱。
邮箱3发送一个请求帧请求电机控制字数据,当查询到接收报文标志位为1时(RMP=1),邮箱0接收数据。
3、CAN初始化一个自动回答远程帧请求----初始化CAN自动回答远程帧请求,令CAN邮箱3为发送邮箱。
当接受到一个远程请求时,发送一帧数据。
以下以CAN初始化一个自动回答远程帧请求为例给出软件程序流程图,见图6。
图6CAN初始化一个自动回答远程帧请求程序流程图
3、下位机软件设计
下位机软件设计的主要任务是向CAN控制器转发来自PC机的命令,并由CAN控制器进一步转发到CAN节点来控制步进电动机的运转,主要包含CAN通讯部分和步进电动机的控制部分。
CAN通讯部分的软件设计主要分为CAN初始化、数据发送、数据接收三部分。
初始化程序主要是通过对CAN控制器SJA1000控制段中的寄存器写入控制字进行初始化,从而确定SJA1000的工作方式。
系统上电后首先对SJA1000进行初始化,配置SJAIO00的控制段寄存器内容以设定通信参数(如模式、位速率、验收码、屏蔽码、字段长、总线定时、波特率、输出特性等)。
初始化完成后SJA1000按设定值控制CAN总线上的通信。
发送程序是把需要发送的信息帧送到SJA1000的发送缓冲区,并启动发送命令,信息从SJA1000的发送缓冲区到CAN总线的过程则由SJA1000自动完成。
接收程序是从SJAIO00的接收缓冲区读取要接收的信息,释放接收缓冲区,并对接收的信息进行处理;信息从CAN总线到SJA1000接收缓冲区也是SJA1000控制器自动完成的,其程序流程如图7所示。
图7F位机数据发送接收程序流程图
步进电动机的控制部分是单片机C8051FO20接受到上位机发送的指令,按照指令控制步进电动机。
本控制系统软件设计中,脉冲信号产生使用定时器0及定时器1,通过定时器0和定时器1的配合来实现C8051F20中的DAC接口电路产生与L297相序一致的细分参考电压的变化阶梯。
其中,定时器0用于产生控制转速的脉冲信号,即细分信号周期。
步进电动机所需的细分脉冲由定时器1产生,脉冲频率为F,且有F。
=NFo(N为细分数)。
每过一个细分信号周期,单片机输出到L297端口的参考电压顺次发生变化,使通过线圈的电流逐渐增大或减少。
在C8051F020内部集成了两个l2位高速DAC转换器,省去了外接DAC的不便。
这样,不仅实现了与I297时序一致的细分参考电压,而且通过在ROM中预先固化好参考电压的数组值,需要在适当时刻取出相应细分代码,同时要求在每一次电机相序变化时,刚好完成一次细分周期输出,可以实现高细分数的可变细分。
其程序流程如图8所示。
图8步进电动机细分驱动流程图
4、部分主程序的内容如下所述是:
▪103voidmain(void)
▪104{
▪1051ucharj;
▪1061Sysinit();
▪1071CanInit();
▪1081init_lcd();
▪1091if(CanTest())led=0;
▪1101
▪1111while
(1)
▪1121{
▪1132
▪1142printf("*********************************\n");
C51COMPILERV8.05aMAIN
▪1152printf("请输入速度+ID:
");
▪1162EA=0;
▪1172zifu(0x80,"TID:
");
▪1182EA=1;
▪1192while
(1)
▪1202{
▪1213
▪1223//wtd=0x36;
▪1233bCAN_RecSuccFlag=0;
▪1243
▪1253if(RI==1)
▪1263{
▪1274RI=0;
▪1284gd[j]=SBUF;//输入的数据缓存
▪1294EA=0;
▪1314write_data(gd[j]);//向液晶写数据
1324EA=1;
▪1334j++;
▪1344if(j==4)
▪1354{
▪1365j=0;
▪1375if(send_id())
▪1385printf("\n");
▪1395break;
▪1405}
▪1414}
▪1423}
▪1432printf("返回速度值:
")
第三章测试方案与测试结果
3.1调试器材
包括2个5V稳压电源、主控机3个、从机板3个、两个液晶显示1602模块、PC机,1个24V电源,1个12V电源,电机3台。
3.1测试步骤
1、硬件电路制作完成并调试好后,便可将程序编译好下载到单片机上运行,并根据实际情况记录,如下图:
2、系统调试完后应对测量误差和重复一致性行多次实验分析,不断优化系统使其达到实使用的测量要求。
3.2测试结果
PC机输入:
速度返回值:
:
2110
44
2150
30
2180
4
主1602:
速度返回值:
:
2110
44
2150
30
2180
4
从1602:
速度返回值:
:
2110
44
2150
30
2180
4
表1测试结果
结束语
本文研究了基于CAN总线的分布式电机控制系统的组成和实现。
本系统是针对步进电动机的分布式监控系统而设计的,由于CAN总线具有多主站运行和分散仲裁以及广播通信的特点,CAN总线不分主次节点可在任意时刻主动向网络上其它节点发送信息,实现数据的可靠通信。
此外,由于采用细分驱动技术,控制精度高。
因此,CAN总线与高速单片机控制系统的技术融合将是分布式控制系统的发展趋势之一。
其技术完全可以移植到数控机床、柔性制造系统等其它需要远程监控的场合。
参考文献
1:
河南工业大学李智强,王艳芳:
《基于CAN总线的步进电动机分布式控制系统设计》;
2:
摘自网络:
《SJA1000中文资料》、《CAN基础知识》;
3:
!
饶运涛,皱继军,郑勇芸8现场总线&01原理与应用技术
4:
北京:
北京航空航天大学出版社,*,,T
5:
!
广州周立功单片机发展有限公司8非智能$&9;<*,&01总线
适配卡使用手册[2]8广州周立功单片机有限公司,*,,T
6:
单片几C语言应用100例,
《电子工业出版社》。
7:
51单片机C程序设计,
《人民邮电出版社》。
8:
邬宽明.CAN总线原理和应用系统设计[M].北京:
北京航空航天大学出版社。
附录一:
CAN-光藕电路
附录二:
电机调速
附录三:
部分程序:
#include"reg52.h"
#include"SJA1000.c"
#include"ds18b20.h"
#include"lcd.c"
#include"PCF8591+LCD1602.h"
sfrwtd=0xe1;
sbitkey=P3^5;
sbitled=P2^3;
bitfalg;
uinttemp;
uintcishu=0;
uintshijiancishu=0;
ucharID=0X01;//定义ID
ucharidataa[7]=0;
voiddelay11(uintn)//1ms
{
uchari;
while(n--)
for(i=0;i<110;i++);
}
voidSysinit(void)
{
TMOD=0x21;//定时器1定时方式2
TH0=0xdc;
TL0=0x00;//11.0592M10MS
ET0=1;
TR0=1;
IT0=1;//外部中断0边沿触发
EX1=1;//开外部中断1
EA=1;
}
voidXINT0()interrupt0
{
cishu++;
}
voidT1_INT()interrupt3
{
TH1=0x4c;
TL1=0x00;//11.0592M50MS
shijiancishu++;
if(shijiancishu>=200)//10秒
{
EX0=0;
TR1=0;
cishu=0;//次数
shijiancishu=0;//时间
}
}
voidT0_INT()interrupt1
{
TH0=0xdc;
TL0=0x00;//11.0592M10MS
}
voiddis_temp()
{
a[0]=0x04;//控制字
a[1]=ID;//ID
a[2]=0x00;
//temp=read_tt();
a[3]=0;
a[4]=cishu/100;//十位
a[5]=cishu%100/10;//个位
a[6]=cishu%10;//小数位
}
voidmain(void)
{
Sysinit();
CanInit();
init_lcd();
if(CanTest())led=0;
iicInit();//I2C总线初始化
DAC_PCF8591(0x40,sudu);//D/A输出
if(SystemError==1)//有错误,重新来
{
iicInit();//I2C总线初始化
DAC_PCF8591(0x40,sudu);//D/A输出
}
while
(1)
{
wtd=0x36;
EA=0;
dis_temp();
zifu(0x80,"ID:
");//0x80第一行地址
write_data(48+a[1]);//显示IDID:
1
//write_data(a[1]+48);
//write_data(48);
//write_data(48);
zifu(0xc0,"sudu:
");
write_data(a[3]+48);
write_data(a[4]+48);
//write_data('.');
write_data(a[5]+48);
EA=1;
if(bCAN_RecSuccFlag==1)
{
bCAN_RecSuccFlag=0;
//if(CAN_ReBuf[4]==a[1]&&CAN_ReBuf[3]==0)//&&CAN_ReBuf[6]==0&&CAN_ReBuf[5]==0)
if(CAN_ReBuf[3]==ID)//比较ID
{falg=1;
zifu(0x88,"D:
");
write_data(CAN_ReBuf[3]+48);
write_data(CAN_ReBuf[4]+48);
write_data(CAN_ReBuf[5]+48);
write_data(CAN_ReBuf[6]+48);
//write_data(CAN_ReBuf[7]+48);
//write_data(CAN_ReBuf[8]+48);
//write_data(CAN_ReBuf[9]+48);
//sudu=CAN_ReBuf[7]*100+CAN_ReBuf[8]*10+CAN_ReBuf[9];
sudu=CAN_ReBuf[4]*100+CAN_ReBuf[5]*10+CAN_ReBuf[6];
iicInit();//I2C总线初始化
DAC_PCF8591(0x40,sudu);//D/A输出
EX0=1;
TR1=1;
cishu=0;//次数
shijiancishu=0;//时间
if(SystemError==1)//有错误,重新来
{
iicInit();//I2C总线初始化
DAC_PCF8591(0x40,sudu);//D/A输出
EX0=1;
TR1=1;
cishu=0;//次数
shijiancishu=0;//时间
}
}
}
if(falg==1)
{
if(CanTransmitMessage(&a[0]))
falg=0;
}
//if(CAN_ReBuf[4]==a[1]&&CAN_ReBuf[3]==0)//&&CAN_ReBuf[6]==0&&CAN_ReBuf[5]==0)
if(CAN_ReBuf[3]==ID)
{
delay11(1000);
falg=1;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN