您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

用CPLD实现单片机读写模块

时间:2007-1-20栏目:电子通信论文

  摘要:介绍实现单片机与Xilinx公司XC9500系列可编程逻辑器件的读写逻辑功能模块的接口设计,以及Xilinx公司的XC9500系列可编程逻辑器件的开发流程。
  关键词:复杂可编程逻辑电路微处理器在系统编程现场可编程门阵列
  
  1概述
  
  CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。CPLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。例如,实现常用的地址译码、锁存器、8255等功能;也可实现加密、解密及扩展串行口等单片机所要求的特殊功能。实现嵌入式应用系统的灵活性,也提高了嵌入式应用系统的性能。
  
  CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把CPLD应用于嵌入式应用系统,同单片机结合起来,更能体现其在系统可编程、使用方便灵活的特点。CPLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。例如,实现常用的地址译码、锁存器、8255等功能;也可实现加密、解密及扩展串行口等单片机所要求的特殊功能。实现了嵌入式应用系统的灵活性,也提高了嵌入式应用系统的性能。
  
  2Xilinx公司的可编程逻辑器件
  
  Xilinx公司的XC9500系列可编程逻辑器件是一款高性能、有特点的可编程逻辑器件。它的系统结构如图1所示。从结构上看,它包含三种单元:宏单元、可编程I/O单元和可编程的内部连线。它的主要特点是:
  
  ①高性能。在所有可编程引脚之间pin-pin延时5ns;系统的时钟速度可达到100MHz。
  
  ②容量范围大。Xilinx公司的XC9500系列可编程逻辑器件的容量范围为36~288个宏单元;可用系统门为800~6400个。
  
  ③5V在系统可编程。可以编程10000次。
  
  ④具有强大的强脚锁定能力。
  
  ⑤每个宏单元都有可编程低功耗模式。
  
  ⑥没有用的引脚有编程接地能力。
  
  Xilinx的XC9500系列可编程逻辑器件的主要性能如表1所列。
  
  3CPLD同单片机接口设计
  
  CPLD同单片机接口原理如图2所示。
  
  CPLD同单片机接口设计中,单片机采用Atmel公司的AT89C52,CPLD采用Xilinx公司的XC95216。该CPLD芯片结构及性能见图1和表1。AT89C52通过ALE、CS、RD、WE、P0口(数据地址复用)同XC95216芯片相连接。
  
  表1XilinxXC9500t系列器件
  
  项目XC9536XC9572XC95108XC95144XC95216XC95288寄存器/个3672108144216288可用门数/个80016002400320048006400宏单元数/个3672108144216288fPD/ns57.57.57.51010tSU/ns3.54.54.54.56.06.0tCO/ns4.04.54.54.56.06.0fCNT/MHz100125125125111.1111.1fSYSTEM/MHz10083.383.383.366.766.7
  注:fCNT=16位计数器最高工作频率;fSYSTEM=整个系统的最高工作效率。
  
  ALE:地址锁存信号。
  
  CS:片选信号。
  
  RD:读信号。
  
  WR:写信号。
  
  AD0~AD7:数据地址复用信号。
  
  本例的设计思想是,在XC95216设置两个控制寄存器,通过单片机对两个控制寄存器的读写来完成对其它过程的控制。
  
  XC95216设置的两个控制寄存器,可以作内部寄存器,也可以直接是映射为I/O口。
  
  图2XC9516同单片机接口原理图
  
  4CPLD同单片机接口设置结果
  
  本例中,使用Xilinx公司提供的FundationISE4.2i+Modelsim5.5f软件实现设计。实现设计的源文件模块如下:
  
  /**************************
  
  //MCU和XC95216接口程序
  
  //目的:MCU读写XC95216
  
  /**************************/
  
  modulemcurw(MCU_DATA,ALE,CS,RD,WE,CONREG1,CONREG2);
  
  inout[7:0]MCU_DATA;//单片机的地址数据复用信号
  
  output[7:0]CONREG1,CONREG2;//内部控制寄存器
  
  inputALE;//单片机的地址锁存信号
  
  inputCS;//单片机的片选信号
  

[1] [2] 下一页

下页更精彩:1 2 3 4 下一页

★相关文章: