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后大大简化了电路,提高了体系全体机能,使体系具有了集成度高、机动性强、靠得住性高、易于进级和扩大等特色。