基于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 文件系统
FatF
- STM32学习笔记:在IAR中建立FWlib 3.0项目(08-13)
- 基于STM32单片机的火控系统信号采集测试(11-14)
- 基于LabVIEW的STM32调试平台设计(11-17)
- 基于STM32的LF RFID识别系统设计(11-25)
- STM32中断与嵌套NVIC快速入门(01-25)
- 基于TLC5947的旋转LED屏显示控制器设计(01-25)