资源描述
无线电子菜谱系统的设计及实现
中 文 摘 要
信息化的社会中,用科技改变传统的点菜方式是实现信息化改造、提升管理水平、提高运作效率的重要手段。
无线电子菜谱系统由硬件和软件构成。系统硬件主要包括手持无线终端(又称“电子菜谱”)、系统软件主要是上位机管理软件。在通讯频率上一般使用ISM(工业、科学、医疗)频段,本系统采用的是2.4G频段。在设计硬件平台时,根据所使用芯片的编程原则,在Windows 7环境下,以C51语言为编程语言,开发出了无线通信系统的驱动程序来实现双方约定的通信协议。用Visual C++ 6.0开发了上位机管理软件,显示账单、菜单等信息,并具有后台管理功能,如更新、设置等。
安装于服务台的上位机管理软件在收到移动端发送来的有效的点菜数据后,先保存到数据库,并发出提示信息,通知有新菜单到了,这样完成一次点菜过程。
系统的优势不言而喻:直观、图形化、人性化的操作界面,可由餐厅服务员或客人自行点菜;系统的稳定性强,操作简单;更新菜谱的价格、资料更为快捷、更为方便。
关键词:单片机;TFT;无线通信;NRF24L01
II
The design and implementation of the wireless
electronic menu system
ABSTRACT
In the information society,using technology to change the approach of ordering dishes is an important mean to realize information reform and upgrade the management level,and even improve the operational efficiency.
Wireless electronic menu system consists of hardware and software. System hardware including handheld wireless terminal (called "electronic cookbook"), the system software is PC management software. Generally,we often used the communication frequency which called ISM (industrial, scientific, medical) band, and this system uses the 2.4G band. In the design of the hardware platform, according to the principle of using the chip programming, I used C51 language as the programming language in Windows 7 environment to developed a wireless communication system driver to achieve a mutually agreed upon communication protocol. And I developed PC management software using Visual C++ 6.0 PC management software to show the bill, menus and other information, and this software have a background management functions, such as updates, settings and so on.
While the software installed in the host computer receive a valid data sended by mobile terminal,the software saves these data into the database, and sends a message to notify a new menu and completes an ordering process.
The advantages of the system is self-evident: an intuitive, graphical, user-friendly interface, which can be ordered by restaurant waiter or the guests themselves; the system is stability, easy-operation; updating the price and information of recipes will be more quicker and more convenient.
KEY WORD:singlechip;Thin Film Transistor;wireless communication;NRF24L01
目 录
第一章 绪论 1
1.1研究背景和意义 1
1.2 论文的研究目标 2
1.3内容安排 3
第二章 系统总体方案设计与论证 4
2.1 系统组成 4
2.2 总体方案设计 5
2.2.1 主控制器模块 5
2.1.2 无线模块 6
2.1.3 彩屏模块 8
2.1.4 SD卡模块 8
2.1.5 触屏模块 9
2.1.6 语音模块 11
2.1.7 电源模块 11
2.1.8 传感器模块 12
2.1.9 串口模块 12
第三章 硬件电路设计 14
3.1主控制器模块 14
3.2无线模块 15
3.3 TFT彩屏模块 16
3.4 SD卡模块 17
3.5 触屏模块 19
3.6 语音模块 19
3.7 电源模块 21
3.8 温度传感器模块 21
3.9 串口模块 22
第四章 软件的设计 23
4.1 开发调试工具 23
4.2 软件调试 24
4.2.1 移动端硬件驱动程序 24
4.2.2 接收端硬件驱动程序 30
4.2.2 上位机程序设计 33
第五章 系统调试分析 42
5.1 移动端调试 42
5.2 移动端和接收端联调 43
5.3 系统联调 44
第六章 总结 45
参考文献 46
致 谢 47
附 录 48
第一章 绪论
1.1研究背景和意义
人类利用无线通信技术的历史已经有几千年了,古时候用的烽火台就是最原始的无线通信。但这时候的无线通信技术还只是处于萌芽阶段,只有到19世纪末意大利人马可尼发明无线电报开始,人类才真正开始大规模地利用无线通信技术。近数十年来随着计算机技术和电子技术的发展,无线通信技术更是以日新月异的速度向前发展,它也成为了通信领域的一个重点研究方向。
现代的无线通信技术是建立在硬件电路的基础上的,因此微电子技术的发展直接制约着无线通信技术的发展[1]。回顾集成电路的发展历程,我们可以看到,自发明集成电路至今40多年以来,“从电路集成到系统集成”这句话是对IC产品从SSI(Small Scale Integrated小规模集成电路)到VLSI(Very Large Scale Integrated超大规模集成电路)今天特大规模集成电路发展过程的最好总结,即整个集成电路产品的发展经历了从传统的板上系统(System-on-board)到片上系统(System-on-a-chip)的过程。随着集程度的提高,芯片的体积能耗和成本在逐步降低,这也使电子产品向便携式和低端市场发展。
虽然微电子的发展历史已经有半个多世纪,但是射频芯片的发展却是近几年的事。从分类上来看,射频芯片属于专用集成电路。目前国际上有很多专门生产射频芯片的公司,例如Nordic公司和Chipcon公司。这些芯片一般工作在免费频段,采用专门的调制解调技术,内部集成了很多电路。像Nordic公司的NRF24L01芯片,它是单片射频收发芯片,工作于2.4~2.5GHz ISM(Industry Science medicine,工业、科学、医学)频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使NRF24L01可以使用同一天线,同时接收两个不同频道的数据。
无线电子点菜系统是无线通信技术的一个典型应用。近些年来,随着人民生活水平的提高和生活方式的转变,餐饮业具有巨大的投资市场,被称为中国的黄金产业。人们在消费过程中对服务质量也有了更高的要求,同时餐馆之间的激烈竞争也促进了无线通信技术在餐饮业中的应用。无线电子点菜系统的目的就是利用最先进的2.4G RF无线通信技术、嵌入式移动数据库技术以及触摸屏的掌上电脑技术, 实现餐饮业的全面数字化,降低人工费用。无线电子点菜系统能够进一步提高餐厅档次、提高点菜效率,而且具有结账、更新菜单、实时查看账单等功能,而且能够有效避免人为错误、避免跑单、实时查看餐馆收益情况、提供查看诸如今日流水账这样的统计信息等,用数字化的手段来革新餐饮行业,优化业务流程,为每位客户提供更优质的服务,实现餐厅利润的最大化而又不至于成本过高,是餐饮行业向信息化发展的一个重要标志。由于使用无线技术通信,可以不用进行复杂的布线,这也大大降低了餐馆的建设成本,减少了对线路维护的开支。同时,无线通信设备的可移动性也使服务员随时可以和吧台联系。
无线电子点菜系统基于目前很热门的技术——嵌入式技术,依托一定的硬件平台。因此微电子技术的发展对系统的性能有很大的限制,目前微电子技术已经发展到了SOC(System On Chip,片上系统),集成度获得了极大的提高。同时,芯片的价格,体积和能耗进一步降低,这些都使无线电子点菜系统向移动化和大众化方向发展。可以说,随着微电子技术的进一步发展,无线电子点菜系统仍然有很大的发展空间。
1.2 论文的研究目标
本设计主要是用一个主控模块控制外围器件使其协调工作,初步决定通信方式使用单工方式,先实现其功能,即多个从机只向主机发送信息,主机不返回任何信息,可制作一个移动端(发送端)和一个连接电脑的接收端进行演示。
其基本功能应包括:
1.移动端能进行菜单显示,利用触屏等方式输入信息;
2.点菜过程中需要有一定的交互,例如进行语音提示;
3.移动端在点菜完毕后利用预定的协议打包发送数据,连接电脑的接收端实时接收数据并解码,再利用串口传送至电脑,电脑上位机程序最后进行相应操作,完成一次点单过程。
对于后期产品功能初步实现后再考虑半双工的通信方式,进行实时数据更新、点单反馈等更人性化的操作。
1.3内容安排
本文是对无线电子菜谱系统系统设计及实现进行了深入的研究,全文共分为六章,各章节的内容安排如下:
第一章 介绍了本文的研究背景和各章节的内容安排情况。
第二章 先介绍了系统总体的结构,然后对每个模块进行选型,并对所使用的芯片及其原理进行了简单的介绍。
第三章 在上一章的基础上设计自己的硬件平台,详细介绍了平台的组成部分和各自的功能。
第四章 主要介绍了移动端、接收端和上位机软件方面的设计。
第五章 主要讲了系统调试方面所遇到的问题,以及对该问题的分析,并提出解决方法。
第六章 对本次的设计工作进行了总结,包括所思、所感、所得等。
98
第二章 系统总体方案设计与论证
2.1 系统组成
根据对本系统基本功能的理解,可为本系统描述一个基本的使用场景:当顾客从服务员手中拿到点菜系统的移动端,餐桌号已由服务员预先输入,此时播放语音提示,提示顾客直接进入点菜流程,通过触屏顾客一页页的浏览菜单,包括价格、菜品图片、菜系等信息,最终顾客完成点菜,单击“完成”按钮,进行语音温馨提醒“美味稍等片刻”,此后屏幕再次恢复到点菜前的界面,为丰富显示内容,此时显示实时温度,直到触发进入下次点菜流程。而电脑端在接收到经过解码的数据之后,信息入库,提示有一新菜单。这样移动端与接收端就协调工作最终完成一次点单流程。
由此可确定本系统的硬件系统应包括语音模块、TFT彩屏模块、主控模块、存储模块、无线模块、触屏模块、温度检测模块。其移动端系统结构框图如图2-1,连接电脑的接收端系统结构框图如图2-2。
图2-1 移动端系统结构图
图2-2 接收端系统结构图
在确定了系统的总体方案后再逐步细化到各模块,下面将对系统各模块的选型及其简介进行阐述。
2.2 总体方案设计
2.2.1 主控制器模块
在开题报告中曾经将主控制器选为MC9S12XS128,这是基于对彩屏刷屏速率的考虑,在之后的硬件调试中发现将MC9S12XS128的时钟频率设置在32MHZ时,彩屏的刷屏速度并不是很快,平均显示一张320*240的图片会用38S左右的时间,而将频率设为40MHZ以后,刷屏速率也并无明显增快。而且因为没有用文件系统,存储的图片是用Image2Lcd软件转换成bin的二进制格式,存储在1G内存卡里面,当频率设置过高后读SD卡会变得不稳定,错误率过高。故处于上述考虑,将主控制模块换为STC90C516RD+,该款单片机最高可使用40M晶振[2],经测试使用24M晶振后,单片机平均显示一张320*240的图片会用46S左右的时间,而读内存卡时由于速度不是很快,传输误码率也几乎可以忽略。故将主控模块选为该款单片机。
下面将对STC90C516RD+单片机进行简要介绍。
STC90C516RD+系列单片机是宏晶科技推出的新一代增强型单片机,具有抗干扰/高速/低功耗的的特点,完全兼容传统的8051单片机指令码,可任意选择12时钟/机器周期或6时钟/机器周期,内部整合了MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地[3]。
1. 工作电压:5.5V-3.8V(5V 单片机)/3.8V-2.4V(3V 单片机);
2. 工作频率范围:0-40 MHz;
3. 用户所使用的应用程序空间最大可达61KB;
4. 内部集成了1280字节/512/256字节RAM;
5. 通用I/O 口(35/39 个),复位后为:P1/P2/P3是准双向口/弱上拉,P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻;
6. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K 程序3-5 秒即可完成一片;
7. 电可擦除只读存储功能;
8. 内部集成看门狗功能;
9. 片上集成MAX810专用复位电路,外部晶体12M 以下时,可不接外部复位电路,此时复位脚可直接接地;
10. 共2 个16 位定时器/计数器,其中定时器0 还可以当成2个8位定时器使用;
11. 2路外部中断,采用下降沿中断或低电平方式触发中断,低功耗模式可由外部中断以低电平方式触发中断唤醒;
12. 1路通用异步串行口(UART),方便传输数据;
13. 工作温度范围:0-75℃/-40 - +85℃;
14. 封装:LQFP-44,PDIP-40,PLCC-44;
2.1.2 无线模块
根据要求无线模块选用NRF24L01。现在国际上有很多公司生产基于ZigBee协议的芯片,芯片的集成度也越来越高。例如挪威的Nordic公司的NRF系列芯片,还有Chipcon公司的无线数据传输芯片等。各个公司的芯片原理基本相同,编程规则大致相同,因此选用Nordic公司的NRF24L01也能符合系统要求,下面详细叙述一下NRF24L01芯片的特点[4]。
同蓝牙一样NRF24L01无线收发一体芯片也工作在2.4GHZ自由频段,能够在世界各地的无线领域畅通无阻。NRF24L01支持多点间的通信,比蓝牙具有更高的传输速度,最高传输速率可超过1Mbit/s。它采用SOC方法设计,仅需焊接少量的外围元件便可组成一块射频收发电路。与蓝牙不同的是,NRF24L01没有复杂的通信协议,方便用户使用,相同产品之间可以自由通信而无限制。更重要的是,NRF24L01的价格比蓝牙产品更低。因此NRF24L01是业界体积最小、功耗最少、外围元件最少的低成本射频系统级芯片。
NRF24L01的内部结构原理及外部组成框图如图2-3所示,它主要有四种工作方式。
图2-3 NRF24L01的内部结构原理及外部组成框图
1.待机模式
待机模式1在保证快速启动的同时降低了系统平均消耗电流。晶振在待机模式1下正常工作。而在待机模式2下仅有部分时钟缓冲器处在工作状态。当发送端发送输入输出寄存器为空并且引脚CE电平为高时进入待机模式2。在处于待机模式时,芯片保持寄存器配置字内容不变。
2.掉电模式
工作在掉电模式时,关闭NRF24L01各功能,保持着最小的电流消耗。而在进入掉电模式后,NRF24L01停止工作,但保持寄存器内容不变。掉电模式由寄存器中PWR_UP位来控制。
3.ShockBurst TM模式
ShockBurst TM模式下该芯片可以与成本较低的低速MCU连接。高速信号处理是由芯片本部的射频协议处理的,NRF24L01提供SPI接口,数据率取决于单片机本身接口速度。在ShockBurst TM模式下,当接收到有效的地址和数据时IRQ通知MCU,随后MCU可将接收到的数据从RX FIFO寄存器中读出。
4.增强型ShockBurst TM模式
增强型ShockBurst TM模式使得执行双向链接协议更为容易、有效。一般典型的双向链接为:发送方要求接收端设备在接收到数据后应有应答信号,以便于发送方检测是否有数据丢失的情况,一旦发生数据丢失,则重新发送丢失的数据将该数据恢复。在增强型的ShockBurst TM模式下可以同时控制应答及重发功能而无需增加MCU的工作量。
2.1.3 彩屏模块
彩屏显示较传统12864等显示屏显示更为美观,可显示内容更多。但彩屏相对价格也比较昂贵,本次设计采用分辨率为320*240的2.8寸屏幕,控制器为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模式,根据使能信号的极性(高电平或是低电平)数据(DB17-0)将会根据这些同步信号被写入来阻止在数据更新的时候屏幕闪烁。
2.1.4 SD卡模块
单片机内部仅有最大61KB的ROM,而一副50*50像素的图片就有5000字节的数据,所以依靠单片机内部的存储容量是远远不够的,所以本次设计为了存储显示的图片,采用内存卡存储。并且由于后期产品升级的时候会有菜单信息等需要更新,所以将关于菜单方面的图片等存储在内存卡里面也,这样便于更换里面的文件。
SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC差不多,尺寸为32mm*24mm*2.1mm。SD卡与MMC卡保持着向上兼容。
SD卡内部主要分两部分:存储介质(nandflash)和主控制器。以51为核心而设计的主控制器,内部锁相环电路最高可以倍频到近100M。而作为存储介质的nandflash容量从1Gbit至128Gbit,甚至还高。
其主要分类有:
1.MMC卡:结构类似SD卡,采用MMC协议。
2.SD1.0:SD1.0卡最大可支持容量达2Gbyte。
3.SD2.0: SD2.0卡最大可支持容量达32Gbyte。
这三种卡的协议是向上兼容的。也就是说SD2.0可以兼容SD1.0协议,SD1.0可以兼容MMC卡协议,即MMC协议的指令可以操SD1.0、SD2.0,同理SD1.0协议的命令可以操作SD2.0卡。所以平时看到初始化SD卡的时候只用了CMD0和CMD1两条命令就可以让上面三类卡进入传输状态的原因:使用MMC卡协议初始化时只定义了CMD0和CMD1。
SD卡接口支持SD和SPI两种模式。在SD模式下采用4线并行模式,占用更多的端口。一般为提高传输速度,多媒体存储设备都会采用此种接口,而SPI模式更适合于低端MCU的使用,传输速度有限。
图2-4 SD卡引脚封装
2.1.5 触屏模块
基于目前主流的输入方式是触屏输入,本次设计采用触屏输入方式一方面是为了迎合趋势,另一方面采用此种输入方式可大大简化硬件电路设计,且输入的信息可根据软件而定制,比传统的键盘输入方式更为灵活。
由于价格的原因本次设计采用电阻屏,驱动芯片利用集成的XPT2046。电阻触摸屏的工作原理主要是通过压力感应原理来实现对屏幕内容的操作和控制的,这种触摸屏屏体部分是一块与显示器表面非常配合的多层复合薄膜。
面板(PET)
下电极(ITO膜或ITO玻璃)
OCA光学胶
背板(PC等)
键片
上电极(ITO膜)
OCA光学胶
图2-5 电阻式触屏结构
不同线制的电阻屏坐标计算方法也不一样,我所采用的是四线电阻屏。
当有物体施加一定的压力在触摸屏表面时,导致上层的ITO导电层发生形变与下层的ITO层发生接触,该结构可等效为图2-6Y-
X-
Y+
X+
所示电路。
图2-6 触摸时等效电路
可分为如下两步计算触点的X,Y坐标:
1.计算X坐标,在电极X+端施加驱动电压Vdrive,X-电极接地,测量引出端Y+的电压,由于ITO层均匀导电,Y+端的电压与Vdrive电压之比等于触点X坐标与屏幕的宽度之比,即
2.计算Y坐标,在电极Y+端施加驱动电压Vdrive,Y-电极接地,测量引出端X+的电压,由于ITO层均匀导电,X+端的电压与Vdrive电压之比等于触点Y坐标与屏幕的高度之比,即
驱动芯片XPT2046是一种典型的逐次逼近模数转换器(SAR ADC),包含了采样/保持、模数转换、串口数据输出等功能。同时芯片集成有一个2.5V的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046可以单电源供电,电源电压范围为2.7V~5.5V。参考电压值直接决定ADC的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入1V~VCC范围内的参考电压(要求外部参考电压源输出阻抗低)。X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分模式。选择VBAT、Temp和AUX时可以配置为单端模式,作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。
在有触摸动作时的坐标转换由XPT2046完成,在得到坐标值后,会向MCU发出IRQ通知信号,单片机读取数据后经转换程序,转换为屏幕上对应的像素点,这样就完成了一次触屏取样过程。
2.1.6 语音模块
本系统在设计时提出语音提示,这是一款人性化的产品所必须的,并且在最后的设计中由于大量端口的复用,最后不得不放弃震动提示的功能,这也使得该模块的存在意义重大。
语音模块保持原来的设计思路,采用集成的WTV020-SD模块,可外置SD卡,将语音用特定软件转换成ad4格式后,再将语音数据按照顺序存储于SD卡内,单片机只需按照时序进行相应触发即可播放特定语音,使用方便,外围电路简单。
2.1.7 电源模块
设计中有单片机、TFT彩屏、触屏模块需5V供电,而SD卡、NRF24L01、WTV020-SD模块需3.3V供电,所以本系统电源模块中必须能同时提供5V、3.3V的电源。
其中5V采用LM7805稳压,而3.3V则采用AMS1117 3.3经5V降压产生,该电路技术也很成熟,只需在焊接引脚时需要注意一下。
2.1.8 传感器模块
由于单片机的刷屏速率不高,为了在不操作本系统时,丰富彩屏的显示内容,并且又能够显示一些实用信息而不占用过多的端口资源,所以采用单总线式温度传感器DS18B20。
所谓的单总线接口是指仅需一个端口引脚进行通讯,而无需外部器件,由数据线供电,待机功耗为零。测温范围为-55~+125℃,以0.5℃递增,温度以9位数字量读出,转换温度数字量时间为200ms(典型值)。用户可自定义非易失性报警温度,传感器报警搜索命令识别并标识超过用户所限定温度(温度报警条件)的器件。
DS18B20是这样测温的:用一个高温度系数的振荡器确定一个门周期,在这个门周期内,内部计数器对一个低温度系数的振荡器的脉冲进行计数,从而来得到温度值。计数器一开始被预置到对应于-55℃的一个值,如果在门周期结束前计数器到达0,则增加温度寄存器的值,表示所测得的温度大于-55℃。同时,将计数器复位到某个值,这个值由斜坡式累加器电路确定,用以补偿感温振荡器的抛物线特性。之后计数器又重新计数直到0,如果仍未结束门周期,将一直重复上述过程。
为了获得更高的分辨率可用下述方法。首先,读取传感器所测得的温度值,并将表示0.5℃位(LSB)的值从读取的值中截去,这个值叫做READ。然后再读取计数器中剩余的值,这个值是在门周期结束后所保留下来的值,这个值叫做REMAIN。最后,我们用到在这个温度下每度的计数值PER_C。用户可以用公式计算实际温度值。
2.1.9 串口模块
由于接收端需要和上位机进行通讯,所以需要应用到串口模块,串口通信的两种最基本的方式有同步串行通信方式和异步串行通信方式。同步串行是指SPI(Serial Peripheral Interface)的缩写,顾名思义就是串行外围设备接口。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是SPI接口。异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片。UART包含TTL电平的串口和RS232电平的串口。TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
本次设计采用异步串行通信方式。转换芯片使用美信(MAXIM)公司专为RS-232标准串口设计的MAX232芯片,使用+5V单电源供电。
图2-7 MAX232内部电路及外围接口电路
第三章 硬件电路设计
3.1主控制器模块
单片机最小系统做为整个开发板的控制中心,控制各个外围电路协调工作,完成系统设计的功能。单片机工作时需要为其焊接一个最小应用系统板,其上电路应包括复位电路、时钟电路。
图3-1 51最小系统板原理图
外部RST引脚复位就是从外部向RST引脚加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位管脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态,将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正常工作。
时钟电路负责为单片机提供能源。XTAL1内部时钟电路反相放大器的输入端,接外部晶振的一个引脚。当直接使用外部时钟源时,此引脚接外部时钟源的输入端。XTAL2内部时钟电路反相放大器的输出端,接外部晶振的另一引脚。当直接使用外部时钟源时,此引脚可浮空,此时XTAL2实际将XTAL1输入的时钟进行输出。我用的是典型的时钟电路,时钟从XTAL1进再从XTAL2出来。
上图的第40、20引脚分别接电源的Vcc、Gnd,负责为单片机供电。第31引脚为内外存储器选择引脚,本系统中将其拉高,选择内部存储器,此时PSEN、ALE引脚可浮空。由于PO口默认为高阻状态所以为PO口加上上拉电阻。
3.2无线模块
无线模块根据要求用NRF24L01,该模块的电路如图3-2。
图3-2 NRF24L01应用电路
将上述电路焊接好并通过预留的插针连接到单片机,这样将无线模块与最小系统板通过拔插的方式连接,这样无论在硬件还是在软件上改变单片机与其连接的引脚时都非常方便。
图3-3 预留的引脚
VCC脚所接电压范围为1.9V~3.6V之间,而不能在这个区间之外,大于3.6V将会毁坏该模块。推荐使用电压3.3V左右。除了电源VCC和接地端之外,其余引脚均可直接和普通的5V单片机IO口直接相连,无需电平转换,当然这个模块也更加适用于3V单片机了。
在硬件上面没有SPI的单片机同样也可以控制本模块,单片机用软件模拟SPI通讯协议,用普通IO口即可。
3.3 TFT彩屏模块
TFT彩屏模块利用购买的现成模块,利用FPC接口将其与单片机进行连接。
图3-4 FPC接口
该模块采用并行数据传输方式,DB0~DB7、DB10~DB17为其数据端口,占用单片机大量端口,使得单片机仅有的32个通用I/O引脚一下子用去16个,剩余模块的端口资源所剩无几,这也为之后的单片机编程提出要求,需要统筹规划各模块,否则对于复用的端口易引起冲突。
引脚名称
功能
CS
片选
RS
数据/命令
RW
读
RD
写
DB0-DB7
数据低8位
DB10-DB17
数据高8位
LED
背光-极
LED_K
背光+极
VCC
TFT电源+
GND
TFT电源-
表3-1 FPC接口引脚说明
3.4 SD卡模块
SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、MOSI、MISO进行数据通信。SD方式的数据传输速度比SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。
图3-5 SD卡应用电路
SD卡的工作电压是3.3V,并且若用5V单片机直接驱动SD卡时需要为各端口加一限流电阻。
表3-2 SD卡引脚说明
引脚编号
SD模式
SPI模式
名称
类型
描述
名称
类型
描述
1
CD/DAT3
IO或PP
卡检测/数据线3
CS
I
片选
2
CMD
PP
命令/回应
DI
I
数据输入
3
VSS1
S
电源地
VSS
S
电源地
4
VDD
S
电源
VDD
S
电源
5
CLK
I
时钟
SCLK
I
时钟
6
VSS2
S
电源地
VSS2
S
电源地
7
DAT0
IO或PP
数据线0
DO
O或PP
数据输出
8
DAT1
IO或PP
数据线1
RSV
9
DAT2
IO或PP
数据线2
RSV
注:S:电源供给
I:输入、O:采用推拉驱动的输出
PP:采用推拉驱动的输入输出
本系统设计时只是希望将SD卡作为一个大的存储器,实现简单的扇区读写,没有引用复杂的文件系统,那样无疑会增加软件的编写难度,也并没有必要。
用51单片机操作SD实现对它的读写,最核心的是它的时序,采用SD方式或SPI方式,也具有不同的操作方法。SD方式提供更大的总线数据带宽,但占用的端口也更多,所以本次设计采用SPI方式。
3.5 触屏模块
本次设计中采用的是四线电阻屏,XPT2046的典型应用电路如图3-6。PENIRQ变低并作为处理器的中断信号。在测量X、Y和Z坐标的过程中,XP输入将与PENIRQ 内部上拉电阻分离,这样可以避免来自这个内部上拉电阻的漏电流流过触摸屏,同时也避免了误差。
此外,在X、Y和Z坐标测量中,PENIRQ被禁止,输出为低电平;在测量VBAT、AUX和temp过程中,PENIRQ 被禁止,输出为高电平。如果最后写进XPT2046的控制字包含了PD0=1,笔中断输出功能禁止,不能监测触摸屏上触摸动作。在这些情况下,要重新使能笔中断输出功能,需把带有PD0=0的控制字写进XPT2046。如果在最后写入的控制字中包含了PD0=0,笔中断输出将在这次转换结束后使能。转换结束发生在输出转换数据位1时的DCLK时钟的下降沿。建议无论在任何时候,处理器在发控制字给XPT2046之前都要屏蔽PENIRQ的中断,以避免错误的中断的触发。
图3-6 XPT2046应用电路
3.6 语音模块
语音模块采用购买现成的WTV020-SD模块,这是一款大容量存储类型的可重复擦写语音内容的语音模块,最大可外挂容量为1GB的Micro SD卡。能加载AD4格式语音和WAV格式语音。
WTV020-SD模块
SD卡存储器
控制端
音频输出
BUSY输出
图3-7 WTV020-SD应用方框图
由于本设计中需要用单片机控制其语音播放,可利用该模块的二线串口控制模式来达到控制目的,封装好的模块其应用电路图如图3-8。
图3-8 WTV020-SD应用电路
音频信号选择从SPK+、SPK-端输出到扬声器。该模块可直接驱动0.5W扬声器。但由于没有找到小功率的扬声器,故在SPK+后加了LM386功放电路,增益200,以此来驱动2W的扬声器。
选择二线串口控制模式,脉冲触发,由MCU或按键对I/O口进行控制。I/O口P02、P03、P07分别为下一曲、上一曲、播放/停止功能,P04为CLK输入,P05为DI输入,P04、P05组成二线串口控制模式。
SD卡支持根目录文件读取方式,就是说,只把文件放置到SD卡的根目录就可以了。文件名为十六进制数据,包括WAV、AD4格式音频文件均如此,如0000.AD4、0001.AD4等。最多可读取到前512个音频文件。按键类型控制模式进行控制时,如点击“下一曲”可触发下一段音频,按文件名的数据顺序进行触发。并口模式和二线串口模式则直接发送文件名的二进制数据,进行触发播放语音。焊接按键主要是为了测试用,也可不用焊接。
3.7 电源模块
本次设计中需要有5V和3.3V供电电路,其中5V供电采用LM7805,而3.3V采用AMS1117 3.3稳压芯片。并且焊接了一个开关和电源指示灯,方便操作和观察
展开阅读全文