电液伺服机构与CAN总线接口设计
扫描二维码
随时随地手机看文章
1前言
在新型导弹制导和控制系统中采用总线式的数据传输方案,是解决现行的导弹飞行控制系统中,通过点对点直接连接的电缆网传输模拟信号造成的结构复杂、可靠性低、系统的电磁兼容性与抗毁伤能力等诸多弊病的一个较好的途径。电液伺服机构是导弹控制系统中重要的组成部分。它的性能往往严重影响到导弹的控制精度,甚至决定飞行的成败。在总线式导弹控制系统中,导弹电液伺服机构将作为总线上的一个节点挂接在总线上,因此必须设计一个将总线与电液伺服机构连接起来的接口。导弹总线式控制系统结构如图1所示。
在导弹飞行中,惯性敏感元件获得导弹的飞行参数后,送到弹上计算机,经过计算机运算后形成控制指令,指令被送到导弹的电液伺服机构,通过导弹电液伺服机构的作动筒的动作来控制导弹的飞行弹道。
1.1 CAN总线
CAN(Controller Area Network)即控制器局域网络。CAN总线是一种多主站局部网络,能够有效支持分布式控制系统或实时控制系统的通信功能;它采用双线串行通信方式工作。微处理器可通过CAN控制器挂到CAN总线上,它具有较强的检错功能以及优先权和仲裁功能,可在高噪声环境中使用,其传输速率可高达1Mb/s。
1.2 PC/104
PC/104是工业嵌入式PC的机械电气标准。它的制定,为嵌入式应用提供了标准的系统平台。PC/104总线与PC/AT总线(ISA)完全兼容。它符合IEEE-P996标准,所有信号电平与TTL兼容。PC/104模块一般提供6mA的总线驱动能力,可驱动15个低功耗的TTL负载。与普通的工业控制机相比,PC/104总线具有如下特点:
① PC/104模块与PC机软、硬件完全兼容,可以利用现有的较丰富和成熟的硬件、软件开发工具及方法、设计知识等资源,开发周期短,成本低。
② PC/104模块体积小,功耗低,无需散热,可层叠,具有系统级的性能,芯片级的大小。
③ 模块之间采用独特的纵向层叠或侧向接插的结合方式,模块层叠后四角还有支柱和螺钉固定,可靠性高,配置灵活方便,便于故障的排除和修理。
④ 外围模块齐全,用户可以选择各种不同的功能模块,设计满足不同需要的专用系统。
⑤ 工作温度范围宽,一般在0-70度。
⑥ 大多数模块采用单+5V电源,降低了系统对电源的要求。
2 接口硬件设计
根据实际系统的要求,本接口的功能主要是:实现与弹上计算机的通信,在控制系统中作为一个终端接收弹上计算机传来的指令和数据,进行控制算法的运算及执行D/A、A/D转换,并将伺服机构的运动信息和状态数据传输给弹上计算机。
接口与CAN总线之间的传输介质采用屏蔽双绞线,接口硬件采用基于PC/104总线标准的模块,主要有: D/A和A/D模块、处理器模块、外部存储模块、双向驱动及时序控制模块、CAN总线通信模块。如图2所示。
1)D/A模块
在本设计中,我们选择美国AD公司的AD7547数模转换器。它是一种双12位电流输出的DACS(数据收集与控制系统),具有以下特点:较宽的工作电压(12-15V);抗电源电压干扰性能好;紧凑的封装形式(24脚0.3英寸DIP封装);低增益误差。它可以和大多数的微处理器配合使用,能够兼容TTL、CMOS电平。通过独立的参考电压和反馈电阻,还能够提供四象限的乘法器功能。其内部主要包括三个部分:控制逻辑电路、A路数模转换电路和B路数模转换电路。其中逻辑控制电路通过简单的三个控制信号:CSA,CSB及WR来选择相应的模数转换器,同时锁存需要转换的数据。A路数模转换电路的基本控制原理为:通过CSA与WR控制信号,将12位的转换数据一次锁存入A路转换电路的数据寄存器中,A路转换电路开始进行数模转换,将转换后的模拟量输出。B路转换电路的控制原理与A路类似。
2)A/D模块
A/D模块将导弹电液伺服机构位移检测装置输出的反馈信号转化为数字量以便于计算机进行处理。系统的控制精度在很大程度上取决于检测反馈装置的精度。根据伺服机构的反馈参数和系统性能指标要求,本设计中采用美国AD公司生产的AD674A模数转换芯片。它是一个12位逐次逼近型快速A/D转换器,转换速度最大为15微秒。AD674A片内配有三态输出缓冲器电路,因而可以直接与各种典型的8位或16位处理器相连,而无须附加逻辑接口电路,且能与CMOS及TTL电平兼容。
3)处理器模块
本设计中处理器采用PC/104嵌入式计算机,因为它具有很快的运算速度,所以它主要为接口提供高速的数据运算与处理功能,这些数据包括弹上计算机通过总线送来的控制数据和通过模数转换模块采集的位移检测装置的输出量,处理器将它们进行处理和综合,形成输出量来控制作动筒的动作。
4)双向驱动及时序控制模块
CAN控制器SJA1000的地址总线和数据总线是按照INTEL的8位单片机总线规范设计的,与PC/104总线不能直接相连,中间要经过双向总线驱动电路和时序转换电路进行两种总线信号的切换,即将PC/104总线的数据总线和I/O地址总线经过总线驱动器和时序转换变成SJA1000的数据/地址复用总线,这里边有一个关键的时序切换问题。控制总线的信号也要经过相应的转换才能驱动总线控制器SJA1000。转换电路原理框图如图3所示。
图3中细实线表示数据线和地址线,粗实线表示控制线,细虚线表示片选信号。
在本设计中,数据总线和地址总线分别通过两个八总线收发送器74HC245连接到CAN控制器SJA1000的数据、地址复用总线上。74HC245是8位的总线收发送器,具有三态输出,可以进行双向的数据传送。这中间用可编程逻辑芯片GAL16V8设计了一个时序控制逻辑电路,控制两片74HC245的工作,进行时序切换,并避免数据和地址产生可能的冲突。片选信号是由一片74H688产生的,74H688是一个8位的数值比较器/等值检测器。通过波段开关来设定I/O地址,用74HC688来比较PC/104总线上的地址信息和设定的I/O地址是否相同,如相同则对SJA1000产生片选信号。控制总线的信号切换也是由可编程逻辑芯片GAL16V8来实现的。
5)通信模块
CAN总线通信模块由CAN控制器SJA1000、光电隔离器6N137、CAN收发器82C250组成,如图4所示。
a)SJA1000是PHILIP公司生产的标准CAN总线控制器,它在软硬件设计上完全兼容基本CAN总线控制器PCA82C200,具有和它完全兼容的引脚和协议CAN2.0A,二者可以替换。另外,它还支持总线扩展协议集CAN2.0B。它有两种工作模式:基本模式和扩展模式。在基本模式下,它有32个工作寄存器,而在扩展模式下,它有127个工作寄存器。本设计选用基本工作模式,即支持CAN2.0A协议。CAN控制器一方面具有与微控制器接口的功能,另一方面还能完成CAN通信协议所要求的全部功能。
b)82C250是CAN总线收发器,它是控制器和物理总线间的接口。CAN控制器的传送和接收端不允许与总线直接相连,原因是:当网络内某个节点未加电或发生故障时,将影响整个网络的正常工作。另外,若总线出现短路故障时,CAN控制器的输出驱动器有可能损坏。所以,在实现应用中必须在CAN控制器与总线之间设置一个接口电路。82C250能提供对总线的差动发送能力和对CAN控制器的差动接收能力。82C250还具有很强的驱动能力,能增大通信距离(最远可达10Km),可以进行斜率控制以降低射频干扰,具有瞬间抗干扰能力。它有三种工作模式:高速模式、斜率控制模式和待机模式。本设计中采用了斜率控制模式,通过在8引脚上接一个18欧姆的电阻来控制总线上的斜率。
c)6N137是一个TI公司生产的高速光电隔离器,它具有较高的速度,可以满足系统的要求,采用光电隔离电路以后,总线驱动器与总线控制器分别供电,隔断了二者的电气连接,进一步提高了抗干扰性能。3 接口软件设计
伺服机构与CAN总线接口软件的主要任务有:初始化、接收总线信息、向总线发送信息、受理中断、数据运算与输入输出控制。伺服机构传感器采集的信号存入指定发送子地址的数据缓冲区内,从弹上计算机接收的指令和数据则存入指定的接收子地址的数据缓冲区内。当接口收到弹上计算机的控制指令后,开始对伺服机构进行控制。
初始化程序设计是本接口设计中重要的一个环节。在系统上电复位后,首先确定微处理器的设置,然后在SJA复位后,需要确定与通信有关的参数,包括总线定时、各种寄存器和工作模式等。在系统运行过程中,也可以发出一个复位请求,根据实现情况重新确定系统的通信参数。其初始化程序主要步骤有:
1)初始化微处理器,同时关闭与CAN控制器相连的外部中断。
2)检查复位端,若进行复位状态,则设置通信参数,包括:工作模式、时钟驱动寄存器、接收码寄存器、输出控制寄存器、接收屏蔽寄存器和总线定时等。
3)检查复位请求位,若复位请求位为低,则系统进入正常工作状态,开微处理器的外部中断以及CAN控制器本身的中断。
初始化程序流程图如图5所示。
CAN总线报文数据的接收是由控制器根据CAN总线通信协议自主完成的。接收到的数据被放入接收缓存,然后状态寄存器的“接收缓存状态”标志位将被置位,同时,中断寄存器的“接收中断”标志位也被置位。微处理器必须读出接收到的数据,同时释放接收缓存。报文的接收过程可以采用中断方式,也可以通过查询的方式实现。
本设计中采用查询方式实现数据的接收。如图6所示为查询方式的流程图。CAN控制器的接收中断标志被关闭。微处理器读取CAN控制器的状态寄存器的“接收缓存状态”标志位,检查是否有数据到来。如果缓冲区为空,表示没有接收到数据,微处理器便转到其它工作上去,直到下一轮检查。如果缓冲区满,则表示有数据放入缓存。微处理器可以根据报文信息读取缓冲区的数据,之后需要设置命令寄存器的“释放缓存标志”,通知SJA1000释放接收缓存,完成接收,并进行相应的数据处理。但由于接收缓存中的报文不一定只是一个,因此必须重新检查接收缓存,直到接收缓存为空为止。否则,由于接收缓存的大小有限,将会出现缓冲区溢出的现象。循环查询的时间必须足够快,以避免报文丢失。
4 结束语
本设计很好地解决了导弹伺服机构与CAN总线的连接和通信问题,大大减轻了原系统的重量,增强了信号传递的抗干扰性,提高了伺服机构的控制精度,另外,PC/104的模块化结构使得接口的通用性和可维修性也显著提高。