毕业论文基于CPLD的出租车计价器的设计.doc

上传人:laozhun 文档编号:3973656 上传时间:2023-03-30 格式:DOC 页数:46 大小:576.50KB
返回 下载 相关 举报
毕业论文基于CPLD的出租车计价器的设计.doc_第1页
第1页 / 共46页
毕业论文基于CPLD的出租车计价器的设计.doc_第2页
第2页 / 共46页
毕业论文基于CPLD的出租车计价器的设计.doc_第3页
第3页 / 共46页
毕业论文基于CPLD的出租车计价器的设计.doc_第4页
第4页 / 共46页
毕业论文基于CPLD的出租车计价器的设计.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《毕业论文基于CPLD的出租车计价器的设计.doc》由会员分享,可在线阅读,更多相关《毕业论文基于CPLD的出租车计价器的设计.doc(46页珍藏版)》请在三一办公上搜索。

1、基于CPLD的出租车自动计价系统的设计作者姓名:李 刚刚专业名称:信息工程指导教师:大学 讲师摘 要随着电子行业的迅猛发展,计价器在各个领域中的使用越来越频繁,用户对计价器的要求也越来越高。以出租车多功能计价器为例,用户不仅要求计价器性能稳定,计费准确;不同国家和地区的收费方式存在差异,即使在同一地区,不同车型的出租车其收费方式也有差别,而且出租车还面临几年一次的调价或调整收费方式等问题。传统的基于单片机设计的出租车多功能计价器已远远跟不上这种变化,功能升级很繁琐,需要硬件重组和软件更新同步进行,成本高,并且每次升级都可能产生新的不稳定因素;而本设计是基于复杂可编程逻辑器件 (CPLD)的出租

2、车自动计价系统,采用超高速集成电路硬件描述语言VHDL和逻辑综合为基础的自顶向下的电路设计方法,在硬件电路不加改变的前提下, 功能升级十分方便,从使用情况看, 该设计稳定性好、可靠性高, 市场前景良好,而且开发成本低,周期短,极大的满足了用户的变化要求。关键词:硬件设计 CPLD 超高速集成电路硬件描述语言 仿真AbstractAlong with the fast fierce development of the electronics profession, charge the machine in each realm of usage is more and more multif

3、arious, the request of customer to the charge machine is also more and more high. To take multi-function charge machine of the rent car as an example, the customer not only request to charge the machine function stability, charge accurate; the for-rent car of different from the charges method existe

4、nce difference of the region, even in same region, car in different nation type it charges the way but also have the difference, and rent the car to still faces a time fee hikes of several years or adjust to charge the way etc. problem. Traditional according to a machine design of multi-function cha

5、rge machine of for-rent car has already canned not keep up with this kind of variety far and far, the function upgrade is very tedious, needing the hardware reorganization to carry on with the software renewal synchronously, the cost is high, and upgrade each time may produce the lately unsteady fac

6、tor; but according to programmable logic array( CPLD) of the spot of multi-function charge machine of for-rent car, the adoption hardware description language the VHDL and logic is comprehensive for basal from the crest get down of the electric circuit design method, Does not change in the hardware

7、electric circuit under the premise, the function upgrade extremely conveniently, looking from the service condition, this design stability good, the reliability is high, the market prospect is good, moreover the development cost is low, the cycle is short, enormous has satisfied the change request o

8、f customer.Key words:Hardware design , Complex Programmable Logic Device, Extremely high soon the integrated circuit hardware description language, Simulation.目 录摘 要IABSTRACTII1 前言11.1课题研究背景11.2本文所做的工作32相关技术介绍42.1 CPLD简介42.1.1 CPLD的基本结构42.1.2 CPLD的特点42.2 Xilinx公司可编程逻辑器件介绍52.2.1 XC9500系列器件结构简述52.2.2

9、可编程CPLD芯片XC9572产品规格说明82.3 VHDL语言简介102.3.1 VHDL语言的优点102.3.2使用VHDL语言的可行性122.4 Xilinx Foundation F1.5系统简介123出租车自动计价系统的设计133.1系统基本设计思想及实现的功能及要求133.1.1系统基本设计思想133.1.2系统实现的功能及要求133.2系统硬件设计143.2.1外围电路介绍143.3系统软件设计183.3.1电子钟程序设计183.3.2计价部分程序设计193.4程序仿真图25结 论29致 谢30参考文献31附录A(系统程序)321 前言1.1课题研究背景当今社会是数字集成电路广泛

10、应用的社会。数字集成电路由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路ASIC(Application Specific Integrated Circuit)。在现代复杂的数字逻辑系统中,专用集成电路的应用越来越广泛,曾经广泛使用的由基本逻辑门和触发器构成的中小规模集成电路所占的比例越来越少。专用集成电路ASIC是面向用户定义用途或特定功能的大规模,超大规模集成电路。专用集成电路的英文是Application Specific Integrated Circuit, SIC是其英文缩写。ASIC有数字的、模拟的、数

11、字和模拟混合的。按制造方式区分,有全定制ASIC、有半定制ASIC、可编程ASIC三种。其中可编程ASIC可做到用户在现场对其编程来实现各种特定的逻辑功能。正是可编程ASIC独特的器件性能和应用方式使拥护可“自制”大规模数字集成电路的理想成为现实。现在,使用可编程ASIC和相应的EDA开发系统,用户可以借助计算机实现各种实际的数字电路或电子系统的设计、功能模拟、时间模拟以及系统调试。因此,可编程ASIC的问世及广泛应用促进了电子系统设计方法的重大变革这一说法毫不过分。从20世纪70年代Intel公司第一个推出4004MPU起到80年代初,是MPU技术飞速发展的时期。MPU技术的快速渗透刺激了M

12、PU外围LSI器件的发展。当时由MPU、MPU的外围LSI器件,通用IC这三大积木块搭起来可以标准地实现一个复杂的电子系统。到了20世纪80年代中期MPU由8位、16位发展到32位,速度和集成度越来越高,再加上电子产品的少少批量多品种化趋势,高速低功耗及小型化的要求,原来的电子系统中MPU的外围LSI和通用IC适应不了这一技术上的变化。20世纪80年代中期以来可编程ASIC以其现场可编程,高速,高集成度的优势充当了电子系统中的新的积木块。由MPU、存储器和可编程ASIC这三个可编程的积木块组成现代电子系统已形成趋势或潮流。是否采用可编程ASIC来实现电子产品的设计已成为衡量电子产品是否先进的标

13、准之一。可以说可编程ASIC技术是现代电子系统设计的新潮流,对于一个现代电子系统设计师来说,学习应用可编程ASIC技术势在必行。虽然ASIC的成本很低,但设计周期长,投入费用高。可编程逻辑器件(PLD,Programmable Logic Device)自问世以来,经历了从低密度的PROM、PLA、PAL、GAL到高密度的现场可编程门阵列(FPGA,Field Programmable Gate Array)和复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)的发展过程。大规模可编程逻辑器件的出现打破了中小规模通用型集成电路和大规模专用集成电路垄断

14、的天下,它们既继承了专用集成电路的高集成度、高可靠性的优点,又克服了专用集成电路设计周期长、投资大和灵活性差的缺点;它们也可以解决使电子系统小型化、低功耗、高可靠性等问题。利用它们进行产品开发,不仅设计制造成本低、设计开发周期短、开发工具先进、可靠性高,而且具有完全的知识产权,给设计人员带来了诸多方便。FPGA/CPLD因此被广泛应用于电子产品的原型设计和电子产品生产(一般在1万件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均应用FPGA和CPLD器件。FPGA与CPLD都是可编程逻辑器件,它们是在PAL、GAL 等逻辑器件的基础之上发展起来的,它们在高密度、高速度、

15、低功耗等方面发展很快,同以往的PLA、PAL、GAL等相比较,FPGA/CPLD 的规模比较大,它可以替代几十甚至几千块通用IC芯片。在这十几年的发展过程中,以FPGA/CPLD为代表的数字系统现场集成技术取得了惊人的发展,单一芯片的门数从几百门增加到数百万门,现场可编程逻辑器件从最初的1200个可利用门,发展到90年代的25万个可利用门。目前,国际上著名半导体器件公司有Xilinx,Lattice,Altera等,研发出若干新型的大规模可编程逻辑器件。CPLD有Xilinx公司的XC9500系列, Lattice公司的ispLSI/PLSI1000系列和MACH5系列,Altera公司的MA

16、X7000系列和MAX9000系列等。Xilinx公司的XC5000/4000系列,Actel公司的ACT系列,TI公司的TPC系列, Altera公司的FLEX系列等是FPGA的代表产品。厂商又陆续推出了数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。随着可编程逻辑器件及EDA技术的高速发展,电子系统向集成化、小型化、大规模和高速度的方向发展,电子系统的设计技术和工具也发生了深刻的变化。计算机技术的普及加速了电子设计自动化技术的进程,EDA开发系统的自动化和智能化程度也日臻完善。由美国国防部提出的VHDL(Very High Speed Integrated Circ

17、uit Hardware Description Language)即超高速集成电路硬件描述语言,是为了要解决项目间的信息交换困难和设计维护困难,同时也为解决当时的超高速集成电路(VHSIC,Very High Speed Integrated Circuit)计划而提出的一种硬件描述语言,采用高层次的、自顶向下的设计方法来描述硬件,非常适合当前需要。它改变了传统的数字系统的描述方法和设计方法,使得软件实现硬件化、硬件设计软件化、用户自制大规模和超大规模集成电路等都成为了现实。美国国防部1987年12月IEEE接受VHDL为标准的HDL,这就是今天的IEEE STD1076-1987和IEEE

18、 STD1076-1993。Foundation Series可编程器件开发系统是Xilinx公司设计的EDA工具,具有很强的开发和设计功能,是电子设计不可缺少的工具,他可以接受多种方式的输入:原理图输入、文本输入(硬件描述语言)、第三方EDA工具提供的接口等。系统的仿真器具有很强灵活性,可以控制对单器件或多器件的仿真。1.2本文所做的工作出门坐出租车已成为现在很多人的选择,不仅随叫随到而且快捷方便,那么公平合理准确的计费就成为人们最关注的问题。本文主要内容是利用CPLD可编程逻辑器件设计并实现一个适合实际的出租车计价系统,采用VHDL语言进行编程,编程环境为Xilinx 公司的可编程器件的开

19、发系统(Xilinx Foundation),源程序文件经编译后下载到可编程逻辑器件XC 9572芯片内部后,可应用于实际的出租车计价系统中。2相关技术介绍2.1 CPLD简介复杂可编程逻辑器件CPLD与现场可编程门阵列FPGA都是在PLA、PAL、GAL等逻辑器件的基础上发展起来的。与以往的PLA、PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。2.1.1 CPLD的基本结构CPLD的集成度在千门/片以上,其基本结构是由与阵列、或阵列、输

20、入缓冲电路、输出宏单元组成。其与阵列比PAL大得多,但并非靠简单的增大阵列的输入、输出端口达到。阵列占用芯片的面积随其输入端数的增加而急剧增加,而芯片面积的增大不仅使芯片的成本增大,还使信号在阵列中传输延迟加大而影响其运行速度。所以CPLD通常是由多个类似PAL功能块组成,具有很大的固定于芯片上的布线资源,通过位于中心的互连矩阵连接在一起。互连阵列要将来自I/O的信号和逻辑块的输出布线到器件内任何逻辑块的输入。一般互连矩阵有两种形式:基于阵列的互连和基于多路开关的互连。基于阵列的互连是纵横开关的实现方式,它允许任何输入到互连矩阵中的信号布线到任何逻辑块,是完全可布通的。基于多路开关的互连是对逻

21、辑块的每个输入有一个多路转换器,输入到互连矩阵的信号被连接到每个逻辑块的大量多路开关的输入端,这些多路转换器的选择是可编程的,只允许其一个输入通过它进入逻辑块。所以布通率与多路转换器的输入宽度有关,宽度愈大,所占面积增加,性能降低。与FPGA相比,CPLD不采用分段互连方式,因而具有较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间;此外,CPLD具有很宽的输入结构,适合于实现高级的有限状态机;具有ISP性能的CPLD,可以直接在系统内对其进行编程,因而类似于具有ISP性能的SRAM查找表类型的FPGA。2.1.2 CPLD的特点20世纪80年代中期,Altera和Xilinx分别推出了

22、类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA ,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活,具有以下特点:(1) 目前的 CPLD主要是基于E2 PROM或 FLASH存储器编程 ,编程次数达 1万次。其优点是在系统断电后 ,编程信息不丢失。CPLD又可分为在编程器上编程和在系统编程 (ISP) CPLD两种。 ISP器件的优点是不需要编程器 ,可先将器件装焊于印制板 ,再经过编程电缆进行编程,编程、调试和维护都很方便 。(2) CPLD是将多个可编程阵列逻辑 (PAL)器件集成到

23、一个芯片 ,具有类似 PAL的结构。一般情况下CPLD器件中至少包含三种结构 :可编程逻辑功能块 (FB);可编程 I/ O单元 ;可编程内部连线 。(3) 在速度上CPLD优于 FPGA。由于 FPGA是门级编程 ,且 CLB之间是采用分布式互连 ;而 CPLD是逻辑块级编程 ,且其逻辑块互连是集总式的。因此 ,CPLD比 FPGA有较高的速度和较大的时间可预测性 ,产品可以给出引腿到引腿的最大延迟时间 。(4) FPGA/CPLD软件包中有各种输入工具和仿真工具,以及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。(5)

24、电路设计人员使用FPGA/CPLD进行电路设计时,软件易学易用。2.2 Xilinx公司可编程逻辑器件介绍目前生产CPLD和FPGA的公司主要有Altera、Xilinx、Lattice以及AMD公司。本次设计所使用的可编程逻辑器件是由Xilinx公司生产的CPLD器件XC9572。以下就对Xilinx公司生产的XC9500系列以及本次所采用的XC9572进行介绍。2.2.1 XC9500系列器件结构简述XC9500系列器件采用ISP技术。每个XC9500系列器件是一个由多个功能块(FB)和I/O块(IOB)组成,可用开关矩阵FastCONNECT完全互连的子系统,IOB提供器件输入和输出的缓

25、冲,每个FB提供具有36个输入和18个输出的可编程逻辑的容量。FastCONNECT开关矩阵连接所有FB的输出和输入信号到FB的输入端,对于每个FB,1218个输出(取决于封装的引腿数)和有关的输出使能信号直接驱动I/B。图2.1所示的是XC9500系列器件的结构。它采用了基于Flash的0.35m技术,可以提供10000次以上编程/擦除周期。XC9500系列器件分为以下三种系列:(1) XC9500XV系列器件:2.5VISP;引脚至引脚延时3.5ns,fsys=200MHz;多种电压的I/O接口,可以支持的电压为3.3V/2.5V/1.8V。(2) XC9500XL系列器件:3.3VISP

26、;引脚至引脚延时4ns,fsys=196MHz;多种电压的I/O接口,可以支持的电压为5.0V/3.3V/2.5V。(3) XC9500系列器件:5.0VISP;引脚至引脚延时5ns,fsys=126MHz;多种电压的I/O接口,可以支持的电压为5.0V/3.3V。以下介绍一下XC9500系列的基本结构。(1) XC9500功能块(FB )每个功能块由18个独立的宏单元组成,能够实现组合逻辑和时序逻辑功能。FB能接收全局时钟,输出使能和复位/置位信号。FB生成18个输出以驱动FastCONNECT,这18个输出与其对应的输出使能信号也可以驱动I/OB。功能块的结构框图如图2.1所示图2.1 功

27、能块FB的结构框图(2) 宏单元(Macrocell)通常宏单元由可编程的逻辑阵列、乘积项分配器、可编程寄存器、数据选择器以及一些相应的简单的门电路构成。一般来说,XC9500系列的每一个宏单元可以单独配置成组合逻辑功能或者时序逻辑功能,这主要取决于宏单元中的寄存器是否被旁路。图2.2说明了FB中宏单元的内部结构图2.2 FB中宏单元的内部结构(3) 开关矩阵(Switch Matrix)开关矩阵也是CPLD内部可编程的重要资源,其连接信号到FB的输入。所有UOB的输出和所有FB的输出都驱动FastCONNECT开关矩阵。这些信号的任一个都可以通过编程选择以统一的延时驱动每个FB。如图2.3所

28、示。(4) I/O模块(IOB)在XC9500系列CPLD的内部结构中,I/O块的功能是用来为CPLD的输入和输出提供相应的缓冲,即用来为内部逻辑电路和器件的用户引脚之间提供相应的接口,它的具体结构和输出使能如图2.4所示。图2.3 FastCONNECT开关矩阵(5) 乘积项分配器(Product Term Allocator)在XC9500系列CPLD的FB中,乘积项分配器的主要功能是用来控制如何将直接来自于可编程与阵列的5个乘积项分配给相应的宏单元来使用。2.2.2 可编程CPLD芯片XC9572产品规格说明1、XC9572的特性(1) 所有引脚提供7.5ns引脚引脚逻辑延时;(2) 1

29、25MHz计数频率;(3) 具有1600个可用门的72个宏单元;(4) 72个用户I/O引脚;(5) 5V ISP(内部系统可编程); 可完成10000次编程/擦除;图2.4 IOB结构图 可完成所有商用电压和温度范围的编程/擦除;(6)增强的引脚锁定结构;(7) 灵活的36V 18功能块; 90个乘积项可驱动功能块内18个宏单元的任意乘积项; 具有全局时钟、乘积项时钟、输出使能及置位复位信号;(8) 扩展的IEEE Std 1149.1边界扫描支持(JTAG);(9) 每个宏单元内具有可编程功率转换模式;(10) 单个输出时有转换速率控制功能;(11) 用户可编程地针功能;(12) 为设计保

30、护提供的扩展模式安全特性;(13) 高驱动的24mA输出;(14) 3.3V或5V的I/O能力;(15) 先进的CMOS 5V快速闪烁技术;(16) 支持多片的XC9500并行编程;(17) 支持44脚PLCC,84脚PLCC,100脚PQFP和100脚TQFP封装形式。2、XC9572特性说明XC9572是一种高性能的CPLD,为一般的逻辑集成提供了先进的系统内部编程及测试功能。它由8个36V18功能块组成,功能块提供1600个7.5ns传输延时的可用门。系统的整体结构见图2.5。2.3 VHDL语言简介当前,在国内外应用的硬件描述语言有许多种,VHDL语言是应用最广泛的硬件描述语言之一。V

31、HDL语言功能相当强大,不但适应了当今电子设计自动化技术的飞速发展,还变革性地促进了电子设计自动化技术的进步。世界上一些著名EDA公司的开发工具均支持VHDL。用VHDL语言编程实现数字电子系统硬件设计容易做到技术共享,HDL语言最适合于用CPLD和FPGA等器件实现数字电子系统设计。2.3.1 VHDL语言的优点VHDL语言主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL语言的程序结构特点是见一项工程设计,或称设计实体(可以是一个元件、一个电路模块湖一个系统)分成外部(或称可视部分,即端

32、口)和内部(或称可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。1、与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。2、VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能检查设计系统的功能可行性,随时可对设计进行仿真模拟。3、 VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和图2.5 XC9572 结构图已有设计的再利用功能。符合市场需求的大规模系统高效、高速

33、的完成必须由许多甚至多个开发组共同并行工作才能实现。4、对于用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。5、由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。2.3.2使用VHDL语言的可行性使用VHDL语言设计出租车自动计价系统,使其实现出租车上电子数字钟和计费器以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描

34、电路显示时钟和车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点。VHDL语言编制的程序编译通过下载到特定芯片后,可应用于实际的出租车计价系统中。2.4 Xilinx Foundation F1.5系统简介Xilinx Foundation系统是Xilinx公司可编程器件的开发系统之一,是一种目前使用较广的开发系统。该系统提供一个非常友好的用户界面,具有很强的开发和设计功能。在此开发系统下,用户可以完成从设计输入到设计仿真;从设计编译到器件编程,全部操作都在一个图形界面下操作完成。Foundation系统 支持Xilinx公司的全部系列的可编程逻辑器件,利用该系统可以开发

35、任何一种Xilinx公司可编程逻辑器件。3出租车自动计价系统的设计3.1系统基本设计思想及实现的功能及要求3.1.1系统基本设计思想本系统设计包含电子钟和计价器的设计,用VHDL语言实现整个系统的设计,编程环境为Xilinx Foundation F1.5系统。电子钟程序的设计要有时分秒的计量及显示,并且要有调节时间的功能。计价器程序的设计要有行驶路程、总金额和等待时间的计量及显示。设计最终生成SRAM 目标文件( 3 .sof) ,通过JTAG 端口下载、Byte2Blaster 编程电缆并行口PS 配置,将设计数据下载到相应的CPLD中。3.1.2系统实现的功能及要求出租车自动计价系统实现

36、两方面的功能,一是有一个电子数字钟的显示,一是计价部分(计价器),如图3.1所示。1、电子钟实现功能及要求:(1)在LED数码管上显示时、分、秒;(2)设置清零按键clr,Clr信号有效时,使小时为1和分钟为1;(3)设置小时调整按键,使小时加1,设置分钟调整按键,使分钟加1。2、计价器实现功能及要求:(1)实现预置功能,能预置起步费,车行1.5公里内,且累计等待时间2分钟内,起步费3元;(2)实现计价、计时、计程功能。计价部分为:起步费6元,车行1.5公里外以每公里1元计费,累计等待时间2分钟内不计费,2分钟外以每分钟1.5元计费。计价范围为0-999.9元,分辨率为0.1元。计时部分为:计

37、算乘客等待时间,计时器量程为59分,满量程自动归零。计时分辨率为1分钟。计程部分为:计算乘客所行驶的公里数,计程器的量程为99公里,满量程自动归零。计程分辨率为0.1公里。(3)设计动态扫描显示电路,显示出租车费、等待时间、行驶路程。(4)公里脉冲传感信号设定为每发一个脉冲代表运行了0.1公里。3.2系统硬件设计系统硬件结构及框图如图3.1所示。频率信号分频模块控制模块等待信号公里脉冲计费/复位电子钟计费模块计时模块计程模块数码管显示图3.1计价系统件功能框图LED数码管动态扫描信号f1f10f15f1在硬件设计方面,因为是设计它的可实现性,所以电子钟的调节信号、等待信号和启动以及复位手动输入

38、,在使用foundation软件模拟时则使用分频出的不同频率信号。这样硬件设计则主要包括这几部分:频率信号源、键盘、功能芯片XC9572、数码管显示、显示位驱动电路及数码管段选驱动电路。XC9572是一种高性能的CPLD,具有72个用户I/O引脚,图3.2是电路的具体设计电路,数码管显示部分共用了9个LED数码管,分别为4位计价显示,3位计程显示,和2位等待时间显示,电子钟部分的数码管及驱动电路因重复所以省略,总体电路图如图3.2所示,在第三章介绍电子钟的程序设计部分。3.2.1外围电路介绍信号源晶振电路如图3.3所示。图3.2 总体设计电路图图3.3电源晶振因为本设计对信号频率精确读要求较高

39、,所以使用240赫兹有源晶振,通过分频得到各分频信号。键盘控制电路如图3.4。图3.4键盘控制电路 键盘控制电路的按键采用行列对应端口接通来实现信号输入,例如当K0按下时,芯片的管脚1和管脚3接通。K0为计价器启动键start,K1为清零键clr,K2为等待信号,K3为公里脉冲,K4、K5为分钟和小时的调节按键。数码管显示驱动电路如图3.5。通过三极管9012对基极电流的放大使数码管a、b、c、d、e、f、g各个显示段点亮,各个显示段则由cx9572输出不同的数值码,来组成不同数字。LED的工作电流在810毫安,通过计算R131选择1K电阻排。图3.5数码管段显示驱动电路位选信号驱动电路如图3

40、.6。I/O图3.6 数码管位选驱动电路(部分)位选信号由A4进入,经9013放大电路放大,点亮对应的数码管。也由cx9572的I/O输出的不同数值来循环扫描点亮数码管。数码管采用共阴极,因此当I/O输出为高电平时数码管点亮。3.3系统软件设计系统软件总体设计包括四大模块,即分频模块、控制模块、计量模块(含电子钟)和译码显示模块。分频模块对输入脉冲进行分频,得到频率为15Hz、10Hz和1Hz三种频率时钟信号。控制模块是系统的核心部分,对计价器的状态进行控制。计量模块完成钟表计时,出租车计价、计时、计程功能。动态扫描/译码显示模块完成电子钟、计费、计时、计程数据显示。程序设计时将电子钟显示、里

41、程和等待时间显示、计费显示模块的动态扫描功能独立出来,单独设计一个共用的扫描模块,因此将电子钟显示、里程和等待时间显示、计费显示模块各自都分为计数模块和扫描两个模块。3.3.1电子钟程序设计电子钟原理图如图3.7所示。秒计数器分计数器时计数器数码管显示LED数码管位选择信号Scanclk秒个位秒十位分个位分十位时个位时十位图3.7电子钟原理图m_addh_addf1电子钟端口信号图见图3.8。f1为系统分频模块产生的1s时钟信号。h_add信号为小时调整按键输入信号。h_add信号有效时,小时数字加1。m_add信号为分钟调整按键输入信号。m_add信号有效时,分钟数字加1。clr信号为电子钟

42、清0使能信号。f1scanclkclrh_addm_adds1h0f1scanclkclrh_addm_addm0m1图3.8电子钟端口信号s0h1s0s1m0m1h0h1scanclk信号为LED数码管的动态扫描信号。电子钟程序设计时主要是1秒脉冲的累加,分别设秒低位、秒高位、分低位、分高位、小时低位和小时高位,我们定义6个4位的信号分别代表电子钟的各位:s0、s1、m0、m1、h0和h1。当s0计到9时则s1加1,当s0和s1分别为9和5时,则m0加1,同时s0、s1清0。分钟和小时位也是同样的道理,当m0计到9时则m1加1,当m0和m1分别为9和5时,则h0加1,同时m0、m1清0。小时

43、位在累加到12时则清0,在累加时同时还要判断调节信号(h_add、m_add)是否为0,不为0时则为电子钟调节,调节信号每来一个上升沿,对应的分或小时加1。电子钟程序框图见图3.9所示。3.3.2计价部分程序设计系统分频模块产生15Hz、10Hz和1Hz三种频率时钟信号。见系统仿真图。整个计费过程可以归总到一个流程图中,设定K0为计价器启动start键。租车在载客期间的行使状态,K0判断载客的开始与结束。K2为等待信号stop_wait,K2为1为等待状态,为0为行使状态。用K0判断出当开始工作时,计费器要循环判断是否有传感器脉冲和等待信号,当一直有传感器脉冲时计费器要累加脉冲数当100米时发

44、送一个里程信号,同时里程信号也要不断累加,当累加到1公里时,显示的里程和金额同时加F1上升沿秒信号累加s0=9?s1+1且s0清0m0=9?m1+1且m0清0m1&m0=59 且s1&s0=59?h0+1,m1,m0清0h0=9 ?h1+1,h0清0m_add信号输入m_add=1?分钟加1图3.9电子钟程序框图YNNYNYN是否为12时59分59秒h1&h0清0s1&s0=59?m0+1且s1&s0清0YNYN分钟位清0是否为59上相应的金额。当判断到有等待信号时,开始途中等待计价模式,开始等待时间计时。等待计价部分也可以设不同等待单价,小于1.5公里时和大于1.5公里时可以有不同的等待单价

45、。我们在这里当等待过程中没有超过免费等待时间2分钟不累加总金额,当超过等待时间2分钟时,按等待单价累加到总金额上,但总路程不加。K0是否按下K2是否为1赋初始值默认单价启动计价有里程信号吗够一公里吗有传感信号吗停止计价和里程计数开始计时YY总路程加一总金额加一NS2是否为1等待单价YYNYN够一分钟吗等待时间加一YNNY图3.10总计量流程图控制模块如图3.11。控制模块stop-waitkmfinstart控制信号en1=1控制信号en0=1图3.11控制模块端口信号f1开始键start按下是否等待stop_wait=1?启动等待计时 Y启动公里计程N图3.12 控制模块工作流程图是否大于2

46、分钟是否大于3公里当计到1分钟时en1=1计价累加当计到1公里时en0=1计价累加YNYN 当开始键start按下后,启动计价器,stop-wait为中途等待信号,当有等待信号时,控制器启动等待计时模块,开始计等待时间,当stop-wait为0,而有公里脉冲时,计价器则开始计程。计量模块分三部分:计价模块、计时模块、计程模块。计程模块:计程模块startkmfinKm23-0Km13-0Km03-0f图3.13计程模块端口信号启动计程脉冲信号累加Km0是否为9Km1加1,Km0清0Km1是否为9Km2加1,Km1清0Km2是否为9Km2清0YNYYNN图3.14计程累加流程图 计程模块的作用就是一个累加器的作用,Km0、Km1、Km2分别为里程的个十百位,每来一个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号