基于STM32的智能笔筒设计
扫描二维码
随时随地手机看文章
笔筒是书案上的重要文具之一,具有较高实用价值与艺术价值,在某种意义上讲也是文化的一种载体。传统笔筒多采用竹木制或瓷制,一旦制作完成就难以改变,且功能单一。目前,笔筒主要被用在办公场所,那种只具有观赏价值或只能放笔的笔筒不能满足工作需要。
针对上述情况,本文基于STM32F103VET6单片机设计了智能笔筒。该设计充分利用此单片机的FSMC,SDIO和SPI等片上资源,结合MP3解码技术、图像解码技术和蓝牙通信技术等多种技术实现笔筒的智能化。此笔筒不仅满足常用的功能,且还可在液晶屏上查看电子相册、听MP3歌曲、玩小游戏。此外还可显示周围环境的温湿度和光线强度,具有节假日和预设提醒等功能。
1 智能笔筒硬件设计
1.1 硬件总体结构
系统硬件以STM32F103VET6为核心,硬件框图如图1所示。
传感器感知模块包括温湿度传感器、光敏传感器和人体感应传感器,用于获取当前环境的参数;声光模块包括7色LED灯和蜂鸣器,使笔筒更加绚丽并具有提示功能;以触摸屏为核心的人机交互模块,可实时显示当前温湿度、光强和时间,各应用程序的切换,系统参数设置以及系统异常状态的报警提示,各个模块的自检和测试的控制。此外,支持热插拔的设备有传感器感知模块、存储模块和蓝牙模块。
1.2 存储模块电路设计
该设计选择SD卡作为存储模块。目前SD卡已经成为消费设备中技术最成熟、应用最广泛的一种存储卡,具有低价格、大容量、高性能、安全、读写速度快等多种优势。SD卡支持的总线模式为SD模式和SPI模式,而STM32VET6具有一个SDIO接口,故设计中采用SD模式,SD卡连接在SDIO接口上。为了使SD卡支持热插拔,SD卡的接口电路如图2所示。
此电路中,增加一条I/O口控制线SD_IRQ,用于产生中断,默认状态SD_IRQ为高电平,当插入SD卡后,SD_IRQ变为低电平,且只要卡槽中有SD卡,此线就一直为低电平。通过添加这一条控制线,系统实现SD卡的热插拔,并可检测SD是否存在。
1.3 MP3解码模块电路设计
VS1003B作为本设计的MP3解码芯片,是一个单片MP3/WAM/MIDI音频解码器ADPCM解码器,拥有一个高性能低功耗的DSP处理器核VSDSP,5kB数据缓冲区,0.5kB的数据RAM,支持SPI总线传输数据,有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。根据VS1003B数据手册设计的MP3解码电路,由STM32主控模块的接口SPI2控制,解码相应的音频文件并播放MP3音乐,其中Speak是耳机接口,MP3/LEFT控线连接音频驱动电路。
1. 4 传感器模块热插拔电路设计
热插拔(Hot—Plugging或Hot Swap)即带电插拔,最早出现在服务器领域,是为了提高服务器易用性而提出的。热插拔根本目的:系统在允许不停机或很少需要操作人员参与的情况下拔出故障模块及插入备份模块,且不影响系统运行,以便维修故障或重新配置系统,实现故障恢复和系统重新配置,提供高可靠应用。本设计中传感器感知模块包括温湿度传感器、人体感应传感器和光线强度传感器,在系统电路设计时,为了方便检测各个传感器是否存在和是否正常工作,方便检修更换,故引入了热插拔技术,支持热插拔的硬件电路如图3所示。在电路中各个传感器接口电路均有一个中断控制线,默认状态下中断线为高电平,当插入相应的传感器模块后,此控制线由高电平变为低电平,引起中断,并配合相应的软件即可实现热插拔技术。
1.5 蓝牙通信模块
TI公司的CC2540采用Bluetooth SpecificationV4.0 BLE协议,支持AT指令,工作频率为2.4 GHz,具有AES-128硬体加密/解密功能。同时考虑到本设计的无线传输及其低功耗需求。因此选择CC2540为主控芯片的蓝牙模块作为本设计的蓝牙通信模块。该模块与STM32主控模块的接口为USART2,默认波特率设置为115 200 bit·s-1,8 bit数据位无校验位,无停止位,工作模式为从设备模式,也可通过人机交互模块设置其波特率等参数。笔筒主要通过蓝牙模块与智能设备进行交互,接收智能设备发送的数据包,进行数据包校验和解码,并对主机做出答复,接收的数据包格式为包ID+包长度+数据+校验位,校验方式为和校验。
2 系统软件设计
为使该设计成为“娱乐+实用”的电子产品,软件包括文件系统、图片和MP3解码、蓝牙通信、图形界面设计、传感器驱动、AD采样等。图4是该设计的软件流程。按系统设计要求,系统开机首先对各个模块自检,如出现异常情况,跳转异常状态,并给用户做出相应的提示,否则将在正常开机同时初始化文件系统。接着读取触摸屏的校正参数,若无,则重新校正触摸屏并保存,最后进入主循环。
2.1 文件系统
FatFs是一个通用的文件系统模块,具有清晰的层次结构,如图5所示,用于在小的嵌入式系统上实现FAT文件系统。FatFs的编程遵守ANSI C格式语法,故FatFs独立于具体的硬件,可在不做修改或少量修改的情况下移植到常用的微控制器,如51、PIC、AVR、ARM等中。最重要的是该文件系统通过修改配置文件可实现任意裁剪,且支持中文长文件名;采用分离缓冲FAT结构的技术,可快速访问多个文件;支持多个驱动器和分区;支持FAT12、FAT16和FAT32文件系统。因此设计移植的文件系统为FatFs,支持读写和中文长文件名,存储介质为SD卡,主要用于存放系统配置文件,系统图标和MP3、图片等应用文件,移植步骤见文献。
2.2 电子相册设计
电子相册与传统相册相比具有无法比拟的优越性,如图、文、声、像并茂的表现手法;随意修改编辑的功能;具有欣赏方便、选择性强、易于保存、生动活泼、成本低廉、内容易换等优点。因此,在智能笔筒中也添加了电子相册功能,可让用户在闲暇休息时观看图片,也可将自己喜爱的图片设为背景。系统中电子相册是触摸操作,向左或向右滑动彩屏实现翻页,具有自动播放等功能,程序流程图如图6所示。首先从文件系统中读取图片文件,判断文件的格式,然后解码,最后把读到的文件送到相应的解码算法中,解码后的图片可自动调整尺寸显示在彩色液晶屏上。
2.3 MP3播放设计
在本设计中,STM32微处理器是播放器的“大脑”,用来接受用户选择的播放控制,从文件系统中读取MP3文件,将当前播放的歌曲信息显示在液晶屏上。然后向MP3解码芯片VS1003B发出指令,使其准确地处理音频信号,MP3播放器的软件框图如图7所示。此外MP3播放器的控制界面含有上一曲、下一曲、暂停、播放等控件,其程序的设计流程和电子相册的类似。
2.4 系统热插拔程序设计
按系统设计要求,热插拔的程序在中断函数里执行,这里以传感器感知模块中的温湿度传感器SHT11程序为例。由硬件图可知,插入设备时,中断线由低电平变为高电平,拔出时反之,且均可产生中断信号,然后执行中断函数。SHT11中断程序的流程如图8所示,首先进入中断函数,并通过延时来消除电平抖动的影响,然后判断引脚的高低电平,最后做出处理。
3 系统测试
利用STM32单片机资源丰富、功能强大的优势,最终设计出一款基于STM32单片机的智能笔筒,如图9所示,并对系统进行了测试,测试结果如表1和表2所示。
表1为系统的热插拔的测试结果,SD卡的失败率较高,驱动程序需要进一步改进。表2为系统的稳定性进行测试结果,开机未出现异常,电子相册出现死机达4%,MP3死机为2%,使用蓝牙控制游戏出现死机高达8%,但复位后系统继续可正常运行。经观察和分析原因可能出现在软件上,JPG解码算法比较复杂,而蓝牙串口接收的数据包容易堵塞,需要进一步优化代码。
4 结束语
根据测试的结果,本文设计的智能笔筒达到了设计要求,稳定可靠,实现了实时显示温湿度和光强,播放MP3,电子相册显示等功能,并可通过蓝牙可传输文件,其它智能设备可通过蓝牙控制游戏的进行。此外,也可作为物联网的一个终端,获得数据并上传。