一种小型高集成智能测试装置的设计与实现
扫描二维码
随时随地手机看文章
本文介绍的这种小型高集成智能测试装置,应用于一类安全关键系统电子学设备综合测试系统中。其作用是对安全关键系统的重要状态和参数进行实时控制和测量,完成大量的数据采集和处理以及控制信号的接收和发送等诸多功能。由于对系统的运算速度、接口资源、稳定性以及成本等有着非常高的要求,因此其测试数据、分析曲线、显示图表和指示结果是分析、判定安全关键系统性能和工作状态的重要依据,同时为相关的决策、指挥、控制提供依据和手段。
1 系统设计与工作原理
1.1 系统构成
小型高集成智能测试装置采用80C196单片机+PSD+CPLD的结构[1],再加上模拟信号的匹配电路,可完成模拟量及数字量的采集,使系统的电路设计简单;PSD及CPLD均为在系统可编程器件,使大量的硬件设计转换为软件设计,I/O接口扩展方便。上位机主要通过标准接口对测试系统的测试数据进行传输和参数装订及控制。SCS电子学综合测试主要包括SCS关键组件测试、地面外围测控及其数据传输及处理。其功能框图如图1所示。
1.2 小型智能测控装置的构成
小型智能测控装置主要包括数据采集模块、静态检测模块、远程参数装订模块及数据传输模块。由于SCS对电子控制部件有严格的体积和重量要求,测控装置应按照系统的要求设计,使得体积、重量尽量小且功能完善,以便确保系统的可行性。
在测试装置设计过程中进行了许多优化和改进。其基本体系采用微控制器加外围接口模块的结构。在设计数据采集系统的硬件时,采用高集成度的器件,包括80C196单片机、可编程外围器件PSD以及复杂可编程逻辑阵列CPLD等,提高了系统集成度,并且还提高了系统硬件的可靠性及灵活性。
外围接口模块采用复杂可编程门阵列CPLD-MAX7256[4],硬件设计进一步软件化。一片CPLD器件替代了多片74系列器件,如138译码器、多路开关、244驱动器、与门、或门等,大大减小了板卡体积。由于CPLD为可编程,使设计更为灵活。MAX7256有5000个门,256个宏单元,16个逻辑阵列块,164个I/O口,支持多电压I/O接口,满足系统要求,并有一定冗余。在设计阶段对CPLD的设计通过EDA工具进行仿真,包括功能、时序、EMC/EMI的模拟仿真,在完成PCB板之前,就做好了充分的测试验证。
另外,选用了集成度更高的单片机外围接口器件PSD4235[2~5]。PSD4235芯片是WSI公司新推出的PSD4000系列产品,可以为16位和32位的微控制器以及DSP提供在系统可编程的并发闪速存储器、SRAM、可编程逻辑和额外的I/O。其片内集成了4M位的闪速存储器,256Kbit的用于引导数据的次闪速存储器,256Kbit的SRAM,16个输出微单元、24个输入微单元的CPLD,译码PLD,52个可单独配置的I/O端口,JTAG串行接口等,并且有支持掉电模式的低功耗可编程电源管理单元。PSD芯片对外地址分配和各接口的逻辑译码由专用的软件PSDSoft Express实现。PSD4000系列器件是在应用中可编程(In Application re-Programming,IAP)的,也就是说,它们可以在不影响系统运行的情况下,在现场远程地进行再编程。这种功能对于需要在现场进行代码/数据更新的系统特别有用,如全球定位系统(GPS)、汽车控制系统以及医疗仪器等。测控装置电路原理图如图2所示。
1.3 信号采集
在实时测量和控制系统中,对信号的采集要求可靠、准确、快速地完成。被测量的回路一般有几十或上百个,而且采集信号种类多,包括模拟量信号和数字量信号,因此测试工作应具有很强的实时性,同时对数据采集的抗干扰能力也应用很高的要求。正是由于对数据采集系统的要求日益复杂,智能化的小型安全关键系统采集模块才成为测控系统的核心。
数据测试主要包括SCS各个关键组件的电压、程序动作(延时时间或开关量)、振荡波形及脉冲串的测试。设计的重点在于可靠性和实时性。数据采集的可靠性是至关重要的,只有具备了较高的可靠性,才能保证数据采集的正确性,因此设计中充分考虑测试过程的抗干扰能力,提高了测试的可信度。数据采集模块结构如图3所示。
模拟量的测量采用80C196单片机模拟量测量接口。80C196的A/D口共8个,需要利用多路开关轮流切换各被测回路的A/D转换电路,以达到分时处理的目的。由于信号的强弱、幅值以及阻抗匹配电路不同,因此设计时进行了如下处理:
(1)对电压信号进行分类,不需要放大器的属于一类,在这类当中又进行细分——电压值范围分类。因为80C196单片机要求采集电平在5V以内,如果对每一路电压进行分压及阻容滤波设计,势必使用大量的电阻及电容器件,不利于小型化,因此按电压幅值进行分类。阻抗匹配也十分重要,同一类的阻容滤波网络放到多路开关的输出端,节省了大量电阻、电容器件。根据需要选择4路、8路或16路的多路开关,如CD4051、CD5052、MAX396或MAX397等。
(2)对于小信号,每个通道应在多路开关前设置放大器。在多路开关后设置可编程放大器,利用单片机编程控制放大器的增益,以满足各通道信号的不同增益要求。
(3)对于开关量及数字量,调到满足CPLD输入要求的电平即可,在CPLD内部设计多路开关,进行测量路数转换,一次8路分时输入到80C196单片机端口。
(4)对于频率信号,调到满足单片机输入要求的TTL电平即可直接输入单片机端口进行测量。
(5)对于信号强且干扰大的信号,需要进行光电隔离,以免影响单片机测试电路。
1.4 CPLD电路设计
PSD器件已有少量CPLD宏单元,在测试系统不复杂、I/O端口够用的情况下,PSD+CPU的两片式系统能够很好完成任务,当然就不必再外加CPLD器件。当测试及控制的外部通道多,需大量的数字I/O端口、片选、数字多路开关、三态门及译码电路时,仅添加一片CPLD器件就可解决问题,提高了系统集成度。
FPGA和CPLD都是可编程ASIC元件,由于FPGA和CPLD结构上的差异,彼此之间存在各自的特点:
(1)CPLD适合实现各种运算和组合逻辑, FPGA则适用于实现时序逻辑。
(2)CPLD的时间特性比FPGA稳定。CPLD的布线结构决定了它的时序延迟是稳定和可以预测的,而FPGA的分段式布线结构使得对其时间延迟的预测困难,因而CPLD的速度比FPGA快。
(3)在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内部联线的逻辑功能来编程,而FPGA主要是通过改变内部线路布线来编程。
(4)FPGA的集成度比CPLD高,适合于较复杂的布线结构和逻辑实现,所以FPGA元件的可编程逻辑数比CPLD大得多。
(5)CPLD使用比FPGA方便。CPLD的编程采用E2PROM或Flash技术,而且可以加密,使用时外部不需要另外的存储元件;而FPGA的编程采用SRAM技术,使用外部存储元件来存放程序,使用方法较复杂。另外,电路信息存放在外部芯片中,使得FPGA的保密性较CPLD差,电路资料容易被他人读取,电路容易被剽窃,不适合保密程度要求较高的系统。
(6)在编程方式上,CPLD主要是基于E2PROM或Flash
存储编程,可编程次数大于1万次,优点是系统断电时编程信息不会消失。FPGA大部分是基于SRAM编程,编程信息会在系统断电时消失,所以每次上电时系统都要重新将编程信息从外部记忆装置读入FPGA的SRAM中。其优点是可编程次数不限,并且在开发过程中可以很方便地随时更改程序,其缺点是系统上电时程序容易受到干扰。
设计时应综合考虑以上各因素,来确定选择CPLD还是FPGA。根据测试功能需求,本系统设计的CPLD芯片内部结构如图4所示。
在CPLD的设计中,采用VHDL语言作为主要的设计手段,是当前ASIC设计的主流方法之一。VHDL语言实现相关的设计过程具有高效、方便、易于移植的特点,而单纯的硬件电路设计缺乏灵活性,修改不方便,动辄印制版报废。这种硬件设计软件化,使得被测对象接入点发生改变或增减时,仅需相应电路的部分软件作适应性修改,底层硬件电路及上层应用软件都不需作大的改动甚至可以不改,大大节约了系统维护成本。在CPLD的设计过程当中,一边设计,一边在计算机上完成软件仿真工作,使得仿真测试与功能行为的检验贯穿设计始终,保证了各项功能的正确性及可靠性,确保了最终产品的设计质量。
在系统设计中可以根据需要让CPLD完成更多的功能,如将80C196单片机的部分功能用CPLD完成,其中主要是测试部分,包括串行接口、数据编码/校验、帧构造、定时发送、与外围测试计算机的数据交换。通过长期的积累,拥有大量的可复用IP模块,使系统开发设计更为快捷。
2 智能化与可靠性设计
系统信息的智能化测控主要体现在两个方面:一是要具备学习记忆功能,能够根据信息通道的初始值或实测值自动调整其控制参数;二是可以根据接收的命令,对其通道号、通道数、采集时间、传输字节以及控制方式等进行调整。
本文介绍的小型智能化测试装置不仅可以根据需求快速进行测试内容的调整,还具有静检、装订参数、提供数据的功能。其测试得到的数据可通过RS-485串行通信总线或无线手段发送到外围测试接收设备中。由于数据传输、测试数据封装、因而通道选择等均由软件来实现,因而智能化程度高,使用方便。
在测控数据传送过程中,针对不同的任务,使用的信息格式各不相同,要采用不同的数据处理程序。应根据外围测控系统与SCS智能测试装置的通信内容,构造通信协议、数据处理协议,依据不同的信息类别(控制命令)处理不同的数据,信息帧的打包传送则由传输模块进行处理。
通常在试验场所有很强的电磁干扰,这些干扰以传导和辐射的形式从动力线和信号线进入系统。为了保证系统正常可靠运行,采用软、硬件相结合的抗干扰技术,输入通道中采用RC滤波、高低电平嵌位、隔离技术,很好地抑制了各种高频干扰,并实现瞬间过压保护;部分输入输出信号采用光电耦合器,隔断外部信号与控制系统的联系;软件上采用中值和算术平均值相结合的方法,剔除信号的瞬间干扰,同时软件设计采用多种优化手段提高系统的健壮性。为了防止电路因公共阻抗而引起信号交叉耦合,系统采用并联单点接地设计,系统内模拟地和数字地分开,只在一点处汇合。
3 测试装置的软件设计
测控软件采用PL/M196语言编制[3],用WAVE6000调试编译完成。软件流程图如图5所示。
测控软件主要包含两个分支:信号测试分支和参数装订分支。其工作分支的判断依据是地面提供的一路测试与否的电压信号。装订参数电压大于给定值,系统进入参数装订分支,单片机等待接收装订数据,进行数据正确性判定,并将各数据通过I2C接口分类存放到共享的几片Flash ROM中。如无装订电压,则进入测试分支,单片机开始测试各路信号,并将测试数据打包成帧,同时计算全部数据的CRC校验,发送到接收设备,并对测试数据进行判断,确定系统工作流程。由于数据量较大,需要测试的信号路数、种类较多,需要打包发送的数据帧长70多字节,每10ms以115.2k的波特率发送,除去测量、控制及组帧时间,数据传送的时间就要仔细计算了。采用查询及标准的中断方式,10ms时间就远远不够了,通过示波器测量,一帧数据测试加传输需70ms。本系统采用PTS(外设事物服务器)中断方式,由微代码硬件中断处理器控制,占用很少的CPU时间,类似于PC机的DMA,不用修改堆栈和保存程序状态字。本系统采用PTS块传递方式,只需给定PTS控制字、数据块的起始地址及数据长度,定义中断屏蔽寄存器,最后开放PTS中断和标准中断,这样一帧数据测试加传输需6.5ms。
经过测试实验表明,采用单片机、PSD、CPLD和电压调理电路等主要组件设计完成SCS相关信息的采集与控制不仅是高效可行的,也是使得SCS测试装置小型化、智能化、提高测试系统可靠性卓有成效的途径之一。单片机与可编程逻辑器件有很强的互补性。单片机具有性能价格比高、功能灵活、易于人机对话、良好的数据处理能力特点,CPLD和PSD等可编程器件则具有高速、高可靠性以及开发便捷、规范、易于维护等优点。这种单片机加外部可编程器件的电路结构在许多高性能仪器仪表和电子产品中有广泛的应用前景。