基于CPLD的单片机接口设计

时间:2022-05-10 06:55:31

基于CPLD的单片机接口设计

摘 要:现在分离元件在很多电路设计中还在普遍使用,完成逻辑转换、地址译码、数据锁存等任务,在PLD技术相当成熟的今天,采用PLD代替传统分离元器件,将会极大地减小PCB尺寸,节约成本。对CPLD器件和开发工具进行研究,提出一种单片机与CPLD总线接口方案。运用该方案设计单片机系统实现A/D,D/A,LCD等多种外设的接口,电路简洁,并给出CPLD电路设计方案,总体电路原理图和关键程序代码。

关键词:CPLD;分离元件;PLD;EDA

中图分类号:TP331.1 文献标识码:B 文章编号:1004-373X(2008)02-034-03オ

Design of Single Chip Computer Interface Based on CPLD

TIAN Kaikun,XU Haixia

(Electrician and Electronics Experiment Center,Hubei Normal University,Huangshi,435002,China)オ

Abstract:Many circuit design still use separative components in nowadays,completes the logic to transform,the address decoding,the data lock saves and so on.Today the PLD technology has become more and more mature,using the PLD technology instead of tradational separative components not only reduce the PCB size,but also save the cost.This paper researches CPLD devices and the reference tools,proposes a bus interface between single chip computer and CPLD.The single chip computer system contain A/D,D/A,LCD and something else,adopting this way,making the circuit more easy and clear.This paper also gives CPLD circuit design scheme,circuit theory graphic and the main program code.

Keywords:CPLD;separative components;PLD;EDAオ

1 引 言

随着PLD(可编程器件)技术的成熟,应用越来越广泛。单片机系统中,例如RAM,A/D,D/A,LED等常需要一些门电路作为接口,通常采用诸如74系列、40系列等分离元件实现,往往电路庞大复杂,不便集成。PLD以可编程特性受到设计者的青睐,成为替代分离元件的最佳选择。

复杂可编程逻辑器件(Complex Programable Logic Device,CPLD),其内部有大量的门电路,组合逻辑的功能很强,能完成任何数字器件的功能。高性能CPU,简单的74 电路,都可以用CPLD 实现。CPLD 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由地设计一个数字系统。用户可以反复编程、擦除、使用或在电路连接不变的情况下用不同软件实现不同的功能。

CPLD基本都是由E2PROM和FLASH工艺制造,一上电就可以工作,无需其他芯片配合,使用方便,容易设计。

2 CPLD开发工具

CPLD器件的设计与开发离不开EDA工具软件,现在有很多支持CPLD/FPGA设计的软件。

在众多的开发工具中,Xilinx的ISE软件是非常流行的一种。ISE集成开发软件是Xilinx公司最新的EDA开发工具,他支持所有的Xilinx芯片,如XC9500,XC9500XL等。

Ateral公司的MaxplusⅡ,QuartusⅡ,也是业界最著名的CPLD/FPGA开发工具,支持所有的Ateral芯片,如MAX3000,MAX7000,MAX-Ⅱ系列。

由于EDA软件已经发展得相当完善,用户甚至可以不用详细了解CPLD的内部结构,也可以用自己熟悉的方法:如原理图输入或HDL语言来完成相当优秀的CPLD设计。

3 单片机与CPLD接口设计

单片机与CPLD之间可以根据需要,采用多种不同的接口方式,这里提出一种总线接口方案,采用三总线(数据、控制、地址)结构,如图1所示。双向数据总线完成数据传输,单向控制总线和地址总线通过CPLD对对象控制。

这里以经典51系列单片机和Ateral公司的EPM7064接口为例,设计单片机通过CPLD实现地址锁存、地址译码译码、LCD,ADC0809,DAC0832的接口设计,实现灵活可扩展地址编码。

单片机P0口为双向数据总线,该P0口与CPLD的通用I/O口连接,完成数据和低8位地址传送;控制总线包括单片机读写控制总线Rd和Wr,以及地址锁存信号(Address Lock Enable,ALE),地址总线A15(P2.7)。控制总线和地址线通过CPLD的全局输入信号引脚输入,包括全局时钟Globle Clk、全局清零输入Global Clear、全局使能输入Global OE、特定输入Ded.Input。这些全局信号与CPLD里面的每一个单元相连,当用外部的时钟触发时,用这些信号比用普通管脚速度快,保证信号到每个宏单元的延时相同并且延时最短。

4 应用系统设计

CPLD扩展接口系统结构框图如图2所示。CPLD实现地址锁存,地址译码,并产生满足A/D,D/A,LCD时序的控制逻辑电路。系统不需要任何分离元件,电路简洁紧凑、极大的缩小PCB尺寸、增强系统可靠性。由于CPLD是硬件编程设计,还可以在CPLD当中设计硬件加密逻辑,有效防止产品复制。

4.1 电路设计

CPLD内部电路如图3所示,在Max+Plus Ⅱ环境中,直接调用集成库74373B,实现地址锁存,74138完成地址译码,地址编排如表1所列;用与门和或非门设计LCD带地址使能控制信号;DIV_CLK模块对ALE信号8分频后提供ADC时钟;或非门设计ADC带地址读写控制信号;ADC转换完成EOC信号经非门转换实现与单片机外部中断电平匹配;或门实现DAC编址写信号。

module counter(clkin,clkout);

input clkin;

output clkout;

reg [1:0]i;

reg clkout;

always@(posedge clkin)

begin

i

if(i==3)clkout=!clkout;

end

endmodule

电路图如图5所示,CPLD通用I/O与外设连接可以根据实际PCB布线需要,灵活选择。

4.2 单片机程序设计

4.2.1 ADC0809编程控制

设定通道并启动一次A/D转换

MOV DPTR,#8001H[JY];此处地址由硬件决定

MOV A,#CH[JY];设定通道CH,0~7有效

MOVX @DPTR,A[JY];锁定通道同时启动1次A/D转换

4.2.2 LCD编程控制

LCD接口如图3所示,RS接P2.0,RW接P2.1,得LCD命令、数据读写驱动如下:

MOV DPTR,#8000H;

MOV A,#CMD

MOVX @DPTR,A[JY];写命令#CMD

MOV DPTR,#8100H;

MOV A,#DATA

MOVX @DPTR,A[JY];写数据#DATA

MOV DPTR,#8200H;

MOVX A,@DPTR[JY];读命令

MOV DPTR,#8300H;

MOVX A,@DPTR[JY];读数据

4.2.3 ADC0832编程控制

MOV DPTR,#8002H[JY];此处地址由硬件决定

MOV A,#DATA[JY];#DATA为DAC数据

MOVX @DPTR,A[JY];将数据写入ADC0832

通过CPLD扩展单片机接口,电路简洁灵活,为二次开发提供了便利,节省了PCB面积。

参 考 文 献

[1]程耕国,刘涛.CPLD扩展51 单片机寻址范围[J].微计算机信息,2006(5):185-186.

[2]周立功.单片机与CPLD 综合应用技术[M].北京:北京航空航天大学出版社,2005.

[3]王淑文.基于CPLD的数字系统设计\[J\].现代电子技术,2007,30,(12):184-185,188.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于AD6652的数字电视基带解调器设计 下一篇:基于ARM的嵌入式视频通信系统设计