出租车计费器的PLD实现.doc_第1页
出租车计费器的PLD实现.doc_第2页
出租车计费器的PLD实现.doc_第3页
出租车计费器的PLD实现.doc_第4页
出租车计费器的PLD实现.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

出租车计费器的pld实现 出租车计费器的PLD实现第一章 正 文1.1绪论1.1.1 PLD的发展现况及其研究意义PLD/FPGA是近几年集成电路中发展最快的产品。由于PLD性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。据IC Insights的数据显示,PLD市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业。什么原因使PLD发展如此之快?这主要是依赖通信和网络产品市场的飞速发展,而这一领域是PLD最大的应用市场。熟悉通信和网络的人一定知道这里玩的是协议,而通信协议好像海鲜价钱,说变就变。PLD正是发挥了它现场可编程的特点、绕过定制集成电路的复杂环节,极大地缩短了新品上市时间、提高了设计和使用的灵活性。因为通信和网络产品利润高,也因为PLD器件工艺复杂,因此PLD一直被认为是只能应用于高档产品。如通信产品和专业图象处理设备。但是随着半导体工艺的发展,PLD芯片的成本已越来越低,甚至已经可以和ASCI芯片和标准集成电路相互竞争,这使得PLD的应用领域不断扩大,反过来,这又进一步加速了PLD产品的发展。1.1.2 PLD的历史溯源可编程逻辑器件(PLD)经历了PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)、FPGA(现场可编程门阵列)几个发展阶段。使用PLD具有设计灵活、调试方便、系统可靠性高等众多优点,PLD已经成为科研实验、样机试制和小批量产品的首选方案。工程应用中产品的硬件数字技术,其实现可归纳为三种:简单电路用门级原理图设计、小规模电路实现;复杂数字系统用模块级原理图设计、大规模专用芯片(如DSP(数字信号处理)、MPU(微处理器)等辅助电路实现;以及现代的PLD应用。1.1.3 PLD在国内外的发展规模及趋势目前PLD/CPLD约占全球市场规模的6成 ,但今后FPGA的比重将日益增大。可编程逻辑器件国内外发展PLD发展方向有两个:一是向SOC方向发展,二是正在发展的ProASIC可替代ASIC(特定用途集成电路)。发展趋势主要体现在以下几点:1.继续向更高密度,更大容量迈进2.低密度PLD依然走俏 3.IP内核得到进一步发展4.可编程逻辑器件嵌入标准单元5.ASIC嵌入可编程逻辑单元1.1.4 PLD的特点和应用随着集成度的不断提高,PLD产品的性能大为改善,功能也不断增多。早期的PLD产品仅能够实现一些简单的逻辑功能,而现在已经逐渐把DSP、MCU、存储器及应用接口等集成到PLD中,使得PLD功能大为增强,并且逐渐转向可编程系统芯片(SOPC),在可编程逻辑芯片上直接实现系统集成。目前,PLD 产品的速度通常都能够基本上满足一般系统的设计要求。一旦用户将所有主要的功能块集成之后,可以很方便地随着标准改变而重新配置,从而能够大大缩短开发周期,并且降低开发成本。可编程逻辑它的优势在于缩短开发生产周期,现场灵活性好 ,适于少量生产,不足之处是价格昂贵,适用于中小批量生产,随着微细化的进步,芯片面积缩小,价格迅速下降,市场发展加快。PLD在集成电路中有着举足轻重的地位,PLD的设计应用除了可以完全取代较简单的设计外,还在日益承担起复杂系统的越来越多的性能。PLD器件、产品已经在工程项目中得到广泛的应用,其可靠性设计比其先进性更为重要。作为电子信息专业的新时代大学生确实必要对其有一定的了解,本设计研究的目的在于了解各种PLD在电路结构和性能上的特点,以及它们都能用来实现哪些逻辑功能,适用在哪些场合。1.1.5 本课题应主要解决的问题1. 根据要求设计原理图;2. 利用MAXPLUS作首次的功能性编译调试;3. 利用仿真软件现场调试,进入PCB设计调试环境,有正确波形输出。 第二章 设计详细说明2.1根据设计要求,出租车的计费工作原理分成4个阶段:1当车速达到一定程度时(用开关模拟),按行驶里程收费(用1秒脉冲模拟);在刚开始计费时,应有起步费 10元,行驶5公里后,在起步费的基础上累计计费(按0.20元/里程脉冲(1秒脉冲模拟)。2当车速达不到一定里程时,由计费器产生定时脉冲(用2秒脉冲模拟)取代里程脉冲,从而按时间计费。3 当行驶里程超过30公里时,按 200%的收费率计数( 0.40元/里程脉冲)(或计费脉冲)。4汽车行驶结束后应有清零信号,等待下一次计费开始。2.2基本设计思想(1)根据出租车计费原理,将出租车计费部分由5个计数器来完成,分别为A,A,B,C,D。计数器A,A完成车费角位。计数器B完成车费个位。计数器C完成车费十位。计数器D完成车费百位。(2)出租车里程计数部分由3个计数器来完成,分别为QA,QB,QC。计数器QA完成里程个位计数。计数器QB完成里程十位计数。计数器QC完成里程百位计数。(3)行驶过程中车费在起步费的基础上累计计费(按0.20元/里程脉冲(1秒脉冲模拟)的功能:由计时器A 接全加器 、 共同实现。 (4)车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。 (5)通过分析可以设计出系统的顶层框图如图1所示:2.3 基本概念和理论基础2.3.1十进制计数器74160除了计数功能外,计数器产品还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品一般只有二进制和十进制两种,有了这些附加功能,我们就可以方便地用我们可以得到的计数器来构成任意进制的计数器。下面我们举个例子。我们用同步十进制加法计数器74LS160构成一个六进制计数器。因为六进制计数器的有效状态有六个,而十进制计数器的有效状态有十个,所以用十进制计数器构成六进制计数器时,我们只需保留十进制计数器的六个状态即可。74LS160的十个有效状态是BCD编码的,即0000、0001、0010、0011、0100、0101、0110、0111、1000、1001。图2 十进制计数状态图我们保留哪六个状态呢?理论上,我们保留哪六个状态都行。然而,为了使电路最简单,保留哪六个状态还是有一点讲究的。一般情况下,我们总是保留0000和1001两个状态。因为74LS160从1001变化到0000时,将在进位输出端产生一个进位脉冲,所以我们保留了0000和1001这两个状态后,我们就可以利用74LS160的QB、QC输出端通过与门作为六进制计数器的进位输出端了。于是,六进制计数器的状态循环可以是0000、0001、0010、0011、0100和1001,也可以是0000、0101、0110、0111、1000和1001。利用74LS160的置数端。下面这个电路中,由混合逻辑与非门构成的译码器。图3 用置零法将74LS160接成六进制计数器这个译码器当输入为0110时,与非门输出低电平,这个低电平使74LS160工作在预置数状态,当下一个时钟脉冲到来时,由于D C B A等于0000,74LS160就会预置成0000。从0000状态开始,随着时钟脉冲的不断到来,74LS160依次变为0001、0010、0011、0100、0101、和0110状态。CLK信号为秒脉冲信号,当控制信号ENT+EPT(时钟脉冲)为1时,计数器开始工作,实际计数值为控制ENT+EPT的控制次数。同样,五进制计数器即0101,只需将上述电路图改为QA、QC接与非门即可实现五进制。2.3.2全加器74283全加器即将两个对应位的加数和被加数和来自低位的进位3个数相加所用的电路。A0 A1 A2 A3 为加数,B0 B1 B2 B3 为被加数,CI0为进位。 我们知道四位二进制相加是逢十六进一,而本设计中涉及到的均应是十进制,如何将其变化为逢十进一的全加器?其实不难,两个一位二十进制代码相加就是逢十进一,因此,在二进制加法器实现二十进制代码相加的运算时,就是要根据不同的二十进制代码和数值的不同,添加不同的修正电路。用二进制加法器构成二十进制码框架图如下: 图4 二进制加法器构成二十进制码框架图下面用四位二进制加法器构成一位8421BCD码加法器,当两个一位8421BCD码相加时,若和数未处于伪码范围,相加结果是正确的。但若相加结果出现伪码10101111,就意味着和数大于10,此时必须加校正项0110,以得到两位代码。为此用一片四位二进制加法器(1)对两个8421码进行相加,产生二进制和数SUM4SUM1,只要二进制和数SUM4SUM1大于1001(十进制数9),便产生加六修正信号C=1,经过四位二进制加法器(2)进行加六修正,产生8421码的和数F。当然修正电路还要对芯片(1)的进位信号COUT进行判断,只要COUT=1,就说明两数之和大于15,应进行加六修正。由上面分析可知,修正信号C是在SUM4SUM1=10101111及COUT=1时C=1,故C=SUM4SUM3+SUM4SUM2+COUT。其逻辑图如下:图5 二进制加法器构成二十进制码图2.3.3 D触发器D触发器只有一个数据输入端D ,这个信号经过反相器再加到触发器的另一个输入门,从而保证触发器的两个输入始终保持相反的状态。实际使用的D触发器总是带使能端的。可知D触发器的状态方程:Qn+1=D,对于带使能端的D触发器来说,只有在使能信号EN有效时,输出才随输入而变化。EN等于0时,输出保持不变。图6 D触发器的两倍分频图将D触发器的端和D端相连,则D触发器的特征方程变为,实现两倍分频。2.4具体模块划分并实现 当车速达到一定程度时(以开关A模拟车速,此时A=1 )计费器按里程收费,每100 m开始一次计费,(CLK产生秒脉冲模拟)注:由设计要求得知,行使到达5公里就是第50个脉冲来临,超过30公里即第300个脉冲来临。各模块功能如下:1.里程计数器QA为十进制加法计数器,其时钟脉冲是秒脉冲,计数器QA主要用于累加,当车行驶达到100m时,里程计数器就计数1次,超过1公里就产生进位脉冲信号送到计数器QB的工作状态控制端EP+ET;2.里程计数器QB是由十进制加法计数器74160构成的五进制计数器,其时钟脉冲是秒脉冲,当控制端信号为1时,开始计数。其主要功能是完成当行驶里程超过5公里,QB产生进位脉冲信号输出控制计费计数器QA和里程计数器QC的工作状态控制端 ;注:QB产生的进位脉冲时间很短暂,它所控制的QA的EP+ET为高电平的时间也就很短,数器不一定能够可靠地工作,这显然是不能达到目的的,为此,我设计了了如下电路:图7 车行驶完成5公里后的进位信号保持图当QB产生进位脉冲时,A 有控制脉冲,开始计数,输出QDQCQBQA=0001,或门输出为高电平,A 再次计数为QDQCQBQA=0010,或门输出为高电平,最终结果是计数器A 始终处于计数状态,当计数到5时即QDQCQBQA=0101,有进位信号输出,进位脉冲很短暂,数器不一定能够可靠地工作,如果我们把这个窄脉冲与D触发器的D端相接,计数器一定能够可靠地工作,因为在秒脉冲为高电平间,Q端状态随的D端的状态变化,在秒脉冲为低电平期间,Q端的状态将保持秒脉冲为低电平是D端的状态,输出的进位脉冲的宽度与秒脉冲高电平的持续时间相等。同理:车行驶完成30公里后的进位信号保持与之类似。图8 车行驶完成30公里后的进位信号保持图3. 里程计数器QC是由十进制加法计数器74160构成的六进制计数器,其时钟脉冲是秒脉冲,当QB产生进位信号使QC 的控制端为1时,开始计数。其主要功能是完成当行驶里程达到30公里,QC产生进位脉冲信号输出控制计费计数器A ;4. 计数器A,A为加法计数器,时钟脉冲是秒脉冲,其结果为车费的角位,当QB产生进位脉冲控制A 开始计费;当QC产生进位脉冲时,控制A停止计费的同时控制A 开始计费。5.计数器B为带预置十进制加法计数器,预置数为出租车个位起步价,车费的个位0,计数时钟为秒脉冲信号。6.计数器C为十进制计数器,计数器C主要用于计算车费的十位,计数时钟是秒脉冲信号,当B个位计满十产生进位信号时控制C开始计数。7.计数器D为十进制加法计数器,计数器D主要用于计算车费的百位,计数时钟是秒脉冲信号,当C位产生进位信号时控制D开始计数。8.全加器74283 、构成十进制加法器,A 的计数值作为加数和被加数的输入值,其结果是A 的两倍计数。主要功能是实现按0.20元/里程脉冲(1秒脉冲模拟)。9.全加器74283 、 ;、构成两组十进制加法器,A 的计数值作为的加数和被加数的输入值,其和值再作为的加数和被加数的输入值,其结果是A的两倍计数。主要功能是实现按0.40元/里程脉冲(1秒脉冲模拟)。10.全加器主要作用是通过计数器C加1预置车费十位的起步价1。具体说明:图9 车启动开始后,计费十位预置1的电路设计图当车刚起步时,计数器C没有开始计数,但我们要求其所接的显示电路有预置1,所以将计数器与全加器相连,加数A与计数器输出相接,被加数始终为0,计数器的进位取非门与加法器的进位端相接,这样我们的全加器实际输出信号为QDQCQBQA+RCO(非)CLRN,当车刚启动时,CLRN=1,RCO=0,计数器C还没有工作输出为0,此时,全加器输出为1,实现预置1的功能;当车行驶了一段里程,达到C计数器有进位输出时,全加器输出为0,重复正常计数。当车行驶停止时,CLRN=0,计数器C为0,全加器输出为0,此单元实现清零功能。第三章 设计总图及波形输出3.1设计总图 a.原始总图 b.各模块划分后的总图3.2波形输出a.车速达到一定速率时波形输出图b.车速达到不一定速率时波形输出图c.停止计费结束时波形输出图图10 .原始总图图11. 各模块划分后的总图图12. 车速达到一定速率时波形输出图图13. 车速达不到一定速率时波形输出图图14. 停止计费结束时波形输出图第四章 通过波形进行理论论证我们设计车每行使100米,CLK产生一个秒脉冲信号,刚开始起步为高电平,开关A模拟车速,A=1时与CLK通过D触发器和系列与门作用产生1S信号。A=0时,产生2S信号。实现当车速达不到一定里程时,开关A=0,由计费器产生定时脉冲(用2秒脉冲模拟)取代里程脉冲,从而按时间计费。具体图示如下:图15 开关A控制车速模块图(1)从波形图可看出当N=2.0S,即行驶100米,计数器QA工作,QA1=1,QA2=QA3=QA4=0,其余计数器有计数脉冲但没有EP +ET的控制信号,均为0不计数,计数器C与全加器输出C1=1,C2=C3=C4=0,与设计要求“刚开始计费时,应有起步费 10元”相符合。(N=4.0S时QA2=1,QA1=QA3=QA4=0,当N=20.0S时,即行驶1公里,此时QA1=QA2=,QA3=QA4=0,QA有进位信号控制QB开始计数,QB1=1,QB2=QB3=QB4=0,)(2)波形图中当N=100.0S时,即行驶5公里,QB开始计数为5,下一个脉冲N=102.0S到来后QB计满5,产生的进位控制计数器A 开始计数1,与74283的全加器 、相加后输出结果2,与此同时,QB产生进位信号控制QC开始计数1,N=104.0S来后,输出为4,与设计要求“车行驶5公里后,在起步费的基础上累计计费(按0.20元/里程脉冲(1秒脉冲模拟)”相符合。(3)当N=600.0S时,即行驶里程30公里时,下一个脉冲N=602.0S到来后,QC开始计数为6且产生进位信号,下一个脉冲N=604.0S到来后QC产生进位信号控制计数器A 开始计数1,A有输入CLEAR=0,停止计数,计数器A与全加器共同作用,A输出为4,脉冲N=606S到来后A输出8 ,与设计要求“实现按 200%的收费率计数( 0.40元/里程脉冲)”相符。(4)当CLRN=0时,波形图可看出所有器件均输出为0,即停止工作,与要求“汽车行驶结束后应有清零信号,等待下一次计费开始”相符。结论:由上述可以说明此出租车计费器的研究工作是顺利的,波形图与理论相一致。第五章 设计中需注意的问题(1)在一个进程中只允许一个信号上升沿作为触发条件。(2)信号值改变后,要经过一个小的延时才能生效,同一个信号不能在多个进程中赋值(因多个信号源不能同时对同一个信号驱动)。(3)在这电路图中,我将A十进制计数器构成带预置的五进制计数器,当A计数为1时,A输出2,当A 计数为2时,A输出4,当A 计数为5时,A输出0,由此可见改造的五进制计数器已完全可以满足计数条件。同理,A也只需五进制计数器,那么为什么A 为计数为2的时候也要接入进位输出端呢?下面用表说明:计数器A 计数值全加器 输出全加器 进位输出全加器V输出全加器V进位输出实际角位的进位输出120400240800360211480610501011可以看出,实际的进位只有在a.当A计数超过2时,b.计数器A产生进位信号时,故将全加器的进位输出端与A计数为2时的输出端相或,即可构成里程超过30公里时计费角位的进位输出信号。 第六章 致 谢在这个设计的过程中,我遇到不少的问题,做到这一步我真的很高兴,很感谢我的指导老师,是你老师对我的孜孜不倦的教诲和时时刻刻的督促才让我能有机会作完成这个设计,也很感谢我的朋友们,是你们对我的鼓励才让我有信心坚持下来,在此表示我真挚的谢意!第七章 参考文献1 黄正谨,徐坚,等. CPLD系统设计技术入门与应用M. 北京:电子工业出版社,2002:20-28.2 褚振勇,翁木云. FPGA设计及应用M. 西安:西安电子科技大学出版社,2002:15-25.3 宋万杰,罗丰,吴顺君,等. CPLD技术及其应用M. 西安:西安电子科技大学出版社,1999:10-18.4 侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计. 修订版M. 西安:西安电子科技大学出版社,1997:1-305宋万杰等,CPLD技术及应用M,西安:电子科技大学出版社,1999:50-586李冬梅.PLD器件与EDA技术M北京:北京广播学院出版社,2000:28-307STEFAN SJOHOLM,LENNART LINDH. VHDL design electronic circuitry M. BEIJING:QINGHUA university,2000:13-18.8ATMEL Corp. Designing for In-System Programmability with ATMEL CPLDSM. The ATMEL Company,2003:1-309M. MORRIS MANO, Digital Design M , PRENTICE HALL.2000:4-15 10Charles H. Roth, Jr., Fundamentals of Logic Design M, PWS.2003.1-18 11Randy H. Katz, Contemporary Logic Design M, The Benjamin/Cummings Publishing Company, Inc.1995:1-45第八章 毕业设计感想我是即将跨出大学校门,走进社会的大学毕业生,主修电子信息工程,对我来说,熟悉计算机系统、可编程逻辑器件的应用、使用MAXPLUS软件、EDA实验开发系统等软件和设备,仿真进行数据处理,这些都是我应该和必须掌握的。通过这次毕业设计,我从自己的主观意识上掌握了数字电子技术基础这本教材的内容。在这次设计任务中,要求我们活学活用,用学到的数字电路知识,应用到实际生活中。用PLD对出租车计费器进行设计。在整个过程中,我觉得最有困难的就是设计每个小细节,它不仅要对器件熟悉,更要用这些器件运用到实例中。通过小组之间的讨论以及导师的正确引导,最终设计出来,并投入运行,使其控制出租车计费系统。这次的设计,使我初步了解了可编程控制器的溯源和概念,可编程逻辑器件(PLD)是由用户进行编程从而实现所需逻辑功能的数字集成电路(IC),利用PLD内部的逻辑结构可以实现任何布尔表达式或者寄存器函数。更进一步认识了PLD的技术领域及其发展。PLD可以把自动化技术、计算机技术和通信技术融为一体,完成多种功能。它的应用领域也非常广泛。由于它能应用于冶金、化工、轻工、机械、电力所以说PLD已经成为了工业生产自动化的三大技术专柱,PLD是在ASIC设计的基础上发展起来的。在未来三年内,PLD将成为世界半导体产品市场上发展最快的领域。通过这半年时间的毕业设计,对我自身是个挑战,能让我在基本的理论基础上得到实际的锻炼,从理论上得到充实和提高,对正确开展各项设计工作会有很大帮助,提高了自己的动手能力,也让我第一次感受到创新的理念,总之从方面都得到良好的锻炼。第九章 附录(PLD在汽车行业中的应用)由于多种网络协议在汽车行业的快速应用,要求必须采用网络集线器进行网

温馨提示

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

评论

0/150

提交评论