




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
地铁自动售票机(基于FPGA西安电子科技大学08级集成电路设计与集成系统专业一功能需求1市场目标本工程设计是基于FPGA设计一个地铁自动售票系统。近年来,集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展,电子设计自动化EDA技术成为电子设计工程师的新宠。然而随着城市人口的迅速增加、车辆的增多,世界各地的城市交通变得愈发拥挤,地铁成为城市交通的重要组成部分。随着国民经济的发展,我国的地铁建设也日益成为人们日常生活中不可或缺的一部分。作为地铁运营服务的第一道关,改善地铁已逐渐落后于时代步伐的售票系统势在必行。本系统是结合行业管理中实际的地铁售票系统运行过程中的需求过程,经过实际的需求分析,开发出来的地铁自动售票系统。整个系统的设计从符合操作简便快捷、灵活实用、保证稳定安全的要求出发,完成售票管理的基本过程。2功能定义通过本设计,正确掌握数字系统的模块划分、并能自如应用硬件描述语言描述各模块功能,以实现系统设计。以VERILOG语言和QUARTUEII,MODLESIM为工具,实现了地铁自动售票系统。系统划分为几个功能模块,分模块进行分析和设计,系统给出相应的设计原理图和VERILOG源程序,通过仿真实现预定的功能。本组成员参与设计的自动售票机,就其功能特点来说,可以归纳如下1)该自动售票系统可对单价为3元、4元、5元,6元四种票售票。2)能选择买1张或2张票;3)有1元,5元、10元,20元四个投币口。当投入的钱币与选择的票款相等时,送出车票;若投入的钱币不够,1分钟后,退出钱币,无票送出;若投入的钱币超过票款,能自动找赎。4)系统显示选择所选票单价面额、购买的票数、投入的钱币额及找赎的钱额。3应用案例在广州地铁、北京地铁、南京地铁等全国十多条城市轨道交通线路都能见到广电运通自动售票机的身影。作为目前中国最具有成长力的AFC(自动售检票系统)设备提供商,广电运通在轨道交通领域已取得了众多成功案例。广电运通自动售票机支持硬币和成叠纸币找零、纸质磁票打印、成叠出票及钱票遗忘回收等多项功能,界面简洁、标识清晰,操作便利,极大缩短了旅客的购票时间,受到旅客们的欢迎。二开发计划1项目分工井站负责选票模块,投币模块,找零模块,顶层模块代码的编写和测试仿真尹俊镖负责计数器序列模块,6选1选择器模块,数码管译码器模块,数码管位选模块等显示功能的代码编写和测试仿真和后期实验报告文档编写。潘志友,李波负责市场调研分析,查找参考资料等众多任务。2进度规划第一天选定设计题目,分析项目可行性,完成市场调研分析,查找相关参考资料;进行工程的整体规划。第二天和第三天用MODLESIM软件完成各个子模块的代码编写和测试仿真;第四天学习QUARTUEII软件,完成综合文件,最后书写实验报告,工程竣工。3技术重点及其预期难点分析重点在于整体规划是否合理可行,代码是否成功编写,预期难点是不熟悉QUARTUEII软件的开发环境。4可行性分析整体设计思路是通过选择票的单价和数量,将总额和投币总额比较,当投入的钱币与选择的票款相等时,送出车票;若投入的钱币不够,1分钟后,退出钱币,无票送出;若投入的钱币超过票款,能自动找赎。最后显示信息。通过成员的反复论证,确认该设计思路可行。三设计方案及其验证测试1系统的总体框架结构地铁自动售票系统大致可分为四个功能模块车票选择模块、钱币处理模块、余额计算模块、显示功能模块。28系统总体框图如图所示车票选择模块钱币处理模块余额计算模块显示功能模块系统总体框图1)车票选择模块。当自动售票机通电时,表示一次投币售票过程开始;乘客正常购买车票操作失误包括改变购买意向或不再购买,按RD按钮重新进入初始状态;在初始状态PRI和QUA生效时,顾客可以根据自己的需要,选择其中一种车票只限一种和票数,进入下一模块。2)钱币处理模块。表示投入的钱币是1元,5元、10元,20元的COIN_1,COIN_5、COIN_10,COIN_20生效,记录所投钱币总额。3)余额计算模块。当投人钱币总额大于或等于车票价格,并且按确认键后出票并找零;若投入钱币总额小于车票价格,售票机不出票,并退出所投钱币,进入初始状态。4)显示功能模块。此模块根据输入提供的数据,用数码管来显示选择的是所选票面额、购买的票数、投入的钱币额及找赎的钱额。292功能模块分析顶层模块代码如下MODULETOPPRI_3,PRI_4,PRI_5,PRI_6,QUA_1,QUA_2,COIN_1,COIN_5,COIN_10,COIN_20,RD,FINISH,CLK1,CLK2,OUTW,OUTZ,ACT_1,ACTINPUTPRI_3,PRI_4,PRI_5,PRI_6,QUA_1,QUA_2,COIN_1,COIN_5,COIN_10,COIN_20,RD,CLK1,CLK2,FINISHOUTPUTACT_1OUTPUT30ACTOUTPUT50OUTWOUTPUT60OUTZWIREACT_1WIRE30ACTWIRE50OUTWWIRE60OUTZWIRE30W1,W2,W3,W5,W6,W7,W8,W10WIRE20W9WIRE40W4XUANPIAOX1PRI_3PRI_3,PRI_4PRI_4,PRI_5PRI_5,PRI_6PRI_6,QUA_1QUA_1,QUA_2QUA_2,CLKCLK1,RDRD,PRIW2,QUAW3,COSTW1TOUBIT1COIN_1COIN_1,COIN_5COIN_5,COIN_10COIN_10,COIN_20COIN_20,CLKCLK1,RDRD,COINHW5,COINLW6,COINW4ZHAOLINGZ1PRI_INW2,COST_INW1,COIN_INW4,FINISHFINISH,CLKCLK1,RDRD,ACTACT,ACT_1ACT_1,REST,RESTLW8,RESTHW7COUNTER6C1CLK2CLK2,OUTW9SELECT6_1S1OUTW10,IN0W2,IN1W3,IN2W5,IN3W6,IN4W7,IN5W8,SELW9WEIXUANWDINW9,OUTOUTWZIXINGZDINW10,OUTOUTZENDMODULE顶层综合文件如下各个子模块分析21车票选择模块车票选择模块是指对商品进行选择与购买。车票分为票价3元,4元,5元,6元,共4种车票,乘客可以选择所要购买的票数(1张票,2张票)。车票选择模块如图4所示1)输入RD模块复位信号,将所有输出信号清零。作为开始一次购票过程的按键,也可以作为让乘客重新选票的按键。CLK模块的时钟信号。PRI_3,PRI_4,PRI_5,PRI_6将其中一个置高电平,作为选择一种票价(3元,4元,5元,6元)。QUA_1,QUA_2将其中一个置高电平,作为选择购买车票的数量(一张票,两张票)。2)输出PRI30表示所选票价,输出到余额计算模块和显示功能模块,作为判断出何种票的条件,并在数码管显示出车票单价。QUA30表示所买票数,输出到显示功能模块,在数码管显示出票数。COST30表示应付总额,根据票价和票数来计算出应付的总额,输出到余额计算模块,用来计算找赎金额。该车票选择模块的源程序如下MODULEXUANPIAOPRI_3,PRI_4,PRI_5,PRI_6,QUA_1,QUA_2,CLK,RD,PRI,QUA,COSTINPUTPRI_3,PRI_4,PRI_5,PRI_6,QUA_1,QUA_2,RD,CLKOUTPUT30PRIOUTPUT30QUAOUTPUT30COSTREG30PRIREG30QUAREG30COSTINITIALBEGINPRI0QUA0COST0ENDALWAYSRD/清零BEGINIFRDBEGINPRI0QUA0COST0ENDENDALWAYSPOSEDGECLKORNEGEDGERDBEGINIFRDBEGINPRI0QUA0COST0ENDELSEIFPRI_3QUA1COST3ENDELSEIFPRI_4QUA1COST4ENDELSEIFPRI_5QUA1COST5ENDELSEIFPRI_6QUA1COST6ENDELSEIFPRI_3QUA2COST6ENDELSEIFPRI_4QUA2COST8ENDELSEIFPRI_5QUA2COST10ENDELSEIFPRI_6QUA2COST12ENDENDENDMODULE经过编译后建立波形文件,波形仿真图如图所示在此波形仿真图中,将PRI_3,QUA_1PRI_5,QUA_2PRI_4,QUA_2依次置高电平作为输入,输出显示为选择的3元票,1张票,应付总额3元选择的5元票,2张票,应付总额10;选择的4元票,2张票,应付的总额8元,说明达到此车票选择模块的预期功能。22钱币处理模块钱币处理模块是对投入的钱币进行处理的过程,输出参数COIN为投币数值计数器,以1元为单位进行计算。该模块入口参数COIN1(投入1元)COIN5投入5元钱,COIN10投入10元钱,COIN20投入20元。功能类似于计钱器,在清零的前提下,可准确计算,记录并保存所投入的总钱数。钱币处理模块如图所示图钱币处理模块1)输入RD模块复位信号,将所有输出信号清零。CLK模块的时钟信号。COIN_1,COIN_5,COIN_10,COIN_20表示投入1元,5元,10元,20元。一次时钟上升沿,若信号为1时,表示投入一次1元,5元10元,20元。2)输出COINH30,COINL30信号输出到显示功能模块,在数码管上显示出投入钱币总额的十位和个位。COIN40表示投入钱币的总额,输出到余额计算模块,与应付总额相比较,来计算出找赎金额。该钱币处理模块的源程序如下MODULETOUBICOIN_1,COIN_5,COIN_10,COIN_20,CLK,RD,COINH,COINL,COININPUTCOIN_1,COIN_5,COIN_10,COIN_20,RD,CLKOUTPUT30COINH,COINLOUTPUT40COINREG30COINH,COINLREG40COIN/INITIALBEGINCOINH0COINL0COIN0END/ALWAYSRD/清零BEGINIFRDBEGINCOINH0COINL0COIN0ENDEND/ALWAYSPOSEDGECLKORNEGEDGERDBEGINIFRDBEGINCOINH0COINL0COIN0ENDELSEIFCOIN_1/投入1元BEGINCASECOINL/COINL是投入总额的个位数字0BEGINCOINL1COINHCOINH/COINH是投入总额的十位数字COINCOIN1/COIN是投入总额END1BEGINCOINL2COINHCOINHCOINCOIN1END2BEGINCOINL3COINHCOINHCOINCOIN1END3BEGINCOINL4COINHCOINHCOINCOIN1END4BEGINCOINL5COINHCOINHCOINCOIN1END5BEGINCOIN6COINHCOINHCOINCOIN1END6BEGINCOINL7COINHCOINHCOINCOIN1END7BEGINCOINL8COINHCOINHCOINCOIN1END8BEGINCOINL9COINHCOINHCOINCOIN1END9BEGINCOINL0COINHCOINH1COINCOIN1ENDENDCASEENDELSEIFCOIN_5/投入5元BEGINCASECOINL/COINL是投入总额的个位数字0BEGINCOINL6COINHCOINH/COINH是投入总额的十位数字COINCOIN5/COIN是投入总额END1BEGINCOINL6COINHCOINHCOINCOIN5END2BEGINCOINL7COINHCOINHCOINCOIN5END3BEGINCOINL8COINHCOINHCOINCOIN5END4BEGINCOINL9COINHCOINHCOINCOIN5END5BEGINCOINL0COINHCOINH1COINCOIN5END6BEGINCOINL1COINHCOINH1COINCOIN5END7BEGINCOINL2COINHCOINH1COINCOIN5END8BEGINCOINL3COINHCOINH1COINCOIN5END9BEGINCOINL4COINHCOINH1COINCOIN5ENDENDCASEENDELSEIFCOIN_10/投入10元BEGINCOINLCOINL/COINL是投入总额的个位数字COINHCOINH1/COINH是投入总额的十位数字COINCOIN5B01010/COIN是投入总额ENDELSEIFCOIN_20/投入10元BEGINCOINLCOINL/COINL是投入总额的个位数字COINHCOINH4B0010/COINH是投入总额的十位数字COINCOIN5B10100/COIN是投入总额ENDENDENDMODULE经过编译后建立波形文件,波形仿真图如图所示在此波形仿真图中,将COIN_1,COIN_5,COIN_10依次置了一个时钟周期的高电平作为输入,输出显示总额低位为6,高位为1,所投钱币总额为16,说明达到此钱币处理模块的预期功能。23余额计算模块余额计算模块主要完成出票找零操作。通过所投钱币总额COIN和应付总额COST计算找赎余额,然后用发光二极管点亮表示出票和找零。钱数不够票价的,退出所投钱币数。余额计算模块如图所示1)输入RD模块复位信号,将所有输出信号清零。CLK模块的时钟信号。FINISH用户使用的确定按键。此信号置为高电平后,开始判断是否出票,计算找赎余额。PRI_IN30输入乘客所选的线路和票价,用来判断出票时具体出哪张票。COST_IN30,COIN_IN40输入应付总额和所投钱币总额,用来判断是否出票,是否找赎,计算找赎余额。2)输出ACT30表示出票。车票共有4种,用4个发光二极管的点亮来表示具体出哪张票,若都不亮则表示不出票。ACT_1表示找赎。若信号为1,用1个发光二极管的点亮表示需要找赎。RESTH30表示找赎余额十位,RESTL30表示找赎余额个位,信号输出到显示功能模块,在数码管显示找赎余额。该余额计算模块的源程序如下MODULEZHAOLINGPRI_IN,COST_IN,COIN_IN,FINISH,CLK,RD,ACT,ACT_1,REST,RESTL,RESTHINPUT30PRI_IN,COST_ININPUT40COIN_ININPUTCLK,FINISH,RDOUTPUT30ACT,RESTL,RESTHOUTPUT40RESTOUTPUTACT_1REG30ACT,RESTL,RESTHREG40RESTREGACT_1/INITIALBEGINACT4B0000ACT_10REST0RESTH0RESTL0END/ALWAYSRD/清零BEGINACT4B0000ACT_10REST0RESTH0RESTL0END/ALWAYSPOSEDGECLKORNEGEDGERDBEGINIFRDBEGINACT4B0000ACT_10REST0RESTH0RESTL0ENDELSEIFFINISHBEGINIFCOIN_INCOST_IN/投币总额等于总票价BEGINACT_10REST0RESTH0RESTL0IFPRI_IN3ACT4B0001/出3元票ELSEIFPRI_IN4ACT4B0010/出4元票ELSEIFPRI_IN5ACT4B0100/出5元票ELSEIFPRI_IN6ACT4B1000/出6元票ENDELSEIFCOIN_INCOST_IN/投币总额大于总票价BEGINACT_11RESTCOIN_INCOST_IN/余额总价RESTLREST10/余额总价个位数字RESTHRESTRESTL/10/余额总价十位数字IFPRI_IN3ACT4B0001ELSEIFPRI_IN4ACT4B0010ELSEIFPRI_IN5ACT4B0100ELSEIFPRI_IN6ACT4B1000ENDELSEIFCOIN_INCOST_IN/投币总额小于总票价BEGINACT4B0000/不出票ACT_11RESTCOIN_IN/退钱ENDENDENDENDMODULE经过编译后建立波形文件,波形仿真图如图所示在此波形仿真图中,输入选择,3元票,应付总额为6元,所投钱币总额为10元,在FINISH确定键按下后,输出有找赎信号,且找赎余额为4元,出第1种车票即3元票;4元票,应付总额为4元,所投钱币为20元,在FINISH确定键按下后,输出找零信号,且找零余额为16元(高位为1,低位为6),出第二种车票(即4元票),由此说明达到余额计算模块的预期功能。24显示功能模块显示功能模块主要完成显示乘客选的票价、票数、投入钱数及找赎余额。实验系统主板上,每次只能点亮一个数码管,如果显示这些数据,必须要用扫描的方式使得所需数码管依次点亮,选择较高的扫描频率,利用人眼的视觉暂留效果,视觉上可让数码管一起点亮。此自动售票系统共需要6个数码管显示,此显示功能模块可分为四个部分1模6计数器(COUNTER6)每个时钟上升沿,计数器计数一次,产生3位二进制码,对6个数码管进行扫描,且对数据选择器的6个数据依次进行选择输出。模6计数器模块1)输入CLK2计数器的时钟,每个时钟上升沿,计数器计数一次2)输出OUT20产生模为6信号000,001,010,011,100,101此模6计数器源程序如下MODULECOUNTER6CLK2,OUT/产生模为6的信号000,001,010,011,100,101/INPUTCLK2OUTPUT20OUTREG20OUT/INITIALBEGINOUT0END/ALWAYSPOSEDGECLK2BEGINIFOUT5OUTOUT1ELSEOUT0ENDENDMODULE经过编译后建立波形文件,波形仿真图如图所示在此波形仿真图中,输入为时钟信号,输出为05的6进制数即序列信号为000,001,010,011,100,101,说明达到此模6计数器的预期功能26选1数据选择器(SELECT6)每次只能点亮一个数码管,所以根据模6计数器输入的数,选择一个数据作为一次输出。6选1数据选择器1)输入IN030,IN130,IN230,IN330,IN430,IN530表示6个需要显示的6个数据,即票价,票数,所投总额十位,所投总额个位,找赎余额十位,找赎余额个位。2)输入SEL206进制计数器提供的计数序列,用来做数据选择器的选择条件。3)输出OUT306选1数据选择器的输出到译码器进行译码。此数据选择器的源程序如下MODULESELECT6_1OUT,IN0,IN1,IN2,IN3,IN4,IN5,SELOUTPUT30OUTINPUT30IN0,IN1,IN2,IN3,IN4,IN5INPUT20SELREG30OUTALWAYSIN0ORIN1ORIN2ORIN3ORIN4ORIN5ORSELCASESEL3B000OUTIN0/显示票的单价3B001OUTIN1/显示票的数量3B010OUTIN2/显示投币总价十位数字3B011OUTIN3/显示投币总价个位数字3B100OUTIN4/显示余额总价十位数字3B101OUTIN5/显示投币总价个位数字DEFAULTOUT4B0000ENDCASEENDMODULE此6选1数据选择器波形仿真图如图所示在此波形仿真图中,随着选择信号的SEL20的变化,输出也对应着6个数据选择输出,说明达到此6选1数据选择器的预期功能3译码器(ZIXING)7段数码管显示,需将4位二进制数,译成7位二进制数据,使得数码管显示出想要的数字。考虑的是共阴极的7段数码管不带小数点。译码器模块1)输入DIN30连接6选1模块输出端。2)输出OUT60经过译码器的译码后,将4位二进制译成可让数码管显示的7位二进制数此译码器源程序如下MODULEZIXINGDIN,OUTINPUT30DINOUTPUT60OUTREG60OUTALWAYSDINCASEDIN4B0000OUT7B0111111/显示04B0001OUT7B0000110/显示14B0010OUT7B1011011/显示24B0011OUT7B1001111/显示34B0100OUT7B1100110/显示44B0101OUT7B1101101/显示54B0110OUT7B1111101/显示64B0111OUT7B0000111/显示74B1000OUT7B1111111/显示84B1001OUT7B1101111/显示9DEFAULTOUT7B0000000ENDCASEENDMODULE经过编译后建立波形文件,波形仿真图如图所示4数码管位选模块数码管扫描的信号,用模6计数器提供的计数序列使数码管依次点亮。1)输入DIN20与模6计数器输出端相连。2)输出OUT50依次点亮数码管。源程序如下MODULEWEIXUANDIN,OUT/6个不带小数点的共阴极数码管/INPUT20DIN/公共端是0的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胃肠道造影讲解
- 2025年七年级道德与法治下册期中考试题及答案
- 2025年全国公共营养师之四级营养师考试历年考试题及答案
- 小学拼音进度汇报
- 职业妆容技巧课件
- 农业妇女创业计划创新创业项目商业计划书
- 银行信息系统事件处理流程规范
- 小学语文经典诗文教学计划
- 物业服务合同管理与客户沟通技巧
- 手工活动糖果制作与推广全流程
- 2025年静宁县城区学校选调教师考试笔试试卷【附答案】
- 2025年乒乓球二级裁判考试题及答案
- 2025年乐清辅警考试题库及答案
- 血标本采集考试试题附有答案
- 浙江省温州市龙湾区2024-2025学年七年级下学期学业水平期末检测数学试题
- 北京卷2025年高考语文真题
- 2025年工业和信息化部所属事业单位招聘28人笔试模拟试题及答案详解一套
- GB/T 45938-2025医疗保障信息平台便民服务相关技术规范
- 养老护理员培训课件模板
- 2024-2025学年北京市西城区统编版三年级下册期末考试语文试卷【含答案】
- DB31∕T 444-2022 排水管道电视和声呐检测评估技术规程
评论
0/150
提交评论