_第1页
已阅读1页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

  本科毕业论文系列

  开题报告

  电气工程及其自动化

  基于CPLD的奇偶分频设计

  课题研究意义及现状

  随着数字技术电力电子技术迅速发展,各种各样的电子产品在生活以及生产中发挥越来越重要的作用,已经成为人们不可或缺的一项重要技术。分频器是数字系统设计中的基本电路,它的应用领域十分广泛,在设计具体的数字电路时,可能需要多种频率的时钟信号,但实际电路中往往只有一种单一频率的外部时钟输入,此时,可以通过分频器对某个给定的频率进行分频,以得到所需的频率。常见的分频器有多种,比如:基于FPGA的分频器,基于单片机的分频器,基于CPLD的分频器等。这些都是目前数字电子设计中主流实用的分频器。

  在电子设计技术领域可编程逻辑器件如CPLD的广泛应用为数字系统的设计带来极大的灵活性,由于该器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法。设计过程乃至设计观念在传统的数字系统设计中用户能够通过编程方式改变器件逻辑功能只有两种途径即微处理器的软件编程如单片机和特定器件的控制字配置如8255。 在传统的设计概念中器件引脚功能的硬件方式的任意确定是不可能的,而对于系统构成的设计过程只能对器件功能和电路板图分别进行设计和确定通过设计电路板来规划系统功能。在此期间大量的时间和精力花在元件选配和系统结构的可行性定位上。

  但若采用可编程逻辑器件便可利用计算机软件的方式对目标器件进行设计,而以硬件的

  形式实现即定的系统功能。在设计过程中设计者可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的可编程逻辑器件和高效的设计软件用户不仅可通过直接对芯片结构的设计实现多种数字逻辑系统功能而且由于管脚定义的灵活性大大减轻了电路图设计和电路板设计的工作量和难度。同时这种基于可编程逻辑器件芯片的设计大大减少了系统芯片的数量,缩小了系统的体积提高了系统的可靠性。

  高集成度高速和高可靠是FPGA/CPLD,最明显的特点:时钟延迟可达纳秒级结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。CPLD/FPGA 的高可靠性还表现在几乎可将整个系统下载于同一芯片中实现所谓片上系统,从而大大缩小了体积易于管理和屏蔽。

  由于FPGA/CPLD 的集成规模非常大,可利用先进的EDA 工具进行电子系统设计和产品开发。由于开发工具的通用性,设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性。它几乎可用于任何型号和规模的FPGA/CPLD 中。从而使得产品设计效率大幅度提高。可以在很短时间内完成十分复杂的系统,设计这正是产品快速进入市场最宝贵的特征美国TI公司认为一个ASIC 80%的功能可用IP 核等现成逻辑合成,而未来大系统的CPLD/FPGA设计仅仅是各类再应用逻辑与IP 核的拼装。其设计周期将更短与ASIC 设计相比FPGA/CPLD 显著的优势是开发周期短投资风险小。产品上市速度快市场适应能力强和硬件升级回旋余地大而且当产品定型和产量扩大后可将在生产中达到充分检验的VHDL 设计迅速实现ASIC 投产。

  二、课题研究的主要内容和预期目标

  1.主要内容

  本次课题,主要研究的是如何利用CPLD制系统的主控模块,该模块主要能实现如下几个功能:对初始频率信号的显示、分频、输入控制分频、分频后的显示。完成软件编程的同时,对CPLD开发板进行调试,实现功能的仿真显示。

  2.预期目标

  1)预期设计一个奇偶分频器 ,利用CPLD软件编程实现频率分频电路,主要由DSP,CPLD,键盘和显示器四部分组成。 其中输入分频模块主要由外部按键控制,根据用户所需分频的多少来自行取值。分频模块和显示模块则实现每次操作的分频和可视化的功能。

  2)由于主要是对主控模块进行实现,那么利用CPLD设计分频器程序编译成功后,还需要对编译好的程序进行波形图的仿真,通过调节参数来观察程序能否实现频率信号的显示,分频,输入分频的设计要求。

  3)然后利用CPLD的开发板进行硬件调试。我将对完成的分频器实行一个完整的分频过程,向开发板输入一个已知的频率信号,查看显示功能是否正确,然后通过分频输入模块输入所需分频值,最后查看分频后数值是否正确。

  三、课题研究的方法及措施

  1.研究方法

  首先要对分频器的和COLD进行了解,这需要查阅一定的资料,清楚分频器的原理,各项功能的实现,CPLD的硬件功能和其内部的逻辑功能。因为本次研究完成的主要是对频率分频器的主控模块进行编程,其功能模块主要显示、分频、输入控制分频、分频后的显示,那么要根据相关的资料对这些模块进行编译。编译通过后,先用软件进行波形图的仿真,查看其结果。如果波形图软件仿真通过后,我设想是把程序下到CPLD开发板中,通过对按键和显示的设置,并用几次不同的购买情况来验证程序的正确性,到达预期的效果。

  2.研究措施

  1)收集查阅DSP以及CPLD的相关资料,对CPLD的应用设计情况进行了熟悉了解;了解不同的设计实现方法,比较现有的相关方案,确定本课题研究和实现方案,然后对方案中的各单元进行了必要的分析和研究。

  2)对所研究的频率分频器功能进行分类,具体分成输入分频,分频和显示功能,并对各个功能进行软件编程。

  3)完成了编程以后,要利用软件的仿真功能对编完的程序进行波形图仿真,通过波形的变化来初步判断程序是否满足预先所要求的功能。

  4)然后利用CPLD的开发板进行硬件调试。我将对完成的分频器实行一个完整的分频过程,向开发板输入一个已知的频率信号,查看显示功能是否正确,然后通过分频输入模块输入所需分频值,最后查看分频后数值是否正确。

  四、课题研究进度计划

  1.2010.9.13至2010.11.19

  分析任务,查阅DSP以及CPLD设计相关的资料;对资料进行消化,进行理论准备,方案的考虑和设计;基本完成开题报告、中、英文翻译和文献综述。

  2.2011.1.21至2011.3.10

  决定最佳设计方案;设计出总体实现电路的构架;确定所需要的元器件。

  3.2011.4.1至2011.4.22

  对功能模块进行软件编程,各单元模块通过调节参数进行软件仿真;然后利用CPLD开发板,调节各种参数对模块功能进行硬件调试,对结果进行对比分析。

  4.2011.4.22至2011.5.15

  完成毕业设计论文;做好答辩用的PPT,并作好答辩准备。

  五、参考文献

  教师指定:

  [1] 万杰. CPLD技术及其应用. 西安电子科技大学出版社, 1999.

  [2]禇振勇. FPGA 设计及应用. 西安电子科技大学出版社, 2002.

  [3] 罗朝霞 高书莉 CPLD/FPGA设计及应用, 2007

  [4]刘爱荣 王振成 EDA技术与CPLD/FPGA开发应用简明教程,2007

  [5] 郑燕 赫国强 党剑华 基于VHDL语言与QuartusⅡ软件的可编程逻辑器件应用与开发,2007

  [6] 梁淼 刘会军 数字系统电子自动化设计教程, 2008

  [7] 俞一鸣 唐薇 陆晓鹏 Altera可编程逻辑器件的应用与设计, 2007

  [8] 黄志强 Xilinx可编程逻辑器件的应用与设计 2007

  [9] 姜咏江 基于Quartus Ⅱ的计算机核心设计 2007

  自己选择:

  [1] 宋万杰 罗丰 CPLD 技术及其应用 1999

  [2] 期刊论文 江翠云 基于CPLD和VHDL的数字钟的设计 -硅谷2010(2)

  [3] James R.Armstrong.VHDL Design Representation and Synthesis=VHDL设计、表示和综合[M].北京:机械工业出版社,2003,3.

  [4] 王诚,薛小刚,钟信潮.FPGA/CPLD设计工具—XlinxISE使用详解[M].北京:人民邮电出版社,2005,1

  毕业论文文献综述

  电气工程及自动化

  基于CPLD的分频器

  摘 要 本设计是应用CPLD 器件的特点和应用范围,利用VHDL硬件描述语言以及原理图的输

  入方式设计

  关键词 VHDL 硬件描述语言;CPLD;数字逻辑电路设计;偶数倍(2N)分频;奇数倍(2N+1)分频

  CPLD的分频器的现状和意义:

  随着数字技术电力电子技术迅速发展,各种各样的电子产品在生活以及生产中发挥越来越重要的作用,已经成为人们不可或缺的一项重要技术。分频器是数字系统设计中的基本电路,它的应用领域十分广泛,在设计具体的数字电路时,可能需要多种频率的时钟信号,但实际电路中往往只有一种单一频率的外部时钟输入,此时,可以通过分频器对某个给定的频率进行分频,以得到所需的频率。常见的分频器有多种,比如:基于FPGA的分频器,基于单片机的分频器,基于CPLD的分频器等。这些都是目前数字电子设计中主流实用的分频器。

  在电子设计技术领域可编程逻辑器件如CPLD的广泛应用为数字系统的设计带来极大的灵活性,由于该器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法。设计过程乃至设计观念在传统的数字系统设计中用户能够通过编程方式改变器件逻辑功能只有两种途径即微处理器的软件编程如单片机和特定器件的控制字配置如8255。 在传统的设计概念中器件引脚功能的硬件方式的任意确定是不可能的,而对于系统构成的设计过程只能对器件功能和电路板图分别进行设计和确定通过设计电路板来规划系统功能。在此期间大量的时间和精力花在元件选配和系统结构的可行性定位上。

  但若采用可编程逻辑器件便可利用计算机软件的方式对目标器件进行设计,而以硬件的

  形式实现即定的系统功能。在设计过程中设计者可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的可编程逻辑器件和高效的设计软件用户不仅可通过直接对芯片结构的设计实现多种数字逻辑系统功能而且由于管脚定义的灵活性大大减轻了电路图设计和电路板设计的工作量和难度。同时这种基于可编程逻辑器件芯片的设计大大减少了系统芯片的数量,缩小了系统的体积提高了系统的可靠性。

  高集成度高速和高可靠是FPGA/CPLD,最明显的特点:时钟延迟可达纳秒级结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU 的复位不可靠和PC 可能跑飞等问题。CPLD/FPGA 的高可靠性还表现在几乎可将整个系统下载于同一芯片中实现所谓片上系统,从而大大缩小了体积易于管理和屏蔽。

  由于FPGA/CPLD 的集成规模非常大,可利用先进的EDA 工具进行电子系统设计和产品开发。由于开发工具的通用性,设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性。它几乎可用于任何型号和规模的FPGA/CPLD 中。从而使得产品设计效率大幅度提高。可以在很短时间内完成十分复杂的系统,设计这正是产品快速进入市场最宝贵的特征美国TI公司认为一个ASIC 80%的功能可用IP 核等现成逻辑合成,而未来大系统的CPLD/FPGA设计仅仅是各类再应用逻辑与IP 核的拼装。其设计周期将更短与ASIC 设计相比FPGA/CPLD 显著的优势是开发周期短投资风险小。产品上市速度快市场适应能力强和硬件升级回旋余地大而且当产品定型和产量扩大后可将在生产中达到充分检验的VHDL 设计迅速实现ASIC 投产。

  基于CPLD的分频电路设计:

  起初设计的分频器由输入模块,脉冲信号模块,分频处理模块,显示模块4部分组成,输入模块主要有一个晶振加一个555芯片组成,输出模块由芯片74HC138驱动数码管显示。但是考虑到,从外部任何一个用户I/O都可以输入时钟但这会带来附加延时,导致输入频率上限降低且逻辑综合时比较耗资源。分频是数字电子设计辅助的功能较多些,本身的输出大都没有什么意义,而使用的Xilinx公司的CPLD芯片xc95108就带有这些功能,就不考虑此种方法来设计电路。

  所以我采用的主要方法和设计是利用V HDL 硬件描述语言,通过ISM开发平台,建立各个模块,然后加以整合,使用Xilinx公司的CPLD,实现可预置任意系数奇偶分频,通过软件仿真图,在开发板上的数码管上实现频率的数字显示。

  在设计中,常常会遇到任意整数分频(偶数或奇数分频),还会遇到半整数分频、小数分频,以及具有时序关系的多路分频等。本次设计只做任意整数分频。

  偶数倍(2N)分频

  使用一个模 N 计数器模块即可实现,即利用模N 计数器从0 开始对输入时钟的上升沿计数,计数值等于N 时,输出时钟进行翻转,同时给计数器一个复位信号使之从0 开始重新计数,以此循环即可。

  奇数倍(2N+1)分频

  占空比为 X/(2N+1)或(2N+1-X)/(2N+1)分频,用模(2N+1)计数器模块可以实现。取0 至2N 之间某一数值X(0

  参考文献:

  [1] 万杰. CPLD技术及其应用[M]. 西安电子科技大学出版社, 1999.

  [2] 禇振勇. FPGA 设计及应用[M]. 西安电子科技大学出版社, 2002.

  [3] 罗朝霞,高书莉. CPLD/FPGA设计及应用[M],人民邮电出版社,2007

  [4] 刘爱荣 , 王振成 .EDA技术与CPLD/FPGA开发应用简明教程[M],清华大学出版社,2007

  [5] 郑燕,赫国强,党剑华. 基于VHDL语言与QuartusⅡ软件的可编程逻辑器件应用与开发[M],国防工业出版社2007

  [6] 梁淼 ,刘会军. 数字系统电子自动化设计教程[M],北京理工大学出版社 2008

  [7] 俞一鸣, 唐薇, 陆晓鹏. Altera可编程逻辑器件的应用与设计[M],机工业出版社, 2007

  [8] 黄志强. Xilinx可编程逻辑器件的应用与设计[M],机械工业出版社, 2007

  [9] 姜咏江. 基于Quartus Ⅱ的计算机核心设计[M],清华大学 ,2007

  [10] 宋万杰, 罗丰. CPLD 技术及其应用[M] 西安电子科技大学出版社 , 1999

  [11] 江翠云.基于CPLD和VHDL的数字钟的设计[J], 硅谷 , 2010(2)

  [12] James R.Armstrong.VHDL Design Representation and Synthesis=VHDL设计、表示和综合[M].北京:机械工业出版社,2003,3.

  [13] 王诚,薛小刚,钟信潮.FPGA/CPLD设计工具—XlinxISE使用详解[M].北京:人民邮电出版社,2005,1

  毕业设计

  (20_ _届)

  基于CPLD的分频器设计

  摘 要

  随着数字,信息化高速发展,数字集成电路应用越来越广泛。数字分频器在数字电路设计应用中十分广泛。它主要能对原始频率信号进行有目的的分频,并产生数字系统所需的频率,是数字电子电路设计中不可或缺的一部分。传统的分频器设计主要是利用C语言编写程序占用单片机内存来设计的,而用CPLD硬件所设计的分频器本身并不占用单片机内资源,所以与其相比,分频的速度更加快,对整个电子电路系统也有节省资源的优点。

  本系统主要采用的是Xilinx公司的CPLD芯片XC95108和TI公司的DSP芯片TMS3200F240来实现数字奇偶(1~16倍)分频功能。通过使用ISM软件编写VHDL语言下载到CPLD芯片XC95108中进行编译。使得XC95108和TMS3200F240能实现键盘控制的分频倍数。LED数码管显示真或缺的分频值。

  关键词:Xilinx,CPLD,分频,DSP

  Abstract

  With digital, the rapid development of information technology, digital integrated circuits more and more widely. Digital divider applications in digital circuit design is very extensive. It is mainly to have the original purpose of the frequency signal frequency, and generate the desired frequency digital systems, digital electronic circuit design is an integral part. The traditional crossover design is mainly occupied by C programming language to design single chip memory, but the hardware is d

  This system uses a Xilinx CPLD chip companies and TI's DSP XC95108 chip TMS3200F240 to digital parity (1 to 16 times) frequency function.

  Prepared by using the ISM software download VHDL, compiled in the XC95108 CPLD chip, Makes the XC95108 and TMS3200F240 to achieve multiple frequency keyboard control. LED digital display or the lack of true frequency value. LED digital display or the lack of true frequency value.

  Keywords: Xilinx ,CPLD , frequency, DSP

  目 录

  1 引 言- 1 -

  2 总体设计- 2 -

  2.1 系统框图- 2 -

  2.2 主要实现的功能- 2 -

  3. 硬件设计- 3 -

  3.1时钟电路- 3 -

  3.1.1内部时钟电路- 3 -

  3.1.2外部时钟电路- 3 -

  3.2 XC95108芯片简单介绍- 4 -

  3.2.1芯片特点:- 4 -

  3.2.2结构说明:- 5 -

  3.2.3电源功耗:- 6 -

  3.2.4最大绝对额定值- 6 -

  3.2.5推荐的操作条件- 6 -

  3.3 DSP片内资源及通用计数器概述- 7 -

  3.3.1 DSP片内资源- 7 -

  3.3.2 双访问RAM(DRAM)- 7 -

  3.3.3 FLASH程序存储器- 7 -

  3.3.4 通用定时器概述- 8 -

  3.3.5 通用定时器结构- 8 -

  3.3.6通用定时器输入- 9 -

  3.3.7 通用定时计数器的工作模式- 9 -

  3.4键盘和显示模块的连接与仿真- 11 -

  3.4.1 CPLD与DSP的连接- 11 -

  3.4.2 CPLD与键盘的连接- 12 -

  3.4.3 CPLD与显示器的连接- 12 -

  3.4.4 LED数码显示管结构及其工作原理- 13 -

  3.4.5 F240仿真接口设计- 15 -

  3.4.6 XC95108仿真接口设计- 15 -

  4 软件设计- 16 -

  4.1 VHDL语言的基本结构- 16 -

  4.1.1 实体(ENTITY)- 16 -

  4.1.2 结构体(ARCHITECTURE)- 18 -

  4.1.3 程序包、库及配置- 19 -

  4.1.4 配置(CONFIGUARTION)- 22 -

  5 结束语- 42 -

  6 致谢- 43 -

  7 参考文献- 44 -

  附录1 毕业设计作品说明书- 45 -

  附录2 奇偶分频程序设计- 46 -

  1 引 言

  CPLD(Complex programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field programmable GatesArray,现场可编程门阵列)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件基础上发展起来的。同以往的PAL、GAL相比,FPGA/CPLD的规模比较大,适合于时序、组合等逻辑电路的应用。它可以替代几十甚至上百块通用IC芯片。这种芯片具有可编程和实现方案容易改动等特点。由于芯片内部硬件连接关系的描述可以存放在磁盘、ROM、PROM、或EPROM中,因而在可编程门阵列芯片及外围电路保持不动的情况下,换一块EPROM芯片,就能实现一种新的功能。它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

  在现代电子系统中,数字系统所占的比例越来越大。系统发展的越势是数字化和集成化,而CPLD/FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。

  在用于设计、仿真数字系统的众多EDA 开发软件中,Xilinx公司的ISE系统受到广泛应用。可完成CPLD或FPGA得各种开发过程。ISE具有可视化编程技术,界面根据设计流程而组织,从而清晰流畅。ISE提供在线帮助信息。可以对使用客户提供有效,快捷的帮助。ISE还具有强大的辅助功能,在编写代码时可以使用编写向导文件头和模块框架,也可使用语言模块(language Templates)帮助编写代码。这些辅助功能的加入大大的体改的设计者的工作效率,提高的设计的质量。

  2 总体设计

  2.1 系统框图:

  本次设计采用的芯片由Xilinx公司的CPLD芯片XC95108和TI公司的DSP芯片TMS3200F240来实现0—16的奇偶分频。

  设计由CPLD,DSP,键盘和显示器四部分组成,下图是系统的结构框架图:

  图1系统框图

  2.2 主要实现的功能:

  1.能够任意的从键盘上输入所需的分频值。

  2.从键盘上输入的分频值输入DSP中,信号经过DSP处理,并送入CPLD芯片。

  3.CPLD芯片对输入信号及其VHDL语言程序进行编译,得到正确的分频信号。

  4.显示器显示正确的分频值。

  3. 硬件设计

  3.1时钟电路

  DSP时钟电路可用内部电路和外加时钟源来实现。

  3.1.1内部时钟电路

  用内部时钟时,外接的基准晶体和片内的PLL电路共同组成系统的内部时钟电路详细参考下图2:

  图2内部时钟结构电路图

  3.1.2外部时钟电路

  用外部时钟电路时,只需将一个外部独立的振荡器产生的时钟信号送入DSP芯片引脚XTAL1/CLKW,XTAL2角悬空即可,此时内部时钟电路被旁路。外部电路如图3所示:

  图3 外部震荡器时钟的连接

  3.2 XC95108芯片简单介绍

  3.2.1芯片特点:

  引脚建有7.5ns的逻辑延迟

  FCNT为125MHz

  108个宏单元带有2400个可用们电路

  108个I/O口

  系统编程电压为5V

  能持续进行1000个程序擦除功能循环

  程序擦除超出有效电压和温度范围

  具有增强的引脚结构功能

  可编程功率在宏单元中逐个减少

  Slew rate控制个别输出端口

  I/O口可接3.3V或5V电压

  带有先进的COMS FastFlash 5V 技术

  支持多个XC9500同时并行编程

  具有84引脚PLCC,100引脚的PQFP,100引脚的TQFP和160引脚的PQFP封装

  3.2.2结构说明:

  XC95108芯片是高性能的CPLD为通用逻辑集成提供先进的系统编程和测试能力。它由六个36V的18功能模块提供传播延迟7.5ns的2400个实用门电路。详细参考图4:

  图4XC95108内部结构图

  3.2.3电源功耗:

  芯片XC95108在标准配置宏单元或低功率模式运行下可减少功耗,关闭未使用的宏单元也可减少功耗。

  3.2.4最大绝对额定值:

  表1最大绝对额定值表

  3.2.5推荐的操作条件:

  表2推荐操作条件表

  3.3 DSP片内资源及通用计数器概述

  3.3.1 DSP片内资源

  F240具有16位地址线,可分别访问这三个独立的地址空间,每个空间的容量均为64K字。

  1 程序存储器空间为64K字。

  2 数据存储器空间为64K字。

  3 I/O空间为64K字。

  3.3.2 双访问RAM(DRAM)

  所有F240片内均有544字DRAM。DRAM在一个机器周期内可被访问2次,即在一个机器周期的主相写数据到DRAM;而在该周期的从相从DRAM读出数据,从而大大提高了运行速度。

  544字节双访问RAM分为三块:B0块、B1块、B2块,该存储器主要用来保存数据,但是B0块也可以用来保存程序。B0块配置成程序存储器空间还是数据存储器空间,要由寄存器ST1的CNF位来决定。

  1 CNF=1,B0映射到程序存储器空间。

  2 CNF=0,B0映射到程序存储器空间。

  3.3.3 FLASH程序存储器

  片内的Flash存储器映射到程序存储器空间,对于F240,MP/引脚决定是访问片内的程序存储器(Flash)还是访问片外的程序存储器。

  Flash可以被编程(在2~20MHz的时钟频率范围内)或使用电擦除的方式多次使用,以便进行程序的修改和开发。Flash模块具有如下特点。

  1 运行在3.3V电压模式下。

  2 对Flash编程时需要在上有(5±5%)V电压供电。

  3 Flash的编程是由CPU来实现的。

  3.3.4 通用定时器概述

  F240有三个通用定时器。第一个定时器用于对键盘和显示部分的控制。

  定时器是事件管理器的核心模块,每个事件管理器有两个通用定时器,这些定时器可以为以下应用提供独立的时间基准。

  1 控制系统中采样周期基准。

  2 为QEP电路和捕捉单元提供时间基准。

  3 为比较单元和相应的PWM电路提供时间基准。

  每个定时器模块除了具有定时/计数功能外,还可以用于输出电路PWM/比较输出信号。

  3.3.5 通用定时器结构

  通用定时器结构框图如图5所示。由图可知,通用定时器包括以下部分。

  一个可读写的16位双向寄存器TxCNT(x=1、2、3或4),它存储了计数器的当前值,并根据计数方向进行增计数或减计数。

  1 一个可读写的16位定时器比较寄存器(双缓冲)TxMCR(x=1、2、3或4),用于存储与通用定时器的计数器进行比较的值。

  2 一个可读写的16位定时器周期寄存器(双缓冲)TxMCR(x=1、2、3或4),周期寄存器的值决定了定时器的周期。当周期寄存器和定时计数器的值产生匹配时,根据计数器的计数模式,通用定时器复为0或开始递减计数。

  3 一个可读写的16位定时器控制寄存器TxCON(x=1、2、3或4),TxCON决定了GP定时器的操作模式。

  4 用于内部或外部时钟输入的可编程的时钟预定标器。

  5 控制和中段逻辑,用于4个可屏蔽中断:上溢、下溢、定时器比较和周期中断。

  6 一个GP定时器比较输出引脚,TxCMP(x=1、2、3或4)。

  7 输出逻辑。

  8 全局通用定时器控制寄存器GPTCONA/B,对不同的定时器事件,指定定时器采取的动作,指明GP定时器的计数方向,并定义ADC(模数转换)模块的启动信号。GPTCONA/B是可读写的,但对于其中的状态指示位写无效。在图3-2中,当x=2或4是,MUX才可用。

  图5 GP定时器的结构框图

  3.3.6通用定时器输入

  通用定时器的输入包括以下几部分。

  1 内部CPU时钟。

  2 外部时钟TCLKINA/B,最高频率的1/4。

  3 方向输入TDIRA/B,当定时器处于定向的增/减计数模式时用于控制定时器的计数方向。当TDIRA/B引脚置为高电平时,定义为递增计数;当TDIRA/B引脚置为低电平时,定义为递减计数。

  4 复位信号RESET。

  3.3.7 通用定时计数器的工作模式

  每个通用定时器主要有4种可选的计数模式。

  1 停止/保持模式。

  2 连续递增计数模式。

  3 定向的增/减计数模式。

  4 连续增/减计数模式。

  本次设计采用定向的增/减计数模式。

  (1) 停止/保持模式

  在这种模式下,通用定时器的计数操作保持其当前状态,定时器的计数器、比较输出和预定标计数器都保持不变。

  (2) 连续递增计数模式

  在这种计数模式下,通用定时器将按照已定标的输入时钟计数,直到定时器计数器的值和周期寄存器的值匹配为止。产生匹配之后,在下一个输入时钟的上升沿,通用定时器复位为0,并开始另一个计数周期。

  (3) 定向的增/减计数模式

  图3-3为通用定时器的增/减记数模式(TxPR=3)示意图。在定向的增/减记数模式中,通用定时器将根据TDIRA/B引脚的输入,对定标的时钟进行递增或递减的计数模式。当引脚TDIRA/B保持为高电平时,通用定时器递增计数,直到计数值达到周期寄存器的值或FFFFh(当计数器初值大于周期寄存器的值)。当定时器的值等于周期寄存器的值或FFFFh,并且引脚TDIRA/B保持为高电平时,定时器的计数器复位到0并进行递增计数到周期寄存器的值。当引脚TDIRA/B保持为低电平时,通用定时器将递减计数直到计数值为0。当定时器递减计数到0,并且引脚TDIRA/B保持为低电平时,定时器的计数器重新载入周期寄存器的值,再次开始递减计数。

  定时器的初始值可以为0000h~FFFFh(包括0000h和FFFFh)之间的任何值。当定时器的初始值大于周期寄存器的值时,如果引脚TDIRA/B保持为高电平,定时器递增计数到FFFFh后,复位到0,并继续计数直到周期寄存器的值;如果引脚TDIRA/B保持为低电平,当定时器的初始值大于周期寄存器的值时,定时器将递减计数到周期寄存器的值后,继续递减计数直到0,而后定时器计数器重新载入周期寄存器的值并开始新的递减计数。周期、上溢和下溢中断标志位、中断以及相应的动作都根据相应的事件产生,这一点与连续递增计数模式一样。引脚TDIRA/B的变化到计数方向的变化之间的延迟为当前计数结束后的一个CPU时钟周期(即当前预定标的计数器周期结束之后的一个CPU时钟周期)。在这种模式下,定时器的计数方向由GPCONA/B寄存器中相应的方向指示位指示:1表示递增计数,0表示递减计数。无论从TCLKINA/B引脚输入的外部时钟还是内部时钟CPU时钟都可作为该模式下的定时器输入时钟。

  (4) 连续增/减计数模式

  这种工作模式与定向的增/减计数模式一样,但是在连续增/减计数模式下,引脚TDIRA/B的状态对计数方向没有影响。定时器的计数方向在定时器的值达到周期积存器的值时(或FFFFh,如果定时器的初始值大于周期寄存器的值),从递增计数变为递减计数;当计数器的值为0时定时器的计数方向从减计数变为增计数。

  3.4键盘和显示模块的连接与仿真

  3.4.1 CPLD与DSP的连接

  图6 DSP与CPLD的连接关系图

  由上图6可看出,DSP进行外部I/O口扩展,DSP的14位数据线与CPLD的14个I/O口相连接。DSP3位地址线A0,A1,A2与CPLD的3个I/O口连接。实现对I/O口的译码功能。为外部I/O空间选通,低位有效,当端口为低时DSP选中该片功能,可对其进行操作。为读/写选通,指明与外围器件通信期间信号的传送方向。为写使能,的下降沿到来表示DSP正在驱动外部数据总线D0~D13。对外部I/O空间写时有效

  3.4.2 CPLD与键盘的连接

  图7 键盘与CPLD的连接

  图7为键盘与CPLD的连接图。KEY呈打开状态时,I/O口输出高电平,当KEY按下,直路导通,I/O电路被短路,I/O口输出为“0”,由CPLD循检到该信号并通过缓冲器送到DSP数据位,由DSP读取键盘信号并处理。

  3.4.3 CPLD与显示器的连接

  图8 CPLD与一个数码管的连接

  图8为CPLD与一个数码管连接所示,D0—D7为DSP送入CPLD的数据口。由DSP的3位地址线A2、A1、A0以及,编码得到DISP信号 分别送人CPLD的DS和GAIE端口,作为两个锁存器LD6和LD8的使能信号。M0~M8分别与数码管的a、b、c、d、e、f、dp段连接,SL为片选信号。

  3.4.4 LED数码显示管结构及其工作原理

  图9共阴与共阳数码管

  LED是由若干个发光二极管组成的。当发光二极管导通时,相应的一个点或一个笔划发亮。控制不同组合的二极管导通,就能显示出各种字符。这种笔划式的七段显示器,能显示的字符数量少,但控制简单、使用方便。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。

  通常的七段LED显示块中有八个发光二极管,故也有人叫做八段显示块。其中七个发光二极管构成七笔字形“8”。一个发光二极管构成小数点。七段显示块与单片机接口非常容易。只要将一个8位并行输出口与显示块的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符。通常将控制发光二极管的8位字节数据称为段选码或段数据。

  点亮显示器有静态和动态两种方法。所谓静态显示,就是当显示器显示某个字符时,相应的发光二极管恒定的导通或截止,例如8段显示器a、b、c、d、e、f导通,g,dp截止,显示0这种显示方式每一位都需要有一个8位输出口控制。三位显示器的接口逻辑,如图8(a)所示。 图中采用共阴极显示器。静态显示时,较小的电流能得到较高的亮度且字符不闪烁。当显示器位数较少时,采用静态显示的方法是适合的。当位数较多时,用静态显示所需的I/O太多,所需电流太大。故一般采用动态显示方法。

  通过一个扫描电路对LED进行逐个扫描。这次设计的电路用6个位选信号8个段选信号来控制显示该位和该位的段。只要每个扫描频率超过人的视觉暂留频率24Hz,就可以达到所有8个段选信号同时点亮的效果。一位LED数码管如图38(c)所示。

  表3数码管段位选码管

  3.4.5 F240仿真接口设计

  DSP仿真头用14根信号线,并符合JTAG IEEE1149.1标准。图3-10给出了F240的JTAG仿真接口电路。在该图中,XS9是用于与DSP仿真器相连的仿真头。其中第5脚所接为5V,该信号用于点亮仿真器上的Target power灯。第6脚悬空。仿真头相邻两个引脚的距离是100mil。

  图9 F240的JTAG仿真接口电路

  3.4.6 XC95108仿真接口设计

  JTAG模式下对单个器件的配置是经过引脚TCK、TMS、TDI和TDO完成的。仿真头如图10所示。

  图10 XC95108仿真接口

  4 软件设计

  4.1 VHDL语言的基本结构

  一个完整的VHDL语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、程序包(Package)和库(Library)5个部分。前4个部分是可分别编译的源设计单元。实体用于描述所设计的系统的外接口信号;构造体用于描述系统内部的结构和行为;程序包存放各种设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来组成系统设计的不同版本;库存放已经编译的实体、构造体、程序包和配置。库可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。

  4.1.1 实体(ENTITY)

  在VHDL中,实体类似于原理图中的一个部件符号,它可以代表整个系统、1块电路板、一个芯片或一个门电路,是一个初级设计单元。在实体中,我们可以定义设计单元的输入输出引脚和器件的参数,其具体的格式如下:

  ENTITY 实体名 IS

  [ 类属参数说明;]

  [ 端口说明;]

  END 实体名;

  类属参数说明

  类属参数说明为设计实体和其外部环境的静态信息提供通道,特别是用来规定端口的大小、实体中子元件的数目、实体的定时特性等等。

  端口说明

  端口说明为设计实体和其外部环境的动态通信提供通道,是对基本设计实体与外部接口的描述,即对外部引脚信号的名称、数据类型、和输入输出方向的描述。其一般格式如下:

  PORT(端口名 :方向 数据类型;

  ∶

  ∶

  端口名 :方向 数据类型);

  端口名是赋予每个外部引脚的名称;端口方向用来定义外部引脚的信号方向是输入 还是输出;数据类型说明流过该端口的数据类型。

  IEEE1076标准包中定义了以下常用的端口模式:

  IN 输入,只可以读

  OUT 输出,只可以写

  BUFFER 输出(构造体内部可再使用)

  INOUT 双向,可以读或写

  3) 数据类型

  VHDL语言中的数据类型有多种,但在数字电路的设计中经常用到的只有两种,即BIT和BIT_VECTOR(分别等同于STD_LOGIC和STD_LOGIC_VECTOR)。当端口被说明为BIT时,该端口的信号取值只能是二进制数“1”和“0”,即位逻辑数据类型;而当端口被说明为BIT_VECTOR时,该端口的信号是一组二进制的位值,即多位二进制数。

  [ 例2-3 ] 2输入端与非门的实体描述示例

  LIBRARY IEEE;

  USE IEEE.STD_LOGIC_1164.ALL;

  ENTITY nand IS

  PORT(a : IN STD_LOGIC ;

  b : IN STD_LOGIC;

  c : OUT STD_LOGIC);

  END nand;

  4.1.2 结构体(ARCHITECTURE)

  结构体描述一个设计的结构或行为,把一个设计的输入和输出之间的关系建立起来。一个设计实体可以有多个结构体,每个结构体对应着实体不同的实现方案,各个结构的地位是同等的。

  结构体对其基本设计单元的输入输出关系可以用三种方式进行描述,即行为描述、寄存器传输描述和结构描述。不同的描述方式,只是体现在描述语句的不同上,而结构体的结构是完全一样的。

  结构体分为两部分:结构说明部分和结构语句部分,其具体的描述格式为:

  ARCHITECTURE 结构体名 OF 实体名 IS

  --说明语句

  BEGIN

  --并行语句

  END 结构体名;

  说明语句

  说明语句用于对结构体内部使用的信号、常数、数据类型和函数进行定义。例如:

  ARCHITECTURE behav OF mux IS

  SIGNAL nel :STD_LOGIC;

  ∶

  BEGIN

  END behav;

  信号定义和端口说明一样,应有信号名和数据类型的说明。因它是内部连接用的信号,故不需有方向的说明。

  4.1.3 程序包、库及配置

  库和程序包是VHDL的设计共享资源,一些共用的、经过验证的模块放在程序包中,实现代码重用。一个或多个程序包可以预编译到一个库中,使用起来更为方便。

  库(LIBRARY)

  库是经编译后的数据的集合,用来存放程序包定义、实体定义、结构体定义和配置定义,使设计者可以共享已经编译过的设计结果。在VHDL语言中,库的说明总是放自在设计单元的最前面:

  LIBRARY 库名;

  这样一来,在设计单元内的语句就可以使用库中的数据。VHDL语言允许存在多个不同的库,但各个库之间是彼此独立的,不能互相嵌套。

  常用的库如下:

  (1)STD库

  逻辑名为STD的库为所有设计单元隐含定义,即“LIBRARY STD”子句隐含存在于任意设计单元之前,而无须显式写出。

  STD库包含预定义程序包STANDARD与TEXTIO。

  (2)WORK库

  逻辑名为WORK的库为所有设计单元隐含定义,用户不必显示写出“LIBRARY WORK”。同时设计者所描述的VHDL语句不须作任何说明,都将存放在WORK库中。

  (3)IEEE库

  最常用的库是IEEE。IEEE库中包含IEEE标准的程序包,包括STD_LOGIC_1164、NUMERIC_BIT、 NUMERIC_STD以及其他一些程序包。其中STD_LOGIC_1164是最主要的程序包,大部分可用于可编程逻辑器件的程序包都以这个程序包为基础。

  (4)用户定义库

  用户为自身设计需要所开发的共用程序包和实体等,也可汇集在一起定义成一个库,这就是用户库,在使用时同样需要说明库名。

  程序包(PACKAGE)

  程序包说明象C语言中的include语句一样,用来罗列VHDL语言中所要用到的常数定义、数据类型、函数定义等,是一个可编译的设计单元,也是库结构中的一个层次。要使用程序包时可用USE语句说明,例如:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. zs文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论