热门关键词: 中天通讯设备 物流实验室主要设备 山东二手化工设备 酥饼生产成套设备 pq自由分区工具 化工废水处理设备 hp520未知设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
基于VHDL语言的出租车计费系统设计
新闻出处:嵌入式技术网 发布时间:2007-11-15

摘  要:利用VHDL语言设计出租车计费系统,使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点。此程序通过下载到特定芯片后,可应用于实际的出租车计费系统中。
    关键词:超高速集成电路硬件描述语言;计数器;
MAX+PLUSⅡ;高速集成电路

1 前言
  目前,电子系统正向集成化、大规模和高速度的方向发展,集成电路的规模越来越大,复杂程度越来越高,因此传统的门级描述方法显得过于琐碎,难以理解掌握。由美国国防部提出的
VHDLVery High Speed Integrated Circuit Hardware Description Language)即超高速集成电路硬件描述语言,采用高层次的、自顶向下的设计方法来描述硬件,非常适合当前需要。美国国防部为了要解决项目间的信息交换困难和设计维护困难,同时也为解决当时的超高速集成电路(VHSICVery High Speed Integrated Circuit)计划而提出的一种硬件描述语言。198712IEEE接受VHDL为标准的HDL,这就是今天的IEEE STD1076-1987IEEE STD1076-1993
 
MAX+PLUSⅡ(Multiple Array Matrix And Programmable Logic User Systems)是电子设计不可缺少的工具,他可以接受多种方式的输入:原理图输入、文本输入(硬件描述语言)、第三方EDA工具提供的接口等。MAX+PLUSⅡ的仿真器具有很强灵活性,可以控制对单器件或多器件的仿真。MAX+PLUSⅡ还提供了丰富的帮助库。
  本文采用
VHDL语言来设计实现出租车计费系统,源程序经美国Altera公司的MAX+PLUSⅡ软件调试优化,下载到特定芯片(MAX系列的EPM 7128SLC8415)后,可应用于实际的出租车计费系统中。
2 出租车计费系统的设计
2.1 出租车计费器工作原理

  实际中出租车的计费工作原理一般分成
3个阶段:
  (
1)车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。
  (
2)车行驶超过3 km,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。
  (
3)行驶路程达到或超过9 km(车费达到20),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。
2.2 基本设计思想
  (
1)根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterAcounterBcounterCcounterDcounterE。①计数器A完成车费百位。②计数器B完成车费十位和个位。③计数器C完成车费角和分。④计数器D完成计数到30(完成车费的起步价)。⑤计数器E完成模拟实现车行驶100 m的功能。
  (
2)行驶过程中车费附加50%的功能:由比较器实现。
  (
3)车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。
  (
4)通过分析可以设计出系统的顶层框图如图1所示:

2.3 具体模块划分并实现及部分程序
  计费器按里程收费
,100 m开始一次计费.2为原理结构图,各模块功能如下:
  (
1)计数器A为十进制计数器,其结果为车费的百位,与5位数码管的最高位相连,计数时钟为进位脉冲。程序如下:

    2)计数器B为带预置的模100十进制计数器,预置数为出租车起步价,车费的十位和个位,与数码管的第2位和第3位相连。计数时钟为计数器C的进位脉冲信号。
  (
3)计数器C为可变步长的模100十进制计数器,带预置端,预置数为计数步长。计数器C主要用于累加,当车行驶达到100 m时,计数器计数一次,计数步长为每100 m的行车收费。进位脉冲信号送到计数器B的“CLK”端,控制计数器B的计数步调。
  (
4)计数器D为带预置模的十进制加法计数器,预置数为车起步里程3 km,计数脉冲为计数器E的进位信号。这样当计数器D计数达到30后,进位输出将为一个高电平,控制计数ABC开始计数,这样就能实现超过3 km后计费器再按每公里加收车费。

    (5)计数器E为带预置的可变步长的模100计数器,预置端为车速(每秒),如果预置端接入车速表,就可以实现计费了,这里用于模拟行车速度。例如:假设当计数器E计数到100E的“CO”端输出一个高电平。此脉冲信号送给计数器D,使D完成车起步里程3 km的功能。在以后的时间里E的“CO”端的脉冲信号送给计数器C,使其完成按每公里收取费用的功能。主要程序如下:


    6)与门为28输入的8与门,一端用于预置,一端输入当前计费器收费情况,当计费器计费达到或超过一定收费(20)时,每公里加收50%的车费,此时该与门输出一个片选信号送MUX
  (
7MUX16821MUX2个选择输入端分别为每100 m收费和50%的每100 m收费,片选信号由与门控制。
  (8)动态扫描电路将计数器ABC的计费状态用数码管显示出来,所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示。
2.4 设计中需注意的问题
 
   (1)在一个进程中只允许一个信号上升沿作为触发条件。
  
(2)信号值改变后,要经过一个小的延时才能生效,同一个信号不能在多个进程中赋值(因多个信号源不能同时对同一个信号驱动)。
  
(3)时序电路与组合电路最好不要在同一个进程以免浪费资源。
  
(4)一个功能模块最好按上升沿信号分多个进程完成,各进程间用信号联系。
  
(5)同一个信号在进程中的值改变后,要注意该值改变前后,该进程中其他变量的变化,避免逻辑死锁。
  
(6)在顺序语句中,信号赋值后需一定的延时才能改变而变量不需要延时。
3 结语
 
VHDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬件系统。从本文描述的出租车计费系统可以看出,通过编程、下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能;这样,使用语言描述的形式,大大缩短了开发周期,减少了开发难度,并使得系统更加灵活、稳健。

参考文献

1]候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计.修订版电子工程师必备知识[M].西安:西安电子科技大学出版社,1999
2]张昌凡,等.可编程逻辑器件及VHDL设计技术[M].广州:华南理工大学出版社,2001
3]曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社,2001
4]潘松,等.VHDL实用教程[M].成都:电子科技大学出版社,2000


关闭】【打印
友情链接:
© 2007 电子设备网 网站地图