>
首页 » 技术文章 » 四通道位置控制的CAN总线节点设计与实现

四通道位置控制的CAN总线节点设计与实现

作者:■ 西北工业大学航天学院 陈雪峰 刘洋  时间:2005-04-27 00:45  来源:本站原创

摘 要:本文介绍了一种基于单片机系统的CAN总线接口系统,通过将CAN总线上的数字指令转换为模拟控制信号,送给已有的四路电动伺服模拟控制系统。该方案实现了四通道位置控制的CAN总线节点设计。
关键词:CAN总线;位置随动系统;D/A转换;多路模拟开关

概述
根据课题要求,并经充分考虑CAN总线数据通讯的特点、四个通道位置控制规律及实际工程的环境与条件之后,设计了一个CAN总线节点,并利用四个通道的控制信号来实施四路位置控制。该系统的结构关系如图1所示,根据该图可以把本文中要描述的系统划分为三个部分:CAN总线接口电路、单片机系统、D/A转换电路。CAN总线接口电路主要提供CAN总线物理层通讯协议所要求的电气连接,保证可靠通讯;单片机系统是本CAN总线节点的中枢,主要是控制和协调各部分的正常工作,并按算法计算形成四通道的控制信号;D/A转换电路则要把单片机所形成的四个通道的数字控制信号转化为四路模拟控制信号去驱动四路的电机控制系统,同时要保证系统允许的延时和信号的线性度,最终完成对四通道的位置控制。

硬件设计
CAN总线接口电路设计
完整的接口电路原理图如图2所示,该电路包含了CAN总线协议控制芯片SJA1000(与PCX82C200兼容)和CAN总线驱动芯片82C250以及它们各自的外围电路。在此只讨论实现过程中几个具体问题。
片选信号:总体方案设计中确定了本系统地址空间的分配,CAN总线接口电路占用了C000~DFFF。为了有效利用已有的逻辑芯片,采用线选法产生片选信号CanSelt。片选信号CanSelt低电平有效。
总线连接:由于SJA1000本身具有分时复用的8位地址数据总线,并且引脚3、引脚5以及引脚6分别对应单片机地址锁存信号ALE、读信号和写信号,因此可以直接与80C196KC单片机的地址数据总线、控制总线对应连接。
中断信号:当SJA1000进行总线通信,需要单片机参与处理时,就在引脚16产生一个中断信号。这些触发中断的事件包括总线上成功接收到有效数据帧、成功发送数据帧、CAN协议芯片被其它CAN节点唤醒、接收缓冲区超限以及总线状态出错等。引脚16平时维持高电平,中断时产生一个负跳变信号。由于80C196KC单片机的外部中断正跳变信号有效,所以SJA1000的中断信号要经过一个非门再送到单片机的外部中断引脚。但在实际电路中,无中断产生时,SJA1000的引脚16是观察不到高电平的,只能观察到0.7V~0.8V的电平信号。这是因为高电平被下级的非门导通拉低所致,不影响正常使用。
多路D/A转换通道电路设计
CAN总线是一种串行总线,总线上传输的信息是数字信号,而已有的电机控制系统是模拟控制系统,因此需要设计D/A转换电路来解决这一问题。在D/A转换接口设计中主要考虑的问题是D/A转换芯片的选择、数字量的码输入及模拟量的极性输出、参考电压电流源、模拟电量输出的调整与分配等。基于上述因素,本设计电路结构如图3所示。在该结构中采用同一个D/A转换芯片分时、分别对各路信号进行D/A转换,再由一个多路采样保持电路将转换结果分时提取,并送到各路模拟信号通道。
由于电机模拟控制系统的性能指标如下:
输入/输出关系:输入为±10V;对应电机输出齿轮轴转动为±250;位置控制精度:角度误差≤±0.10;
则0.1杂Φ男藕诺缪?:

又知D/A转换分辨率频亩ㄒ逦?

另外,双极性输出情况下,最高有效位MSB用作符号位,决定输出电压的极性。由以上则可得出,为了满足电机模拟控制系统精度要求的D/A器件所需位数为9位。但是在实际中电路器件或电源的误差是不可避免的,所以根据经验应选用12位D/A转换器件,以保证实际D/A转换的结果满足系统指标的要求。
在图3中,多路模拟开关与保持电路实际上构成的是一个采样保持器,该采样保持器的设计在本文所述的多路D/A转化电路设计中是至关重要的。采样保持器一般由模拟开关、存储元件(保持电容)和缓冲放大器组成,保持电容在实际应用中还起到了信号滤波的作用。如果在模拟开关之后不加保持电容或加得不当,都会在最终模拟输出的波形上出现尖峰脉冲。根据调试经验该保持电容取0.01mF时的效果较好。取得太小,则“毛刺”不能有效被去除,取得太大则影响D/A转换电路的速度。另外,当采样开关(多路模拟开关)断开后,保持电容进入信号电压保持状态。由于采样开关、保持电容、输出缓冲放大器都存在漏电流,所以会造成保持电容中电量的流失。如设保持电压U=10V,保持电容C取0.01mF,则可以计算出放电时间t=1s。可见,控制模拟开关的关断时间要大于20ms,小于1s。

软件设计
软件设计是围绕CAN总线通讯进行的,它包括CAN总线通讯初始化、CAN总线数据帧的定义和通讯中断服务程序设计。
CAN总线通讯初始化
在系统上电复位后,程序将完成下面两项工作:
1)根据硬件系统的连接方式和要求确定微处理器的设置。
2)在SJA1000复位后,需要设置与通信相关的参数:模式的选择、接收码寄存器、接收屏蔽寄存器和总线定时等。
在系统运行的过程中,也可以发出一个复位请求,根据实际情况重新确定系统的通信参数。初始化的流程图如图4所示。
另外,在调试的过程中确定出了一套CAN总线通信参数。决定CAN总线波形的寄存器有下面几个:CAN_TIMER1(总线定时器0)、CAN_TIMER2(总线定时器1)、CAN_OUT_CTRL(输出寄存器)。总线定时器0的内容决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值;总线定时器1的内容决定位周期宽度、采样点位置和在每个采样点获取采样点的数目。经过实际调试,采用如下设置参数:
ldbT1,#81h
;设置总线定时器0
stbT1,CAN_TIMER1
ldbT1,#0c1h
;设置总线定时器1
stbT1,CAN_TIMER2
ldbT1,#0aah
;设置输出寄存器
stbT1,CAN_OUT_CTRL
CAN总线数据帧的定义
Basic模式下,CAN总线帧包含10个字节。其中前两个字节是描述符,后八个字节是数据长。本软件设计中采用的数据帧结构的特点是:
1)指令动作类型由11位的标识符定义,可满足不同类型的控制要求。
2)各通道的控制指令由帧数据长中的16位双字节给出,满足系统12位精度要求。
3)每次数据帧传送,同时给出4个通道的控制指令与动作类型,单帧信息容量大,节约系统通信资源。
通讯中断服务程序
如果SJA1000收到一个报文,通过接收码寄存器和接收屏蔽寄存器,并放到接收缓存中后,控制器就会产生一个接收中断。这样,微处理器可以很快的响应,接收缓冲区的数据,并根据实际的数据进行相应的处理,然后通过设置命令寄存器释放接收缓冲区。接收缓存新的报文到来将产生一个新的接收中断。
在CAN总线节点的软件设计过程中还要注意数据超载,当接收缓冲区已经满了,但又收到了一个新的报文信息,这时,就会产生一个数据超载中断。同时,状态寄存器中的“数据超载位”将被置位,用以通知微处理器,必须有相应的程序对这种情况进行处理。

结语
本文所介绍的方案中,用单CAN总线节点及一路D/A转换器件与模拟选择开关相结合来实现对四路位置的随动系统控制。与其它方案相比有结构简单、实现容易,课题开销少等优点。对其它类似设计有可借鉴性。■

参考文献
1 孙涵芳. intel 16位单片机. 北京航空航天大学出版社,1995
2 邬宽明. CAN总线原理和应用系统设计. 北京航空航天大学出版社,1997
3 张松春,竺子兰. 电子控制设备抗干扰技术及其应用. 机械工业出版社,1994

相关推荐

基于DTMF和CAN总线的家居安防系统设计方案

CAN总线  AT89S52  2011-09-21

一种混合动力电池监测模块的设计实现

CAN总线  2011-09-07

基于DTMF和CAN总线的家居安防系统设计方案

CAN总线  AT89S52  DTMF  2011-07-26

一种混合动力电池监测模块的设计实现

CAN总线  2011-07-06

基于CAN总线的航空电缆测试系统分布机研究

航空电缆  CAN总线  2011-06-01

基于PIC18F458的CAN总线接口设计

CAN总线  远程控制  2011-05-18
在线研讨会
焦点