1.开发背景 随着显示器件的多样化,人机交互界面也在不断地发生变化,如今在TFT显示屏上进行图标化的功能管理已成为一种趋势,为此就以兆易的新品GD32F450为硬件平台来构建一个以图标来进行功能管理的应用系统,该系统的主要功能如图1所示,整体构成如图2所示。
图1 功能结构图
图2 整体构成图 功能规划: 共设置如下功能:乐曲、PWM、RTC、波形、环境、控制、设置、图像。 乐曲:利用MCU内部的串行通讯功能向MP3语音模块发送指令,进而控制该模块实现乐曲欣赏。借助菜单,可通过按键向上或向下选择乐曲。在播放过程中,还可通过按键来调节音量。 PWM:利用MCU内部的定时器实现PWM调节控制,可通过板载的LED来观察效果,同时在TFT屏上显示出LED的亮度等级。 RTC: 利用MCU内部的RTC实现生肖纪年的电子时钟计时功能,并可通过2种显示效果。波形:当前的功能是读取正弦函数值来绘制波形图,与A/D相配合可显示采集信号的波形。在添加D/A的情况下,则可输出波形信号。 环境:在添加DHT11的情况下,用以进行温、湿度的测控及温湿度曲线的绘制。 控制:通过按键来控制LED及继电器的状态变化以实现电器控制。 设置:在RTC的配合下,可实现多时段的提示或控制处理。此外与MP3语音模块相配合,可实现智能语音药盒的提示功能。 图像:可实现图像的显示,受Flash大小的制约,在程序达到一定规模时,512K的Flash难以存放240*320*16位色的位图,需更换为3M的Flash芯片。 在配SD卡及文件系统的情况下,能对数码相框功能进行支持;在配OV7670的情况下,可对视频显示或拍摄显示进行支持。 2.硬件设计 该系统的整体硬件结构如图3所示,主要由显示模块、语音模块、继电控制模块及传感器模块组成。
图3 原理构成图 1)显示部分 显示部分是通过SPI 接口的TFT屏来实现的,这样比较节省GPIO资源。若将NC空脚接3.3V电源,则可直接将TFT屏插入Arduino接口来使用,从而省去连线的问题,其连接关系如图4所示。
2)语音播放部分 语音播放部分主要是通过MP3播放模块来实现,这样有利于节省MCU资源并可形成并行处理关系。为节省连线,这里采用通讯方式来控制MP3播放模块。MP3播放模块的引脚功能如图5所示,其与MCU的连接关系为: RX-PD5 TX-PD6 BUSY-PD3
图5 MP3播放模块引脚图 3)控制部分 为进行电器的控制,可采用带光隔的继电器模块,以利于防止继电器对MCU的干扰。 4)传感器部分 为进行物理信号向模拟信号的转换,可视需要来选取不同的传感器,如火焰传感器、气体传感器、心率传感器等。此外,采用单总线的温湿度传感器DHT11也是很好的选择。 3.软件设计 1)界面设计 界面是人机交互的窗口,系统的主界面如图6所示,主要以图标的形式来进行功能调用,并通过反显的文字提示来指示当前的功能。 主菜单下的部分界面如图7~图12所示。
图6 主界面
图7 乐曲播放界面
图8 生肖纪年电子时钟界面(方式1)
图9 生肖纪年电子时钟界面(方式2)
图10 心率波形检测
图11多时段提示与控制界面
图12 图像显示界面 2)功能实现 为便于功能管理,可采用模块化设计以便于功能调用。此外,功能的组合使用也能够增强系统的功能,例如在启动RTC计时功能后再执行系统设置功能,则可实现多时段的定时处理或语音提示功能(如智能语音药盒功能)。 在功能设计中,既涉及到外部功能模块的使用,也涉及到MCU 内部的RTC、tiME、UART、GPIO、A/D等,具体内容可参考所附的源代码及相关的帖子,这里就不再多加介绍。 4.功能测试 在功能测试中,测试方法的选择是较为重要的,应合理的选择。在进行多时段提示功能的验证时,所采用的方法是以“分”替代“时”来进行验证,否则一个周期验证下来会是件相当耗时的工作。该测试的验证过程如图13~图16所示,说明设计是正确的。
图13 第一时段LED控制
图14 第二时段LED控制
图15 第三时段LED控制
图16 第四时段LED控制 此外,为了进行MP3播放模块的控制,可先通过虚拟串口来验证指令发送功能,待功能得到验证后再将虚拟串口通讯改为其它通道的通讯则可以节省许多验证时间。虚拟串口的验证效果如图17所示,说明指令发送是正确的。在连接MP3播放模块后,顺利地证明了控制的有效性,如图18所示。
图17 Play指令测试
图18 MP3播放测试 1.结语 尽管该设计已经初具了一定的系统规模,但受时间和技术水平的限制,还是存在一些待补充和完善的地方,如在DHT11进行温湿度测控方面,不知是否与传感器模块有关,检测的温湿度总是固定值;此外也没能对基于SD卡的文件系统完成移植,也就没能实现数码相框功能,这些只能留待以后花时间再继续补充。
|