2 系统总体设计方案及各模块选型
2.1 系统的总体设计方案
本系统所设计的数据采集系统功能结构,主要是应用于采集健身自行车的基本数据,使得健身自行车的运行状态变得更加可视化,系统的运行模式为:以STM32作为主要控制芯片,对各个模块采集到的数据进行处理后显示到显示模块上,对采集到的电流模拟信号以及通过ADC单元转换为数字信号,待数据稳定后发送到显示模块显示,系统在空闲时将实时地显示时间以及周围环境的温湿度的变化,当检测到周围的温湿度不在正常的范围内时,此时告知警报模块做出警报;当系统发现自行车转速不为空时,系统将切换到采集自行车数据的模式中,该模式下仍然会有实时时间的显示以及温湿度的检测,增加新开启的时钟以对采集到的自行车车速以及电流等数据进行计算后得到实时的数据发送到显示模块显示,总体的系统框图如下(图2.1)所示。
图2.1 总体系统框图
2.2.4 显示模块选型
目前嵌入式设备中,显示模块只要有LED灯显示,LCD屏幕显示以及OLED显示,其中LED灯显示主要应用于简单的数字或简单的字符显示,而由于LCD屏幕比较大,所以LCD屏幕可以显示比较复杂的图形界面,而且LCD屏幕色彩显示比较丰富,故LCD屏幕在手机等电子设备上应用比较广泛。OLED屏幕目前也是非常流行,从显示效果上面来说OLED屏幕优于LED和LCD屏幕,而且OLED屏幕更加节能,所以价格上来说OLED屏幕相对前两者来说都略微显得高。但是由于本次设计的系统显示的多数是文本类的信息,类似于电脑的终端,所以对显示屏幕的大小要求不高,基于前面三种显示方式来说,此处选用OLED更为恰当。本文选择的OLED屏幕如图2.5所示。
图2.5 OLED屏幕模块
3 系统硬件连接设计
3.1 STM32F407XX芯片简介
STM32系列芯片目前被广泛应用于各行各业,包括汽车行业,变电站等等,STM32系列是由ST公司开发的一种性能高,功耗低,价格合理的微控制器。STM32的ART技术使得其芯片程序执行效率大大提高,相对于传统的51单片机,STM32可以说是一个质的提高,其高速的运算能力以及丰富的外设都是51单片机不可比拟的。
STM32F4具有丰富的定时器以及多大一百多个引脚,比起STM32F1多了两个32位的定时器,使得STM32F4拥有更加持久更加精确的定时,更多的引脚使得STM32F4有了更强的可拓展性。并且拥有多重AHB总线矩阵和多通道DMA:支持程序执行和数据传输并行处理[3],数据传输速率非常快,由于这些优点,STM32目前在嵌入式市场也是非常流行,如图3.1为STM32F407ZGT6。
图3.1 STM32F407ZGT6芯片
3.2 温湿度传感器模块
如图3.2所示,DHT11模块有3个引脚,其中一个引脚用于接VCC(5伏电压),一个引脚用于接GND,剩下的那个引脚是DATA引脚,也就是数据传输的引脚,本次将DHT11的DATA引脚接与STM32的PG9引脚,也就是可以通过读取PG9引脚的值来获取DHT11获取到的数据,硬件连接如图3.2所示。
图3.2 DHT11硬件连接
3.6 其他警报模块
基于第二章的选型,又根据LED灯和蜂鸣器的特点,由于LED灯和蜂鸣器直接给对应的连接引脚即可实现度其控制,故选用引脚时可选用功能较为简单的引脚,结合本次的控制片,本次将两个LED灯分别连接到PF9,PF10引脚,蜂鸣器连接到PF8引脚,硬件连接图3.6所示。
图3.6 警报模块硬件连接
4 系统软件设计
4.1 系统开发软件介绍
由于基本控制器基于STM32F4 ARM内核,因此许多基于ARM的嵌入式开发环境都可以应用于软件程序开发。常见的ARM开发工具是MDK和IAR Evaram。本次选择MDK作为系统开发工具。这是ARM在2007年发布的嵌入式开发工具。此环境将LTV的优势与ARM Real View编译器工具RVCT 3.1的优势结合在一起。ARM嵌入式开发的主要工具MDK是为数不多的完全支持皮质的工具之一。它是使用STM 32F40X系列处理器和外围接口,以获取完整的数据手册[6]。图4.1显示了下面的开发环境。
图4.1 KeilMDK开发环境
4.2 系统程序设计
4.2.1 温湿度传感器模块程序设计
DHT11温湿度传感器模块与主制芯片采用的是单总线协议通讯方式,即是,主控芯片发送一次复位信号请求DHT11传输数据,DHT11接受到主机复位信号后从低功率模式转换到高速模式,当主控芯片复位信号结束后,DHT11立即向主控芯片发送响应信号,同时将总线电平拉高,准备开始数据传输。DHT11传输数据有规定的协议,一次完整的传输包括40bit也就是5个字节的数据,其中8bit湿度整数部分数据+8bit湿度小数部分数据+8bit温度整数部分数据+8bit温度小数部分数据以及8bit的数据校验数据,校验位的数据如果为前4个字节数据相加[7],则表示数据传输正确,否则则表示数据传输异常,数据传输正常且主控芯片无再次发送复位信号请求数据时,DHT11将自动切换回低功率模式,当出现异常时主控芯片应再次发送复位信号请求DHT11传输数据,连续5次接受到异常数据时,主控芯片将视DHT11模块异常,短时间内不再向DHT11发送数据请求。
DHT在传输数据时,有严格的实习要求,在操作时序上,应严格按照时序图进行操作,一般分以下几个步骤进行:
1)主控芯片发送复位信号(时序图如图4.2所示)
首先,主控芯片主动拉低总线电平(至少保持18ms),然后拉高总线电平(至少保持20-40us),此时主控芯片已完成复位信号的发送。
2)主控芯片发送完成复位信号后,DHT11发送应答信号(时序图如图4.2所示)
当DHT11监听到主控芯片的复位信号时,立即切换到高速运作模式,同时向主控芯片发送响应信号,此时DHT11将总线电平拉低80us(由于误差无可避免,实际开发中很难保证电平拉低的时间为80us,所以允许时间波动,当低电平时间为20-100us时,即可视为DHT11响应成功),告诉主控芯片数据准备完成,随之DHT11拉高总线电平80us(在主控芯片接受到响应信号时,立即会监听总线,当监听到总线电平有80us的高电平时,即认为DHT11已做好数据传输的准备),做好开始传输数据的准备。
图4.2 DHT11起始及相应时序信号图
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。