APP下载

基于DSP和CPCI总线的高可靠性运动控制卡设计

2015-05-29张旭东胡晓吉

现代电子技术 2015年10期

张旭东+++胡晓吉

摘 要: 为了满足某型地空导弹发射系统控制端模拟/脉冲信号输出、数字输入与输出等需求,在充分考虑其抗恶劣环境特性的同时,基于CPCI总线设计了一块高集成性、高可靠性运动控制卡。使用协议芯片PCI9030实现CPCI通信,使用TI公司的DSP芯片TMS320F2812实现模拟/脉冲信号输出及控制,使用Altera公司的FPGA芯片EP1C3T144实现I/O扩展。目前该板卡已在军事项目中得到应用,且工作稳定,性能良好。

关键词: 运动控制卡; CPCI; DSP; FPGA

中图分类号: TN919?34;TP317.4 文献标识码: A 文章编号: 1004?373X(2015)10?0065?05

0 引 言

在航空、航天、军事、工业等领域,CPCI计算机由于其高可靠性、高开放性、支持热插拔等优点,受到了广泛的应用,基于高可靠性的考虑,某型地空导弹发射系统的主控计算机采用的即为CPCI计算机。传统导弹发射系统主控计算机对脉冲输出、I/O扩展等方面的需求都是通过脉冲卡、I/O卡等单独实现的,集成度较差,不利于武器装备小型化的需求,因此有必要在CPCI总线的基础上,为其设计一款集成脉冲输出、I/O扩展等多种功能的运动控制卡。

武器控制系统特定的环境和功能需求要求该板卡具有如下特点:

(1) 采用6U(233.35 mm×160 mm)CPCI插卡设计,板卡具有高可靠性;

(2) 具有32路I/O端口扩展,所有端口均经过光电隔离,满足系统控制端的电压功率驱动输出、使能发送以及现场开关信号实时采集与控制等数字输入/输出需求;

(3) 具有12路PWM信号输出功能,脉冲频率最高可达4 Mp/s,满足占空比50%,频率精度0.01%,用于电机控制。

(4) 具有4路12位精度模拟信号输出功能,输出电压范围±10 V。

(5) 能够捕捉光电编码器反馈的脉冲信号,为DSP提供电机的相关信息。

1 运动控制卡总体设计

本设计以CPCI总线为基础,采用DSP和FPGA联合控制,一方面可以利用DSP运算速度快、支持复杂算法的优势,另一方面可以通过FPGA实现地址译码和逻辑控制,具有高集成性、高可靠性、高扩展性等特点,总体设计方案如图1所示。

该板卡通过CPCI接口实现与上位机通信,采用PLX公司的PCI9030桥芯片实现CPCI总线协议到局部总线协议的转换,通过控制/数据/地址总线与板卡上核心单元DSP及FPGA相连,DSP、FPGA、RAM之间使用统一的数据/地址总线进行数据传输,上位机只需要对被控对象进行总体操控,模拟/脉冲信号输出,32路数字输入/输出等均由运动控制卡完成。其中DSP选用TI公司的TMS320F2812,作为板卡的核心模块,可以实现4路模拟信号输出、12路PWM信号输出;FPGA选用Altera公司的EP1C3T144,其逻辑控制电路可以实现对外围功能电路和驱动电路的控制以及32路数字信号输入和输出,且输入和输出都经过严格的光电隔离。

图1 运动控制卡总体设计

2 运动控制卡功能模块设计

2.1 CPCI总线接口

CPCI总线规范较为复杂,目前实现CPCI接口的方案主要有以下两种:

(1) FPGA+PCI IP Core:性能高且方便集成,但转让费用昂贵,不适于初期研制;

(2) 专用CPCI接口芯片:提供可靠的CPCI逻辑和强大的功能模块,无技术转让费,技术成熟,但芯片占用PCB面积较大,增加了布线复杂程度。

由于本运动控制卡为6U机械板型,空间充裕,专用CPCI接口芯片在保证板卡高可靠性的同时,能够有效降低CPCI总线接口设计的难度,缩短研发时间,减少研发成本。PCI9030提供了3种物理总线接口:CPCI总线接口、局部总线接口、以及串行E2PROM接口。总线的各种功能由控制信号来实现,它们是总线信号中数量最多、功能最强的信号,也是体现PCI总线特色和实现总线功能的必备信号,主要分为3类:接口控制信号、错误报告信号和系统信号。如图2所示为采用PLX公司的PCI9030协议芯片实现CPCI总线接口。

图2 CPCI总线接口

接口控制信号主要由[FRAME],[IRDY],[TRDY],[STOP],IDSEL,[DEVSEL]和[LOCK]等组成。FRAME#信号是总线周期构成信号,由当前总线主设备驱动,表明一个总线周期的开始和延续;[IRDY]表明启动方准备好数据;[TRDY]是目标设备就绪信号,在写操作中,[TRDY]有效说明目标设备已准备好接受数据,在读操作中,它说明 AD[31:0]上已有有效数据;[STOP]说明当前目标设备要求总线主设备停止当前传输;IDSEL为初始化设备选择信号,在配置空间写操作中,作为目标设备片选信号;[DEVSEL]为设备选择信号,由目标设备驱动,如果一个主设备启动一个交易,并且在6个时钟周期内没有检测到[DEVSEL]有效,它必须假定目标设备没有反应或地址不存在,导致交易失败。[LOCK]为设备提供接口控制信号。

错误报告信号是用来使系统自我监测用的信号,包括[PERR]和[SERR]两个信号。系统信号包括CLK和[RST]两个信号,为PCI接口控制器提供系统时钟和系统复位信号。[INTA]是设备的中断信号,电平触发,低电平有效,与时钟异步。除[RST]和中断信号外,其他信号都在CLK的上升沿采样。

在总线传输操作周期,一个CPCI总线周期由一个地址段和紧随其后的一个或多个数据段组成,其中AD[31:0]是地址和数据复用总线,为CPCI接口芯片提供了地址信号和数据信号。C/[BE[3:0]]为PCI接口提供总线命令(地址周期)和字节使能(数据周期)信号,而PAR信号为PCI接口控制器提供AD[31:0]和C/[BE[3:0]]信号的偶校验。同时,PCI9030芯片必须连接一个E2PROM来设置内部寄存器。

2.2 DSP最小系统

本板卡以TI公司的低功耗16位定点DSP芯片TMS320F2812为控制核心,该款DSP采用高性能静态CMOS技术,需要1.8 V的内核电压和3.3 V的I/O电压供电,片内资源丰富,运算速度快,具有快速的中断响应和处理能力,主要针对数字控制、运动控制等领域,非常适合用于运动控制卡的开发,能够有效简化板卡设计,提高板卡性能和可靠性,降低设计成本。DSP最小系统主要由TMS320F2812芯片、晶振、电源电路以及电容、电阻、电感等少量器件构成。晶振选用北京晶宇星科技公司的33 MHz有源晶振,因为DSP对电源非常敏感,故选用独立的电源芯片供电,TI公司的PS767D301可以从CPCI接口获得5 V电压,转换后提供精确的1.8 V和3.3 V电压,保证DSP芯片稳定工作。

2.3 DSP外扩存储器

DSP进行运动控制时需要大容量的数据存储,外扩存储器选用ISSI公司容量为512K×16 b的IS61LV51216芯片。该芯片采用3.3 V电平逻辑,可与DSP、FPGA匹配,并且支持三态输出功能,避免了总线冲突的风险,外扩存储器电路如图3所示。

图3 外扩存储器电路

2.4 模拟量输出

TMS320F2812本身不带有D/A转换器,实现数字量转换模拟量输出主要有以下两种方式:

(1) 内部数字量用PWM脉冲输出,外部用高阶滤波器滤波后得到直流输出;

(2) 外接DAC转换芯片,用DSP的数据口进行控制。

为了保证数据处理结果的准确性和转换速度,本板卡选择外接12位精度的DAC7724芯片来实现D/A转换功能。考虑到DSP产生信号的驱动能力,首先需要使用电平转换芯片,对要用到的端口进行电平转换,将DSP端口输出的3.3 V电平转变成5 V,电平转换芯片选择SN74ALVC164245,此外还需要AD587为D/A转换提供参考电压。如图4所示,D/A转换电路最终可以实现4路±10 V模拟信号的输出。

图4 模数转换输出电路

2.5 脉冲量输出

DSP有EVA/EVB两个事件管理器模块,每个事件管理器具有2个16位通用定时器,3个比较单元,3个捕获单元和1个正交编码脉冲电路。每个比较单元可以产生一对(两路)互补的PWM波。因此对2个事件管理器进行配置可以实现共12路PWM输出。与模拟量输出类似,TMS320F2812输出的PWM波形的最高电压为3.3 V,而在工业控制中,驱动电压往往是5 V,需要通过SN74ALVC164245芯片进行电平转换,最终经过光电隔离后由CPCI接口输入电机驱动器,实现电机控制。PWM输出电路如图5所示。

图5 PWM输出电路

对事件管理器进行配置同样可以实现反馈脉冲的捕捉。通常会在电机转子上安装光电编码器,光电编码器主要由光栅盘和光电检测装置组成,光栅盘是在一定直径的圆板上等分地开通若干个长方形孔,当电机旋转时,光栅盘和电机同轴旋转,当LED光被遮挡住时,传感器输出逻辑0,也就是输出低电平;当LED光透过光栅的孔被传感器接收时,传感器输出逻辑1,也就是输出高电平。这样检测部分就能够输出连续的脉冲信号,脉冲信号通过CPCI连接器输入到DSP芯片内,由捕捉单元获取后,通过计数器计算每秒输出的脉冲个数就能最终知道电机的转速。此外,为了应对复杂的军用设备的电磁环境,脉冲接收同样需要经过光电隔离,保证其抗干扰能力。

2.6 FPGA配置

FPGA芯片作为输入/输出模块的核心逻辑控制单元,用于实现局部总线在FPGA上的地址译码、数据格式转换和时序控制等内容,最终完成与上位机的正常交互、总线的启动、停止、响应以及数据发送和接收。FPGA状态机的状态转换如图6所示。

图6 FPGA状态转换

当一个总线周期开始的时候,PCI9030芯片在地址总线LA[9:2]上给地址,并将[ADS]信号置为有效,开始一个总线周期。FPGA芯片检测到[ADS]有效后,将地址总线LA[9:2]上的地址读入。如果该地址位于FPGA芯片的地址空间范围内,则检测LW/[R]信号。如果该地址位于FPGA芯片地址空间范围之外,则状态机在下个时钟沿来之后,继续保持IDLE状态。如果LW/[R]信号为高,则位于PCI9030芯片的写周期,FPGA状态机将在下个时钟沿到来后进入WAIT状态。随后持续检测[WR]信号,在变为有效后的下一个时钟沿,状态机进入WRITE状态,读入数据总线LD[15:0]上的数据,并将[READY]信号置为低,通知PCI9030芯片数据已读入。当一个时钟周期结束后,将[READY]置为高,并返回IDLE状态。PCI9030芯片在检测到[READY]信号被置为低的下一个时钟沿到来之后,将数据总线LD[15:0]上的数据撤去,并将[WR]置为无效,结束一个总线周期。若在[ADS]信号为低时检测到LW/[R]也为低,说明为PCI9030芯片读周期。FPGA芯片将在下一个时钟沿到来之后进入READ状态,将数据置入数据总线LD[15:0]中,并将[READY]信号置为低,通知PCI9030芯片数据已经在数据总线中。经过一个时钟周期后,再将[READY]信号置为高,返回IDLE状态。PCI9030芯片在检测到[READY]信号被置为低后的下一个时钟沿将[RD]信号置为无效,结束总线周期。FPGA程序配置流程图如图7所示。

图7 FPGA程序配置

2.7 数字输入输出

板卡通过FPGA实现32路I/O端口扩展,满足数字输入输出需求,32路输入的数字量均选用Agilent公司的HCPL?2631光耦进行了光电隔离,采用光电隔离可以有效地抑制尖脉冲和各种噪音干扰,从而使过程通道上的信噪比大为提高。该款光耦开关门槛电流为5~15 mA,光耦正向压降为1.4~1.75 V,计算可得,当3.3 V电压供电时,光耦的最大工作电流为:[(3.3-1.4)200]=9.5 mA;最小工作电流为:[(3.3-1.75)200]=7.75 mA。7.75~9.5 mA满足光耦开关门槛电流,当现场开关设备接通后,光耦输出端电平为逻辑“0”,当现场开关设备关断后,光耦输出端电平逻辑“1”。如图8所示为输入电路,32路输入信号经CPCI连接器连入板卡,使用16个HCPL?2631对其进行处理,每个光耦可以对两路输入信号进行光电隔离,处理后的信号直接与FPGA的配置好的IO管脚相连,用于后续操作。

图8 第1路及第2路输入电路

板卡32路输出的数字量均选用北京东捷恒信公司的AGN200SER系列电磁继电器作为电隔离器件。考虑FPGA本身的负载能力有限,需要在电磁继电器前加ULN2803驱动芯片(内含达林顿电路)来保证其正常工作。在FPGA进行逻辑控制时,将相应的I/O端口置为三态门,当逻辑为0时,驱动芯片关闭;当逻辑为1时,驱动芯片导通。由于驱动芯片是敏感元器件,FPGA的80 ms初始上电配置时间会导致相应的I/O端口弱上拉,从而导通驱动芯片,故需要在其前端添加下拉电阻,保证整个输出过程稳定。同时,由于继电器线圈去激励的瞬间会产生几倍于激励电压的反峰电压,会对电路产生危害,本设计通过并联TVS二极管(瞬间电压抑制器)对其加以抑制。如图9所示为输出电路,一个驱动芯片可以驱动8路FPGA输出信号,使用四个驱动芯片驱动32路输出,处理后的信号经过32个电磁继电器后连入CPCI连接器。

图9 第1~8路输出驱动及第1路输出电路

3 驱动程序设计

编写DLL动态数据链接库可以对厂商提供的PLX公司芯片的API进行进一步封装,以达到与上位机软件接口函数相适应的目的,从而实现上位机对运动控制卡的操作。由于PCI9030与主机内存之间存在映射关系,只需对映射内存区域进行读写就可以实现上位机对运动控制卡局部总线的读写操作。运动控制卡主要驱动函数包括:打开设备、获取板卡基地址、驱动初始化函数、控制输出函数、控制输入函数、调用中断函数、释放资源、关闭设备等。

4 可靠性设计与验证

为了保证板卡能够在恶劣的军事电磁环境下使用,并且不影响其他电子设备的正常工作,EMC和ESD设计在整个PCB设计中显得尤为重要。本板卡在元器件选型时主要选取军品级元器件,从根源上消除了不稳定因素,保证板卡可靠性。设计时主要从以下几个方面着手:

(1) 电源线和地线设计:根据电流大小尽量加宽电源线宽度,同时接地线也尽量加粗,减少线路阻抗和来自电源的干扰,并将接地电路做成闭环环路;

(2) 电路去耦:在直流电源回路中,负载的变化会引起电源噪声。数字信号状态转换时,会在电源线上产生很大的尖峰电流,在电源输入端接入100 μF和0.1 μF去耦电容能有效抑制电源噪声;

(3) 数字地和模拟地分离:模拟地和数字地公用会产生严重的公共阻抗耦合,造成系统工作不稳定,将数字地和模拟地分开,各有各的电源和地线回路,能有效抑制干扰;

(4) 光电隔离:板卡的输入输出部分均采用隔离器件,将其与外部电路隔开,能有效防止外部干扰进入板卡,保证板卡稳定性。

依据《GJB151A?1997军用设备和分系统电磁发射和敏感度要求》等国家军用设备标准对运动控制卡进行电磁兼容、高低温存储/工作、10个温度循环(-35~75 ℃)、随机振动,冲击(15 g,11 ms)等一系列实验后,板卡依旧能够正常工作,且无信号抖动和伪信号产生,能够满足板卡对军事恶劣环境下高可靠性的要求。

5 结 语

本文设计的运动控制卡以DSP和FPGA作为核心单元,将以往需要多块板卡实现的4路12位精度模拟量输出、12路PWM脉冲量输出、32路数字输入输出等功能集合于一块板卡。同时考虑到板卡在军事恶劣环境下使用的特点,设计时采用CPCI总线结构,在元器件选型、电路设计、PCB设计等方面都较为规范。相比传统导弹发射系统中的功能板卡,具有高性能、高集成性、高可靠性等特点,能够满足用户需求,具有较高的应用价值。

参考文献

[1] 顾卫钢.手把手教你学DSP:基于TMS320X281X[M].北京:北京航空航天大学出版社,2011.

[2] 王诚,吴继华,范丽珍,等.Altera FPGA/CPLD 设计[M].北京:人民邮电出版社,2005.

[3] PICMG. CompactPCI specification [S]. Wakefield MA: PICMG, 1997.

[4] PLX. PCI9030 data book [M]. USA: PLX, 2002.

[5] 张诗杰.基于VME总线运动控制卡及驱动程序的设计和实现[D].哈尔滨:哈尔滨工业大学,2010.

[6] 张宇.基于DSP和FPGA的运动控制卡研究与开发[D].南京:南京航空航天大学,2007.

[7] 邹继荣.基于DSP运动控制卡的研究与开发[D].南京:南京航空航天大学,2006.

[8] 李伦波,马广富,赵建亚.基于DSP和FPGA的运动控制卡的设计与实现[J].控制工程,2007(3):260?262.

[9] 田光锟.高速电路PCB设计与EMC技术分析[M].北京:电子工业出版社,2008.

[10] 邵小桃.电磁兼容与PCB设计[M].北京:清华大学出版社,2009.