版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机控制的智能开关硬件和软件系统设计案例目录TOC\o"1-3"\h\u26196第1章硬件设计 1286141.1硬件整体架构 150241.2STM32最小系统电路 2248181.2.1复位电路 387141.2.2时钟电路 3103801.2.3启动电路 4104531.2.4下载电路 5227781.3蓝牙通信电路 5123491.4WiFi通信电路 6172271.5舵机控制 840461.6模式选择电路 9267971.7状态指示灯 9298311.7.1系统LED灯 9226641.7.2使能LED灯 9299621.7.3RGB模块 10267231.8电源电路 1031811.8.1CKCS-PB01充放电电路 10235511.8.2USB供电电路 11226291.8.3降压电路 1118741.9本章小结 117642第2章软件设计 123241.10开发环境 12284661.10.1MDK5 12300391.10.2“我的硬件”微信小程序 13270851.11程序流程设计 14214181.11.1主程序流程 14277851.11.2蓝牙模式传输 15230281.11.3WiFi模式传输 16305421.11.4数据解析与执行 1913801.12本章小结 20第1章硬件设计硬件整体架构硬件设计是智能开关面板控制器总体设计中非常重要的一部分,它在很大程度上影响着整个控制器的质量。在选择控制器的硬件时,始终围绕着安全、稳定、低成本、方便用户使用和日后升级简单的原则。硬件设计的整体架构主要包括主控平台、扩展模块和外围电路。硬件组成框图如图3-1所示。硬件组成框图STM32最小系统电路综合性能和成本考虑,在本设计中选用意法半导体公司生产的一款基于Cortex-M3核心的32位增强型ARM微处理器STM32F103C8T6作为核心处理器。在该芯片命名上,“STM32”代表产品系列是基于ARM的32位的微控制器,“F”代表产品类型是通用类型,“103”代表产品子系列是增强型,“C”代表引脚数目是48脚,“8”代表闪存存储器容量为64K字节,“T”代表封装类型为LQFP(Low-profileQuadFlatPackage),“6”代表工作温度范围为-40°C~85°C。该芯片引脚图如图3-2所示。STM32F103C8T6的主频频率为72MHz。在定时器方面,其拥有1个高级控制定时器(TIM1),3个通用控制定时器(TIM2、TIM3、TIM4);在通信接口方面,其拥有2个SPI(SPI1、SPI2),2个IIC(IIC1、IIC2),3个串口(USART1、USART2、USART3)、1个USB(USB2.0全速)和1个CAN(2.0B主动);其它资源还包括20K字节的SRAM,37个GPIO端口,2个12位的ADC等,此外使用ST-Link下载器可以很方便的对该芯片进行程序烧录,极大的简化了下载步骤。为了实现最小系统,还需要包括复位电路、时钟电路、启动电路、下载电路等外围辅助电路。STM32F103C8T6引脚图复位电路复位电路产生外部复位,可在系统运行出现错误时或其它情况下使用。当SW1按键按下时,RESET端被拉到接地端,高电平变为低电平,低电平输入到单片机的NRST引脚产生系统复位。复位电路时钟电路时钟电路相当于单片机的心脏,控制着单片机的工作节奏。单片机外接晶振,以外部晶振为基础,通过分频或倍频两种方式得到其它的时钟频率。电路中32.768KHz晶振产生的振荡频率经过分频器15次分频后可以得到1Hz信号,即215=32768,1Hz也就是1秒钟,晶振两端分别连接PC14和PC15引脚。8MHz晶振产生的振荡频率经过倍频后使单片机达到72MHz的主频率,晶振两端分别连接OSCIN和OSCOUT引脚。电路图如图3-4所示。时钟电路启动电路每个STM32的芯片上都有BOOT0和BOOT1引脚,通过跳线帽连接到高低电平来配置单片机的启动模式,启动模式说明如表3-1所示,电路两端分别连接单片机的BOOT0和BOO1引脚。若使用串口下载程序需配置启动模式为系统存储器模式,正常使用时启动模式为用户闪存存储器模式。电路图如图3-5所示。启动模式说明BOOT0BOOT1启动模式说明低-用户闪存存储器内部FLASH高低系统存储器用于串口下载高高SRAM用于在SRAM中调试代码启动电路下载电路配合ST-Link下载器,使用SWD(SerialWireDebug)接口,只需要四根杜邦线就能实现程序的下载与调试。电路图如图3-6所示。下载电路蓝牙通信电路蓝牙在设计中作为控制器的近距离通信方式。在前文提到选择蓝牙4.0版本的前提下,综合性能和成本考虑,在本设计中选用MLT-BT05作为蓝牙通信模块。该模块使用了TI公司生产的一款CC2541芯片,它提出了一款针对蓝牙低功耗的片载系统解决方案,非常适用于需要超低功耗的系统,除待机功耗低之外,该芯片还具有连接距离远、反应速度快等优点。MLT-BT05支持主从模式,并板载红色LED指示灯,用来指示蓝牙连接状态,指示状态说明如表3-2所示。在未建立蓝牙连接时模块默认通过AT指令设置串口波特率、名称、配对码等,设置的参数可以掉电保存,蓝牙连接后模块自动切换到透传模式。在本设计中选择从模式。指示状态说明模式LED显示模块状态主模式均匀闪烁(300ms)搜索及连接中常亮建立连接从模式均匀慢速闪烁(800ms)等待配对常亮建立连接MLT-BT05的引出接口包括VCC、GND、TXD、RXD、STATE、EN。VCC和GND为电源端口,使用3.3V供电;TXD是发送端口,连接单片机的RXD,RXD是接收端口,连接单片机的TXD,因为单片机的USART1串口(TXD:PA9、RXD:PA10)需要与电脑连接进行串口打印与数据调试,所以这里选择使用USART2(TXD:PA2、RXD:PA3)串口进行通信;STATE引脚输出蓝牙模块的状态,高电平为已连接,其它状态为低电平;EN引脚搭配板载按键使用,若输入低电平,在模块处于休眠状态时,短按按键,模块将被唤醒至正常状态,在模块处于连接状态时,短按按键,模块就会主动发起断开连接请求。在本设计中未使用到STATE和EN引脚。该模块引脚连接图如图3-7所示。MLT-BT05引脚图WiFi通信电路WiFi在设计中作为控制器的远程通信方式。在前文提到选择2.4GHz频段的WiFi前提下,综合性能和成本考虑,在本设计中选用ESP-01S作为WiFi通信模块。该模块是ESP8266系列WiFi模块之一,是一款安信可科技自主研发设计的高性价比WiFiSOC模组。该模块支持标准IEEE802.11b/g/n协议,并内置完整的TCP/IP协议栈。用户可以使用这一模块向现有设备添加网络功能,也可以构建独立的网络控制器。ESP-01S支持Station、SoftAP、SoftAP+Station三种模式,并板载蓝色LED指示灯,供电状态下LED灯熄灭,数据交换时LED灯闪烁。在本设计中选择Station模式。模块上电后首先在波特率为74880bps下打印输出系统日志信息,如图3-8所示,然后波特率切换到115200bps下完成系统初始化,当输出Ai-ThinkerTechnologyCo.Ltd.ready字符串后,表明初始化完成,如图3-9所示,之后可通过AT指令对模块进行调试。74880bps下启动信息115200bps下启动信息ESP-01S的引出接口包括VCC、GND、TXD、RXD、RST、EN、IO0、IO2。VCC和GND为电源端口,使用3.3V供电;TXD是发送端口,连接单片机的RXD,RXD是接收端口,连接单片机的TXD,因为在同一时间,控制器只有蓝牙或WiFi一种模式工作,所以为提高代码的易读性和简洁性,这里与蓝牙模块共用同一个串口,即USART2(TXD:PA2、RXD:PA3)串口进行通信;RST是复位引脚,低电平复位,连接单片机的PB11引脚;EN是使能引脚,高电平使能,连接单片机的PB9引脚;IO0和IO2引脚通过高低电平搭配来选择模块的启动模式,启动模式说明如表3-3所示,在运行模式下,IO0和IO2引脚可悬空。该模块引脚连接图如图3-10所示。启动模式说明模式ENRSTIO0IO2下载模式高高低高运行模式高高高高MLT-BT05引脚图舵机控制舵机是一种位置(角度)伺服的驱动器,适用于需要角度不断变化并可以保持的控制系统。根据在本论文2.1中针对第1个问题所选用的第二种方案,综合性能和成本考虑,在本设计中选用SG90作为舵机模块,通过SG90模块摆臂的旋转来模拟人的开关动作。SG90模块的工作原理是控制信号从接收机通道进入信号调制芯片,获得直流偏置电压。其内部有一个参考电路,产生一个周期为20ms,宽度为1.5ms的参考信号,将得到的直流偏置电压与电位器的电压进行比较,得到电压差输出。最后,电压差的正负输出电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使电压差为0,电机停止转动。该模块的引出接口包括VCC、GND、IN。VCC和GND为电源端口,为保证扭力足够,使用5V供电;IN是信号输入引脚,连接单片机的PB1引脚,使用TIM3的OC4进行PWM信号输出。该模块引脚连接图如图3-11所示。MLT-BT05引脚图模式选择电路使用拨码开关进行模式选择,拨码开关一端连接单片机的PA8引脚,另一端接地,当PA8引脚检测到低电平输入时,选择蓝牙模式,其它情况下选择WiFi模式。当用户需要更改控制器模式时,可拨动拨码开关至相应模式,并按下复位按键使系统运行到更改后的模式。电路图如图3-12所示。下载电路状态指示灯控制器有三种状态指示灯,分别是系统LED灯、使能LED灯,RGB模块。系统LED灯系统LED灯提示控制器目前的状态,“灭”表示正在初始化,“快闪(间隔500ms)”表示处于蓝牙模式,“慢闪(间隔1s)”表示处于WiFi模式,通过控制单片机的PC13引脚输出低电平使系统LED灯点亮。电路图如图3-13所示。系统LED灯电路图使能LED灯使能LED灯提示WiFi模块的使能状态,“亮”表示已使能,“灭”表示未使能,通过控制单片机的PB9引脚输出高电平使使能LED灯点亮,此时ESP-01S的EN引脚也处于高电平使能状态。电路图如图3-14所示。使能LED灯电路图RGB模块RGB模块提示开关状态,“蓝色”表示复位状态,“红色”表示关状态,“绿色”表示开状态,该模块集成了3个发光二极管,引出接口包括R、G、B,GND。GND负责接地,R、G、B分别表示红色、绿色、蓝色,分别连接到单片机的PA6、PA5、PB0引脚,通过控制这三个引脚在不同时刻输出高电平来点亮其中一种颜色,也可通过3路PWM信号来控制每种颜色的亮度,搭配出其它颜色。该模块引脚图如图3-15所示。RGB模块引脚图电源电路电源电路分为三部分,分别是CKCS-PB01充放电电路、USB供电电路、降压电路。CKCS-PB01充放电电路CKCS-PB01搭配一节4.2V的18650锂电池使用,可升压输出5V电压,当电池电压不足时可通过Type-C接口对电池充电,同时支持边充电边放电。该模块板载4颗LED灯用来显示电池电量,并预留了外部按键接口,按键另一端接地时,短按一次按键控制开启电量显示和5V输出,短按两次按键会关闭电量显示和5V输出,在负载电流持续小于50mA时也将自动关闭输出,在本设计中未使用到该按键,直接通过开关控制输出。电路图如图3-16所示。CKCS-PB01充放电电路USB供电电路USB供电电路为最小系统板的供电电路,可提供5V电压,此部分仅在程序调试时作为供电端使用,电路图如图3-17所示。USB供电电路降压电路除舵机模块需要5V电源供电外,其余模块都是3.3V电源供电,所以需要将5V降压至3.3V。电路图如图3-18所示。降压电路本章小结本章主要介绍了智能开关面板控制器的硬件设计部分,涉及到STM32主控芯片以及外围辅助电路、蓝牙模块、WiFi模块、舵机模块、状态指示灯五个主要部分。第2章软件设计开发环境智能开关面板控制器的硬件平台已经搭建完成,接下来开始搭建相应的软件平台,在这一过程中,开发环境至关重要。MDK5在软件开发环境的选择上,对比目前比较常见的开发环境,最终选择了应用度最广的MDK5即KeiluVision5,它是目前针对ARM处理器,尤其是Cortex-M内核处理器的最佳开发工具。它具有代码提示和语法动态检测等实用功能,同时提供了一套丰富的固件库,本次使用了Keil.STM32F1xx_DFP.2.3.0.pack固件库,极大简化了程序编写步骤,该版本还向后兼容MDK4和MDK3等,便于对之前项目的移植。在编程语言上,该开发环境支持汇编语言、C语言等,为提高代码的可读性,可维护性,使用C语言完成对程序的编写,代码编译完成后,在配置好ST-Link下载器的基础上,使用“Download”按钮一键下载调试。KeiluVision5界面如图4-1所示。KeiluVision5界面“我的硬件”微信小程序本设计借助“我的硬件”微信小程序进行二次开发作为控制端APP。“我的硬件”是一款可自定义界面的微信小程序,通过添加和拖拽控件来完成界面的编辑,每个控件都有一个相对应的ID标识和数据,待控件被触发时,会通过提前设定好的通信方式发送出去,同时可选择记录日志信息。该小程序目前支持蓝牙4.0和MQTT两种通信模式,远近通信方式的搭配,全方位支持本设计的控制需求。小程序还提供了现成的MQTT服务器,所以只需要配置MQTT硬件端即可。开发流程如图4-2所示。开发流程图程序流程设计主程序流程在智能开关面板控制器的软件设计中,主控芯片STM32F103C8T6有很多模块需要驱动,这在开发过程中是最基础的部分,在程序开始的初始化部分主要包括时钟设置、中断配置、串口配置以及外设模块初始化等,串口在配置过程中还需设置串口的波特率,在这里串口1和串口2的波特率均设置为115200bps。系统初始化完成后,根据拨码开关确定使用模式,当用户需要更改控制器模式时,可拨动拨码开关至相应模式,按下复位按键,使系统运行到更改后的模式。整体流程如图4-3所示。主程序流程在本设计中主要使用定时器进行逻辑控制,提前设定了7个定时器,分别为定时器0~6。定时器0和定时器1负责系统LED灯两种不同闪烁状态,以定时器0为例,每隔500ms快闪烁指示当前处于蓝牙模式,开启定时器0后,首先执行以下代码设置标志位与参数:Time_Control.Timing_Flag[0]=0xff;Time_Control.OutTimeFlag[0]=0;Time_Control.TimingCount[0]=500;500ms计时结束即Time_Control.TimingCount[0]=0,此时产生超时中断事件,执行以下代码更新标志位:Time_Control.Timing_Flag[0]=0;Time_Control.OutTimeFlag[0]=0xff;所以只需要for语句循环检测0~6每个定时器,嵌套if语句判断Time_Control.OutTimeFlag[i]标志位是否为0xff,若是,执行定时器对应操作并清除该标志位,若否,跳过当前定时器对应操作。蓝牙模式传输蓝牙模块的默认模特率为9600bps,需要使用如下AT指令将模块波特率更改为115200bps:发送:AT+BAUD8\r\n返回:+BAUD=8\r\n OK\r\n蓝牙连接后,当串口2接收到数据时,运行串口2中断服务程序,并开启定时器5,然后立即执行定时器5对应的数据接收操作。整体流程如图4-4所示。蓝牙模式传输流程图WiFi模式传输WiFi模块的默认模特率为115200bps,与单片机串口2配置的波特率相匹配。运行WiFi模式时,首先开启定时器2并立即执行定时器2对应的连接服务器操作,其中涉及到的AT指令如下:(1)AT+CIPSTATUS:查询网络连接信息。模块返回接口状态,STATUS:2已连接AP,获得IP地址、STATUS:3:已建立TCP或UDP传输、STATUS:4:断开网络连接、STATUS:5:未连接AP,即当返回的字符串中含有“STATUS:5”字样时,说明当前未连接到无线接入点,则执行配网操作,若无该字样,则执行后续操作。(2)AT+CWMODE=1:设置当前WiFi为Station模式。(3)AT+CWSTARTSMART:开启SmartConfig,支持类型为ESPTOUCH、AirKiss。WiFi模块开启配网操作后,可通过“安信可科技”微信公众号提供的配网入口(即AirKis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递消防安全责任制度
- 建设单位制定施工现场进场见证复检制度
- 年级值班制度
- 【答案】《EDA技术与Verilog》(杭州电子科技大学)章节期末慕课答案
- 居家养老护理制度
- 雨课堂学堂在线学堂云《电子商务美工(安徽商贸职业技术学院)》单元测试考核答案
- 湖北医药学院药护学院《材料科学基础》2023-2024学年第二学期期末试卷
- 六安职业技术学院《工程项目与管理学》2023-2024学年第二学期期末试卷
- 农村财务收支制度
- 张家口学院《智能设备故障诊断与维修》2023-2024学年第二学期期末试卷
- 2026云南保山电力股份有限公司校园招聘50人笔试参考题库及答案解析
- 《智能网联汽车先进驾驶辅助技术》课件 项目1 先进驾驶辅助系统的认知
- 2024-2025学年北京清华附中高一(上)期末英语试卷(含答案)
- 引水压力钢管制造及安装工程监理实施细则
- 2025年全行业薪酬报告
- 辅助生殖项目五年发展计划
- 河北省石家庄第二中学2025-2026学年高一上数学期末联考试题含解析
- (2025年)qc培训考试试题(含答案)
- DBJ50-T-271-2017 城市轨道交通结构检测监测技术标准
- 中医医院等级评审材料准备全攻略
- 肿瘤科普宣传课件
评论
0/150
提交评论