通信工程技术用FPGA实现银行叫号系统.docx

上传人:b****7 文档编号:23955678 上传时间:2023-05-22 格式:DOCX 页数:30 大小:244.73KB
下载 相关 举报
通信工程技术用FPGA实现银行叫号系统.docx_第1页
第1页 / 共30页
通信工程技术用FPGA实现银行叫号系统.docx_第2页
第2页 / 共30页
通信工程技术用FPGA实现银行叫号系统.docx_第3页
第3页 / 共30页
通信工程技术用FPGA实现银行叫号系统.docx_第4页
第4页 / 共30页
通信工程技术用FPGA实现银行叫号系统.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

通信工程技术用FPGA实现银行叫号系统.docx

《通信工程技术用FPGA实现银行叫号系统.docx》由会员分享,可在线阅读,更多相关《通信工程技术用FPGA实现银行叫号系统.docx(30页珍藏版)》请在冰豆网上搜索。

通信工程技术用FPGA实现银行叫号系统.docx

通信工程技术用FPGA实现银行叫号系统

摘要

目前,在以银行营业大厅为代表的窗口业务,大量客户的拥挤排队已成为了这些企事业单位改善服务品质、提升企业形象的主要障碍。

排队叫号系统的使用将成为改变这种情况的有力手段。

排队系统完全模拟了人群排队的全过程,通过取票进队。

排队等待、叫号服务等功能,很好的解决了客户在服务机构办理业务是所遇到的各种排队、拥挤和混乱现象,代替了人们站队的辛苦,把顾客等待的烦恼变成了一段难得的休闲时光,使客户拥有了一个自由的空间和一份美好的心情。

本次课程设计详细的介绍了设计的整过程,各个子系统的设计规则,而且还基于MATLAB做了简单的仿真。

关键字:

窗口业务、排队等待、呼叫服务、设计、MATLAB

 

Abstract

Atpresent,inthebusinesshallofthebankastherepresentativeofthewindowservice,alargenumberofcustomersqueuinghasbecomethemainobstacletotheseenterprisestoimproveservicequality,enhancecorporateimage.Theuseofqueuingsystemwillbecomeapowerfulmeanstochangethissituation.Queuingsystemisfullysimulatesthewholeprocessofthecrowdqueuing,theticketintotheteam.Queuing,queuingandservicefunctions,isaverygoodsolutiontocustomersintheservicebusinessisencounteredqueuing,crowdedandchaoticphenomena,insteadofpeoplelineuphard,makecustomerwaitingannoyanceintoarareleisuretime,sothatcustomershaveafreespaceandagoodmood.

Keywords:

windowservice,waitinginline,callservice,design,MATLAB

1、设计内容

由于嵌入式的电路板比较复杂,而次设计用单片机可以实现,所以相对来说用单片机设计比较简单,程序设计也比较方便。

通过编程对SYC89C52输入/输出接口进行控制,并对1602液晶显示屏进行操作,使之显示相关信息。

当两个业务办理窗口中的某一个有一个人的事务办理完毕时对应窗口的工作者便按下叫号键,通过液晶显示“NowNo.XcometoNo.Xwindow!

”的信息,通知持有下一个号码的人前来。

当前来办理事务的人按下领号键后,若能正常领号,则液晶显示“YournumberisX.”的信息。

若检测到等待的人数(通过液晶显示)达到20时,蜂鸣器“报警”,任一窗口处的叫号键被按下,则液晶显示“Queueisfull,comelater.”的信息,同时领号被禁止,但仍可以叫号,即持有号码的人继续办理业务,直到等待的人数小于20才能继续领号。

另外有一个统计客流量的按键,按下则显示“NowthetotalnumisX”,即到目前为止领过号的总人数,并在液晶右侧显示仍在等待的人数。

系统工作过程中每按下任一个按键时蜂鸣器发出响声。

叫号系统每次结束工作时恢复到初始状态。

焊好电路确定芯片与外围电路的接口后,只需写程序对芯片I/O口进行操作,便可实现信息的显示、传递等功能。

单片机芯片相对集成度更高,成本也比较低。

并且电路连接比较简单,调试过程中只需改动程序,信息显示也更直观。

系统稳定性足够满足设计要求。

 

2、系统整体设计原理

智能排队叫号系统是提高窗口服务行业的办公效率,解决顾客排队等候问题的有利工具。

本文设计的嵌入式智能排队叫号系统基本完全模拟人群排队过程,通过取号、进队、排队等待、叫号服务等功能代替人们站队,实现机器自动代替人排队的过程。

可以适用于银行、工商、税务、医院等窗口比较繁忙的地方

2.1排队系统的基本功能

(1)银行门口有一个叫号机,在客户操作下可打印出一个顺序号;客户按照顺序号依次到银行窗口办理业务;

(2)叫号机支持两类业务:

现金业务和非现金业务。

办理现金业务的窗口有3个,办理非现金业务的窗口有2个,称为综合窗口;现金业务窗口只能办理现金业务,而综合业务窗口可以办理现金业务和非现金业务;

(3)非现金业务优先级高,综合业务窗口只有在没有非现金业务情况下,才能办理现金业务;

(4)银行工作人员在办理了一个客户业务后,按一个呼叫按钮,由系统安排其下一个办理业务的顺序号;顺序号在窗口前的LED屏上显示的同时进行语音播音,提示客户前来办理业务;设计一个叫号调度系统,实现对办理银行业务的排队和调度。

2.2系统工作原理

集排队系统服务主机与取号机一体的嵌入式排队叫号主机服务器设置在服务大厅,客户进入大厅,选择自己需要的服务类别,记下当前排队的序号,然后到相应的休息区等待。

服务大厅设有一个LED显示屏,用于对当前的操作进行提示。

当窗口的工作人员开始进行客户服务时,查询相应的排队队列,响应请求,并在LED显示屏上显示相应消息,并驱动语音呼叫系统给出语音提示:

请xxx号到xx号窗口。

如图1所示,排队系统基本流程图以所要处理的排队信息为主体,从客户在发号机上按下按键后产生的一条记录开始,给出了数据处理的整个流程。

图1系统流程图

本文所设计的嵌入式系统所遵循的软件和硬件协同设计的方法和特点,即软硬件设计是并行且交叉的,两者互相支持、互相提供开发的平台。

可以设计出整个系统的结构如图2所示,整个系统主要由排队子系统、业务调度系统、业务提示系统组成。

图2系统结构图

排队子系统同时涉及到客户的操作和工作人员的操作,其简单的工作流程为:

顾客到达服务大厅后,先到排队发号机上选择自己需要的服务类型,得到自己的服务序号后,到相应的休息位置等候语音呼叫,同时关注LCD液晶屏的显示,当被叫到自己的排队号时,根据语音提示和LCD屏显示信息到相应窗口办理业务;工作人员到达指定的窗口后,待准备好服务客户时按下呼叫键开始工作,每服务完一个客户后就按呼叫键呼叫下一位客户。

2.3软件操作流程

本设计中自动排队叫号软件的模拟操作流程如下:

 

 

图3软件流程框图

3、电路硬件模块设计

系统是一个简单的分布式控制系统,系统硬件由排队子系统模块、工作人员服务模块、业务调度模块和业务提示模块等模块构成,考虑到节约系统开发成本及时间等因素,排队子系统模块和工作人员服务模块均使用按键模拟;业务调度模块的核心芯片选用价格较低且性能较佳的STC89C54单片机;业务提示模块的核心芯片选择的是ISD4004语音存储控制芯片和LCD1602。

3.1业务调度模块设计

51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。

目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。

51单片机是基础入门的一个单片机,还是应用最广泛的一种。

需要注意的是52系列的单片机一般不具备自编程能力。

要使得单片机能够正常工作,那么就需要时钟电路和复位电路。

单片机的时钟信号用来提供单片机内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态运行。

3.1.1时钟电路

单片机的时钟信号通常用两种电路形式得到:

内部振荡方式和外部振荡方式。

在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振器,就构成了内部振荡方式。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。

内部振荡方式如图3所示。

图中,电容C1,C2起稳定振荡频率、快速起振的作用。

电容值一般为5~30pF。

内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。

在本设计中,需要得到稳定的时钟脉冲,因而我们采用内部振荡方式,其电路图如图3所示。

图4内部振荡方式

3.1.2复位电路

复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。

当单片机的复位引脚出现5ms以上的高电平时,单片机就完成了复位操作。

如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。

根据应用的要求,复位操作通常有两种基本形式:

上电复位、开关复位。

上电复位要求接通电源后,自动实现复位操作。

开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。

本设计中,上电且开关复位的电路如图4所示。

上电后,由于电容的充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。

通常选择C=10~30uF,R=10kΩ,本设计中,选择C=10,R=10kΩ。

图5复位电路

综上所述,单片机的最小系统电路图如图5所示。

图6单片机最小系统

3.2排队子系统模块设计

排队子系统模块是用作客户选择服务类型的,按照设计要求,本排队子系统模块需要实现叫号机支持两类业务:

现金业务和非现金业务。

因而我们需要设定两个按键来选择不同的业务在此我使用的是两个按键来区分不同的业务,其电路图如图6。

其中,当客户按下按键1时,代表其选择的是现金业务,当客户按下按键2时,代表其选择的是非现金业务。

图7用户叫号模块

3.3工作人员服务模块设计

工作人员服务模块是给工作人员进行操作的,当工作人员处理完一次服务时,按下服务窗口的叫号按键,就能够对下一位客户进行服务,设计要求中要求一共要有5个服务窗口,那么,我们在这里设计5个按键分别代表5个窗口的工作人员的操作。

3.4业务提示模块设计

3.4.1LCD液晶屏单元

在本设计中,我选用了LCD1602作为显示模块。

液晶显示器(LCD)以其具有功耗低,体积小,重量轻,超薄等许多其他显示器无法比你的优点,而被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。

LCD1602智能显示模块可以实现两行每行16个字符的显示。

该LCD1602外围电路简单,程序控制易实现。

其中D0~D7是数据接口,用以接收单片机的数据,VSS是电源地,VDD是正5V逻辑电源,V0是驱动电源,RS选择输入的是数据还是命令,R/W选择读写操作,E为使能信号。

LCD1602有很多指令供使用者调用,能够实现基本的显示功能。

LCD1602接口电路如图7。

 

图8LCD1602显示模块电路

3.4.2语音播放单元

语音播放单元的核心芯片采用的是ISD公司的ISD4004语音芯片,其工作电压为3V,单片录放时间为16min,音质好。

该芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列,其设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。

芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。

片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。

其电路图根据芯片手册要求设计如图9所示。

图9语音播放单元

3.5电源设计

本系统采用USB的5V供电系统,用外界的稳压器代替了传统制作电源系统的过程,减少了设计工作量。

并且本系统供电电源电压稳定,电路简单易实现。

本次就不算详细讲述了。

4、整体电路图

图10整体电路仿真图

 

5、系统软件设计

本系统的软件设计主要包含通信协议的设定、排队子程序的设计、服务子程序的设计、业务提示子程序设计以及业务调度程序的设计。

5.1通信协议

通信协议(communicationsprotocol)是指双方实体完成通信或服务所必须遵循的规则和约定。

协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。

常用的通信协议有串口通信协议、I2C通信协议、SPI通信协议等等。

在本系统中,排队子系统模块和服务子系统模块直接与业务调度模块相连接,不需要使用通信协议,而业务调度模块与业务提示子模块之间使用的是SPI通信方式。

 SPI,是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接口,是一种标准的四线同步双向串行总线。

SPI是Motorola首先在其MC68HCXX系列处理器上定义的。

SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

   SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。

外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。

SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:

   串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。

 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。

也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。

  SDO–主设备数据输出,从设备数据输入

   SDI–主设备数据输入,从设备数据输出

   SCLK–时钟信号,由主设备产生

   CS–从设备使能信号,由主设备控制

其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。

这就允许在同一总线上连接多个SPI设备成为可能。

接下来就负责通讯的3根线了。

通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。

这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。

数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。

完成一位数据传输,输入也使用同样原理。

这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。

同样,在一个基于SPI的设备中,至少有一个主控设备。

这样传输的特点:

这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。

也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。

SPI还是一个数据交换协议:

因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。

 不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

   在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。

在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

最后,SPI接口的一个缺点:

没有指定的流控制,没有应答机制确认是否接收到数据。

5.2业务调度系统程序设计

排队服务主机的软件设计采用模块化方法进行设计,包括了业务调度系统程序设计、排队子程序设计、服务子程序设计、业务提示子程序设计等。

而由业务调度系统程序对各个子程序进行管理和协调,业务调度系统设计流程图如图10所示。

图11业务调度系统主程序流程图

5.3排队子程序设计

排队子程序主要用于将顾客的排队信息计入到相应队列中。

如上所述,客户在叫号机上可以选择两种服务,分别是现金服务和非现金服务。

在这里,我将客户状态与其所选服务及其排队需要制成一个3维数组GuestStutas[QueueNum][type][isServed]。

当有顾客在叫号机上进行取号操作时,会将其对应取得的序号作为QueueNum的值,根据其选择的是现金服务还是飞现金服务,分别将type的值设置为0或1,当客户处于等候被服务状态时,isServed项为0,当已经为客户服务后,isServed项为1。

5.4服务子程序设计

服务子程序主要是当服务人员按下按键后的一系列的调度操作。

在本系统中,存在有2中不同的服务窗口,现金服务窗口和综合服务窗口,现金服务窗口是只能办理现金业务的窗口,综合服务窗口既能办理现金业务又能办理非现金业务的窗口。

当服务员按下操作按键时,根据当前服务窗口的类型,选择相应的客户到当前窗口进行服务。

服务子程序设计流程图如图12。

图12服务子程序设计流程图

5.5业务提示子程序设计

业务提示子程序包含LCD液晶提示和语音提示两个部分。

液晶部分程序设计较为简单,语音提示部分使用的是ISD4004芯片,其内部共有3840K单元的Flash存储阵列,共分为2400行,每行1600列,而ISD4004内部具有特殊的信息寻址机制,即对每行(行首地址)进行寻址,而每行中的列不可寻址。

这样,ISD4004内部最多可录或放的语音信息为2400段,每一信息段的最小单位为1行,每一信息段由起始地址指针、记录的语音信息和信息结束标志位(EOM)3部分组成,一个信息段可占用1行或多行存储空间。

对行寻址是通过行地址时钟(RAC)来实现的,对于ISD4004216MP其录放时间为960s,因此它的分辨率为

400ms(即1个行地址时钟周期为400ms)。

这样只要对行地址时钟输出端RAC的低电平进行计数就可以知道每一信息段占用了多少行,也就可以知道每一信息段的起始地址和结束地址。

在本系统中将13段音提前录好,1~13段音分别是:

“请”、

“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“号到”、“号窗口”,然后根据所叫号码的不同及窗口号的不同进行组合放音,所播放的提示音共分为9段,例如“请”-“1”-“号到”-“2”-“号窗口”。

6、电路仿真结果

图13仿真电路a

开机画面,程序启动。

图14仿真电路b

开始叫号,客户端按键按一下,领号加一!

图15仿真电路c

客户开始到窗口1办理业务。

图16仿真电路d

客户到窗口2办理业务。

图17仿真电路e

统计人数,当前领号人数,等待办理业务人数。

图18仿真电路f

领号人数达到人数上限,停止领号。

仿真的结果和我们预计的结果一致。

在仿真期间出现过软件自动弹出的原因,后来重启电脑解决。

7、总结

经过努力,本设计仅是使用单片机完成了银行叫号系统的功能。

本文首先分析了叫号系统发展现状,指出了在智能排队系统中采用嵌入式技术的优势,剖析了一般排队叫号系统的业务需求和基本功能,采用软硬件协同设计的方法,提出了排队叫号系统的整体设计方案。

同时本文分别对系统的硬件和软件设计与实现方法进行了说明,给出了系统基本功能的测试方法和测试结果以及仿真结果。

总结了本文所做的工作和存在的问题,并对下一步系统的功能扩展进行了展望。

此系统采用LCD1602显示,做起来比较简单,其中只设立了两个处理窗口,虽然很少,不过根据需要可以经行增加,具有较好的扩展功能。

本设计虽不及现今比较成熟的产品,不过对需求不是很高的人还是可以的。

从此次设计中,我学到了很多,对没有掌握的知识都有了一定的了解。

 

8、参考文献

[1]《新型集成电路的应用――电子技术基础课程设计》梁宗善主编,华中科技大学出版社。

[2]《电子技术基础课程设计》孙梅生等编著,高等教育出版社。

[3]《51单片机C语言教程》郭天祥编著,电子工业出版社。

[4]《单片机教程一单片机基础》张迎新编著第二版.2006.8

[5]马忠梅等编著《单片机的C语言应用程序设计》(第4)饭)北京航空航天大学出版社.2007.2

 

附录C源程序代码

#include//C51程序包含的头文件

#defineucharunsignedchar

#defineuintunsignedint

//以下定义要用到的字符串数组

ucharcodet0[]="Welcome!

";

ucharcodet1[]="wp";//wp意为正在等待的人数

ucharcodet2[]="YourNo.is";

ucharcodet3[]="No.cometo";

ucharcodet33[]="No.window!

";

ucharcodet4[]="Queueisfull,";

ucharcodet44[]="comelater.";

ucharcodet5[]="Nobodyis";

ucharcodet55[]="waiting!

";

ucharcodet6[]="Nowthetotalwp";

ucharcodet66[]="numberis";

ucharnum,waiting,count;//num为所领号码,waiting为正在等待的人数

sbitlcden=P2^7;//液晶使能端

sbitlcdrw=P2^5;//“读”或“写”选择端,要置低

sbitlcdrs=P2^6;//写命令/数据选择端:

置0写命令,置1写数据

sbits0=P3^4;//领号键

sbits1=P3^1;//窗口1的叫号键

sbits2=P3^2;//窗口2的叫号键

sbits3=P3^3;//停止领号键

sbitadd=P3^5;//统计客流量

sbitbee=P1^5;//蜂鸣器端口

//函数声明

voiddelay(uint);//延时

voiddi();//蜂鸣

voidwrite_com(uchar);//向液晶写入命令

voidwrite_data(uchar);//向液晶写入数据

voidgo(uchar,uchar);//移动光标

voidshownum(uchar);//显示数字

voidshowstr(uchar*);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1