基于CPLD的单片机电路板故障测试诊断系统的接口设计方案

2019-01-07 16:35:45 来源:elecfans
标签:

 

CLPD(复杂可编程逻辑器件)兼容了LPD(可编程逻辑器件)和通用门阵列的优点,具有编程灵活、可实现较大规模电路的特点,同时具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定、可实时在线检验等优点,因此广泛应用于产品的原型设计和产品生产之中。

 

1、CPLD在测试系统中的作用

随着计算机和微电子技术的迅猛发展,单片机技术被广泛应用到各种智能仪表、工业控制及家用电器控制领域。但是它们在提高电路板的集成度、增强系统功能的同时也带来了很多测试和维修上的问题。传统的测试仪器和设备(如万用表、示波器、逻辑分析仪等)已不能适应现代测试要求,更无法快捷地诊断出系统的故障所在,因此给一个产品的生产和维护带来了诸多困难。


为了提高诊断效率,我们设计了一套基于虚拟仪器的单片机电路板故障测试诊断系统。

 

本系统接口的硬件部分由仿真cPu、sRAM、RS232接口芯片、各种接插件加上核心控制电路构成(见图1)。对于核心控制电路可以考虑两种方案:一种是采用TL集成电路块如74LS573、74璐135、74LS24、74璐245等几十个芯片构成;另一种是采用CPLD构成。

 

 

下面对两种方案进行比较。

 

1)可靠性

CPL/DFPGA的可靠性极高,几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽,而传统的TTL器件数量多、体积大,由此带来的故障隐患大,可靠性低,故障诊断困难。

 

2)可调整性

CPL/DFPGA可以通过软件编程而对其硬件的结构和工作方式进行重构,它采用先进的JTAc-ISP和在系统配置编程方式,在十SV工作电平下可随时对CPLD进行全部或部分地在系统编程,其编程次数多达1万次,而传统竹L器件不能再改变其逻辑功能,即使设计有误也无法很快进行调整。

 

3)可移植性

由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用CPLD的硬件结构没有关系,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,它几乎可用于任何型号的CPLD中,而传统的TL器件根本不具有可移植性。

 

4)开发周期

由于相应的EDA软件功能完善而强大,仿真方式便捷而实时,开发过程形象而直观,兼之硬件因素涉及甚少,因此可以在很短时间内完成十分复杂的系统设计,而传统的TrL器件从设计原理图、印制版图到制板、调试至少需花几星期时间,更不用说调试成功需花的时间可能长达数月之久。

 

 

由以上比较可以看出,用CPLD实现系统硬件的核心控制电路更加合理。CPLD的功能示意图见图2。

 

本测试系统中,cPLD的主要功能是切换wR、TxD和RxD这3根信号线,因为CPU在通信状态和仿真状态时都要用到这3根信号线。当接口板在与PC机通信时,这3个信号输人CPLD后输出为wRI、TXDI和RXDI;当CPU执行测试程序发送测试数据到被测板时,它们又从CPLD输出切换为WRZ、TxDZ和RxDZ。CPLD的另外一个主要工作是隔离接口板上的邵口、咫口的地址数据线和ALE、PSEN等控制线,防止被测板上的故障影响到自身工作。从图1可以看到,即OUT、P2OUT、ALEOUT,PSENOUT正是印口线、PZ口线、ALE线、PSEN线经隔离后才送到仿真头的信号,而CPU的其他信号如PI口、T0,T1等则直接送到仿真头上。另外,输出信号AL是经过锁存的低地址信号线。测试结果的取回有3种方式:总线数据和SRAM、ROM的测试结果通过仿真头从邵OUT送人CPLD隔离后由即口送入CPU;显示接口、键盘接口等接口数据通过ro针或16针扁平电缆插头从DATAI送人CPLD隔离后也由印送人CPU;其他一些远离总线的电路节点则通过探针从DATAZ送人CPLD后再送人CPU。

 

2、CPLD的设计

CPLD的设计是硬件系统中最重要的一环。从需要使用的FO引脚和硬件资源考虑,决定选用Altera公司MAX700()S系列中的7128SLC84一15芯片。该芯片内部有128个逻辑块、64个FO引脚,PLCC封装,可以在+SV和+3.3V下工作。

 

硬件描述语言全部采用VHDL。这种语言的特点在于将一项工程设计或称设计实体(可以是一个组件、一个电路或一个系统)分成外部(或称可视部分)和内部(或称不可视部分)两部分,然后再设计实体的内部功能和算法。

 

如图2所示,在本测试系统中CPLD要实现以下功能:

a)用做单片机系统中的外部低地址锁存器,相当于74璐573。

b)用做通信CPu和仿真CPU之间的切换开关。

 

因为接口板中的CPU在与PC机进行通信时需要用到控制线TXD、RXD,在往SRAM中写数据时需要用到WR线,而在仿真测试用做仿真CPU时所有的3根总线均要提供给被测板,所以必须对两种状态都要使用的控制线进行切换。切换的方法是在单片机的程序中执行几条指令,这类似于Flash的防误操作方法。向外部数据存储器地址FFFEH写数据9H,即

MOVXDPTR,#OFFFEH

MOVA,#99H

MOVX @DPTR,A

就可以将CPU切换到仿真状态。

往FFFFH写数据55H,即

MOVX DPTR,#OFFFFH

MOVA,#55H

Mov xnDPTR .A

就可以将CPU切换到通信状态。

 

具体的原理是在CPLD内部用vHDL语言设计了一个切换开关。向FFFEH地址写9H,切换开关在WR下降沿检测到此时的低地址为FEH、高地址为FFH、数据为9H时,就将WR信号输出到WRZ引脚,而WRI引脚输出为高阻状态;同理,往FFFFH地址写5H,则将WR信号输出到WRI引脚,而WRZ引脚输出为高阻状态。因此,每次切换须同时满足3个条件(低地址、高地址、数据)均相同。这样,当用做仿真CPU时提供给被测板的数据地址空间几乎是全空间的,发生误切换的概率几乎没有。

 

c)用做取回测试结果通道的切换开关。因为被测单片机电路板有可能不止一个FO接口,每个接口的测试数据都要由刊口送人单片机,这就需要一个切换开关来控制几条通路的数据输人以防止数据冲突。

 

采用的方法是给每个通路人为地分配一个程序存储空间地址,如键盘口为8082H、显示口为8083H、打印口为8084H等,使用MOVC指令来打开通道,即

MOVDPrR,#8082H

CLRA

MOVC A,@DPTR+A

这是将键盘口的测试结果通过8针的扁平电缆取回。

MOV DPTR,#8083H

CLRA

MOVCA,@DPTR+A

这是取回显示口的数据,同理可取回其他口的数据。

 

具体原理是在CPLD中设计了一个多路转换开关,以键盘口为例,转换开关的条件是当PSEN为低,低地址为82H,高地址为80H时输人键盘口的数据,不理会其他口的数据。

 

d)隔离接口板与被测板上的邵口、PZ口及控制线。如果不隔离两个板上的三总线,当被测板发生故障必将影响接口板,使得接口板根本无法工作,更谈不上对被测板进行故障诊断。PI口不用隔离是因为PI口不属于三总线。

 

具体的工作原理是用CPLD模拟单片机内部即口的时序,即先送出低地址,再送出数据。分析PO口读写外部数据存储器的时序可知,读周期中,低地址在ALE为高电平时送出,而数据在RD上升沿时读人;写周期中,低地址也在ALE为高时送出,外部器件在WR为低电平时打开,保证数据在低电平时有效写人。

 

在后面波形图中可以看到时序符合数据的有效读人和送出。P1口没有特别时序要求,输人CPLD后直接输出。

 

e)直接驱动一个LED灯闪烁。通过计数AEL次数来翻转电平,这样可以判断CPLD或接口板上的单片机是否工作正常。

 

3、CPLD的仿真

在用VHDL语言完成CPLD的设计并编译通过后就可以进行波形仿真,仿真主要是验证设计的时序是否满足实际的运行情况,所以仿真的条件须大致模拟系统的实际工作条件。本系统模拟的条件是晶振为11.092MHz的单片机时序。

 

按照单片机写外部数据存储器的时序进行切换WR、RxD、TXD信号仿真,从仿真波形图上可以看出,在发出切换到仿真CPU指令后WR入RxDZ、TxDZ能在下一个周期分别输出WR、RxD、TxD信号,而wRI、RXDI、TXDI都延迟几纳秒后变成高阻;同理,在发出切换到通信CPU指令后也能正确地切换。仿真图如图3所示。

 

 

按照单片机读外部程序存储器时序进行取I/0口数据仿真,从仿真波形图上也可看出,在发出取I/0口数据的MOvc指令后,数据结果延迟一段时间后开始出现在数据总线上,但只要在PSEN上升沿来到时数据还能保持,CPU就可以有效读人。仿真图见图4。

 

 

另外,数据线、地址线的隔离也比较理想,可保证数据线上的数据有效写人外部器件和有效读入数据。

 

经过实践证明,本测试系统接口应用CPLD后大大简化了电路,提高了系统整体性能,使系统具有了集成度高、灵活性强、可靠性高、易于升级和扩展等特点。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
一文详解CMOS芯片上的开路和短路测试

虽然可以对各种器件进行开路和短路测试,但这在半导体验证测试中最为常见。本文将详细描述在CMOS芯片上测试开路和短路的过程。

活用Xen Server中的Xapi管理接口

Xapi主要提供各客户端以及Pool中各主机通信的接口。 客户端可以通过Xapi来读取Xen Server的配置、管理、License的管理、数据库的维护等等,同时也包括如存储、虚机、虚拟网卡、HA等资源的功能管理及控制。Xapi接口必须保持向后兼容,允许较老版本的客户端可以正常工作。

如何平衡超快充和电池寿命?
如何平衡超快充和电池寿命?

在《Porsche electric car prototype achieves new record 400 kW charge rate》一篇报道里面,保时捷拿着自己的改造的车,尝试了800V&500A的测试,而宝马也拿着自己改造的I3(57kWh)去测试较高的功率。

工控机箱中CPCI接口通讯协议的FPGA实现办法

目前的仪器或者工控系统多数使用集成式工控机箱,机箱背板一般通过CPCI(Compact PCI)接口连接所有的插卡,包括工控电脑和各种采集卡、控制卡等。

微控制器和FPGA配对使用的几个典型案例分析

FPGA已经变得如此成本效益的,它们越来越多地与微控制器配合使用,以提高整个系统的效率。使用包括添加额外的功能在电路板空间最小,增加功率高效处理的复杂算法的前端,聚集多个外部设备卸载高性能MCU或以适应现有的设计到新所需的“胶水”逻辑接口要求,FPGA可提供额外的灵活性往往缺乏标准的MCU。

更多资讯
PLC的面向对象编程实现方式

面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。

ASIC项目瀑布式开发流程详解

最近收拾书架,翻出一张多年以前的ASIC项目开发流程图,一起回顾一下。

智能门锁不安全?工程师自己造了一个AI人脸识别门锁
智能门锁不安全?工程师自己造了一个AI人脸识别门锁

展示了AI如何在Ultra96和Intel Movidius NCS以及Tensorflow Inception Facenet上运行。 该项目可以扩展到使用面部识别来解锁,记录进出情况,打开不同的灯光场景。

芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么
芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么

赛灵思可编程芯片产品市场的不断增长推动它的发展壮大,5G网络的推出也是它继续前行的助推器。

使用Vivado HLS在ZYNQ-7000上开发OPENCV的教程

OPENCV(Open Source Computer Vision)被广泛的使用在计算机视觉开发上。使用Vivado HLS视频库在zynq-7000全可编程soc上加速OPENCV 应用的开发,将大大提升我们的计算机视觉开发。

电路方案