——管腿间逻辑延迟为7. 5ns ; ——系统工作频率可达140MHz; ——在系统可编程; ——快闪存储技术
——驱动能力强;每个输入/输出口的负载电流可达24mA,可直接驱动LED 显示而无需另加驱动电路。
——保密和抗干扰性;XC9500器件包含先进的数据保密性,它可以完全保 护编程数据不被非法读取和擦除。
——增强引脚锁定功能。XC9500系列器件的结构特性着重系统内编程的要 求,增强的引脚锁定功能可以避免重做昂贵的印刷电路板。
ISE Foundation6.1是XILINX公司新推出的支持该公司Virtex, Spartan, Coolrunner和XC9500系列器件的EDA工具,涵盖了设计输入、综合和验证等过 程。ISE Foundation包含了业界用于可编程设计的最先进的时序驱动实施工具。 综合以上考虑,本设计的可编程逻辑器件选用XIL工NX公司的XC9500系列 XC95144型号的CPLD芯片,设计工具选用该公司的ISE Foundation6.lo 3. 2 CPLD与单片机的接口设计
CPLD与单片机接口方式一般有两种一总线方式和独立方式。独立方式中, 接口逻辑无需遵循单片机内固定的总线方式和读/写时序,其通信时序由设计的 软件自由决定,形式灵活,但其缺点是稳定性不够高。 而以总线方式通信有许多优点: ——可靠性高
单片机以总线方式来实现对CPLD的控制,其通信工作时序是纯硬件行为, 并且严格按照单片机的总线读写时序工作,控制可靠性比较高。 ——单片机编程简洁,速度快
通过指令MOVX@DPTR, A和MOVXA, C@DPTR即可读/写相应的数据和控制信号, 编程非常简洁。 ——硬件实现效率高
如CPLD与MCS-51单片机的总线接口通信逻辑图所示,如果将图中的译码器 设置足够的译码输出以及足够的锁存器,就能够通过单片机的19条1/0线(P0, P2, ALE, WR, RD)来实现系统所需的各种类型的数据和控制信息的交换。 ——单片机易于实现与SRAM或ROM的接口
该接口方式可以利用类似于微处理器系统的DMA工作方式,首先由CPLD对 外围器件进行高速采样,并将数据暂存于SRAM中,采样结束后,通过CPLD中的
- 13 -
逻辑切换,使单片机与SRAM总线方式通信。CPLD与单片机以总线方式通信的逻 辑设计。重点在于了解单片机的总线读/写时序,根据时序图来设计逻辑结构。 MCS-51单片机的时序图,其时序电平变化与单片机工作时钟频率有关。 地址锁存使能信号,可利用其下降沿将PO口作为低8位地址锁存于CPLD中的 地址锁存器LATCH-ADDRES。当ALE将低8位地址通过PO锁存的同时,高8位地 址己稳定于P2口,单片机利用读指令允许PSEN的低电平,从外部ROM中将指令 从PO口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。接下 来,P2口和PO口分别输出高8位和低8位的数据地址,并由ALE的下降沿将PO 口的低8位锁存于地址锁存器。
单片机从CPLD中读数据时,置RD信号为低电平,通过指令MOVXA, @DPTR可 由PO口将锁存器LATCH-INl中的数据读入A寄存器。相反,若要将A寄存器中 的数据写入CPLD需通过MOVX@DPTR, A将DPTR中的高8位和低8位作为地址分别 向P2口和PO口输出,然后在WR信号为低电平期间结合译码,将A寄存器中的 数据写入相应锁存器。
CPLD WR-ENABLE1 LATCH-OUT1 译码 WR-ENABLE1 WR P2 WR-ENABLE2 ….. WR-ENABLE2 CPU RD P0 ALE LATCH-OUT2 地址所存 LATCH-ADDRESS WR-ENABLE4 LATCH-OUT4 LATCH-IN1 P0
图3. 2. 1 CPLD与MCS-51单片机的总线接口通信逻辑图
- 14 -
3.3基于CPLD的功能实现
根据第二章提出的设计内容,CPLD要实现的功能模块如下: 3.3.1音频信号产生电路模块
此部分主要产生信标机所需要的400Hz, 1300Hz, 3000Hz频率信号,直接利 用CPLD库里的计数器来实现非常方便,因此采用原理图输入方式。
CPLD选定的输入频率为3. 2768MHz,首先经过一个16位同步二进制计数器 分频可得到如下16种频率:
表3.2 16位同步二进制计数器分频得到16种频率 输出 频(Hz) 输出 频(Hz) 产生400 Hz的计算方法如下:用QO (11)的输出, 频就能得到占空比为1: 1的400 Hz音频信号,见图 在经过一个D触发器二分3.3.1. 1所示。
图3.3.1.1 分频产生400Hz原理图
产生1300 Hz的计算方法如下:将QO (0-二15)分别除以2600,其商最接近 整数的频率即可作为产生1300 Hz的输入信号。
表3.3 输出 频(hz) 输出 频(hz) - 15 -
Q0(0) Q0(1) Q0(2) Q0(3) Q0(4) Q0(5) Q0(6) Q0(7) 12.8K 率1.638M 819.2K 409.6K 204.8K 102.4K 51.2K 25.6K Q0(8) Q0(9) Q0(10) Q0(11) Q0(12) Q0(13) Q0(14) Q0(15) 3.2K 1.6K 800 400 200 100 50 率6.4K Q0(11) D Q 1.6384M 819.2K 409.6K 204.8K 102.4K 51.2K 25.6K 12.8K 9.85 100 - 4.92 50 - 率630.15 315.08 157.54 78.77 39.38 19.69 6.4K 3.2K 1.23 1.6K - 800 - 400 - 200 - 率2.46
从商的值可以看出,819. 2K最适合产生2600 Hz的输入频率,它们分别需 要经过315分频得到2600. 635Hz然后,然后经过一个D触发器取得1300. 317Hz, 频偏为0. 317Hz,完全符合要求。315分频可通过一个9位二进制计数器取得, 见图3.3.1.2所示。 Q0(1)
图3.3.1.2分频产生1300Hz原理图
产生3000 Hz的计算方法如下:将QO (0.二15)分别除以6000,其商最接近 整数的频率即可作为产生1300 Hz的输入信号。
表3.4 输出 1.6384M 819.2K 409.6K 204.8K 102.4K 51.2K 25.6K 12.8K 频率(hz) 273.07 136.53 68.27 34.14 17.07 8.53 4.27 2.13 输出 频(hz) - 16 -
Q0Cr Clk Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 D Q 6.4K 3.2K - 1.6K - 800 - 400 - 200 - 100 - 50 - 率1.07
相关推荐: