目 录
目 录 I
1引言 1
2 Quartus II介绍 1
3出租车计价器设计 2
出租车计价器设计原理 3
模块功模块设计 3
321分频模块 3
322计量模块 4
323控制模块 4
324计费模块 4
325译码显示模块 5
326顶层模块 5
硬件仿真 6
4总结 6
参考文献 7
附录 8
1引言
设计简易出租车计费系统实现计价功计费标准行程里程收费起步价元里程3公里时起价计费车行超3公里元公里收费等累积时间超2min分钟元计费模拟汽车启动停止暂停等状态LED数码实时显示车费汽车行驶里程两位数字显示汽车行驶里程显示方式XX单位km计程范围0—99km计程分辨率1km五位数字显示总费显示方式单价元计价范围0—元计价分辨率元计费器设司机控制整体复位控制
设计采VHDL硬件描述语言作设计手段采顶设计思路种出租车计价系统软件结构通QuartusⅡ软件进行仿真证明设计电路系统完成出租车计价功项指标符合设计求 次课程设计熟练掌握课理知识课程设计学新知识巩固加深学课理知识程培养综合运知识力独立思考解决问题力加深VHDL数字电路设计教程理解
2 Quartus II介绍
Quartus II Altera公司综合性PLD开发软件支持原理图VHDLVerilogHDLAHDL(Altera Hardware Description Language)等种设计输入形式嵌综合器仿真器完成设计输入硬件配置完整PLD设计流程
Quartus IIXPLinuxUnixTcl脚完成设计流程外提供完善户图形界面设计方式具运行速度快界面统功集中易学易等特点
Quartus II支持AlteraIP核包含LPMMegaFunction宏功模块库户充分利成熟模块简化设计复杂性加快设计速度第三方EDA工具良支持户设计流程阶段熟悉第三方EDA工具
外Quartus II 通DSP Builder工具MatlabSimulink相结合方便实现种DSP应系统支持Altera片编程系统(SOPC)开发集系统级设计嵌入式软件开发编程逻辑设计体种综合性开发台 Altera Quartus II 作种编程逻辑设计环境 强设计力直观易接口越越受数字系统设计者欢迎
AlteraQuartus II编程逻辑软件属第四代PLD开发台该台支持工作组环境设计求中包括支持基Internet协作设计Quartus台CadenceExemplarLogicMentorGraphicsSynopsysSynplicity等EDA供应商开发工具相兼容改进软件LogicLock模块设计功增添 FastFit编译选项推进网络编辑性提升调试力支持MAX7000MAX3000等积项器件
3出租车计价器设计
设计种采FPGA芯片进行出租车计费器分分频模块计量模块计费模块控制模块等模块利FPGA编程性简洁变设计方法缩短研发周期采FPGA芯片VHDL语言进行编程具更强移植性更加利产品升级
出租车计价器设计原理
根设计求系统输入信号clk计价开始信号Start等信号Stop里程脉信号fin系统输出信号:总费数cha0 ~cha3行驶距离km0 ~km1等时间min0 ~min1 等系统两脉输入信号clk_120fin中clk_120根设计求分频成12Hz15Hz1Hz分作公里计费超时计费脉两控制输入开关startstop控制程:start作计费开始开关start高电时系统开始根输入情况计费客车开始行驶时fin脉进行行驶计费时stop需置0需停车等stop变高电fin输入脉进行等计费客车等时stopfin时置0读取终行驶路程数等时间总费直接start置0系统停止工作价格开始起步价元
整设计分频模块计量模块计费模块控制模块等四部分组成
中计量模块整系统实现里程计数时间计数重部分控制模块实现计费方式选择部分根设计端选择根里程计费根等时间计费时设计通分频模块产生频率脉信号实现系统计费计量模块采1Hz驱动信号计费模块采12Hz15Hz驱动信号计量模块计数次计费模块实现12次者15次计数实现计时 元min计程时元km收费组成框图图31示:
图31 系统结构框图
模块功模块设计
321分频模块
试验箱没12Hz15Hz整数倍时钟信号采频率较750khz进行分频似12Hz15Hz1Hz时钟频率设计中通三种频率脉信号实现计程车行驶等两种情况计费分频模块元件图32示:
图32 分频模块元件图
322计量模块
计量模块完成计时计程功
计时部分:计算客等累积时间等时间2min时模块中en1信号变1clk1升计时器增1计时器量程59min满量程动零
计程部分:计算客行驶公里数行驶里程3km时模块中en0信号变1clk1升计程器增1计程器量程99km满量程动零
Start置1程序始终处计费状态fin脉时k0k1进入计程状态k0次满9k1进位超3km时en0变高电理stop0置1时开始计程进入等状态fin脉0里程计数停止等时间开始计时m0次满9m1进位超2min时en1变高电
323控制模块
模块通计量模块产生两输入信号en0en1两分频模块输出12Hz15Hz脉进行选择输出程模块实现双脉二选终目计费模块中行驶程中时段进行计价
324计费模块
计费信号Start直处高电计费状态时模块根控制模块选择出信号单价时段进行计费行程3km等累积时间2min起步价6元3km外公里元计费等时间超2min分钟元计费c0c1c2c3分表示费显示图知处计费状态时着clk2高电计费起步价6元c0满9c1进位c1满9c2产生进位次逐级进位完成计费功
325译码显示模块
译码显示模块完成计价计时计程数显示计费数送入译码显示模块进行译码送百元十元元角单位应数码显示计时数送入译码显示模块进行译码送分单位应数码显示计程数送入译码显示模块进行译码送km单位数码显示次课程设计实验箱带数码译码显示电路需写译码程序选定模式直接脚锁定数码实现
326顶层模块
模块图形输入法实现出租车计费器系统设计模块组合起
程序终功实现仿真波形图33示
图33 程序终仿真波形图
图中出fin脉信号时实现行驶计费行驶里程超三公里公里元计费stop高电进入等计时收费等时间超2min时分钟加元实现等分钟收费元stop电时数值清零显示初始值6元次仿真中等时间9分钟行驶里程20km应收取费值元
结果验证:出租车起步价6元收费6+(203)*+(92)*元仿真结果计算结果相仿真结果正确
硬件仿真
QuartusII软件中仿真成功现载试验箱验证功实验中采万模式模式五程序中端口锁定试验箱应脚载验证数码显示计时计程计费数图34示:
图34 硬件仿真结果
知等时间4分钟行驶公里数4公里根设计求计算费:6元+(4km3km)*元km+(4min2min)*元min6++3元试验箱结果相仿真载成功
4总结
通期1周课程设计出租车计价器系统设计已基完成预期效果模拟汽车启动等停止复位等功显示车费数目等时间行驶路程出租车计费系统设计中体现VHDL覆盖面广描述力强层次硬件描述语言CPLD器件速度快方便便修改等特点设计实方面具定价值
通断编写尝试遇问题讨问题解决问题VHDL数字电路设计教程门学科更系统认识次课程设计中熟练掌握VHDL语言中行语句序语句应区联系根解信号变量间区熟练掌握应限状态机元件例化方法锻炼独立思考力培养敢创新思想:学会团结学互帮互助讨中提炼真知
次设计中存足改进方目前点
该设计然实现基计费计程问题没解决设计实种车速计费实现出租车档位计程计费需进步讨
二该设计智化水较低启动等复位等信号需输入实际中出现操作偏差会导致计费准确
通次课程设计更进步深入解VHDL设计语言程中更深体会编程程中遇问题定解解决方法理学编程练硬件测试方面获较收获进行程序设计帮助
次带领次课程设计老师说声:谢谢
参考文献
[1] Voknei VHDL数字电路设计教程电子工业出版社
[2] 潘松黄继业EDA技术实教程(第二版)科学出版社
[3] 孟庆海张洲VHDL基础典实例开发西安交通学出版社
[4] 刘江海EDA技术课程设计华中科技学出版社
[5] 蒋燕余伟钧张立臣 EDA技术VHDL
[6] 焦素敏EDA应技术清华学出版社
附录
LIBRARY IEEE
USE chuzuchejifeiqi is 出租车计费器整体设计模块
port ( clk_120in std_logic 系统时钟
clk_12buffer std_logic 12分频
clk_15buffer std_logic 15分频
clk_1buffer std_logic 1分频
startin std_logic 计费开始信号
finin std_logic 里程脉信号
stopin std_logic 行驶中中途等信号
en1en0buffer std_logic 计费单价信号
k1k0buffer std_logic_vector(3 downto 0) 行驶公里计数
m1m0buffer std_logic_vector(3 downto 0) 等时间计数
clk_outbuffer std_logic 计程等时间选择输出信号
c0c1c2c3buffer std_logic_vector(3 downto 0)) 输出显示出租车总费
end chuzuchejifeiqi
architecture chuzuchejifeiqi of chuzuchejifeiqi is
signal q_12integer range 0 to 9 定义中间信号
signal q_15integer range 0 to 7
signal q_1integer range 0 to 119
signal winteger range 0 to 59 计时范围0~59
begin
process(clk_120)
begin
if (clk_120'event and clk_120'1' )then 分频模块
if (q_124) then q_12<0clk_12
if (q_153) then q_15<0clk_15
if (q_159) then q_1<0clk_1
end if
end process
process(clk_1) 计量模块
begin
if (clk_1'event and clk_1'1') then
if (start'0') then
w<0en1<'0'en0<'0'm1<0000m0<0000k1<0000k0<0000
elsif stop'1' then 计时开始信号
if (w59) then w<0 计时范围059分
else w
if (m01001) then m0<0000
if (m10101) then m1<0000
else m1
else m0
if stop'1' then en0<'0' 车停止行驶开始记等时间
if m1&m0>00000010then en1<'1' 等时间2minen1置1
else en1<'0'
end if
end if
elsif fin'1' then 里程计数开始
if (k01001) then k0<0000
if (k11001) then k1<0000 计程范围0~99
else k1
else k0
if (stop'0') then en1<'0'
if (k1&k0>00000011) then en0<'1' 行驶里程3kmen0置1
else en0<'0'
end if
end if
end if
end if
if (stop'0' and fin'0')then
en0<'0'en1<'0'
end if
end process
process(en0en1) 控制模块设计
begin
if (en0'1') then 计时计程方式选择
clk_out
clk_out
end if
end process
process(clk_outstart) 计费模块设计
begin
if start'0' then c3<0000c2<0000c1<0110c0<0000 起步价6元
elsif (clk_out'event and clk_out'1') then 输出脉出现升计费累计
if (c01001) then c0<0000
if (c11001) then c1<0000
if (c21001) then c2<0000
if (c31001) then c3<0000 计价范围0~元
else c3
else c2
else c1
else c0
end if
end process
end chuzuchejifeiqi
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档