基于PLD与AVR总线通信接口VHDL设计与实现

发布者:缘到泉最新更新时间:2011-11-19 关键字:PLD  AVR总线  VHDL设计 手机看文章 扫描二维码
随时随地手机看文章
  1、引言

  嵌入式系统在日常生活中的大量使用,人们也对其性能和速度提出了更高的要求。微控制器和可编程逻辑器件的结合,更能充分发挥嵌入式系统的优势。本文设计和实现的微控制器与可编程逻辑器件之间总线读写方式通信比传统的串行通信更可靠、速度更快。下面是一些相关术语的说明。

  总线:任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线[2]。采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。

  AVR:ATMEL公司的AVR单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构 ,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令。本系统采用的AVR Mega64L还具有:用32个通用工作寄存器代替累加器,从而可以避免传统的累加器和存储器之间的数据传送造成的瓶颈现象;一个时钟周期执行一条指令;可直接访问8M字节程序存储器和8M字节数据存储器寄存器等特点[3]。

  PLD(Programmable Logic Device):PLD分为CPLD(Complex Programmable Logic Device)复杂的可编程逻辑器件和FPGA(Field Programmable Gate Array)现场可编程门阵列两大类[2、3]。

  两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。PLD是一种具有丰富的可编程I/O引脚的可编程逻辑器件,具有在系统可编程、使用方便灵活的特点;不但可实现常规的逻辑器件功能,还可实现复杂的时序逻辑功能。把PLD应用于嵌入式应用系统,同单片机结合起来更能体现其在系统可编程、使用方便灵活的特点。PLD同单片机接口,可以作为单片机的一个外设,实现单片机所要求的功能。实现了嵌入式应用系统的灵活性,可以大大缩短设计时间,减少PCB面积,也提高了嵌入式应用系统的性能。

  VHLD:VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,一种被IEEE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构、行为、功能和接口。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分)和内部(或称不可视部分),涉及实体的内部功能和算法完成部分[4,5]。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

  2、PLD同单片机接口设计

  系统中采用的MAX II EPM570 芯片有逻辑单元数(LE)570个,等效典型宏单元数440个,最大用户I/O管脚数160个,用户Flash存储器比特数8192,tPD1 角对角性能5.5 ns,tPD2最快性能3.7 ns。采用100-pin TQFP封装。

  EPM570同单片机接口原理如图1所示。


  图1 ATmega64L与EPM570接口示意图

  EPM570同单片机接口设计中,单片机采用Atmel公司的AVR系列的ATmega64L。ATmega64L通过ALE、CS、RD、WE、P0口(数据地址复用)同EPM570芯片相连接。ALE:地址锁存信号;CS:片选信号;RD:读信号;WR:写信号;AD0~AD7:数据地址信号复用数据线。

  本系统的设计思想是:在EPM570设置两个内部控制寄存器,通过单片机对两个控制寄存器的读写来完成对其它通信过程的控制。EPM570设置的两个控制寄存器,可以作内部寄存器,也可以直接映射为I/O口,根据实际需要而进行设置。

  本系统设计的关键是:在EMP570 上实现的存储器的读写时序要满足ATmega64L对外部读写时序的需要,有关ATmega64L对外部读写时序请参考相关资料和ATmega64L的数据手册。

  3、PLD同单片机AVR读写接口VHDL实现

  PLD的设计流程[6,7]一般应包括以下几部分:

  ① 设计输入。可以采用原理图输入、DHL语言描述、EDIF网表读入或波形输入等方式。

  ② 功能仿真。此时为零延时模式,主要检验输入是否有误。

  ③ 编译。主要完成器件的选取及适配,逻辑的综合及器件的装入,延时信息的提取。

  ④ 后仿真。将编译产生的延时信息加入到设计中,进行布局布线后的仿真,是与实际器件工作时的情况基本相同的仿真。

  ⑤ 编程验证。有后仿真确认的配置文件下载到PLD相关配置器件中,加入实际激励,进行测试,以检查是否完成预定功能。

  以上各步骤若出现错误现象,则需要重新回到设计阶段,修正错误输入或调整电路,在重复上述过程直到其完全满足电子系统需要。

  本系统中,使用Altera公司提供的集成开发软件Quartus II 6.0 进行设计,在进行模块实现时请参考ATmega64L的数据手册中关于ATmega64L对外部存储器的读写时序。

  本设计实现 的VHDL部分源码如下:

  地址锁存:


  写数据进程:


  读数据进程:


  4、仿真验证结果

  使用Quartus II 6.0 自带的仿真软件仿真结果如图2和图3所示。图中ale、cs、rd、we、MCU_data 是激励信号,表示ATmega64L 相应接口信号,conreg1和 conreg2 为EPM570 输出信号,其目的是为了观察仿真结果是否正确,而实际应用中应根据项目需求而进行添加或是减少相应的I/O口。

  图2是ATmega64L向 EPM570 写数据过程。首先,在片选信号cs为低期间,在ale信号的下降沿,锁存mcu_data上的数据到add内部地址锁存寄存器。然后,在we信号低电平时,把mcu_data (0XAA)的数据直接写到conreg1(B10101010),通过外接指示灯可以直接观察结果是否正确,当然,在实际应用中可以把数据锁存到内部寄存器中。

  图2写数据0X“AA”到0地址处

  图3是读数据过程。在片选信号为低期间,首先,在ale信号的下降沿,锁存mcu_data(0X01)数据到add内部地址锁存寄存器。然后,在rd信号的低电平期间,把内部寄存器地址为0X01的数据reg02(0xAA)读到mcu_data数据线上传回单片机ATmega64L。


  图3 读地址为0X“01”上的数据0x“AA”并传回数据总线

  从读写数据图中可以看出,ATmega64L对EPM570内部数据读写过程完全满足ATmega64L数据手册上的时序需要。关于ATmega64L的读写时序可以参考ATmega64L数据手册。

  5、结语

  本文实现PLD与AVR ATmega64L通信接口设计是笔者设计的一种纺织机械控制设备的一部分,经实际验证完全正确,并已投入生产。简单地修改该读写通信模块,可应用于多个CPLD或FPGA与单片机通信接口的项目中,本模块还可以根据需要扩展为16位、32位地址线的读写接口。

  本文创新点:充分利用可编程逻辑器件丰富的I/O口和内部可编程逻辑资源,通过总线读写的方式通讯,使PLD和MCU的通信速度大大提高,同时也提高了嵌入式系统或是工业控制中的其他相关性能,极大提高产品的竞争力。

关键字:PLD  AVR总线  VHDL设计 引用地址:基于PLD与AVR总线通信接口VHDL设计与实现

上一篇:基于单片机和串行总线技术的热量表设计
下一篇:CAN总线智能采集卡的设计与实现

推荐阅读最新更新时间:2024-05-02 21:43

单片机、DSP、PLD/EDA的介绍、比较和分析
引言   信息技术正在快速发展,其应用已经深入到各个领域各个方面。如今越来越多的电子产品向着智能化、微型化、低功耗方向发展,其中有的产品还需要实时控制和信号处理。电子系统的复杂性在不断增加,它迫切要求电子设计技术也有相应的变革和飞跃。使用纯SSI 数字电路设计系统工作量大, 灵活性低, 而且系统可靠性差。广泛使用单片机(MCU) 设计系统克服了纯SSI 数字电路系统许多不可逾越的困难,是一个具有里程碑意义的飞跃。而DSP 以其极强的信号处理功能赢得了广阔的市场,得到了广泛地应用。近年来,PLD 器件迅速发展,尤其是CPLD/ FPGA 向深亚微米领域进军,PLD 器件得到了广泛应用,以CPLD/ FPGA 为物质基础的EDA 技术
[单片机]
基于VHDL的SDRAM接口设计
RAM通常用于数据和程序的缓存,随着半导体工业的发展,RAM获得了飞速的发展,从RAM、DRAM(Dynamic RAM,即动态RAM)发展到SDRAM(Synchronous Dynamic RAM,即同步动态RAM),RAM的容量越来越大、速度越来越高,可以说存储器的容量和速度已经成为半导体工业水平的标志。   1 任务背景   SDRAM具有大容量和高速的优点,目前其存取速度可以达到100~133MHz,单片容量可以达到64Mbit或更高,因此在需要高速、大容量存储器的系统中得到广泛应用,如应用在目前的计算机内存中。但是SDRAM的控制比较复杂,其接口不能直接与目前广泛应用的普通微处理器如MCS-51系列、Motorol
[模拟电子]
基于<font color='red'>VHDL</font>的SDRAM接口<font color='red'>设计</font>
基于PLD的视频接口的技术构成与应用设计
从便携媒体播放器和手机,到视频游戏控制台,消费类视频应用的迅速增长需要大量不同的接口和适配器,以使用户在其电脑和各种娱乐信息设备间相互传输视频数据。 常用的消费类视频接口包括IEEE 1394(火线)、USB 2.0、DVI、HDMI和各种各样的无线标准。本文将介绍如何应用可编程逻辑器件(PLD)将不同的高速视频内容连接到视频播放器。 视频输入 USB 2.0是目前连接电脑和娱乐信息设备的主流高速视频标准。USB 2.0采用NRZI编码,带宽480Mb/s。从数码相机、机顶盒、信息家电,到MP3播放器、PDA、游戏控制台和3G手机,每种设备都有一两个USB 2.0接口。 USB主设备可为其外部
[工业控制]
基于<font color='red'>PLD</font>的视频接口的技术构成与应用<font color='red'>设计</font>
基于VHDL语言的智能拨号报警器的设计
    摘要: 介绍了以EDA技术作为开发手段的智能拨号报警系统的实现。本系统基于VHDL语言,采用FPGA作为控制核心,实现了远程防盗报警。该报警器具有体积小、可靠性高、灵活性强等特点。     关键词: VHDL语言 FPGA ASIC DTMF 目前,智能拨号报警器大多采用单片机作为控制核心,这种传统设计方法的特点是硬件和软件截然不同,设计中不可相互替代;而且硬件连线复杂,可靠笥较差。 硬件描述语言(VHDL)和可编程ASIC器件的广泛应用第一次打破了硬件和软件的屏障。基于VHDL语言、以EDA技术作为开发手段、采用现场可编程门阵列FPGA(Field Porogrammable Gate A
[半导体设计/制造]
PC/104标准四串口通信板设计
1 引言 PC/104嵌入式控制PC出现于80年代末,并于1992年形成IEEEP966.1标准,它既继承了所有的PC资源,又在结构、体积、功耗、可靠性等方面重新进行了设计,使之与IBM PC完全兼容,并具有了体积小、功耗低、工作温度范围宽、可靠性高等特点。PC/104嵌入式控制PC采用了独特的“自栈式”总线连接,模块化结构,使用起来灵活方便。它所采用的面向对象的硬件设计方法使得在PC/104标准上开发的扩展模块具有更强的通用性和更长的生命期。同台式PC机一样,PC/104嵌入式控制PC也提供两个RS-232串行口。串行通信端口在数据通信中一直扮演极重要的角色,它不仅没有因为时代的进步而被淘汰,反而在规格上愈来愈向其极限挑战。常
[单片机]
PC/104标准四串口通信板<font color='red'>设计</font>
莱迪思推出MachXO2 PLD系列嵌入式功能块的参考设计
莱迪思半导体公司日前宣布发布四个新的参考设计,适用于低成本、低功耗的MachXO2™系列可编程逻辑器件(PLD)。新的参考设计简化并增强了MachXO2器件中特有的嵌入式功能块(EFB)中内置I2C、SPI和用户闪存的功能的使用。还发布了五个新的演示示例设计和三个更新的应用说明,重点介绍基于嵌入式闪存的嵌入式功能块。 自从MachXO2系列量产以来,数百家客户已经利用EFB内置的I2C、SPI和用户闪存功能与微处理器、微控制器、存储器和其它系统外设连接,广泛用于各种I/O扩展和桥接、数据存储、配置和电源定序的应用。现在,新的参考设计扩展了EFB易于使用、现成的RTL代码,可以实现以下功能,每种都有标准数据和指令接口: • I2C
[嵌入式]
PLD器件在红外遥控解码中的应用
  摘 要: 介绍了红外遥控发射和接收的原理,提出了一种用PLD(可编程逻辑器件)进行解码的方案,并分别用EPROM和GAL实现。该方案思路新颖、原理简单、工作可靠,可用于各种以键盘扫描为输入方式的智能仪器系统中。 关键词: 红外遥控 可编程逻辑器件 遥控解码 键盘扫描 红外遥控技术已经在日常家用电器中得到了广泛应用,其使用方便、功耗低、抗干扰能力强的优点也越来越在智能仪器系统中受到重视。市场上的各种家电红外遥控系统技术成熟、成本低廉,但都是针对各自的遥控对象(彩电、冰箱、空调等),不能直接用于智能仪器。本文探讨了如何借鉴家电红外遥控系统的原理,自行设计解码电路,使智能仪器具有遥控功能。 1 红外遥控原
[应用]
汽车尾灯VHDL设计
1.系统设计要求     用6个发光管模拟6个汽车尾灯(左右各3个),用4个开关作为汽车控制信号,分别为:左拐、右拐、故障和刹车。车匀速行驶时,6个汽车尾灯全灭;右拐时,车右边3个尾灯从左至右顺序亮灭;左拐时,车左边3个尾灯从右至左顺序亮灭;故障时车6个尾灯一起明灭闪烁;刹车时,6个尾灯全亮 2.系统设计方案     根据系统设计要求,采用自顶向下设计方法,顶层设计采用原理图设计,它由主控模块、左边灯控制模块和右边灯控制模块三部分组成。 3参考VHDL源程序     (1) 主控制模块     说明:此程序为系统主控制模块。当左转时,lft信号有效;右转时,rit信号有效;当左右信号都有效的时,lr有效。
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved