老古开发网首页
导航:老古开发网首页文章索引索引第1687页文章分类CPLD/FPGA第4页→[用CPLD实现单片机读写模块]
| -文章搜索 - 最新文章 - |

用CPLD实现单片机读写模块

发布时间:2006年2月14日 点击次数:3407
来源:   作者:
 
摘要:介绍实现单片机与Xilinx公司XC9500系列可编程逻辑器件的读写逻辑功能模块的接口设计,以及Xilinx公司的XC9500系列可编程逻辑器件的开发流程。

关键词:复杂可编程逻辑电路 微处理器 在系统编程 现场可编程门阵列

1 概述

CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。CPLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。例如,实现常用的地址译码、锁存器、8255等功能;也可实现加密、解密及扩展串行口等单片机所要求的特殊功能。实现嵌入式应用系统的灵活性,也提高了嵌入式应用系统的性能。

CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。CPLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。例如,实现常用的地址译码、锁存器、8255等功能;也可实现加密、解密及扩展串行口等单片机所要求的特殊功能。实现了嵌入式应用系统的灵活性,也提高了嵌入式应用系统的性能。]


 此主题相关图片如下:

2 Xilinx公司的可编程逻辑器件

Xilinx公司的XC9500系列可编程逻辑器件是一款高性能、有特点的可编程逻辑器件。它的系统结构如图1所示。从结构上看,它包含三种单元:宏单元、可编程I/O单元和可编程的内部连线。它的主要特点是:

①在所有可编程引脚之间pin-pin延时最短可为5ns;系统的时钟速度可达到100MHz。

②XC9500系列的容量范围为36~288个宏单元

③5V在系统可编程。可以编程10000次。

④具有强大的强脚锁定能力。

⑤每个宏单元都有可编程低功耗模式。

⑥没有用的引脚有编程接地能力。

Xilinx的XC9500系列可编程逻辑器件的主要性能如表1所列。

表1 Xilinx XC9500系列器件

 此主题相关图片如下:

注:fCNT=16位计数器最高工作频率;fSYSTEM=整个系统的最高工作效率。 

 

3 CPLD同单片机接口设计

此主题相关图片如下:

CPLD同单片机接口设计中,单片机采用Atmel公司的AT89C52,CPLD采用Xilinx公司的XC95216。该CPLD芯片结构及性能见图1和表1。AT89C52通过ALE、CS、RD、WE、P0口(数据地址复用)同XC95216芯片相连接。

 

ALE:地址锁存信号。

CS:片选信号。

RD:读信号。 WR:写信号。

AD0~AD7:数据地址复用信号。

本例的设计思想是,在XC95216设置两个控制寄存器,通过单片机对两个控制寄存器的读写来完成对其它过程的控制。

XC95216设置的两个控制寄存器,可以作内部寄存器,也可以直接是映射为I/O口。

图2 XC9516同单片机接口原理图

 

4 CPLD同单片机接口设置结果

本例中,使用Xilinx公司提供的Fundation ISE 4.2i+Modelsim 5.5f软件实现设计。实现设计的源文件模块如下:

/**************************

//MCU和XC95216接口程序

//目的:MCU读写XC95216

/**************************/

module mcurw(MCU_DATA,ALE,CS,RD,WE,CONREG1,CONREG2);

inout[7:0]MCU_DATA;//单片机的地址数据复用信号

output[7:0]CONREG1,CONREG2;//内部控制寄存器

input ALE; //单片机的地址锁存信号

input CS; //单片机的片选信号

input RD; //单片机的读信号

input WE; //单片机的写信号

reg[7:0]LAMCU_DATA; //内部控制寄存器

reg[7:0]ADDRESSREG; //内部地址锁存寄存器

reg[7:0]CONREG1; //内部控制寄存器

reg[7:0]CONREG2; //内部控制寄存器

assign MCU_DATA=RD?8''bzzzzzzzz:LAMCU_DATA;

initial //寄存器初始化

begin

LAMCU_DATA<=0;

ADDRESSREG<=0;

CONREG1<=0;

CONREG2<=0;

end

always@(negedge ALE)

begin

ADDRESSREG<=MCU_DATA; //地址锁存

End

always@(posedge WE)

begin

if(!CS &&ADDRESSREG[0]= =0)) LAMCU_DATA

<=CONREG1; //从地址为0的CONREG1寄存器读数据

else if(!CS&&(ADDRESSREG[0]= =1))LAMCU_DATA<=CONREG2;

//从地址为1的CONREG2寄存器读数据

else LAMCU_DATA<=8''bzzzzzzzz;

end

else

LAMCU_DATA<=8''bzzzzzzzz;

End

Endmodule

使用Modelsim 5.5f仿真结果如图3和图4所示。图中ALE、CS、RD、WE、MCU_DATA是测试激励源信号,代表AT89C52接口信号;CONREG1和CONREG2的内部寄存器;ADDRESSREG是内部地址锁存寄存器。

图3 CONREG1写过程 图4 CONREG1读过程

图3是CONREG1写过程。首先,在ALE信号的下降沿,锁存MCU_DATA的数据到ADDRESSREG内部地址锁存寄存器。然后,在WE信号的上升沿,把MCU_DATA(0XAA)的数据锁存到寄存器CONREG1。

图4是CONREG1读过程。首先,在ALE信号的下降沿,锁存MCU_DATA(0X00)的数据到ADDRESSREG内部地址锁存寄存器。然后,在RD信号的低电平期间,把MCU_DATA(0XAA)的数据锁存到寄存器CONREG1。

从图3和图4可以看出,对CONREG1寄存器的读、写过程完全满足进序要求,CONREG2的读写过程同CONREG1一样,也完全满足时序要求,实现了期望的功能。

结语

本文实现CPLD与单片机接口设计是笔者设计的高速采样设备的一部分,经实际验证完全正确。简单地修改该模块,笔者已成功地将其应用于多个CPLD或FPGA与单片机接口的项目中。



欢迎进入老古论坛进行讨论
[CPLD/FPGA] 相关文章:
XILINX面向多功能智能手机市场推出首款可编程演示平台
简介:
赛灵思公司今天宣布推出一款创新的演示平台,可展示可编程器件在快速增长和发展的智能手机领域中的优势。该平台整合了基于赛灵思 CoolRunner&#8482;-II CPLD 系列的子卡,可演示一种经过验证的方法,该方法通过整合新特性和提供协处理功能,可比现有设计方法更快地推出先进手机特性,并同时满足消费市场苛刻的功耗、尺寸和成本要求。 &nbsp......

赛普拉斯推PRoC开发套件,助客户简化向无线连接的过渡
FPGA领域先进工艺应用进展神速,赛灵思90nm器件出货愈千万
赛灵思可编程演示平台 面向智能手机市场
BittWare新推出I/O开关及处理方案
 
下一个:[单片机]采用2051设计的无线防盗报警器
简介:
一、硬件设计   电路原理图如下图所示,主要由无线接收、数据解码、数据处理、报警电路、输出显示、断电报警和电源电路组成。整机接收频率315M,数据解码采用市面上用得较多的PT2272专用解码芯片,可靠性及稳定性较好;数据处理的任务由单片机完成,用于区分报警信号,同时接受各种操作指令,完成相应的操作,当接收到报警信号后一方面驱动报警电路,发出响亮的警车报警声,另一方面输出具体的地址信息,确定是哪一路发送了报警信号;断电报警功能则实时监控电源状况,当市电断电后,能发出嘟嘟的报警声,提配使用者注......

上一个:[芯片介绍]常用语音IC

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:63毫秒