基于CPLD出租车计价器设计.docx
《基于CPLD出租车计价器设计.docx》由会员分享,可在线阅读,更多相关《基于CPLD出租车计价器设计.docx(48页珍藏版)》请在冰点文库上搜索。
基于CPLD出租车计价器设计
摘要
随着电子行业的迅猛发展,计价器在各个领域中的使用越来越频繁,用户对计价器的要求也越来越高。
以出租车多功能计价器为例,用户不仅要求计价器性能稳定,计费准确;不同国家和地区的收费方式存在差异,即使在同一地区,不同车型的出租车其收费方式也有差别,而且出租车还面临几年一次的调价或调整收费方式等问题。
传统的基于单片机设计的出租车多功能计价器已远远跟不上这种变化,功能升级很繁琐,需要硬件重组和软件更新同步进行,成本高,并且每次升级都可能产生新的不稳定因素;而本设计是基于复杂可编程逻辑器件(CPLD)的出租车自动计价系统,采用超高速集成电路硬件描述语言VHDL和逻辑综合为基础的自顶向下的电路设计方法,在硬件电路不加改变的前提下,功能升级十分方便,从使用情况看,该设计稳定性好、可靠性高,市场前景良好,而且开发成本低,周期短,极大的满足了用户的变化要求。
关键词:
硬件设计CPLD超高速集成电路硬件描述语言仿真
Abstract
Alongwiththefastfiercedevelopmentoftheelectronicsprofession,chargethemachineineachrealmofusageismoreandmoremultifarious,therequestofcustomertothechargemachineisalsomoreandmorehigh.Totakemulti-functionchargemachineoftherentcarasanexample,thecustomernotonlyrequesttochargethemachinefunctionstability,chargeaccurate;thefor-rentcarofdifferentfromthechargesmethodexistencedifferenceoftheregion,eveninsameregion,carindifferentnationtypeitchargesthewaybutalsohavethedifference,andrentthecartostillfacesatimefeehikesofseveralyearsoradjusttochargethewayetc.problem.Traditionalaccordingtoamachinedesignofmulti-functionchargemachineoffor-rentcarhasalreadycannednotkeepupwiththiskindofvarietyfarandfar,thefunctionupgradeisverytedious,needingthehardwarereorganizationtocarryonwiththesoftwarerenewalsynchronously,thecostishigh,andupgradeeachtimemayproducethelatelyunsteadyfactor;butaccordingtoprogrammablelogicarray(CPLD)ofthespotofmulti-functionchargemachineoffor-rentcar,theadoptionhardwaredescriptionlanguagetheVHDLandlogiciscomprehensiveforbasalfromthecrestgetdownoftheelectriccircuitdesignmethod,Doesnotchangeinthehardwareelectriccircuitunderthepremise,thefunctionupgradeextremelyconveniently,lookingfromtheservicecondition,thisdesignstabilitygood,thereliabilityishigh,themarketprospectisgood,moreoverthedevelopmentcostislow,thecycleisshort,enormoushassatisfiedthechangerequestofcustomer.
.
Keywords:
Hardwaredesign,ComplexProgrammableLogicDevice,Extremelyhighsoontheintegratedcircuithardwaredescriptionlanguage,Simulation.
3.4传感器工作原理.............................................................................20
前言
随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。
于是,出租车行业以低价高质的服务给人们带来了出行的享受。
但是,一直以来存在着的买卖纠纷困扰着行业的发展。
而在出租车行业中解决这一矛盾的最好方法就是改良计价器。
用更加精良的计价器来为乘客提供更加方便快捷的服务。
我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。
随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。
出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。
鉴于目前有关出租车计费又出台了新的政策,在原有政策基础上新增了等待费用,为了与时俱进,设计一个计费功能较全面的系统也已是迫在眉睫。
凡乘过出租车的人都知道,只要汽车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如10元)增加。
当出租车到达某地需要在那里等候时,系统会自动根据时间进行计时,每等候一定时间,计费显示就增加一个该收的等候费用。
汽车继续行驶时,停止计算等候费,继续增加里程计费。
到达目的地,便可按显示的数字收费。
汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有应用价值的。
采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
为此采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,例如防作弊系统。
(1)课题研究目的和意义
在现代社会中,出租车已成为城市交通必不可少的交通工具,其交通管理是城市交通管理的重要方面,也是解决城市交通问题的关键所在。
近几年来,出租车行业在各地得以蓬勃发展,出租车经营也从无序状态逐渐走入正轨。
出租车计价器是计算出租车营运费用的专用智能化仪表,记录着旅客从上车到下车的行驶里程、途中等候时间和需支付的费用,已经成为出租车营运中必配的、可靠的计量器具,其使用准确性直接关系到经营者与乘客之间的经济利益。
但是在实际运营中,总有不少消费者或乘客反映相同路径,不同车辆的收费有较大出入,因此造成经营者和乘客之间的冲突屡见不鲜。
所以,出租车计价器在出租车上扮演着一个非常重要的角色,也逐步受到了社会的重视。
目前我国有数十家出租车计价器生产厂,产出各式各样的出租车计价器[3]。
可见,具有良好性能的出租车计价器对广大出租车司机朋友和乘客来说是非常重要的。
采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
因此,研制一个规模小、成本低、功能多、易使用的出租车计价器便成为当务之需。
为了解决这一问题,本设计采用CPLD进行设计,并运用当今最为通用的硬件描述语言VHDL来实现,这样用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
(2)本文所做的工作
出门坐出租车已成为现在很多人的选择,不仅随叫随到而且快捷方便,那么公平合理准确的计费就成为人们最关注的问题。
本文主要内容是利用CPLD可编程逻辑器件设计并实现一个适合实际的出租车计价系统,采用VHDL语言进行编程,编程环境为Xilinx公司的可编程器件的开发系统(XilinxFoundation),源程序文件经编译后下载到可编程逻辑器件XC9572芯片内部后,可应用于实际的出租车计价系统中。
1出租车计价器系统相关技术
1.1CPLD简介
复杂可编程逻辑器件CPLD与现场可编程门阵列FPGA都是在PLA、PAL、GAL等逻辑器件的基础上发展起来的。
与以往的PLA、PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。
这样的FPGA/CPLD实际上就是一个子系统部件。
这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。
1.1.1CPLD的基本结构
CPLD的集成度在千门/片以上,其基本结构是由与阵列、或阵列、输入缓冲电路、输出宏单元组成。
其与阵列比PAL大得多,但并非靠简单的增大阵列的输入、输出端口达到。
阵列占用芯片的面积随其输入端数的增加而急剧增加,而芯片面积的增大不仅使芯片的成本增大,还使信号在阵列中传输延迟加大而影响其运行速度。
所以CPLD通常是由多个类似PAL功能块组成,具有很大的固定于芯片上的布线资源,通过位于中心的互连矩阵连接在一起。
互连阵列要将来自I/O的信号和逻辑块的输出布线到器件内任何逻辑块的输入。
一般互连矩阵有两种形式:
基于阵列的互连和基于多路开关的互连。
基于阵列的互连是纵横开关的实现方式,它允许任何输入到互连矩阵中的信号布线到任何逻辑块,是完全可布通的。
基于多路开关的互连是对逻辑块的每个输入有一个多路转换器,输入到互连矩阵的信号被连接到每个逻辑块的大量多路开关的输入端,这些多路转换器的选择是可编程的,只允许其一个输入通过它进入逻辑块。
所以布通率与多路转换器的输入宽度有关,宽度愈大,所占面积增加,性能降低。
与FPGA相比,CPLD不采用分段互连方式,因而具有较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间;此外,CPLD具有很宽的输入结构,适合于实现高级的有限状态机;具有ISP性能的CPLD,可以直接在系统内对其进行编程,因而类似于具有ISP性能的SRAM查找表类型的FPGA。
1.1.2CPLD的特点
20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。
这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活,具有以下特点:
(1)目前的CPLD主要是基于E2PROM或FLASH存储器编程,编程次数达1万次。
其优点是在系统断电后,编程信息不丢失。
CPLD又可分为在编程器上编程和在系统编程(ISP)CPLD两种。
ISP器件的优点是不需要编程器,可先将器件装焊于印制板,再经过编程电缆进行编程,编程、调试和维护都很方便。
(2)CPLD是将多个可编程阵列逻辑(PAL)器件集成到一个芯片,具有类似PAL的结构。
一般情况下CPLD器件中至少包含三种结构:
可编程逻辑功能块(FB);可编程I/O单元;可编程内部连线。
(3)在速度上CPLD优于FPGA。
由于FPGA是门级编程,且CLB之间是采用分布式互连;而CPLD是逻辑块级编程,且其逻辑块互连是集总式的。
因此,CPLD比FPGA有较高的速度和较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间。
(4)FPGA/CPLD软件包中有各种输入工具和仿真工具,以及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。
(5)电路设计人员使用FPGA/CPLD进行电路设计时,软件易学易用。
1.2XC9500系列器件结构简述
本次设计所使用的可编程器件是由Xilinx公司生产的CPLD器件—XC9572。
以下就对Xilinx公司生产的XC9500系列以及本次所采用的XC9572进行介绍。
XC9500系列器件采用ISP技术。
每个XC9500系列器件是一个由多个功能块(FB)和I/O块(IOB)组成,可用开关矩阵FastCONNECT完全互连的子系统,IOB提供器件输入和输出的缓冲,每个FB提供具有36个输入和18个输出的可编程逻辑的容量。
FastCONNECT开关矩阵连接所有FB的输出和输入信号到FB的输入端,对于每个FB,12~18个输出(取决于封装的引腿数)和有关的输出使能信号直接驱动I/B。
图2.1所示的是XC9500系列器件的结构。
它采用了基于Flash的0.35µm技术,可以提供10000次以上编程/擦除周期。
XC9500系列器件分为以下三种系列:
(1)XC9500XV系列器件:
2.5VISP;引脚至引脚延时3.5ns,fsys=200MHz;多种电压的I/O接口,可以支持的电压为3.3V/2.5V/1.8V。
(2)XC9500XL系列器件:
3.3VISP;引脚至引脚延时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。
功能块的结构框图如图1-1所示
图1-1功能块FB的结构框图
(2)宏单元(Macrocell)
通常宏单元由可编程的逻辑阵列、乘积项分配器、可编程寄存器、数据选择器以及一些相应的简单的门电路构成。
一般来说,XC9500系列的每一个宏单元可以单独配置成组合逻辑功能或者时序逻辑功能,这主要取决于宏单元中的寄存器是否被旁路。
图1-2说明了FB中宏单元的内部结构
图1-2FB中宏单元的内部结构
(3)开关矩阵(SwitchMatrix)
开关矩阵也是CPLD内部可编程的重要资源,其连接信号到FB的输入。
所有UOB的输出和所有FB的输出都驱动FastCONNECT开关矩阵。
这些信号的任一个都可以通过编程选择以统一的延时驱动每个FB。
如图1-3所示。
图1-3FastCONNECT开关矩阵
(4)I/O模块(IOB)
在XC9500系列CPLD的内部结构中,I/O块的功能是用来为CPLD的输入和输出提供相应的缓冲,即用来为内部逻辑电路和器件的用户引脚之间提供相应的接口,它的具体结构和输出使能如图1-4所示。
图1-4IOB结构图
(5)乘积项分配器(ProductTermAllocator)
在XC9500系列CPLD的FB中,乘积项分配器的主要功能是用来控制如何将直接来自于可编程与阵列的5个乘积项分配给相应的宏单元来使用。
1.2.1可编程CPLD芯片XC9572产品规格说明
1、XC9572的特性
(1)所有引脚提供7.5ns引脚—引脚逻辑延时;
(2)125MHz计数频率;
(3)具有1600个可用门的72个宏单元;
(4)72个用户I/O引脚;
(5)5VISP(内部系统可编程);
①可完成10000次编程/擦除;
②可完成所有商用电压和温度范围的编程/擦除;
(6)增强的引脚锁定结构;
(7)灵活的36V18功能块;
①90个乘积项可驱动功能块内18个宏单元的任意乘积项;
②具有全局时钟、乘积项时钟、输出使能及置位复位信号;
(8)扩展的IEEEStd1149.1边界扫描支持(JTAG);
(9)每个宏单元内具有可编程功率转换模式;
(10)单个输出时有转换速率控制功能;
(11)用户可编程地针功能;
(12)为设计保护提供的扩展模式安全特性;
(13)高驱动的24mA输出;
(14)3.3V或5V的I/O能力;
(15)先进的CMOS5V快速闪烁技术;
(16)支持多片的XC9500并行编程;
(17)支持44脚PLCC,84脚PLCC,100脚PQFP和100脚TQFP封装形式。
2、XC9572特性说明
XC9572是一种高性能的CPLD,为一般的逻辑集成提供了先进的系统内部编程及测试功能。
它由8个36V18功能块组成,功能块提供1600个7.5ns传输延时的可用门。
系统的整体结构见图1-5。
图1-5XC9572结构图
1.3VHDL语言简介
当前,在国内外应用的硬件描述语言有许多种,VHDL语言是应用最广泛的硬件描述语言之一。
VHDL语言功能相当强大,不但适应了当今电子设计自动化技术的飞速发展,还变革性地促进了电子设计自动化技术的进步。
世界上一些著名EDA公司的开发工具均支持VHDL。
用VHDL语言编程实现数字电子系统硬件设计容易做到技术共享,HDL语言最适合于用CPLD和FPGA等器件实现数字电子系统设计。
1.3.1VHDL语言的优点
VHDL语言主要用于描述数字系统的结构、行为、功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。
VHDL语言的程序结构特点是见一项工程设计,或称设计实体(可以是一个元件、一个电路模块湖一个系统)分成外部(或称可视部分,即端口)和内部(或称可视部分),即设计实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点是多方面的。
1、与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。
2、VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能检查设计系统的功能可行性,随时可对设计进行仿真模拟。
3、VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效、高速的完成必须由许多甚至多个开发组共同并行工作才能实现。
4、对于用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。
VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。
5、由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。
1.3.2使用VHDL语言的可行性
使用VHDL语言设计出租车自动计价系统,使其实现出租车上电子数字钟和计费器以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示时钟和车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点。
VHDL语言编制的程序编译通过下载到特定芯片后,可应用于实际的出租车计价系统中。
2出租车自动计价系统的设计
2.1系统基本设计思想及实现的功能及要求
2.1.1系统基本设计思想
本系统设计包含电子钟和计价器的设计,用VHDL语言实现整个系统的设计,编程环境为XilinxFoundationF1.5系统。
电子钟程序的设计要有时分秒的计量及显示,并且要有调节时间的功能。
计价器程序的设计要有行驶路程、总金额和等待时间的计量及显示。
设计最终生成SRAM目标文件(3.sof),通过JTAG端口下载、Byte2Blaster编程电缆并行口PS配置,将设计数据下载到相应的CPLD中。
2.1.2系统实现的功能及要求
出租车自动计价系统实现两方面的功能,一是有一个电子数字钟的显示,一是计价部分(计价器)。
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元。
计时部分为:
计算乘客等待时间,计时器量程为59分,满量程自动归零。
计时分辨率为1分钟。
计程部分为:
计算乘客所行驶的公里数,计程器的量程为99公里,满量程自动归零。
计程分辨率为0.1公里。
(3)设计动态扫描显示电路,显示出租车费、等待时间、行驶路程。
(4)公里脉冲传感信号设定为每发一个脉冲代表运行了0.1公里。
3出租车计价器系统硬件设计
3.1系统硬件结构
系统硬件结构及框图如图3-1所示。
在硬件设计方面,因为是设计它的可实现性,所以电子钟的调节信号、等待信号和启动以及复位手动输入,在使用foundation软件模拟时则使用分频出的不同频率信号。
这样硬件设计则主要包括这几部分:
频率信号源、键盘、功能芯片XC9572、数码管显示、显示位驱动电路及数码管段选驱动电路。
XC9572是一种高性能的CPLD,具有72个用户I/O引脚,图3.2是电路的具体设计电路,数码管显示部分共用了9个LED数码管,分别为4位计价显示,3位计程显示,和2位等待时间显示,电子钟部分的数码管及驱动电路因重复所以省略。
3.2 控制电路工作原理
控制电路是整个出租车计费系统的核心部分,由测控CPLD芯片及其外围电路组成。
控制电路根据外部传感器脉冲信号、系统基准时钟信号以及外部控制信号实现出租车计费系统的预置、计时、计费、计程、显示等功能。
控制电路工作原理如下: