现在位置 >首页 > 所有 DSP技术应用 分类文章
基于ADSP-TS201S的多DSP并行系统设计
0 引言
在宽带雷达信号处理中,存在诸如回波采样率高、脉冲压缩(匹配滤波)运算量大、处理流程复杂、实时高分辨目标检测困难等一系列问题。针对这些问题,采用通 用计算机平台难以应对运算量大和实时性等高要求,因此,需采用专用的数字信号处理器(DSP)来进行高速运算。尽管当前的数字信号处理器已达到较高水平, 但单片DSP芯片的处理能力还是不能满足宽带雷达的性能要求,需要引入并行处理技术,在本设计中使用4片DSP芯片组成并行处理系统。另外,为充分发挥 DSP芯片在复杂算法处理上的优势及FPGA在大数据量的底层算法上的优势,设计了一种基于FPGA控制的多DSP并行处理系统。
1 系统设计
整个雷达信号处理系统以高可靠性CPCI工控机为平台,内置不同功能的信号处理板。板间的数据传输通过CPCI接口完成。根据雷达信号处理系统的任务分 配,本系统负责完成中频数字信号的处理。根据前端信号采集板输出数据的不同,数据将以串行或并行的方式输送到本系统中。其中,串行信号通过CPCI的J3 口以差分的形式直接传输给DSP2,然后在4片DSP芯片间按照预定的算法进行任务分配和并行处理,处理完毕后通过DSP4写入两片扩展连接成32输出方 式的FIFO中,此时,FPGA直接从FIFO中读取数据,完成与CPCI接口芯片PCI9656的时序转换后将数据发送到PCI9656,通过CPCI 总线经J1和J2口传输到雷达系统的其他功能模块。对于并行信号而言,32位带宽的信号首先通过J3口发送到F-PGA内部寄存器中FPGA接收到数据后 将数据写入输入缓存区,并在完成一帧后给并行DSP输出中断。当并行DSP采样到中断后,从数据缓存区读取数据,完成处理后,将数据传输到缓存 区,FPGA再通过相同的处理方式经CPCI接口的J1口和J2口将数据传输到雷达系统的其他功能模块。
2 DSP芯片选型
根据系统的性能要求,通过比较各种高性能DSP处理器,并着重对构成并行处理系统的性能和便捷性进行分析,确定选用AD公司的ADSP Tiger SHARC系列处理器中的TS201S组成多DSP并行系统。因为该系列的处理器在构成并行处理系统时其本身就提供了实现互连所需的片内总线仲裁控制和特有的链路口,可以以各种拓扑结构互连DSP,满足大运算量和片间通信灵活的要求。此外,选用ADSP Tiger SHARC还可以降低外围设计的复杂度,增强系统的稳定性。
TS201S芯片(600 MHz)主要性能指标:
(1)运行速度:1.67 ns指令周期;每周期可执行4条指令;
(2)DSP内部有2个运算模块,支持的运算类型有:32 b和40 b浮点运算;8 b,16 b,32 b以及64 b定点运算;
(3)每秒可执行12×109次16 b定点运算或3.6×109次浮点运算;
(4)采用单指令多数据(SIMD)模式,每秒可提供4.8×109次的40 b乘加运算;
(5)外部总线DMA传输速率1.2 GB/s(双向);
(6)4个链路口,每个链路口最高提供1.2 GB/s的传输速率,可同时进行DMA传输;
(7)多处理器处理能力,具有支持多处理器无缝连接的片内仲裁逻辑,多处理器采用统一寻址的方式访问,可以通过簇总线(ClusterBus)或链路口(Link Ports)方便地构成多处理器系统。
(8)片上SDRAM控制器,片上DMA控制器(提供14条DMA通道)。
3 DSP并行处理结构设计
ADSP-TS201S之间的数据传输通道可选择的方式有如下两种:高速链路口(LINK)方式和高速外部总线口(簇总线)。因此,由多ADSP- TS201 S组成的DSP并行处理系统从数据传输方式来看,不外乎有以下三种模型:高速链路口(LINK)耦合模型;高速外部总线口(簇总线)耦合模型;高速链路口 (LINK)与高速外部总线口(簇总线)混合耦合模型。
3.1 基于链路口的多DSP并行处理系统
在这种连接方式下,各DSP用LINK口连接在一起,进行通信控制和数据交换,系统结构简单、连线少、可扩展性强,在DSP具有多个 LINK口的情况下,可灵活组成线型、星型、环型、网络型或超立方体型等多种拓扑结构。ADSP-TS201S具有4个全双工的链路口通信端口。一个链路 口单向通信包含4位数据加上时钟与握手信号一共12条引线,双向共要24条引线。在内核时钟为600 MHz时,单向数据传输率最高可达600 MB/s,双向数据传输率可达1.2 GB/s,由于链路口通信是点对点的,所以具有很高的传输可靠性,但在传输数据时的共享性不如总线形式。
[...]
基于DSP+FPGA多视频通道的切换控制
随着计算机和数字图像处理技术的飞速发展,视频监控技术应用广泛。传统的视频监控系统都是用单一摄像头对某一固定场景进行监控,不仅视频的视野范围有限,而且不能对同一个物体的不同方位进行监控。这里提出了一种多通道视频监控系统,通过对不同视频通道稳定、可靠地切换控制,实现监控不同场景。该系统不仅弥补了传统监控视频范围有限的不足,而且提高了监控资源的利用率,降低了监控成本。
1 系统硬件结构
采用DSP+FPGA的硬件结构方案,利用DSP和FPGA控制MAX4312选通所需要的视频通道,从而达到在多路视频通道间进行切换的目的。
1.1 控制器件的选型
根据实际需要,DSP采用ADI公司推出的Blackfin系列高性能处理器ADSP_BF561(以下简称BF561)作为算法处理和控制核心,BF561处理器包含2个独立的BF533内核,每个内核分别包含2个乘/累加器(MAC),2个40位的ALU,4个视频ALU和1个40位移位器。Blackfin处理器采用改进的哈佛结构和分级的存储器结构。L1存储器一般以全速运行,没有或只有很少延迟。L2是另一级存储器,分布在片内或片外,对其访问会消耗多个处理器周期。在L1级,指令存储器只存放指令,2个数据存储器存放数据,1个专用的临时数据存储器存储堆栈和局部变量信息。在L2级,采用统一的存储空间,可以存放指令和数据。这里采用L2级存储器。
FPGA采用Altera公司的EP3C40F48C对视频信号进行预处理,该芯片具有多达24 624个逻辑单元,具有高级外部存储器接口,允许将外部单数据率(SDR)SDRAM,双数据率(DDR)SDRAM和DDR FCRAM器件集成到复杂系统设计中,而不会降低数据访问性能,具有129个兼容的LVDS通道,每个通道数据率高达640 Mb/8,还有4个可编程锁相环和8个全局时钟线。另外EP3C40F484C的功耗较低,全局运行时总功耗为300 mW左右。
1.2 Flash的设计
根据系统设计的需要,Flash采用CMOS型的M29W640D,其空间为18 Mx16 bit。该系统中,外部数据线为D1~D15,地址线为A2~A22。连接时需要注意,因为Flash是16 bit位宽,硬件连接上需要地址错位,即DSP的A2对应Flash的A1,DSP的A3对应Flash的A2,依次类推。在软件编程上,任何对Flash的操作,如擦除、写入,均要先对特定地址写入一定数量固定的控制命令字,即签到指令,这样确保在通电和断电时,不会对存储器误操作。
1.3 SDRAM的设计
该系统所采用的外部数据存储器是大容量SDRAM MT48LC16M16,其容量是4 Bankx8 Mx16 bit。根据该系统设计的实际要求,SDRAM在系统运行时存储实时图像数据、基准数据以及程序代码。由于Flash的存取速度比较慢,在Flash里,在系统初始化时应预先将存储在其中的基准数据及程序代码搬到更快的存储器里面,以便DSP不受存储器读取时间的制约,充分发挥其高速性能。
1.4 视频采集模块设计
由于视频通道的切换时间非常短,这就需要切换控制模块对视频信号有一个非常准确的判断,以便及时发送切换命令,因此需要选择一款高速的转换器。另外由于本系统的电源为5 V供电,因此需要选择一款低功耗的器件。因此选择AD9203作为模拟信号的数字量化器件。
AD9203是ADI公司出品的一款单通道、低电压的高速A/D转换器,采样速率可达40 Ms/s。其精度稳定可靠,在全采样带宽范围内,始终基本保持着10位的精度;在40 Ms/s的采样速率下,ENOB(有效位数)仍然达到9.55位,差分非线性度±0.25 LSB,信噪比和失真度保持在59 dB左右。AD9203的工作电压比较灵活,允许住2.7~3.6 V范围内变动,特别适合于便携式设备在低电压下的高速操作。在3 V的供电下,40 Ms/s全速工作时,功耗只有74 mW;在5 Ms/s时,功耗将会降到17 mW,在待机模式下,功耗只有0.65 mW。对于输入信号的峰峰值,通常设置为1 Vp-p或者2 Vp-p。另外,AD9203允许外部电压参考,可以根据设计需要,在1~2 V间灵活地设置输入信号的峰峰值。
2 控制模块设计
整个系统的工作流程为,在不同的监控点上安装多个摄像头进行图像监控,多路图像视频信号通过MAX4312,每一时刻选通其中一路视频信号输入。该视频信号经过AD8013AR处理后从图像监控器输出数字图像信号,同时从行场分离芯片EL4583C输出相应的行(VIDEO_Hs)、场(VIDEO_Vs)信号,从AD9203输出图像后肩信号(AD_BRST)和视频量化信号。然后将行(VIDEO_Hs)、场(VIDEO_Vs)信号送进DSP,将后肩信号(AD_BRST)和视频量化信号送进FPGA。FPGA利用这些信号对图像进行预处理,然后将处理后的图像通过PPI口送给DSP中进行算法处理。最后由DSP发送视频通道切换命令完成不同通道之间的切换,并且将最后处理结果送给报警和状态指示装置,实现监控告警功能。
2.1 FPGA模块功舵买现
FPGA控制部分用于对视频信号进行预处理并且等待DSP发送切换命令。其基本思路为:当某一路视频信号经过AD9203之后,输出的视频量化信号被送进FPGA做预处理,然后被送入DSP进行算法处理,同时FPGA等待DSP根据场信号发送的视频通道切换命令。
在实验过程中发现,DSP对图像的搜索是以行信号的上升沿(或者下降沿)为触发的,因此需要行信号有一个稳定的上升沿(或者下降沿)。由于信号在分离传输的过程中可能会产生抖动,导致信号的上升沿(或者下降沿)不稳定,从而影响DSP对视频信号的判断。若仍然以这个不稳定的行信号(VIDEO_Hs)作为DSP搜索图像的标志,则其接收的图像将会在相邻两行出现错位的现象,用肉眼看到的图像漂移现象。这就需要FPGA对行(VIDEO_Hs)信号做去抖动处理,但是FPGA接收到的信号只有EL4583分离出来的行信号,无法分辨信号上升沿(或者下降沿)的具体位置。因此FPGA根据需要产生1个行标志信号(H_flag),来取代不稳定的行信号(VIDEO_Hs),然后将行标志信号(H_flag)和场信号(VIDEO_Vs)送给DSP,以便对视频信号做出准确判断。
2.2 PPI口的设置
FPGA和DSP之间的数据通信是通过PPI口实现的。PPI(并行外部接口)是半双工形式,具有双向端口,最大可进行16位数据的输入输出。 PPI有5个存储器来控制其操作。其中PPI控制寄存器(PPI_CONTROL)设置了PPI口的操作模式、控制信号极性以及端口的带宽。在本设计中,设置PPI_CONTROL为0×00EC,将PPI的工作模式设置为ITU_656模式,端口的宽度设置为8位,并且仅仅为接收数据的模式。由于每个在DMA总线上的PPI_CLK_initiated事件(即输入或输出操作)都处理16为实体,也就是说如果传输的数据不是16位,则把数据的高位补0凑成16为数据。这种情况下,更有效的办法是把数据打包,即把2个FPGA传输的8位数据合成1个16位的数据,再进行传输,这样有效地利用了资源,提高了传输效率。
2.3 [...]
基于DSP的新型无分电器点火装置
随着电子技术的迅猛发展和绿色环保的要求,人们对汽车发动机点火系统性能的求越来越高,不仅要求实时性强、点火正时特性好、抗干扰能力强,而且要求集成较高、减少故障点、具有自诊断和备用点火功能,同时还要求与PC机通讯并能进行系统软件升级、重要数据更新和在线系统仿真。下面介绍一种基于DSP的新型汽车无分电器点火装置。
1 系统构成
系统中央处理单元ECU由一片DSP和一片通用单片机组成。DSP主要用于对信号的采集、处理,控制算法实现,与辅助单元和PC机进行通讯;单片机主要用于系统监测和备用点火等。
系统采用了集成点火组件。点火组件用于完成闭合角控制、恒电流控制、过电压保护、停车断电保护等功能,并能通过缸序判别信号IGda、IGdb把点水信号Igt关入相应的点火驱动电路,产生点火确认信号IGf。
1.1 主CPU单元
系统主CPU采用DSP TMS320F240。它具有以下特点:32位中央算术逻辑单元CALU;16位×16位并行硬件乘法器;内置544字×16位双端口数据/程序RAM, 16K字×16位FLASH E2PROM;软件等待发生器的外部存储器接口模块,支持硬件等待状态;双10位高速A/D转换器;28个独立可编程的多路复用I/O引脚;基于锁相环的时钟模块;带实时中断的看门狗定时器模块;串行通讯接口;4级管道操作;8级硬件堆栈;6个外部中断;静态CMOS技术;4种低电源模式;最高频率为 40MHz;多数指令周期为单周期;完成一次点火提前角的计算时间限于1ms,比通用微处理机快10~100倍,大大地提高了点火系统的实时性。
主CPU 单元主要完成两大任务:一是确定当前工况下的最佳点火提前角,产生点火控制信号IGt和汽缸判定信号IGda与IGdb;二是通过RS-232接口与PC 机进行串行通信,主CPU可把采集的各种传感器的信号、发动机转速信号、故障代码等送到PC机中进行仿真与分析;PC机也可以把二进制程序代码及一些重要数据(如不同工况下的修正值等)送到主CPU的FLASH E2PROM单元。
TMS320F240扩展了四片CY7C169-25和一片8253,并采用74F148扩展外部中断源输入端。
1.2 监测和点火备用模块
监测和点火备用模块所使用的CPU是8751。该模块通过对各传感器信号、IGf信号等进行分析、诊断,对主CPU单元实施监测。当主CPU单元出现故障时,监测和点火备用模块立即接过点火控制权,并放弃监测工作。
8751单元扩展了2732、6264和8253各一片。采用一片AD574A和CD4051进行A/D转换,并用74LS148扩展了8个外部中断源输入端。
1.3 DSP数字控制器与PC机的串行通讯
TMS320F240 SCI模块支持CPU与使用标准NRZ格式的其它异步外设之间进行数字通信。SCI接收器和发送器是双缓冲的,具有独立的使能和中断时。SCI对接收的数据进行间断、奇偶性、超时、帧出错等检测。系统采用了RS-232异步串行通讯标准总线。
1.4 系统接口资源的分配
TMS320F240 DSP数字控制器与8751单片机提供的I/O接口与中断输入接口是有限的,为避免资源冲突,将外部的输入信号进行优化分配。
2 系统软件
2.1 点火提前角
点火提前角对发动机的工作性能影响较大,ECU按下式计算点火提前角:
实际点火提前角=初始点火提前角+基本点火提前角+修正点提前角
基本点火提前角数据以表格的形式存储在DSP的FLASH E2PROM中。实际上,基本点火提前角数据远不止256个。如果发动机转速与负荷不在基本点火提前角对应的点上,则采用多元线性回归法进行拟合:
将离线生成的线性回归方程系数存储在ECU中。ECU根据转速和负荷信息,查阅基本点火提前角数据表,或查阅线性回归方程系数表计算基本点火提前角,并根据影响点火提前角其它因素(冷却水温信号、空调开关信号、怠速开关信号等)进行必要的修正后输出点火控制信号IGt。
不同型号的发动机,其点火提前角与线性回归方程式系数不同。系统ECU与PC机的通信功能提供了随时新这些数据的方便。
2.2 系统软件模块
软件系统由主程序模块、控制算法模块、发动机转速测量及处理模块、A/D转换模块、G1和G2信号中断模块、DSP数字控制器与微机的通讯模块、DSP数字控制器在线程序更新模块、系统监测模块、备用点火模块、FLASH EEROM擦除模块等组成。
主程序模块主要包括初始化程序、起动程序、发动机工况测量程序、处理程序、判别程序等。程序的初始化包括RAM区、各特殊功能寄存器、I/O、堆栈等的初始化。主程序模块根据发动机转速、负荷等信号确定发动机的运行工况,并由此转入相应的处理程序当中。
发动机转速测量及处理模块主要完成发动机工况判定、查点火提前角数据表等;A/D转换模块处理冷却水湿和负荷传感器等模拟信号的转换;控制算法模块根据存储的不同燃油标号的点火提前数据、多元线性回归系统等表格,确定基本点火提前数据以及发动机爆震控制等;G1和G2信号中断子程序主要控制IGt、 IGda、IGdb信号的产生,检测点火确认信号IGf;DSP数字控制器与微机的通讯模块完成DSP数字控制器与单片机的信息交换;系统检测、备用模块主要完成对一些传感器的检测、ECU单元的监控、备用状态下的点火控制;系统监测和备用点火模块对G1、G2、Ne、IGf、负荷、水温等信号进行监控,当出现故障时,置标志位、报警。当主CPU出现故障时,除了报警之外,该模块立即接过点火控制权。
本点火系统的新颖之处在于ECU使用了两个CPU,使其具有了自检功能和备用功能。主CPU采用了被视为未来通用芯片的DSP,这类芯片具有处理速度快、运算功能强、输入输出速度快、精度高、可靠性好等特点,适用于实时控制系统。该系统已在汽车发动机上试运行,得到了良好的发动机点火性能。
基于DSP与FPGA的四轴运动控制器设计与研究
摘要:针对数控系统的工作特点和要求,通过对DSPTMS320F2812、FPGAEP2C8F256C6及以太网控刺器RTL8019AS的深入研究,设计了一种基于DSP与FPGA的运动控制器。该控制器以DSP和FPGA为核心器件,针对运动控制中的实时控制、高精度等具体问题,规划了DSP的功能扩展,并在FPGA上扩展了功能相互独立的四轴运动控制电路。该电路实现了四路控制信号输出,四路编码信号的接收和处理,以及原点信号,正负限位信号等数字量的接收和处理。具有结构简单、开放性、模块化等特点,能够较好的满足运动控制器的实时性和精确性。
0 引言
运动控制技术是制造自动化的关键基础,其水平高低是衡量一个国家工业现代化的重要标志,研究和开发具有开放式结构的运动控制器是当前运动控制领域的一个重要发展方向。随着集成电路技术、微电子技术、计算机技术和网络技术的不断发展,运动控制器已从以单片机和微处理器作为核心的运动控制器和以专用芯片(ASIC)作为核心处理器的运动控制器,发展到了基于PC机平台的以数字信号处理器(DSP)和现场可编程门阵列(FPGA)作为核心处理器的协处理架构的开放式运动控制器。该控制器将PC机和DSP的信息处理能力与FPGA的外围扩展功能很好的结合在一起,具有信息处理能力强、模块化、开放程度高、运动轨迹控制精确等优点。
1 系统概述
该四轴运动控制器系统以TI公司C2000系列DSP芯片TMS320F2812和ALTERA公司CycloneⅡ系列FPGA芯片EP2C8F256C6为核心,DSP通过网口接收上位机的控制参数,完成系统位置、速度控制及运动轨迹规划;FPGA完成运动控制器的精确插补功能和外围电路的扩展。
运动控制器的主要功能包括:4路模拟电压输出,电压范围为-10~+10V,分辨率为16b;4路脉冲量信号输出;4路脉冲方向信号输出;4路驱动复位信号输出;4路驱动使能信号输出;4路差分编码信号输入;4路驱动报警信号输入;8路正负限位信号输入;4路原点信号输入;16路通用数字量。I/O。
2 DSP模块设计
DSP根据从上位机接收的运动模式和运动参数实时计算规划位置和规划速度,生成所需的速度曲线,实时的输出规划位置。TMS320F2812是TI推出的一款专门用于电机控制的32位定点DSP芯片,采用高性能静态CMOS技术,主频高达150MHz(指令周期6.67ns),低功耗,核心电压为1.8V,I/O电压3.3V,支持JTAG边界扫描,128K×16b的片内FLASH。有两个事件管理器(EVA和EVB),它们都是特定的外围设备,为多轴运动控制器而设计的。可通过外部存储器接口XINTF扩展外部存储器。
为增强抗干扰性,DSP通过以太网控制器RTL8019AS与上位机连接,RTL8019AS内部含有一个16KB的SDRAM,DSP通过外部存储器接口对其进行读写来接收上位机的命令或向上位机传送反馈信号。在数据处理过程中要占用大量的存储空间,DSP内部仅含有18K×16b的SARAM和128K×16b的FLASH,存储空间显得过小,所以通过外部接口扩展了256K×16b RAM和512K×16b FLASH,RAM和FLASH芯片分别选择IS61LV25616 AL、SST39VF800,它们都具有接口简单、读写速度快等优点。SCI模块用于扩展RS 232串行通信接口,串口芯片使用MAX3232。
运动控制器所需电压为5V,3.3V,1.8V,1.2V。输入电压5V,分别采用稳压芯片LM1085IS3.3,LM1117-1.8将其转换成3.3V和1.8V,由于TMS320F2812的I/O电压3.3V要先于内核电源上电,所以1.8V要由3.3V降压得到,以确保上电次序。1.2V是FPGA内核所需电压,由稳压芯片LM317S稳压得到,LM317S的输出电压范围为1.2~25V,复位电路采用SP708低功耗微处理器监控器件,此器件有众多的组件,有效的增强了系统的可靠性及工作效率。
3 FPGA模块设计
FPGA用于轴资源的扩展,当接收到DSP中的规划位置后,在轴资源中对其进行变换处理,输出到伺服控制器中,伺服控制器将规划位置与编码反馈的计数位置进行比较,获得跟随误差,并通过伺服控制算法得到实时的控制量,将控制量传递给D/A转换器,由D/A转换器转换成控制电压输出。
EP2C8F256C6是ALTERA公司CycloneⅡ系列芯片,其特点为高性能低功耗,内核供电电压为1.2V,8256个逻辑单元(LEs),182个用户I/O口(项目中使用了157个I/O口),165888b的内部RAM,嵌入了18b的乘法器,每个乘法器又可拆成2个9b的乘法器,芯片内部含有2个锁相环(PLL),8个全局时钟(Global Clocks)。该芯片所具有的逻辑单元数、频率和用户I/O口等都能很好的满足设计需求。
3.1 与DSP接口设计
DSP芯片的事件管理器(EVA,EVB)用于和FPGA连接,当输出脉冲量控制驱动器时,DSP使用两个事件管理器进行PWM波的控制,当输出模拟量时,DSP使用GPIOA/GPIOB向FPGA输出规划位置。
3.2 模拟信号输出电路设计
采用D/A转换器AD669进行模拟信号的输出,AD669具有两级锁存,在设计中,将其四路D/A芯片的第一级锁存处于透明状态,第二级锁存控制信号LDAC连在一起,当四路D/A芯片的数据预装好后,打开第二级锁存,四路D/A芯片即可同时转换,实现了四轴驱动的同时控制。
3.3 脉冲信号输出电路设计
脉冲输出电路由FPGA内部精插补器完成,精插补器根据DSP发送来的粗插补数据产生均匀的脉冲输出,脉冲的输出有两种格式:“脉冲+方向”和“正负脉冲”。由于差分信号对外部电磁等信号有很好的抗干扰性,特别是对共模干扰有很好的抑制作用。所以脉冲经过光耦隔离后,再将信号接入差分线驱动器AM26LS31后输出,差分线驱动器AM26LS31的作用是将输入的单极性方波信号转化为一对极性相反的电机驱动信号。
3.4 编码反馈电路设计
电机编码信号直接传入电机驱动器中,电机驱动器将三对差分编码信号A+,A-,B+,B-,N+,N-作为反馈传给运动控制器。在电机旋转时,所发出的编码信号会出现非常多的毛刺,并且经过驱动器大电源的干扰,如果直接接到FPGA中,可能会引起误判断,所以先将三对编码信号经过差分芯片AM26LS32转化成单路信号A,B,N后再接入FPGA中。芯片AM26LS32功能是将输入的一对极性相反的编码器差分信号转化成单极性的脉冲信号,与AM32LS31正好相反。
3.5 开关量接口和通用I/O电路设计
输出信号包括复位信号和使能信号,由FPGA产生,经光耦隔离后直接输出;输入信号包括驱动报警信号,正负限位信号和原点信号,这些信号经光耦隔离、电平转换后再由FPGA接收,当FPGA检测到这些信号后,确定具体的触发信号,做出相应的反应。另外运动控制器还提供了八路数字量输入通道和八路数字量输出通道,输入、输出通道都经光电隔离,以提高抗干扰性。
4 网口模块设计
DSP通过以太网控制器RTL8019AS与上位机连接,RTL8019AS在一块芯片上集成了RTL8019AS内核和一个16KB的SDRAM存储器,兼容RTL8019AS控制软件和NE20008b或16b传输,其接口符合Ethernet2和IEEE802.3标准。RTL8019AS与主机的接口模式有三种模式:跳线模式,PnP模式,RT模式。此运动控制器使用便于DSP应用的跳线模式。
(1)数据总线和地址总线。RTL8019AS的数据总线和DSP的16位数据总线直接相连即可。RTL8019AS片内NE2000寄存器组都是通过其映射I/O端口进行访问,I/O端口共32个,地址偏移量为00H~1FH,把I/O基地址设为300H,则对应的I/O端口寻址范围为:300H~31FH。只需要10根地址线就可以对I/O端口进行寻址,把SA10~SA19接低电平。
只需要5根地址线就可以寻址32位I/O端口,所以可以直接把SA9,SA8接高电平,SA5~SA7接低电平,SA0~SA4与DSP的低5位地址线XA0~XA4相接。
(2)控制总线。RTL8019AS片选信号AEN使用DSP的扩展片选信号,IORB、IOWB直接与DSP的读写控制信号相连,中断输出引脚INT0与DSP的XINT2相连,高电平有效的复位输入引脚与监控电路芯片SP708的RST相连,当DSP复位时,RTL8019AS也复位。
(3)RTL8019AS与网络介质接口。RTL8019AS可以使用同轴电缆或双绞线作为传输媒介,将其AUI接口接地或悬空,使用BNC接口。BNC接口方式支持8线双绞线或同轴电缆。20F001N是双绞线驱动器,为耦合隔离变压器模块,通过它可以去除因电路数字特性导致的高次谐波。其差分输入信号TPIN+、TPIN-与差分输出信号TPOUT+、TPOUT-分别与20F001的对应引脚相连。
5 结语
在PC平台下,充分利用了DSP的数据处理能力和FPGA的硬件特性,使系统既能进行复杂的轨迹规划、高速插补,又能保证运动控制器的稳定性和精确性,这种运动控制器能应用于数控系统,机器人制造等控制领域。
基于SHARC DSP与SJA1000的CAN总线接口设计
引言
当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。
SJA1000简介
SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的控制器局域网络(CAN)。它是Philips公司早期CAN控制器PCA82C200(Basic CAN)的替代品,而且增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新功能的CAN2.0B协议。
SJA1000与微处理器的接口主要由8根数据和地址分时复用线完成:AD0~AD7、ALE/AS、、/E、、、MODE和,其中MODE为接口方式选择信号,可设置成Intel方式或Motorola方式。两者的区别在于:Intel模式下,处理器对SJA1000写时,用、作为读、写数据信号,ALE下降沿锁存地址(此时地址信号要保证基本的建立保持时间),仅在读、写数据时为低;Motorola模式下,读、写信号用区分(高电平读、低电平写),用/E选通数据(下降沿锁存),AS和CS类似于Intel的ALE和。目前流行的MCS51/96系列单片机提供了方便快捷的直接Intel方式接口,出于普遍性的考虑,本文以下的接口设计都是基于Intel模式的。
DSP的接口信号和时序
与早期的处理器不同,DSP芯片的片外引脚都采用地址线和数据线分离的设计方法,不再使用地址数据分时复用线,也没有ALE信号,这样就给CAN控制器与DSP的接口带来一定困难,且不同的DSP外部引脚和时序也略有区别。要设计CAN控制器与DSP的接口,首先必须比较DSP与CAN控制器的时序。
本文选用的DSP为ADSP21062,主频为40MHz,单周期(零等待)访问存储器时,要求存储器的响应(读或写)周期小于17ns,但许多存储器或外设的响应速度没有这么快,于是就要通过加等待来延长访问时间。ADSP2106x支持两种等待方式,即内等待(软等待)和外等待(硬等待)。
SJA1000和CAN总线的连接
选择82C250作为收发器,选择6N137高速光电隔离器实现系统和CAN总线的隔离。这种设计既能做好电气隔离,又能保证数据的传输速度。
CAN控制器与DSP的接口设计方法
SJA1000的数据和地址信号为分时复用,而DSP为数据、地址信号分离的结构,而且DSP不提供ALE信号,设计的关键就是DSP要把SJA1000的地址当成数据写入并同时产生ALE信号。分析读写信号所要求的最短有效时间,由于读低电平到数据有效的时间最长为50ns,所以要保证读信号有效时间至少50ns,ADSP21062在用2个软等待时,其低电平时间为62.5ns(25ns/2+2×25ns),刚好能满足要求。
ADSP21062和SJA1000接口的简化设计
在外围设备连接不多的情况下,接口电路可以使用几个逻辑门实现。由于访问外部数据时,数据总线的低16位未用,所以使用的数据线从DATA16起始。当Flag1=1时,SJA1000的WR始终为1,其ALE为DSP的WR的反向,当DSP把地址当成数据写入SJA1000时,低电平DSP的WR信号会转换成高电平的ALE,并在ALE的下降沿把数据锁存。当Flag1=0时,ALE始终为0,无地址锁存操作。SJA1000的WR直接受DSP的WR信号控制。由Flag2直接控制CS。
ADSP21062和SJA1000简化接口设计的相应程序如下:
1) #define CANADDR 0×400000
2) bit set mode2 FLG1O|FLG2O;
//设置Flag1,Flag2为输出
3) r1=0×00047800; dm(SYSCON)=r0;
//设置外部空间大小
4) r0=0×21a8c429;dm (WAIT)=r0;
//用2个软等待访问MS0
5) bit set aSTat ASTAT_FLG1;
//Flag1=1,
6) r0=addr;dm(CANADDR)=r0; //写入要访问的SJA1000的内部地址
7) bit clr astat ASTAT_FLG1;
//Flag1=0
bit clrastat ASTAT_FLG2;
//Flag2=0,CS=0
9) i0=CANADDR;r0=dm(i0,0);
//读取SJA1000相应地址的数据
10) r1=3;dm(i0,0)=r1;
//写入数据到SJA1000相应地址
11) bit set astat ASTAT_FLG2;
//Flag2=1,CS=1,5
为说明方便,对各条指令编号。运行指令5、7、8、11各花费25ns,运行指令6、9、10各花费100ns,所以完成一次读或写需300ns。
基于CPLD的ADSP21062和SJA1000接口设计
在连接多个外围设备时,其译码电路比较复杂,可以使用CPLD完成逻辑译码控制。利用地址数据信号产生CAN的ALE、CS等信号。其优点在于使用多个总线设备时,可用一片CPLD完成所有总线设备的译码,这种方法有更好的适用性。
DSP的程序设计如下:
[...]
独立于硬件技术的XC166单片机的DSP程序优化方法
XC166单片机的指令流水线存在着不可避免的阻塞现象,MAC单元指令也一样。尽管在硬件设计时已经采用了专用模块来减少阻塞,但有些阻塞是不可避免的,从程序优化的角度来说,可以充分利用指令流水线阻塞现象,通过重排指令流水线上的指令,消除阻塞,以使得程序的运行时间缩短,从而达到优化的目的。
通常DSP优化方法可以分为两类:一类是与芯片相关的,另一类是与芯片无关的。与芯片无关的优化方法独立于单片机硬件,适用于所有单片机及DSP处理器,下面根据使用XC166单片机的经验总结一些优化DSP程序的方法。
1 通用优化方法
1.1 数据组处理
数据组处理的基本思想是通过成组的处理数据,以节约每次调用处理子程序所需的附加指令。数据组处理可以在C语言或汇编语言程序中实现。一般而言,对于开发DSP程序,最常用的程序语言为C和汇编。下面分别介绍如何在C和汇编程序中使用数据组处理优化方法。
(1) C程序
在C环境中开发DSP程序,通常算法本身由汇编编写,以便优化实现。C主程序通过调用汇编实现的核心处理子程序来完成对数据的处理。核心处理子程序有两种实现方法,一种是数组处理,另一种是单值处理,假设单值处理子程序的核心部分与数组处理子程序的核心部分所需机器周期相同,并且调用子程序的前期处理需M个机器周期,后期处理需要N个机器周期,如果子程序被调用K次,那么理想情况下,数据组处理可以节约(K-1)(M+N)个机器周期。
(2) 汇编程序
在汇编程序中实现数据组处理有多种方法,比如数组操作,数组读入/写出等。
1、数组操作。数组操作是将多个不同的短操作数装入一个长位数的寄存器,然后进行运算操作。比如,1个16位的寄存器可以装入2个8位的来自A/D转换器的数据。
2、数组读入写出。这种方法是将多个短操作数合并为一个长操作数后进行读入/写出操作。
1.2 数据存储器交织
数据存储器交织的目的是通过重新排列数据在存储器中的位置,以使得程序读写数据的时间最短,比如有2个8位的复数x和y,一般情况下,复数将按下列顺序存入内存:real(x),image(x),real(y),image(y)。但如果想使得读取复数的实部更容易,可以把数据重新排列如下:real(x),real(y),image(x),image(y)。
1.3 循环展开
循环展开是一种非常传统的程序优化方法,可以用于所有程序优化中,循环展开的目的是通过重复循环中的程序,减少循环次数,从而减少循环判断指令的执行次数,以此来降低程序执行所需的机器周期。
1.4 指令流水线重排
指令流水线重排的意思是通过软件程序中的指令重排来改变指令流水线,以此来排除由于硬件引起的指令堵塞,从而加快程序的运行时间。这种优化操作通常用在汇编程序中,指令流水线重排是一个一般的优化原理,把这个原理用于不同类型的单片机可以导出不同的与单片机硬件相关的优化方法。下面介绍的基于XC166单片机的优化方法主要是应用这个优化原理得到的。
2 与芯片相关的优化技术
2.1 XC166指令流水线
XC166单片机指令流水线共有7级,前两级为取指令流水线,后5级为执行流水线,所有指令都必须经过5级执行流水线的每一级。
第1级–指令预取。这一级根据预测顺序,把指令从程序管理单元(PMU)取出,取出的指令在跳转检测单元进行前期处理,以检测是否有跳转,预测逻辑决定是否接收转移。
第2级–取指令。根据转移预测规则计算出下一条被取指令的指针。对于零机器周期转移,转移合并单元先预处理,并将检测到的转移与正在执行的指令结合起来。预取出的指令存在FIFO缓存器中,同时,下一条要执行的指令输出FIFO缓存器,进入执行流水线。
第3级–译码。指令被译码,如需要,在间接寻址模式中,寄存器文件将被访问,以读取通用寄存器GPR。
第4级–寻址。计算所有操作数地址,对于所有隐含访问系统堆栈的指令,堆栈指针递减或增加。
第5级–存储。所有需要的操作数被取出。
第6级–执行。使用已取出的操作数进行MAC单元操作。对于非MAC单元指令,在这一级中,指令将由算术逻辑单元(ALU)执行。条件标志被更新,执行所有直接对CPU特殊功能寄存器CPU_SFRs进行写操作的指令,在间接寻址时,作为地址指针的GPRs自动递减或增加。
第7级–写回。所有外部操作数以及剩余的,在内部DPRAM空间内的操作器被写回。定位在内部SRAM中的操作数进入写回缓冲区。
2.2 数据相关性排除
在XC166的CPU中,由于指令流水线的设计要求,在使用通用寄存器(GPRs)的指令之间存在一些数据相互依赖的情况,尽管XC166单片机已经使用了专用硬件来检测及解决数据相关性,但仍然有一些不可避免的数据相关性。在编程时,可以充分利用数据相关性来达到程序优化的目的,比如,在用GPR作为间接寻址指针时,如果PGR中的地址值被改变,间接寻址操作必须等待2个机器指令周期后,才能使用GPR作为地址指针寻址。在这种情况下,可以在这2个等待机器周期内插入2条其他单机器周期指令,充分利用这2个周期的等待时间以便程序更优化。
另外一种数据相关性发生在间接寻址访问内存时,XC166单片机中的地址产生单元使用推测原理,在地址译码前,数据的读取路经将根据历史记录表中选出;在历史记录表中,每个GPR都有一个入口。这些入口记录了用相应GPR所访问的内存空间情况。如果这种预测发生错误,读取操作必须重新开始。
因此,如果用GPR作为间接寻址,GPR最好能指向相同内存空间。如果更新后的GPR指向不同内存空间,下一个操作将出现访问错误,读操作必须重复,这就产生了指令流水线堵塞。
2.3 内存带宽冲突排除
如果在流水线上的指令在同一时间访问同一内存,就会发生内存带宽冲突,MAC单元的CoXXX指令是特别为实现DSP设计的。为了避免在DPRAM中发生带宽冲突,CoXXX指令的其中一个操作数必须放在SRAM中,以保证在单个机器周期内执行MAC单元指令。
2.4 指令重排
在用MAC单元指令编程时,经常要改变MAC单元的特殊功能寄存器,比如IDX0,IDX1、QX0、QX1、QR0以及QR1等,在XC166单片机中,有一些指令将会阻塞在译码阶段,如果这些指令正好在一条修改特殊功能寄存器(SFR)指令之后执行,这种阻塞将引起3个机器周期的延时。
这些指令包括:
◇使用长地址模式的指令;
◇使用间接寻址的指令,除JMPS和CALLI外;
◇所有MAC单元指令(CoXXX指令)。
为了避免指令阻塞,在使用上述指令时,如有阻塞情况发生,应该重新重排指令,以消除延时。
3 结论
用于英飞凌XC166单片机的DSP优化技术分为两类:与硬件相关的优化技术和独立于硬件的优化技术。独立于硬件的优化技术也可以用于其他的单片机或专用数字信号处理器。
基于DSP的频率特性测试仪设计
基于直接数字频率合成技术的思想,采用现代数字信号处理和显示技术,设计了一台低成本、数字化、智能化的频率特性测试仪。实现了对20 Hz~150 MHz范围内任意频段的被测网络幅频特性和相频特性测量。完成了数据存储、-3曲带宽计算、峰值查找等功能,幅度检测精度达到1dBm,相位检测精度1°等指标。
传统扫频仪的信号源大多采用LC电路构成的振荡器,大量使用分立元器件来实现各功能,显示部分采用传统的扫描显示器。因此传统结构的扫频仪不仅结构复杂、体积庞大、价格昂贵、操作复杂,而且由于各元件分散性大,参数变化容易受外部环境变化影响,精度不高。目前,以Agilent等为代表的仪器生产厂家提供了多种高性能的频率特性测试仪。但其产品主要集中在射频、微波等高频领域,中低频段的产品相对缺乏。本文基于直接数字频率合成(DDS)的技术思想,采用DSP和FPGA架构的现代数字信号处理技术,设计了一台低成本,高度数字化和智能化的频率特性测试仪,实现了对20 Hz~150 MHz范围内任意频段的被测网络幅频特性和相频特性测量和显示,完成了数据存储回放和传输,-3 dB带宽计算,峰值查找等功能。幅度检测精度达到1dBm,相位检测精度1°的指标。
1 系统组成
频率特性分析仪主要包括控制和数据存储处理单元、DDS信号源单元、幅度和相位检测单元、数据采集单元、显示及交互接口单元。
2 系统设计
2.1 控制与数据处理单元
ADSP—BF532和FPGA(EP1C3)是控制与数据存储处理单元的核心。DSP通过PPI、SPI和PF接口与FPGA进行双向数据通信,实现键盘读取,DDS扫描,A/D采集,LCD扫描等功能,通过UART单元与计算机实现数据传输和远程控制。FPGA完成了TFT_LCD和VGA同步显示时序转换、键盘扫描、SPI通信和信号分配等功能。另外,DSP通过EBIU单元连接AM29LV800和MT48L32M16分别作为程序与工作状态存储器和数据存储与显示缓存。
2.2 数据采集单元
数据采集单元采用多路A/D转换器将幅度和相位的模拟电压信号转换为数字信号供DSP和FPGA进行处理和传输,是模拟电路和数字电路之间的“桥梁”。本仪器中选用AD7655采集信号。该A/D转换器具有4个模拟输入通道,16位采样精度,最高采样率为1MHz。采用16位并行和SPI等传输模式。REF3125提供A/D转换器所需的2.5 V参考电压。
2.3 DDS信号源单元
DDS技术是一种把一系列数字量形式的信号通过DAC转换成模拟量形式信号的合成技术。DDS技术建立在采样定理的基础上,它首先对需要产生的波形进行采样,将采样值数字化后存入存储器做为查找表,然后再通过查找表将数据读出,经过D/A转换器转换成模拟量,把存入的波形重新合成出来。
本仪器选用的DDS芯片AD9958是一款高性能双通道直接数字频率合成器,具有两个独立的DDS核,分别具有两个独立的32位频率控制字和14位相位控制字,一个10位的幅度控制字。内部集成PLL,芯片最高工作频率500 MHz,输出信号最高频率可达180 MHz。DSP通过SPI和PF接口经FPGA信号分配逻辑对AD9958进行频率、相位和幅度控制字的配置。
AD9958采用25 MHz外部时钟输入,经内部PLL倍频后产生500 MHz内核工作时钟。输出信号为两路同频的正弦和余弦信号。为避免数字噪声对信号产生干扰,芯片的3.3 V数字供电与模拟供电部分需采用型网络隔离,并对模拟地接小电阻到地平面以隔离干扰。由于芯片输出为电流信号,需采用51Ω上拉到1.8 V转换为电压信号,经LFCN—160集成滤波器滤除高频噪声,并采用差分运放AD8312抵消共模噪声。输出信号电平范围为-10~-3 dBm。
2.4 输出电平调节单元
本仪器设计的信号源输出电平范围为-87~13 dBm。而前级DDS信号源单元的输出信号电平范围为-10~-3 dBm,因此需要对前级信号进行电平调节。
本单元首先通过宽带运放THS3201将前级信号电平放大到12~19 dBm。然后通过可控衰减网络实现输出-87~13 dBm范围内的信号。通过控制接通不同的型电阻衰减网络来实现。可控衰减网络由-8 dB、-16 dB、-32 dB和-64 dB这4种型电阻衰减网络组成,通过68595驱动继电器TQ2组合出不同衰减倍数的衰减网络。
2.5 相位检测单元
本仪器选用AD8302构建了相位差检测电路。AD8302可对0~2.7 GHz,-60~0 dBm范围内的两输入信号之间的幅度比和相位差进行精确测量,其中相位检测精度可达1°。
使用单片的AD8032无法进行-180°~180°范围内的监相。为实现-180°~180°监相,仪器采用I、Q正交检测方法。即DDS信号源输出两路同频正交信号,该正交信号分别通过两片8302与待测信号分别进入两片AD8302监相,则可得到两条相位差为90°相位曲线。
2.6 幅度检测单元
本仪器幅度检测电路由对数放大器AD8310和滤波电容单元组成。AD8310可检测0~440 MHz,-91~+4 dBV范围信号的幅度值。
其中,VOUT为检波输出;VY为斜率电压;VIN为输入信号电压;VX为截止电压。
AD8310的OFLT和BFIN引脚的电容需要根据扫频频率来实时调节。经过反复试验,采用0.01μF,0.1μF,1μF,10μF和100μF的组合可实现20 [...]
Kintex-7 FPGA DSP套件高速模拟演示
Kintex-7 FPGA DSP套件是赛灵思与安富利共同开发的搭配高速模拟信号处理针对DSP领域的目标设计平台,专可应用于高性能信号处理应用的开发。
带高速模拟的 Kintex-7 FPGA DSP 套件由赛灵思和安富利电子元件部(Avnet Electronics Marketing) 联合开发,是一款用于高性能信号处理应用开发的 DSP 领域目标设计平台。这个简短的视频既概述了 KC705 基础板和 FMC150 模拟接口硬件,同时也介绍了Kintex-7 325T FPGA。通过下载目标参考设计并在硬件中执行,我们可以对回环配置中连接的模拟接口执行数字上/下变频操作。然后,我们进入第二个设计,用以展示 MathWorks 模型设计环境中的更高层次平台集成。这种集成可对来自数据转换器的实时模拟数据进行缓冲,并送入 Simulink® 环境加以分析,再利用赛灵思System Generator 工具或 HDL 编码器进行设计开发。
基于DSP TMS320F206的仿真调试
TMS320F206(以下简称F206)是C2XX系列DSP中的一个产品,其独有的片内32KB的闪速存储器FLASH使其仿真调试与众不同。F206带有程序、数据和I/O三个相互独立的存储空间,每个存储空间均为64K×16位,其中片内双访问RAM为544字(288字用于数据,另256字可用于程序/数据),片内FLASH为32K字,片内单访问RAM为4.5K字。
F206的仿真调试
● F206仿真调试的特点
F206的仿真调试器没有采用传统的插入仿真的方法,而是通过仿真器与DSP芯片上的几个仿真引脚间通信实现,F206具有符合IEEE1149.1标准的JTAG逻辑扫描电路,扫描仿真不仅克服了因仿真电缆过长而引起的信号失真,而且克服了传统单片机“插入式仿真方式脱机运行时就出错的缺点。利用闻亭公司生产的EPP_XDS510仿真器进行系统的在线仿真调试,其一端与计算机的并口相连,另一端通过一双列14脚的仿真插头与F206通信。
● 问题的提出
如果所要进行仿真的硬件装置没有外部存储器,此种情况下如何实现仿真呢?若将程序完全定位至8000H开始的片上SARAM内,则与F206中断向量表应该定位至0000H相矛盾,从而中断进一步程序将不可能正确运行;若将程序完全定位至0000H开始的FLASH内,虽保证了中断进一步程序可以正确运行,但是由于在FLASH内无法设置断点,所以此种情况下不能顺利进行仿真调试;若将中断向量表定位至0000H的FLASH内,将程序的其他部分定位至8000H内,可以保证中断进一步程序的正确执行,也可以在SARAM内设置断点,似乎是一种可行的方法,但是程序每改动一点,也就意味着中断向量表也要做相应的修改,即要再次将中断向量表烧写到FLASH内,不仅麻烦而且对FLASH也有损伤。
● 问题的解决
针对以上种种方案存在的弊端,笔者提出了一种行之有效的解决办法,那就是将中断向量表和程序都定位至8000H开始的SARAM内,而在0000H烧写进一定的跳转语句,这样既保证了中断的正确执行,程序断点的调试,同时对FLASH也只要进行一次烧写即可。
首先完成跳转语句的烧写。F206的FLASH烧写必须具备如下几个前提:FLASH烧写工作只能在WIN98操作系统下完成,在WIN2000操作系统下将会显示窗口初始化失败,被强行关闭;时钟频率必须为20MHz。
相应的CMD文件为:
MEMORY
{ PAGE 0: VECB rg= 0000h,length=40h
……
PAGE 1:
……
}
SECTIONS
{ vectorb : {} > VECB PAGE 0
……
}
相应的vectorb的程序为如下。
*File: vectorb.h *
*File defines Interrupt vectlabels *
.global _c_int0
.global _c_int1
.global _c_int2
.global _c_int3
.sect “vectorb”
b 8000h ;硬件复位c_int0
b [...]
基于双DSP的磁轴承数字控制器容错设计
引言
电磁轴承(AMB)是利用可控电磁吸力将转子悬浮起来的一种新型高性能轴承,具有无接触、无摩擦、高速度、高精度、不需润滑和密封等一系列特点,在交通、超高速超精密加工、航空航天等高科技领域有着广阔的前景。
由于磁悬浮系统本征不稳定,控制系统的好坏将会直接决定磁轴承的性能。近年来国内外在数字控制方面发展很快,数字控制器将是未来的磁轴承控制的主流。本文从工业应用的要求和成本考虑,对控制器进行了容错设计,提出了双DSP容错控制器的方案。
磁悬浮控制器的容错设计分析
冗余是实现容错和提高可靠性的一种有效方法,对于磁轴承DSP控制系统来说,其本身的时间余量和程序空间余量都非常有限,故主要是采用硬件冗余,即采用多DSP冗余设计来提高系统的可靠性。
在多机冗余系统设计中,关键问题是多机的重构策略、多机的仲裁切换逻辑及多机运行的同步等。小规模的终端系统相对于功能强大的中央控制系统有四个明显的特点:系统结构较简单、成本较低;软硬件资源比较缺乏;必须具备很好的实时性能;运行时间余度太小。通过以上分析与对成本的考虑,本文提出了针对工业应用的双机热备冗余控制系统设计方案。
设计原理
冗余核心控制功能是通过CPLD来实现的。模拟信号分别输入到两个DSP进行运算,由中心仲裁模块选择主DSP,然后由主DSP来处理输出到D/A转换的数据、时序和RS-232的输出信号。
输入缓冲模块
为了消除输入端输入阻抗带来的影响,对于数字信号增加一级缓冲器,可以减小外围电路的干扰。本系统中,主要是进行RS-232和晶振、复位、外部中断输入信号的缓冲(RS-232的输出接口由主DSP进行控制)。另外,对于模拟信号本设计通过电压跟随器来实现阻抗匹配,并减小了误差和A/D转换的时间。
DSP时钟同步的实现
由于本设计方案是通过DSP的完全同步来实现冗余控制的,故采用双DSP共同使用一个晶振信号的方式。系统工作时,要待电源稳定和晶振完全起振后,才能对DSP进行复位。通过对实验室现有的控制系统的测试,电源稳定和晶振稳定起振的时间大概是40ms,故复位时间应选择大于该值。此外,为了提高其抗干扰性,复位后的信号经过施密特触发器后最好先经过CPLD缓冲,然后再接到DSP的复位端。
硬件故障判决模块
本设计中使用每个DSP CLKOUT引脚的输出信号作为判决硬件故障的基本条件。如果DSP硬件正常工作,CLKOUT引脚将输出固定的时钟波形;如果系统的CLKOUT没有时钟波形输出,将认为该DSP硬件不正常,然后由中心仲裁模块来隔离该DSP。其具体实现方法就是CLKOUT信号经CPLD实现的分频器后送到单稳态触发器74LS123,若系统的CLKOUT信号不正常,74LS123会产生跳变,驱使中心仲裁模块隔离不正常DSP。
输出总线表决模块
输出总线表决模块主要实现系统的容错,解决系统的软故障。当两DSP的总线输出信号进行比较时,如果不相同,则表明某个DSP或者两个DSP都产生了软故障,系统抑止错误输出,并由中心仲裁模块对此情况进行处理,使系统实现容错功能。考虑到A/D转换的误差,本设计只对输出数据总线的高8位进行表决。
中心仲裁模块
中心仲裁模块主要是分析由输出总线表决模块和硬件故障判决模块输出的结果,并做出判断,确定主DSP。主DSP的功能主要是控制对外的输出,包括控制D/A转换输出和RS-232的输出。
中心仲裁模块的仲裁方式
当硬件判决模块和软件表决模块都没有报错,则系统采用默认的DSP1为主DSP;如果硬件判决模块有一块DSP报错,则隔离出错的DSP,另一个为主DSP ,并且报警;如果两个DSP都报错,则会报告系统的错误,并提供控制系统产生错误的接口信号,让系统在最短的时间里启动安保系统。当两个DSP都没有产生DSP硬件报错时,如果软件表决模块报错,则通过CPLD启动复位信号,重新复位两个DSP,并由CPLD核心控制模块记录复位次数,如果系统连续复位次数超过四次且没有出现一次正确的输出总线结果或两个DSP在线自检均没有通过,将会启动安保系统;如果有一个DSP自检不通过,则隔离该DSP,系统会输出报警信号,同时主DSP控制权交给另一DSP;如果复位次数小于四次,且出现了正确的输出总线结果,CPLD模块会清除复位计数次数,主DSP依然是DSP1。
DSP软件实现
在DSP系统中,使用了看门狗模块,来解决系统程序跑飞问题。系统复位后,通过检测看门狗电路复位标志位来检测系统程序状态,如果是系统看门狗复位,通过软件使DSP产生输出总线报错,其结果与输出总线报错处理方式一样;否则为由仲裁模块引起的复位,并且执行在线自检。如果在线自检不通过,CPLD会自动隔离硬件。设计中为减小系统的复位时间和控制系统的连续性,存储数据的时候采用了双口RAM idt7133,这样可以在复位后快速的采用前一次计算的暂存数据(相互取对方数据,并且与自己的数据进行平均),从而使复位对系统的影响降到最小。
在线自检的实现
通过CPLD中心仲裁模块来控制信号传输控制门,实现A/D转换,转换成基准电平(本设计采用2.5V)后再通过实际的控制算法来计算,并将结果输出到CPLD与离线计算好的结果(存储在CPLD上)进行比较,如果实时计算结果和离线结果相同,则表示系统自检通过,否则,自动隔离自检不通过的DSP。
系统的可靠性评估
系统的中心控制模块是采用CPLD实现的,其可靠性远高于基于程序实现的DSP,本系统中把CPLD的故障率近似认为是0,即平均无故障时间远大于DSP。
根据电子系统模型可知,单机的可靠性随时间变化服从指数分布,即为Ri(t)=e-lit(li为故障率),所以单机系统的平均无故障时间为1/l,而本方案的无平均故障时间为:
显然,本系统的无故障时间为单机运行的1.5倍,较大的提高了控制器系统的可靠性。
结语
本文提出的磁悬浮容错控制器方案,采用了软硬件协同设计,实现了故障诊断和系统重建的功能,较大的提高了控制器的可靠性,为磁轴承的工业推广应用提供了性能保障。
