无线电子菜谱系统的设计及实现毕业论文_第1页
无线电子菜谱系统的设计及实现毕业论文_第2页
无线电子菜谱系统的设计及实现毕业论文_第3页
无线电子菜谱系统的设计及实现毕业论文_第4页
无线电子菜谱系统的设计及实现毕业论文_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无线电子菜谱系统的设计及实现中文摘要信息化的社会中,用科技改变传统的点菜方式是实现信息化改造、提升管理水平、提高运作效率的重要手段。无线电子菜谱系统由硬件和软件构成。系统硬件主要包括手持无线终端(又称“电子菜谱”)、系统软件主要是上位机管理软件。在通讯频率上一般使用ISM(工业、科学、医疗)频段,本系统采用的是24G频段。在设计硬件平台时,根据所使用芯片的编程原则,在WINDOWS7环境下,以C51语言为编程语言,开发出了无线通信系统的驱动程序来实现双方约定的通信协议。用VISUALC60开发了上位机管理软件,显示账单、菜单等信息,并具有后台管理功能,如更新、设置等。安装于服务台的上位机管理软件在收到移动端发送来的有效的点菜数据后,先保存到数据库,并发出提示信息,通知有新菜单到了,这样完成一次点菜过程。系统的优势不言而喻直观、图形化、人性化的操作界面,可由餐厅服务员或客人自行点菜;系统的稳定性强,操作简单;更新菜谱的价格、资料更为快捷、更为方便。关键词单片机;TFT;无线通信;NRF24L01THEDESIGNANDIMPLEMENTATIONOFTHEWIRELESSELECTRONICMENUSYSTEMABSTRACTINTHEINFORMATIONSOCIETY,USINGTECHNOLOGYTOCHANGETHEAPPROACHOFORDERINGDISHESISANIMPORTANTMEANTOREALIZEINFORMATIONREFORMANDUPGRADETHEMANAGEMENTLEVEL,ANDEVENIMPROVETHEOPERATIONALEFFICIENCYWIRELESSELECTRONICMENUSYSTEMCONSISTSOFHARDWAREANDSOFTWARESYSTEMHARDWAREINCLUDINGHANDHELDWIRELESSTERMINALCALLED“ELECTRONICCOOKBOOK“,THESYSTEMSOFTWAREISPCMANAGEMENTSOFTWAREGENERALLY,WEOFTENUSEDTHECOMMUNICATIONFREQUENCYWHICHCALLEDISMINDUSTRIAL,SCIENTIFIC,MEDICALBAND,ANDTHISSYSTEMUSESTHE24GBANDINTHEDESIGNOFTHEHARDWAREPLATFORM,ACCORDINGTOTHEPRINCIPLEOFUSINGTHECHIPPROGRAMMING,IUSEDC51LANGUAGEASTHEPROGRAMMINGLANGUAGEINWINDOWS7ENVIRONMENTTODEVELOPEDAWIRELESSCOMMUNICATIONSYSTEMDRIVERTOACHIEVEAMUTUALLYAGREEDUPONCOMMUNICATIONPROTOCOLANDIDEVELOPEDPCMANAGEMENTSOFTWAREUSINGVISUALC60PCMANAGEMENTSOFTWARETOSHOWTHEBILL,MENUSANDOTHERINFORMATION,ANDTHISSOFTWAREHAVEABACKGROUNDMANAGEMENTFUNCTIONS,SUCHASUPDATES,SETTINGSANDSOONWHILETHESOFTWAREINSTALLEDINTHEHOSTCOMPUTERRECEIVEAVALIDDATASENDEDBYMOBILETERMINAL,THESOFTWARESAVESTHESEDATAINTOTHEDATABASE,ANDSENDSAMESSAGETONOTIFYANEWMENUANDCOMPLETESANORDERINGPROCESSTHEADVANTAGESOFTHESYSTEMISSELFEVIDENTANINTUITIVE,GRAPHICAL,USERFRIENDLYINTERFACE,WHICHCANBEORDEREDBYRESTAURANTWAITERORTHEGUESTSTHEMSELVESTHESYSTEMISSTABILITY,EASYOPERATIONUPDATINGTHEPRICEANDINFORMATIONOFRECIPESWILLBEMOREQUICKERANDMORECONVENIENTKEYWORDSINGLECHIP;THINFILMTRANSISTOR;WIRELESSCOMMUNICATION;NRF24L01目录第一章绪论111研究背景和意义112论文的研究目标213内容安排3第二章系统总体方案设计与论证421系统组成422总体方案设计5221主控制器模块5212无线模块6213彩屏模块8214SD卡模块8215触屏模块9216语音模块11217电源模块11218传感器模块12219串口模块12第三章硬件电路设计1431主控制器模块1432无线模块1533TFT彩屏模块1634SD卡模块1735触屏模块1936语音模块1937电源模块2138温度传感器模块2139串口模块22第四章软件的设计2341开发调试工具2342软件调试24421移动端硬件驱动程序24422接收端硬件驱动程序30422上位机程序设计33第五章系统调试分析4251移动端调试4252移动端和接收端联调4353系统联调44第六章总结45参考文献46致谢47附录48第一章绪论11研究背景和意义人类利用无线通信技术的历史已经有几千年了,古时候用的烽火台就是最原始的无线通信。但这时候的无线通信技术还只是处于萌芽阶段,只有到19世纪末意大利人马可尼发明无线电报开始,人类才真正开始大规模地利用无线通信技术。近数十年来随着计算机技术和电子技术的发展,无线通信技术更是以日新月异的速度向前发展,它也成为了通信领域的一个重点研究方向。现代的无线通信技术是建立在硬件电路的基础上的,因此微电子技术的发展直接制约着无线通信技术的发展1。回顾集成电路的发展历程,我们可以看到,自发明集成电路至今40多年以来,“从电路集成到系统集成”这句话是对IC产品从SSI(SMALLSCALEINTEGRATED小规模集成电路)到VLSI(VERYLARGESCALEINTEGRATED超大规模集成电路)今天特大规模集成电路发展过程的最好总结,即整个集成电路产品的发展经历了从传统的板上系统(SYSTEMONBOARD)到片上系统(SYSTEMONACHIP)的过程。随着集程度的提高,芯片的体积能耗和成本在逐步降低,这也使电子产品向便携式和低端市场发展。虽然微电子的发展历史已经有半个多世纪,但是射频芯片的发展却是近几年的事。从分类上来看,射频芯片属于专用集成电路。目前国际上有很多专门生产射频芯片的公司,例如NORDIC公司和CHIPCON公司。这些芯片一般工作在免费频段,采用专门的调制解调技术,内部集成了很多电路。像NORDIC公司的NRF24L01芯片,它是单片射频收发芯片,工作于2425GHZISM(INDUSTRYSCIENCEMEDICINE,工业、科学、医学)频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以5DBM的功率发射时,工作电流只有105MA,接收时工作电流只有18MA,多种低功率工作模式,节能设计更方便。其DUOCEIVERTM技术使NRF24L01可以使用同一天线,同时接收两个不同频道的数据。无线电子点菜系统是无线通信技术的一个典型应用。近些年来,随着人民生活水平的提高和生活方式的转变,餐饮业具有巨大的投资市场,被称为中国的黄金产业。人们在消费过程中对服务质量也有了更高的要求,同时餐馆之间的激烈竞争也促进了无线通信技术在餐饮业中的应用。无线电子点菜系统的目的就是利用最先进的24GRF无线通信技术、嵌入式移动数据库技术以及触摸屏的掌上电脑技术,实现餐饮业的全面数字化,降低人工费用。无线电子点菜系统能够进一步提高餐厅档次、提高点菜效率,而且具有结账、更新菜单、实时查看账单等功能,而且能够有效避免人为错误、避免跑单、实时查看餐馆收益情况、提供查看诸如今日流水账这样的统计信息等,用数字化的手段来革新餐饮行业,优化业务流程,为每位客户提供更优质的服务,实现餐厅利润的最大化而又不至于成本过高,是餐饮行业向信息化发展的一个重要标志。由于使用无线技术通信,可以不用进行复杂的布线,这也大大降低了餐馆的建设成本,减少了对线路维护的开支。同时,无线通信设备的可移动性也使服务员随时可以和吧台联系。无线电子点菜系统基于目前很热门的技术嵌入式技术,依托一定的硬件平台。因此微电子技术的发展对系统的性能有很大的限制,目前微电子技术已经发展到了SOC(SYSTEMONCHIP,片上系统),集成度获得了极大的提高。同时,芯片的价格,体积和能耗进一步降低,这些都使无线电子点菜系统向移动化和大众化方向发展。可以说,随着微电子技术的进一步发展,无线电子点菜系统仍然有很大的发展空间。12论文的研究目标本设计主要是用一个主控模块控制外围器件使其协调工作,初步决定通信方式使用单工方式,先实现其功能,即多个从机只向主机发送信息,主机不返回任何信息,可制作一个移动端(发送端)和一个连接电脑的接收端进行演示。其基本功能应包括1移动端能进行菜单显示,利用触屏等方式输入信息;2点菜过程中需要有一定的交互,例如进行语音提示;3移动端在点菜完毕后利用预定的协议打包发送数据,连接电脑的接收端实时接收数据并解码,再利用串口传送至电脑,电脑上位机程序最后进行相应操作,完成一次点单过程。对于后期产品功能初步实现后再考虑半双工的通信方式,进行实时数据更新、点单反馈等更人性化的操作。13内容安排本文是对无线电子菜谱系统系统设计及实现进行了深入的研究,全文共分为六章,各章节的内容安排如下第一章介绍了本文的研究背景和各章节的内容安排情况。第二章先介绍了系统总体的结构,然后对每个模块进行选型,并对所使用的芯片及其原理进行了简单的介绍。第三章在上一章的基础上设计自己的硬件平台,详细介绍了平台的组成部分和各自的功能。第四章主要介绍了移动端、接收端和上位机软件方面的设计。第五章主要讲了系统调试方面所遇到的问题,以及对该问题的分析,并提出解决方法。第六章对本次的设计工作进行了总结,包括所思、所感、所得等。第二章系统总体方案设计与论证21系统组成根据对本系统基本功能的理解,可为本系统描述一个基本的使用场景当顾客从服务员手中拿到点菜系统的移动端,餐桌号已由服务员预先输入,此时播放语音提示,提示顾客直接进入点菜流程,通过触屏顾客一页页的浏览菜单,包括价格、菜品图片、菜系等信息,最终顾客完成点菜,单击“完成”按钮,进行语音温馨提醒“美味稍等片刻”,此后屏幕再次恢复到点菜前的界面,为丰富显示内容,此时显示实时温度,直到触发进入下次点菜流程。而电脑端在接收到经过解码的数据之后,信息入库,提示有一新菜单。这样移动端与接收端就协调工作最终完成一次点单流程。由此可确定本系统的硬件系统应包括语音模块、TFT彩屏模块、主控模块、存储模块、无线模块、触屏模块、温度检测模块。其移动端系统结构框图如图21,连接电脑的接收端系统结构框图如图22。在确定了系统的总体方案后再逐步细化到各模块,下面将对系统各模块的选型及其简介进行阐述。图21移动端系统结构图图22接收端系统结构图22总体方案设计221主控制器模块在开题报告中曾经将主控制器选为MC9S12XS128,这是基于对彩屏刷屏速率的考虑,在之后的硬件调试中发现将MC9S12XS128的时钟频率设置在32MHZ时,彩屏的刷屏速度并不是很快,平均显示一张320240的图片会用38S左右的时间,而将频率设为40MHZ以后,刷屏速率也并无明显增快。而且因为没有用文件系统,存储的图片是用IMAGE2LCD软件转换成BIN的二进制格式,存储在1G内存卡里面,当频率设置过高后读SD卡会变得不稳定,错误率过高。故处于上述考虑,将主控制模块换为STC90C516RD,该款单片机最高可使用40M晶振2,经测试使用24M晶振后,单片机平均显示一张320240的图片会用46S左右的时间,而读内存卡时由于速度不是很快,传输误码率也几乎可以忽略。故将主控模块选为该款单片机。下面将对STC90C516RD单片机进行简要介绍。STC90C516RD系列单片机是宏晶科技推出的新一代增强型单片机,具有抗干扰/高速/低功耗的的特点,完全兼容传统的8051单片机指令码,可任意选择12时钟/机器周期或6时钟/机器周期,内部整合了MAX810专用复位电路,时钟频率在12MHZ以下时,复位脚可直接接地3。1工作电压55V38V(5V单片机)/38V24V(3V单片机;2工作频率范围040MHZ;3用户所使用的应用程序空间最大可达61KB;4内部集成了1280字节/512/256字节RAM;5通用I/O口(35/39个),复位后为P1/P2/P3是准双向口/弱上拉,P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;6ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P30/P31)直接下载用户程序,8K程序35秒即可完成一片;7电可擦除只读存储功能;8内部集成看门狗功能;9片上集成MAX810专用复位电路,外部晶体12M以下时,可不接外部复位电路,此时复位脚可直接接地;10共2个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用;112路外部中断,采用下降沿中断或低电平方式触发中断,低功耗模式可由外部中断以低电平方式触发中断唤醒;121路通用异步串行口UART,方便传输数据;13工作温度范围075/4085;14封装LQFP44,PDIP40,PLCC44;212无线模块根据要求无线模块选用NRF24L01。现在国际上有很多公司生产基于ZIGBEE协议的芯片,芯片的集成度也越来越高。例如挪威的NORDIC公司的NRF系列芯片,还有CHIPCON公司的无线数据传输芯片等。各个公司的芯片原理基本相同,编程规则大致相同,因此选用NORDIC公司的NRF24L01也能符合系统要求,下面详细叙述一下NRF24L01芯片的特点4。同蓝牙一样NRF24L01无线收发一体芯片也工作在24GHZ自由频段,能够在世界各地的无线领域畅通无阻。NRF24L01支持多点间的通信,比蓝牙具有更高的传输速度,最高传输速率可超过1MBIT/S。它采用SOC方法设计,仅需焊接少量的外围元件便可组成一块射频收发电路。与蓝牙不同的是,NRF24L01没有复杂的通信协议,方便用户使用,相同产品之间可以自由通信而无限制。更重要的是,NRF24L01的价格比蓝牙产品更低。因此NRF24L01是业界体积最小、功耗最少、外围元件最少的低成本射频系统级芯片。NRF24L01的内部结构原理及外部组成框图如图23所示,它主要有四种工作方式。图23NRF24L01的内部结构原理及外部组成框图1待机模式待机模式1在保证快速启动的同时降低了系统平均消耗电流。晶振在待机模式1下正常工作。而在待机模式2下仅有部分时钟缓冲器处在工作状态。当发送端发送输入输出寄存器为空并且引脚CE电平为高时进入待机模式2。在处于待机模式时,芯片保持寄存器配置字内容不变。2掉电模式工作在掉电模式时,关闭NRF24L01各功能,保持着最小的电流消耗。而在进入掉电模式后,NRF24L01停止工作,但保持寄存器内容不变。掉电模式由寄存器中PWR_UP位来控制。3SHOCKBURSTTM模式SHOCKBURSTTM模式下该芯片可以与成本较低的低速MCU连接。高速信号处理是由芯片本部的射频协议处理的,NRF24L01提供SPI接口,数据率取决于单片机本身接口速度。在SHOCKBURSTTM模式下,当接收到有效的地址和数据时IRQ通知MCU,随后MCU可将接收到的数据从RXFIFO寄存器中读出。4增强型SHOCKBURSTTM模式增强型SHOCKBURSTTM模式使得执行双向链接协议更为容易、有效。一般典型的双向链接为发送方要求接收端设备在接收到数据后应有应答信号,以便于发送方检测是否有数据丢失的情况,一旦发生数据丢失,则重新发送丢失的数据将该数据恢复。在增强型的SHOCKBURSTTM模式下可以同时控制应答及重发功能而无需增加MCU的工作量。213彩屏模块彩屏显示较传统12864等显示屏显示更为美观,可显示内容更多。但彩屏相对价格也比较昂贵,本次设计采用分辨率为320240的28寸屏幕,控制器为ILI9325,并行端口操作,一般市场价格为50左右,相对低廉。且彩屏上附触屏,减少外围电路设计。ILI9325有一个16位的变址寄存器(IR)、一个18位的写数据寄存器(WDR)和一个18位的读数据寄存器(RDR)。变址寄存器(IR)存储来自控制寄存器和内部的GRAM的指令信息。写数据寄存器(WDR)用来暂时存储要被写到控制寄存器和内部的GRAM中的数据。读数据寄存器(RDR)用来暂时存储从GRAM中读取的数据。MCU中要写入内部GRAM的数据,首先写到写数据寄存器(WDR),然后再由内部操作自动的写到内部的GRAM中。要读取的数据要通过读数据寄存器(RDR)从内部GRAM中读取,因此无效数据将被读到数据总线,当ILI9325从内部的GRAM中读取第一个数据的时候,有效数据将在ILI9325进行了第二次读操作之后被读出。寄存器在寄存器执行时间中会被连续的写入数据,除非在振荡器起震的时候执行了0个循环。ILI9325根据外部的接口和显示移动图片的情况提供了并行的RGB接口和VSYNC垂直同步接口。当RGB接口被选择,显示操作将和外部提供的信号VSYNC,HSYNC,DOTCLK同步。在RGB模式,根据使能信号的极性(高电平或是低电平)数据(DB170)将会根据这些同步信号被写入来阻止在数据更新的时候屏幕闪烁。214SD卡模块单片机内部仅有最大61KB的ROM,而一副5050像素的图片就有5000字节的数据,所以依靠单片机内部的存储容量是远远不够的,所以本次设计为了存储显示的图片,采用内存卡存储。并且由于后期产品升级的时候会有菜单信息等需要更新,所以将关于菜单方面的图片等存储在内存卡里面也,这样便于更换里面的文件。SD卡的技术是基于MULTIMEDIA卡(MMC)格式上发展而来,大小和MMC差不多,尺寸为32MM24MM21MM。SD卡与MMC卡保持着向上兼容。SD卡内部主要分两部分存储介质(NANDFLASH)和主控制器。以51为核心而设计的主控制器,内部锁相环电路最高可以倍频到近100M。而作为存储介质的NANDFLASH容量从1GBIT至128GBIT,甚至还高。其主要分类有1MMC卡结构类似SD卡,采用MMC协议。2SD10SD10卡最大可支持容量达2GBYTE。3SD20SD20卡最大可支持容量达32GBYTE。这三种卡的协议是向上兼容的。也就是说SD20可以兼容SD10协议,SD10可以兼容MMC卡协议,即MMC协议的指令可以操SD10、SD20,同理SD10协议的命令可以操作SD20卡。所以平时看到初始化SD卡的时候只用了CMD0和CMD1两条命令就可以让上面三类卡进入传输状态的原因使用MMC卡协议初始化时只定义了CMD0和CMD1。SD卡接口支持SD和SPI两种模式。在SD模式下采用4线并行模式,占用更多的端口。一般为提高传输速度,多媒体存储设备都会采用此种接口,而SPI模式更适合于低端MCU的使用,传输速度有限。215触屏模块基于目前主流的输入方式是触屏输入,本次设计采用触屏输入方式一方面是为了迎合趋势,另一方面采用此种输入方式可大大简化硬件电路设计,且输入的信息可根据软件而定制,比传统的键盘输入方式更为灵活。由于价格的原因本次设计采用电阻屏,驱动芯片利用集成的图24SD卡引脚封装XPT2046。电阻触摸屏的工作原理主要是通过压力感应原理来实现对屏幕内容的操作和控制的,这种触摸屏屏体部分是一块与显示器表面非常配合的多层复合薄膜。不同线制的电阻屏坐标计算方法也不一样,我所采用的是四线电阻屏。当有物体施加一定的压力在触摸屏表面时,导致上层的ITO导电层发生形变与下层的ITO层发生接触,该结构可等效为图26所示电路。可分为如下两步计算触点的X,Y坐标1计算X坐标,在电极X端施加驱动电压VDRIVE,X电极接地,测量引出端Y的电压,由于ITO层均匀导电,Y端的电压与VDRIVE电压之比等于触点X坐标与屏幕的宽度之比,即图26触摸时等效电路图25电阻式触屏结构面板(PET)下电极(ITO膜或ITO玻璃)OCA光学胶背板(PC等)键片上电极(ITO膜)OCA光学胶YXYX2计算Y坐标,在电极Y端施加驱动电压VDRIVE,Y电极接地,测量引出端X的电压,由于ITO层均匀导电,X端的电压与VDRIVE电压之比等于触点Y坐标与屏幕的高度之比,即Y驱动芯片XPT2046是一种典型的逐次逼近模数转换器(SARADC),包含了采样/保持、模数转换、串口数据输出等功能。同时芯片集成有一个25V的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046可以单电源供电,电源电压范围为27V55V。参考电压值直接决定ADC的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入1VVCC范围内的参考电压(要求外部参考电压源输出阻抗低)。X、Y、Z、VBAT、TEMP和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分模式。选择VBAT、TEMP和AUX时可以配置为单端模式,作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。在有触摸动作时的坐标转换由XPT2046完成,在得到坐标值后,会向MCU发出IRQ通知信号,单片机读取数据后经转换程序,转换为屏幕上对应的像素点,这样就完成了一次触屏取样过程。216语音模块本系统在设计时提出语音提示,这是一款人性化的产品所必须的,并且在最后的设计中由于大量端口的复用,最后不得不放弃震动提示的功能,这也使得该模块的存在意义重大。语音模块保持原来的设计思路,采用集成的WTV020SD模块,可外置SD卡,将语音用特定软件转换成AD4格式后,再将语音数据按照顺序存储于SD卡内,单片机只需按照时序进行相应触发即可播放特定语音,使用方便,外围电路简单。217电源模块设计中有单片机、TFT彩屏、触屏模块需5V供电,而SD卡、NRF24L01、WTV020SD模块需33V供电,所以本系统电源模块中必须能同时提供5V、33V的电源。其中5V采用LM7805稳压,而33V则采用AMS111733经5V降压产生,该电路技术也很成熟,只需在焊接引脚时需要注意一下。218传感器模块由于单片机的刷屏速率不高,为了在不操作本系统时,丰富彩屏的显示内容,并且又能够显示一些实用信息而不占用过多的端口资源,所以采用单总线式温度传感器DS18B20。所谓的单总线接口是指仅需一个端口引脚进行通讯,而无需外部器件,由数据线供电,待机功耗为零。测温范围为55125,以05递增,温度以9位数字量读出,转换温度数字量时间为200MS(典型值)。用户可自定义非易失性报警温度,传感器报警搜索命令识别并标识超过用户所限定温度(温度报警条件)的器件。DS18B20是这样测温的用一个高温度系数的振荡器确定一个门周期,在这个门周期内,内部计数器对一个低温度系数的振荡器的脉冲进行计数,从而来得到温度值。计数器一开始被预置到对应于55的一个值,如果在门周期结束前计数器到达0,则增加温度寄存器的值,表示所测得的温度大于55。同时,将计数器复位到某个值,这个值由斜坡式累加器电路确定,用以补偿感温振荡器的抛物线特性。之后计数器又重新计数直到0,如果仍未结束门周期,将一直重复上述过程。为了获得更高的分辨率可用下述方法。首先,读取传感器所测得的温度值,并将表示05位(LSB)的值从读取的值中截去,这个值叫做READ。然后再读取计数器中剩余的值,这个值是在门周期结束后所保留下来的值,这个值叫做REMAIN。最后,我们用到在这个温度下每度的计数值PER_C。用户可以用公式计算实际温度值。PER_CMAINTPU219串口模块由于接收端需要和上位机进行通讯,所以需要应用到串口模块,串口通信的两种最基本的方式有同步串行通信方式和异步串行通信方式。同步串行是指SPI(SERIALPERIPHERALINTERFACE)的缩写,顾名思义就是串行外围设备接口。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是SPI接口。异步串行是指UART(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片。UART包含TTL电平的串口和RS232电平的串口。TTL电平是33V的,而RS232是负逻辑电平,它定义512V为低电平,而125V为高电平。本次设计采用异步串行通信方式。转换芯片使用美信(MAXIM)公司专为RS232标准串口设计的MAX232芯片,使用5V单电源供电。图27MAX232内部电路及外围接口电路第三章硬件电路设计31主控制器模块单片机最小系统做为整个开发板的控制中心,控制各个外围电路协调工作,完成系统设计的功能。单片机工作时需要为其焊接一个最小应用系统板,其上电路应包括复位电路、时钟电路。外部RST引脚复位就是从外部向RST引脚加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位管脚拉高并维持至少24个时钟加10US后,单片机会进入复位状态,将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正常工作。时钟电路负责为单片机提供能源。XTAL1内部时钟电路反相放大器的输入端,接外部晶振的一个引脚。当直接使用外部时钟源时,此引脚接外部时钟源的输入端。XTAL2内部时钟电路反相放大器的输出端,接外部晶振的另一引脚。当直接使用外部时钟源时,此引脚可浮空,此时XTAL2实际将图3151最小系统板原理图XTAL1输入的时钟进行输出。我用的是典型的时钟电路,时钟从XTAL1进再从XTAL2出来。上图的第40、20引脚分别接电源的VCC、GND,负责为单片机供电。第31引脚为内外存储器选择引脚,本系统中将其拉高,选择内部存储器,此时PSEN、ALE引脚可浮空。由于PO口默认为高阻状态所以为PO口加上上拉电阻。32无线模块无线模块根据要求用NRF24L01,该模块的电路如图32。将上述电路焊接好并通过预留的插针连接到单片机,这样将无线模块与最小系统板通过拔插的方式连接,这样无论在硬件还是在软件上改变单片机与其连接的引脚时都非常方便。图32NRF24L01应用电路图33预留的引脚VCC脚所接电压范围为19V36V之间,而不能在这个区间之外,大于36V将会毁坏该模块。推荐使用电压33V左右。除了电源VCC和接地端之外,其余引脚均可直接和普通的5V单片机IO口直接相连,无需电平转换,当然这个模块也更加适用于3V单片机了。在硬件上面没有SPI的单片机同样也可以控制本模块,单片机用软件模拟SPI通讯协议,用普通IO口即可。33TFT彩屏模块TFT彩屏模块利用购买的现成模块,利用FPC接口将其与单片机进行连接。该模块采用并行数据传输方式,DB0DB7、DB10DB17为其数据端口,占用单片机大量端口,使得单片机仅有的32个通用I/O引脚一下子用去16个,剩余模块的端口资源所剩无几,这也为之后的单片机编程提出要求,需要统筹规划各模块,否则对于复用的端口易引起冲突。图34FPC接口34SD卡模块SD卡支持两种总线方式SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、MOSI、MISO进行数据通信。SD方式的数据传输速度比SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。SD卡的工作电压是33V,并且若用5V单片机直接驱动SD卡时需要为各端口加一限流电阻。引脚名称功能CS片选RS数据/命令RW读RD写DB0DB7数据低8位DB10DB17数据高8位LED背光极LED_K背光极VCCTFT电源GNDTFT电源表31FPC接口引脚说明图35SD卡应用电路SD模式SPI模式引脚编号名称类型描述名称类型描述1CD/DAT3IO或PP卡检测/数据线3CSI片选2CMDPP命令/回应DII数据输入3VSS1S电源地VSSS电源地4VDDS电源VDDS电源5CLKI时钟SCLKI时钟6VSS2S电源地VSS2S电源地7DAT0IO或PP数据线0DOO或PP数据输出8DAT1IO或PP数据线1RSV9DAT2IO或PP数据线2RSV注S电源供给I输入、O采用推拉驱动的输出PP采用推拉驱动的输入输出本系统设计时只是希望将SD卡作为一个大的存储器,实现简单的扇区读写,没有引用复杂的文件系统,那样无疑会增加软件的编写难度,也并没有必要。用51单片机操作SD实现对它的读写,最核心的是它的时序,采用SD方式或SPI方式,也具有不同的操作方法。SD方式提供更大的总线数据带宽,但占用的端口也更多,所以本次设计采用SPI方式。35触屏模块本次设计中采用的是四线电阻屏,XPT2046的典型应用电路如图36。PENIRQ变低并作为处理器的中断信号。在测量X、Y和Z坐标的过程中,XP输入将与PENIRQ内部上拉电阻分离,这样可以避免来自这个内部上拉电阻的漏电流流过触摸屏,同时也避免了误差。此外,在X、Y和Z坐标测量中,PENIRQ被禁止,输出为低电平;在测量VBAT、AUX和TEMP过程中,PENIRQ被禁止,输出为高电平。如果最后写进XPT2046的控制字包含了PD01,笔中断输出功能禁止,不能监测触摸屏上触摸动作。在这些情况下,要重新使能笔中断输出功能,需把带有PD00的控制字写进XPT2046。如果在最后写入的控制字中包含了表32SD卡引脚说明PD00,笔中断输出将在这次转换结束后使能。转换结束发生在输出转换数据位1时的DCLK时钟的下降沿。建议无论在任何时候,处理器在发控制字给XPT2046之前都要屏蔽PENIRQ的中断,以避免错误的中断的触发。36语音模块语音模块采用购买现成的WTV020SD模块,这是一款大容量存储类型的可重复擦写语音内容的语音模块,最大可外挂容量为1GB的MICROSD卡。能加载AD4格式语音和WAV格式语音。由于本设计中需要用单片机控制其语音播放,可利用该模块的二线串口控制模式来达到控制目的,封装好的模块其应用电路图如图38。图36XPT2046应用电路WTV020SD模块SD卡存储器控制端音频输出BUSY输出图37WTV020SD应用方框图音频信号选择从SPK、SPK端输出到扬声器。该模块可直接驱动05W扬声器。但由于没有找到小功率的扬声器,故在SPK后加了LM386功放电路,增益200,以此来驱动2W的扬声器。选择二线串口控制模式,脉冲触发,由MCU或按键对I/O口进行控制。I/O口P02、P03、P07分别为下一曲、上一曲、播放/停止功能,P04为CLK输入,P05为DI输入,P04、P05组成二线串口控制模式。SD卡支持根目录文件读取方式,就是说,只把文件放置到SD卡的根目录就可以了。文件名为十六进制数据,包括WAV、AD4格式音频文件均如此,如0000AD4、0001AD4等。最多可读取到前512个音频文件。按键类型控制模式进行控制时,如点击“下一曲”可触发下一段音频,按文件名的数据顺序进行触发。并口模式和二线串口模式则直接发送文件名的二进制数据,进行触发播放语音。焊接按键主要是为了测试用,也可不用焊接。37电源模块本次设计中需要有5V和33V供电电路,其中5V供电采用LM7805,而33V采用AMS111733稳压芯片。并且焊接了一个开关和电源指示灯,方便操作和观察,其应用电路如图39。图38WTV020SD应用电路38温度传感器模块DS18B20通过单总线发送或接收信息,在单片机和DS18B20之间只需要一条连接线即可。无需外部电源,用于读写和温度转换的电源可以从数据线本身获得。因为出厂时每个DS18B20都有一个独特的片序列号,所以多只DS1820可以同时连在一根单总线上,这样就大大简化了电路的设计,读取某个DS18B20的温度只需先进行片序列号匹配即可。39串口模块同上位机通讯需要将TTL和RS232电平进行转换,采用MAX232芯片完成这样的功能,其原理图如图311。图310DS18B20应用电路图310MAX232原理图图39电源模块应用电路通讯时利用单片机的P30、P31来进行串口通讯。设计上位机程序时若采用事件驱动方式,由计算机直接管理时,字节之间不可控,而且单片机串行口和PC机串行口速率差别较大,接收程序一定要精心合理的设计,才能使传输稳定可靠,否则很容易出现意想不到的问题。在调试过程中,如果不小心将串行口调试工具的波特率和开发板串行口的波特率设置为不同,就会出现错误。图311MAX232原理图第四章软件的设计41开发调试工具驱动程序是硬件电路的灵魂,没有驱动的硬件电路是没有用的。STC89C516RD是51类单片机,可以像开发其他51单片机驱动一样开发它的驱动程序。单片机软件开发平台选择比较流行的KEILUVISION4,因为现在关于KEILUVISION4软件的资料很多,这样上手就会很快5。图41是该软件的运行界面。而开发上位机软件则采用VISUALC60,是微软公司推出的一款优秀开发工具。VISUALC60在不牺牲灵活性、性能和控制力度的同时,给C带来了更高水平的生产效率。它具有可视化的界面,封装了大量的类,使界面制作变的很简单,使用它可以方便快捷地开发WINDOWS环境下的应用程序。VISUALC60专门为串行口通信提供了MSCOMM控件,使用该控件程序员不必花时间去了解比较复杂的API函数,通过简单修改控件的属性和使用控件提供的方法就可以实现对串口的配置,完成串口发送和接图41KEILUVISION4运行界面收数据6。图42是该软件的运行界面。42软件调试整个数据传输系统有两部分组成与PC机相连的开发板为接收端,它不能移动,接收移动端发送过来的数据,经编码成预定的格式向上位机发送数据;可以移动的为移动端,它由开发板和无线数据传输等模块组成。由于两端的地位和功能不同,因此对应的驱动程序也不同。421移动端硬件驱动程序移动端的硬件驱动程序主要功能有驱动TFT彩屏、读触屏坐标、操作SD卡、播放语音、读取实时温度、无线发送点菜数据。对于程序的编写如果按照以前那样全部写在一个文件里,大量的代码,不易于维护及修改,程序出错了难以定位,故采用构件化的方式将各模块的驱动程序分开来写,然后再添加到工程,程序结构清晰7。图42VISUALC60运行界面表41移动端端口分配表在写程序之前需要将每个模块的所用的端口分配好,由于本设计MCU的端口严重不足,不得不复用端口,而由端口复用所产生的问题在编程时也很难查出来,所以编写程序时需要格外注意。本次设计采用的方法是,先分别调试每个模块,然后再综合,表41是经过调试后定下的端口分配表。图43是移动端主程序的流程图,图42为中断流程图。模块引脚名称端口备注RSP24复用WRP25复用CSP26不可复用RSTP27不可复用DATA_HP1不可复用ILI9325TFT彩屏模块DATA_LP0不可复用DS18B20温度传感器DATAP25复用DCLKP24复用CSP33不可复用DINP31未复用DOUTP20复用XPT2046触屏模块IRQP32不可复用RST未使用CLKP22不可复用WTV020SD语音模块DIP21不可复用DCLKP25复用DIP24复用DOP36不可复用SD卡CSP37不可复用MISOP30未复用MOSIP23未复用SCKP20复用CEP35不可复用NRF24L01无线模块CSNP34不可复用其中“输入桌号”、“点菜”里面均是死循环,通过跳转程序转到下一流程,这样设计也是仿照VC的窗口编程,每一个窗口都是一个WHILE(1)循环,只有收到特定的消息或满足特定的条件才转到另一个流程,“输入桌号”、“点菜”这两个流程内部的流程分别如图45、图46。在图44中断流程图中采用的是外部中断0下降沿中断方式,在触屏有物体按下时,XPT2046会发出中断信号IRQ,单片机进入中断进行相应处理,在退出中断时返回主程序继续显示实时温度。图43移动端主程序流程图图44中断流程图在图45中标识“”的对应于TFT屏幕上显示的相应按钮,而流程图中的“跳转到DIANCAI”、“跳转到END”,其中的字母标号是在程序中设置的某段程序的入口标号,当满足条件时,如利用“GOTODIANCAI;”这样的程序进行跳转,跳出死循环,转到下一个流程,类似于汇编里的JUMP指令,跳转到某段程序的入口地址8。图45“输入桌号”流程图在图46中也用了图45中的表示方法。并且在图43主程序流程图中用了“清全屏”,而在图45“输入桌号”流程图和图46“点菜”流程图中用了“清屏”这是有区别的,因为单片机的刷屏速率不高,在程序开始时才用了“清全屏”,这是必须的,因为TFT彩屏初始化成功后显示的是一系列杂色,所以必须将整个屏幕进行刷新,而之后在程序正常运行时用“清屏”只是进行局部刷新,只对需要改变的地方,进行写入新数据,退出时再恢复,这样提高了运行效率。不求单项设计的最先进性,但求总体设计的合理性。在程序最后所发送的数据的格式为桌号,菜1,菜2,菜图46“点菜”流程图N,0X63,0X73。其中菜N表示该菜品所对应的序号,存储于数组MENU_DATA中,最大可存储100字节的数据,其中0X63是C的ASCII字码符,在接收端通过判断是否接收到该字符作为结束标志,而0X73是S的ASCII字码符,移动端发送数据时通过判断该字符来结束发送。NRF24L01一次性最多只能发送32字节的数据,当需要发送的数据非32的倍数时,就会使得发送的最后一组数据并不是每个都是有效的,在定义NRF24L01最大发送个数时,将其设置为1,这样当遇到S时停止发送,发送方式更灵活,软件编程更方便。在本设计中单片机通过软件模拟SPI方式与NRF24L01传输数据,数据发送函数如下/函数NRF24L01_SINGLESENDUNSIGNEDCHARTX_BUF/功能单个循环发送TX_BUF中数据/VOIDNRF24L01_SINGLESENDUNSIGNEDCHARTXBUFUNSIGNEDCHARI0WHILETXBUFISNRF24L01_TXPACKET/TRANSMITTXBUFFERDATA422接收端硬件驱动程序接收端的硬件驱动程序主要有两种功能实现开发板通过串行口和PC机通信;实现开发板通过某些I/O口和无线数据传输模块进行通信。表42接收端端口分配表接收端仅有无线模块和串口模块,功能比较少,所以单片机的端口完全够用,表47则为接收端的端口分配表。STC89C52RC单片机串行口的工作方式和波特率由控制寄存器SCON和特殊功能寄存器PCON组成。通过设置合适的波特率和帧格式,来实现开发板和PC机之间准确的数据传递。串行口可以通过软件设置四种工作方式,各种工作方式的数据格式和波特率均有所不同,在本设计中将串行口工作于方式2、8位数据位、1位停止位、无校验、波特率9600,用的函数为VOIDSTARTUARTVOID/晶振12M模块引脚名称端口备注MISOP25未复用MOSIP23未复用SCKP22未复用CEP21未复用NRF2401无线模块CSNP24未复用TXDP30未复用串口通信模块RXDP31未复用图47接收端主程序流程图TMOD0X20SCON0X50TH10XFDTL1TH1PCON0X00TR11接收端在接收到数据后将所有的数据转换成ASCII码,并且在每相邻两个数据之间插入一个A以便于区分,转换成形如“1A2A5A8A9A”这样的字符串,其中第一个为桌号,其余数字为所点菜品对应的序号,该序号在上位机的数据库里与菜单的序号也是一一对应的。数据编码的函数如下WHILEMENU_DATAJ0IFMENU_DATAJOPEN_BSTR_TCONSQL,“,“,ADCONNECTUNSPECIFIED在整个程序里只可打开一次库,否则会发生错误,但可以打开多次表。(6)对表的操作主要有查询和三种动作插入、删除、更新。下面对这几种操作各举一例,其余的都大同小异。查询SQLFORMAT“SELECTFROMBILLWHERE序号S“,BILL_NUMM_PROPEN_BSTR_TSQL,M_PCGETINTERFACEPTR,ADOPENDYNAMIC,ADLOCKOPTIMISTIC,ADCMDTEXT插入SQLFORMAT“INSERTINTOMENUVALUESD,S,S“,MAXNO,M_VGENAME,M_PRICEM_PCEXECUTE_BSTR_TSQL,NULL,ADCMDTEXT删除SQLFORMAT“DELETEFROMMENUWHERE序号S“,BILL_NUMM_PCEXECUTE_BSTR_TSQL,NULL,ADCMDTEXT更新SQLFORMAT“UPDATEMENUSET序号序号1WHERE序号S“,BILL_NUMM_PCEXECUTE_BSTR_TSQL,NULL,ADCMDTEXT尤其要注意每次打开表之后,在操作完之后一定要用M_PRCLOSE关闭打开的表,否则会发生错误1011。控件名称ID标题变量名类型消息消息处理函数备注主框架IDD_WIRELESSMENU_DIALOGWIRELSSMENUWM_INITDIALOGONINITDIALOG静态文本默认今日账单静态文本默认账单详情静态文本默认今日客户数静态文本默认今日流水账静态文本IDC_COUNTM_COUNTCSTRING静态文本IDC_TOTALMONEYM_TOTALMONEYCSTRING按钮IDC_PAYBILL结账BN_CLICKEDONPAYBILL按钮IDC_HISBILL历史账单BN_CLICKEDONHISBILL按钮IDC_SET设置BN_CLICKEDONSET按钮IDC_UPDATA更新BN_CLICKEDONUPDATA按钮IDCANCEL退出系统BN_CLICKED编辑框IDC_STATUSM_STATUSCSTRING列表控件IDC_LIST1M_LIST1CLISTCTRLNM_CLICKONCLICKLIST1勾选“REPORT”列表控件IDC_LIST2M_LIST2CLISTCTRL勾选“REPORT”串口控件IDC_MSCOMM1M_CTRLCOMMCMSCOMMONCOMMONONCOMMMSCOMM1表45CWIRELESSMENUDLG类控件资源在主窗口中添加了MSCOMM控件,对该控件的初始化我放在了“设置”窗口中,使得主窗口的界面更加清晰。对接收来的数据处理放置在函数ONONCOMMMS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论