CAN现场总线技术的数字交流伺服系统研究
现场总线技术解决了传统总线插板I/O模块多,干扰严重、系统软件编写复杂、系统硬件兼容性差等问题。大大减轻了现场信号连接的繁琐与费用,提高了信号传输的精度与灵活性,给安装、调试和维护带来诸多方便,为现场用户带来巨大的经济效益,代表着自动化领域发展的一个重要方向[1]。
CAN总线技术
随着工业现场控制和自动化技术的不断进步,传统的通信模式已不能满足现代工程需要。CAN(ControllerAreaNetwork)总线是80年代初德国Bosch公司为解决现代汽车中众多控制与测试仪器间数据交换而开发的一种串行数据通信协议,是一种性能先进、价格低廉、保密性好的现场总线(FieldBus)技术,能够有效支持分布式控制或实时控制串行通信网络[2]。CAN总线中各节点都有权利向其它节点发送信息。通信介质可以是双绞线、同轴电缆或光纤,主要技术特点有:
是一种多主总线
网络上任一个节点均可在任意时刻主动向网络上其它节点发送信息,多主站依据优先机制进行总线访问;
非破坏性基于优先权总线仲裁技术
采用非破坏性基于优先权总线仲裁技术结构,大大节省总线冲突仲裁时间,在重负荷下表现出良好性能;
具有多种传送数据功能
具有点对点,一点对多点(成组)及全局广播传送数据功能;
节点数目多
直接通讯距离最远可达10km(传输速率为5kbps),最高通讯速率可达1Mbps(传输距离为40m);
可靠性高
数据链路层采用短帧结构,实时性高,纠错效果好,每帧信息都有CRC校验及其它校验措施,数据出错率低,可靠性高;
故障自动判别
发送期间若丢失仲裁或因出错而遭破坏的帧可自动重发,暂时错误和永久性故障节点判别及故障节点自动脱离CAN总线。
CAN总线系统由CAN网络节点、转发器节点和上位机构成。总线技术遵循现场总线协议,将分布在不同位置,用途各异的测量仪表、控制设备互联成网,并可接入Intranet和Internet网络。现场总线技术的关键标志是它能支持双向多变量、总线式全数字通讯。传统4~20mA模拟直流回路只能在一根两芯电缆中单向传输一个参数,随着系统结构的日益复杂和信息量的增加,4~20mA电流环传输成为制约信息传输的瓶颈,所以现场总线替代 4~20mA模拟信号标准已成为控制系统发展的必然趋势。
基于CAN总线技术的多机伺服系统
CAN总线控制网络结构
基于CAN总线技术的多电机伺服控制系统网络结构如图1所示,系统由上位机、CAN总线、现场伺服单元节点组成。数控系统上位机通过CAN总线控制网络节点任一伺服单元,数字伺服与数控系统之间数据传输可分为实时性数据信息和非实时性数据信息两类。实时性数据指参与控制器实时位置、速度、转矩等控制指令和反馈信息,传输速度要求较高。非实时性数据主要是指控制器参数设置、功能设定、诊断功能、伺服状态与报警等信息,传输速度相对较低。
CAN接口适配器是上位机与伺服单元数据传输和控制的桥梁,伺服单元采集现场的数据通过总线传给上位机,实现实时监视和控制。
数字伺服系统网络硬件与软件设计
CAN总线接口硬件电路
数控系统上位机采用研华公司PCL-841卡实现CAN总线通讯,伺服驱动系统采用TI公司TMS320LF2407A片内CAN控制器[3]。该控制器全面兼容CAN2.0B协议,具有标准和扩展标识符,有数据帧和远程帧,2407A片内CAN总线控制器与CAN物理总线接口采用82C250驱动器芯片。82C250采用阻抗为120Ω双绞线作通讯介质,信号采用差动接收和发送模式,抗干扰能力强,最高通讯速率可达1Mbps。有三种不同工作方式:高速、斜率控制和待机。本系统采用斜率控制,以降低射频干扰。为了增加抗干扰能力,保护CAN控制器,在TMS320LF2407A与82C250之间加高速光电隔离器,光电隔离器采用HP公司HCPL-2630芯片,速度为10MHz,电路如图2所示。
CAN总线网络控制软件包括网络应用层协议、节点功能流程和编码等的配置和设计[4]。
邮箱初始化配置
包括对管脚的配置、波特率的设定、邮箱的收发配置等。首先,配置MCRB寄存器,将IOPC6和IOPC7引脚配置成特殊功能,即CANRX和 CANTX;其次,配置MDER寄存器,即配置邮箱使能和邮箱2~3功能;最后,对屏蔽ID寄存器进行配置,可以屏蔽任意位ID,这种寄存器只对接收邮箱起作用。
;CAN邮箱初始化配置
CAN_INIT:
LDP#DP_PF2
LACLMCRB
;配置CAN引脚
OR#0C0H
;IOPC6,IOPC7配置为特殊功能:CANRX,CANTX
SACLMCRB
;CAN位定时器配置
LDP#DP_CAN
SPLK#0040H,MDER;MD2=1,MBX2为发送方式
SPLK#0FFFFH,CAN_IFR
;清全部CAN中断标志
SPLK#07FFFH,LAM1_H
;设置邮箱2、3屏蔽ID寄存器0
SPLK#0FFFFH,LAM1_L;则ID必须匹配
波特率设定
主要与3个寄存器有关,即SCSR1(系统控制和状态寄存器1)、BCR1(位配置寄存器1)和BCR2(位配置寄存器2)。配置前要确定波特率和晶振频率,当对位定时器进行配置时,CAN控制器必须处于复位模式下,即CCR=1。
SPLK#1000H,MCR;CCR=1改变配置请求
W_CCE:BITGSR,#0Bh;等待改变配置使能
BCNDW_CCE,NTC;当CCE=1时即可配置BCR2、BCR1寄存器
SPLK#01H,BCR2;波特率预分频寄存器
SPLK#0033H,BCR1;波特率设置为1M
LACLMCR
邮箱收发配置
在数据域改变前首先要禁用邮箱,然后置位数据域,改变请求。再设置邮箱ID和信息控制寄存器。若是发送邮箱,则在数据域存放预发送数据,若是接收邮箱,则清空接收缓存。
;写CAN邮箱内容前寄存器设置
LDP#DP_CAN
SPLK#0040H,MDER;不使能邮箱,邮箱2设为接收方式
SPLK#0103H,MCR;CDR=1,数据区改变请求
;写CAN邮箱内容
CAN现场总线技术数字交流伺服系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)