STM32是意法半导体公司(ST)推出的基于ARM Cortex-M内核的一系列32位单片机,具有性能强、速度快、功耗低等优点。在该系列单片机中,STM32F0系列采用ARM Cortex-M0内核(功能较少),STM32F1系列采用ARM Cortex~-M3内核,STM32F4系列采用ARM Cortex-M4内核(功能较多)。

0、引言


        在现有的物联网设备中,多采用STM32F1系列单片机,如图1所示。提示:ARM处理器是目前最有发展潜力的处理器之一,Cortex 系列内核是ARM处理器中最优秀的内核之一。在Cortex系列内核中,Cortex-M系列内核最适合物联网设备的开发。
        图1所示单片机的型号是STM32F103C8T6,其型号含义:字母“ST"表示芯片生产公司的名称,字母“M"表示该芯片是微控制器(Microelectron-ics),数字“32"表示该芯片是32位单片机;字母“F”"表示通用型,即该单片机在性能、功能、功耗、价格方面较平衡,能满足绝大多数普通应用场合的要求;数字“103"表示子系列(STM32F系列单片机分为STM32F101、STM32F102、STM32F103、STM32F105、STM32F107等子系列),其主频最高为72MHz, Flash的容量可选范围为16kB~1MB,具有USB和CAN总线功能;字母“C"表示该芯片有48个引脚,数字“8”表示该芯片的Flash的容量是64kB,字母"T”表示该芯片采用LQFP封装形式,数字“6”表示芯片的工作温度范围是-40C~859C(.工业级)。
          提示:若要了解STM32系列单片机的详细参数,可进入意法半导体公司的官方网站www.st.com,先在"产品”分类中找到“微控制器”一项,然后选择具体型号,双击打开即可。
1、开发板简介
           在物联网系统中,控制的核心元件是单片机, 而单片机只有在写入程序并且调试成功后,才能实现整个控制系统的功能。由于物联网系统中的传感器与驱动元件较多,且安装位置分散,不便于检测与调试。为了提高单片机的编程与调试效率,当今最流行的方法是采用开发板模式,即先将单片机(或者单片机最小系统板)安装在开发板上,然后进行编程与调试,待符合设计要求后,再安装到物联网控制板上试验。


           目前, STM32物联网开发板的品牌与型号较多,多由最小系统板与扩展板组成,如图2所示。最小系统板上安装有维持单片机正常工作的基本电路(供电复位、 晶振),以及编程 串口IED指示灯、按键、蜂鸣器等实现基本功能的元件;扩展板上安装有继电器、温湿度传感器、WIFI模块、蓝牙模块以及各种总线接口等器件,这些元器件集中安装在一块板上,并可通过跳线实现元器件与单片机的连接,以便检测与调试。
           须说明的是,虽然最小系统板通过排针与扩展板相连,但最小系统板可以脱离扩展板而独立工作          提示:开发板( Demo Board )是指用来进行嵌入式系统开发的电路板,由中央处理器、存储器、数据通信电路、输入/输出设备和外部资源接口等硬件组成,主要用于学习或调试嵌入式系统的硬件和软件。
2、最小系统板电路分析
          最小系统板由单片机U4 (STM32F103C8T6)、低压差三端稳压块U1(AMS1117-3.3)、自动下载控制芯片U2(STC15W201S).USB转串口芯片U3(CH340C)、备用电池、晶振(包括主时钟晶振与实时时钟晶振)等元件组成。其中,U1~U3.备用电池与实时时钟晶振( 32.768kHz )等元件安装在板背面,如图3所示。


2、1供电电路
           本款开发板使用Micro USB接口为系统供电,当用连线将最小系统板上的Micro USB接口与电脑的USB口相接时,最小系统板上的U1~U3得到5V供电(S5V),如图4所示。


          U1将1脚输入的5V电压稳压成3.3V,从2 脚输出(标注为“S3V");U2得电且运行开机指令后,8脚输出低电平信号(JS),PNP型三极管VT2饱和导通,继电器J1线圈得电,其2、3脚与6、7脚内部的触点闭合,分别输出3.3V和5V电压(其标注分别为“3V"和“5V"),供给U4与扩展电路;U3得到S5V供电后,将5、6脚输入的UD+、UD-信号转变为TTL电平信号,分别通过2脚(TXD)和3脚(RXD)脚与U4的31脚、30脚进行数据交换,从而实现电脑与单片机之间的通信。
           电容C1、C3分别为S5V、S3V电压的滤波电容,C2、C4、C7、C8的作用是滤除高频杂波,以提高电路稳定性。
         U4设有1组模拟电源接口(8、9脚)和3组逻辑电源接口(23、24脚,35、36脚,47,48脚),输入2V~3.6V的直流电压,其模拟电源供模数转换器(ADC)RC振荡器和PLL倍频等模拟电路,逻辑电源供ARM内核、存储器I/O端口和其他纯数字电路。对于稳定性和精度要求较高的场合,模拟电源与逻辑电源应分开供电,以避免电源间的干扰;对于稳定性和精度要求不高的场合,模拟电源与逻辑电源可合并在一起供电。
          备用电源BT1是一块独立的1.8V~3.6V 电源,多采用3V纽扣电池。在逻辑电源断开后,BT1给实时时钟电路(RTC )供电,以便RTC正常计时,同时给唤醒电路和后备寄存器供电,让它们一直处于工作状态。如果不使用单片机的RTC与唤醒等功能,则可以不接备用电源。
2、2自动下载控制(ASP)电路
          U4的44脚( BOOTO)、20脚( PB2/BOOT1,复用1/O端口)为单片机的启动模式设置端,给这两脚输入不同的电平状态,可让U4启动时进入不同的工作模式:当44脚为低电平时(不论20脚是什么状态),U4在复位后运行FLASH(闪存)里面的用户程序,此模式称为正常启动模式;当44脚为高电平、20脚为低电平时,U4在复位后运行Boot Loader程序(该程序是在芯片出厂时由ST公司写入的一段程序,是一段ISP下载辅助程序,使用者是不能修改的),其目的是让单片机与计算机上的ISP软件相互通信,将HEX文件存入单片机的FLASH或SRAM中,此模式称为FLASH-ISP模式;当44脚和20脚均为高电平时,U4在复位后将进入RAM-ISP模式(这个模式多用于开发过程中的程序调试,一般不使用 )。
         ISP下载的操作较复杂,具体流程如下:先让U4的44脚为高电平、20脚为低电平,再按复位键,让U4进入Boot Loader模式,然后单击烧录软件界面上的“编程”按钮,将程序写入FLASH或SRAM中,具体写到哪里取决于使用者对烧录软件相关选项的设置。如果程序下载到FLASH中,待程序下载成功后,须将U4的44脚置于低电平,再按复位键或重新上电,这时U4将运行FLASH中下载的程序;如果程序下载到SRAM中,待程序下载成功后,,须将U4的44脚和20脚都置为高电平,再按复位键或重新.上电,这时U4将运行SRAM中下载的程序。为方便使用者进行ISP下载操作,该款最小系统板设计有自动下载(ASP)控制电路,参见图4。
        U2是STC公司生产的单时钟/机器周期(1T)单片机,采用STC第九代加密技术,主要用于定时控制,具有高速、低功耗、可靠性高等优点,其代码完全兼容传统的8051单片机。U2的6、7脚分别与U4的44、20脚相连,U2的8脚输出开/关信号,控制3V和5V供电是否输出。当单击烧录软件界面上的“编程”按钮时,U2检测到下载指令后,其6~8脚会根据上述ISP下载的流程,自动输出相应的电平信号,从而达到一键下载的目的。
         MODE键与U2的1脚相连,单击MODE键可开/关3V和5V供电,即开/关U4与扩展电路的供电;双击MODE键可打开或关闭ASP功能,长按MODE键可让U2在FLASH-ISP和RAM-ISP两种模式间切换。
2、3晶振与复位电路
          时钟是单片机工作的必备信号,其作用是给单片机提供工作基准频率,时钟频率越高,单片机运行速度就越快。U4的5、6脚外接高速晶体振荡器(HSE)TX1,为内核工作提供时钟;3、4脚外接低速晶体振荡器(LSE )TX2,为芯片内部的RTC电路提供时钟,如图5所示。


         U4的7脚(NRST)为复位端,内接一个电压监控器,外接复位电容c9(在扩展板上,7脚还对地接有一只微动开关K1)。上电后,由于C9两端的电压不能突变,则7脚电压有一个从0V升到3.3V的过程。在此过程中,如果7脚电压低于2V时,监控器让U4复位;当7脚电压不小于2V时,监控器让U4进入工作状态,从而完成上电复位动作。
3、扩展电路分析
3、1继电器驱动电路


          指示灯L2 (红色)为继电器U3的工作指示灯,如图6所示。当U4的16脚(PA6)输出高电平时,三极管Q1截止,L2熄灭,同时U3线圈失电,U3不动作,其公共端3脚(KGB)与常闭触点端1脚(CK)接通;当U4的16脚(PA6)输出低电平时,Q1导通,L2亮,同时U3线圈得电,U3动作,其3脚与常开触点端5脚(CK )接通。
          D1为继电器保护二极管,当Q1截止时,U3线圈中的电流通路突然中断,若未安装D1,这时将在线圈两端产生较高的反向电动势,极性为左+右-,电压值达数百伏,这个电压极易导致Q1过压损坏。安装D1后,线圈产生的反向电动势通过D1放电,从而大幅降低其电压值,有效避免Q1过压损坏。
          提示:在分析单片机应用电路时,既要了解单片机内部电路的特点,还要了解单片机外围扩展电路的组成与工作原理。
3、2温湿度传感器电路
          DHT11是一款输出数字信号的温湿度复合传感器,内置一只电阻式感湿元件和一只NTC测温元件,其外围电路非常简单,如图7所示。


         DHT11的1脚(vcC )为供电端,工作电压范围为3.3V~5.5V;2脚(DQ)为单总线串行数据端,通过跳线P19与U4的20脚(PB2)相连。在实际使用中,若DHT11距离单片机较远,则需在DHT11的2脚上外接-只4.7k的上拉电阻,以确保该端在无数据交换时为高电平。
3、3光敏传感器电路
        本板上的光敏传感器电路实为0V~3.3V的模拟信号输入电路,光敏电阻RG1和可调电阻R11作为模拟信号源,如图8所示。


        3V电压经电阻R7与RG1分压,其分压值送给U4的15脚(PA5);R11一端接3V,另一端接地,其中心抽头通过电阻R9与U4的14脚(PA4)相连。RG1的阻值随光照强度的变化而变化,光照越强,其阻值越低。在无光照射时,实测RG1的阻值约为1.6MΩ,U4的15脚电压约为3.3V;在强光照射时,实测RG1的阻值约为0.5kΩ,U4的15脚电压约为0.1V。
3、4存储器电路

          扩展板上的存储器电路实为SPI[由摩托罗拉(Motorola )公司开发的全双工同步串行总线]通讯测试电路,存储器采用华邦公司推出的一款具有SPI接口的闪存(NOR Flash) 芯片W25Q128(U1),如图9所示。


          U1的存储空间为128Mbit(即16M字节),工作电压为2.7V~3.6V,其1脚(CS)为片选信号输入端(低电平有效),6脚(CLK )为串行时钟输入端,2脚(SO)为数据输出端,5脚(SI)为数据输入端,这4个引脚分别与U4的25~28脚相连。
          U1的3脚(WP#)为写保护输入端,当该脚为低电平时,输入数据无法写入寄存器中;7脚(HOLD)为暂停控制端,当该引脚为低电平时,2脚呈高阻态,U1处于暂停工作状态。
3、5通信电路
          通讯电路是单片机与外部芯片或模块之间的数据交换电路,具体有RS485 CAN、USB、PC等电路,如图10所示。


     P8为MPU6050模块(轴运动处理传感器)的接口,即rC扩展接口,采用PC通信方式:SCL是总线的时钟线,用于主从设备间的计数同步;SDA是总线的数据线,用于收发数据。M1为Micro USB接口,U4的42、43脚通过数据线DATA+ DATA-与USB设备通信。U5(RS485)采用半双工通讯方式(单+5V供电),其6、7脚为接收和发送的差分信号端,两脚之间接有阻值为1202的匹配电阻R19。当6脚电压高于7脚电压时,代表发送的数据为“1";反之,代表发送的数据为“0”。
           U5的1脚(RO)为接收器的数据输出端,4脚(DI)为驱动器的数据输入端,分别与U4的13脚、12脚相连。U5的2.3 脚分别为接收使能端和发送使能端,当2脚(RE)为低电平时,U5处于接收状态;当3脚(DE )为高电平时,U5处于发送状态。因U5工作在半双工状态,所以U5的2.3脚电平由U4同一脚(29脚)控制。
          U7(TJA1050)是-款应用于CAN协议控制器和物理总线之间的接口芯片,具有为CAN控制器提供差分发送和接收数据的功能,数据传输速率高达1Mbit/s,其6.7脚分别为低电平和高电平总线输入/输出端,与CAN总线接口相连;1脚(TXD)为串行数据发送端,4脚(RXD)为串行数据接收端,分别与U4的46脚、45脚相连。
3、6蓝牙(Blue tooth)电路
           本板的蓝牙电路采用JDY-08型透传模块,如图11所示。该模块采用蓝牙低功耗芯片CC2541,基于蓝牙4.0协议,工作频段为2.4GHz,调制方式为GFSK,最大发射距离为80m。


           本模块的22脚(POO) 为休眠唤醒信号输入端,低电平时被“唤醒”;20脚(P02)、19脚(P01 )分别为串口信号(TL电平)的输入与输出端,分别与U4的12脚、13脚相连。
3.7 WIFI电路
         本板的WIFI电路采用安信可科技公司开发的ESP-12F模块,其核心处理器为ESP8266,支持标准的IEEE802.11b/g/n协议及完整的TCP/IP协议栈,如图12所示。


          本模块的8脚(vCC)为3.3V供电端,要求供电电流不得小于500mA;1脚(REST)为复位端,3脚为始能端,分别通过电阻R16、R20上拉到3V,10脚(GPI015) 通过下拉电阻R21到地;12脚(GPIO0)为模式控制端,外接.上拉电阻R15与按钮K3,当该脚为高电平时(断开K3),模块工作在运行模式状态;当该脚为低电平时(闭合K3),模块工作在下载模式状态;16脚(TXD )为串行数据发送端,15脚(RXD)为串行数据接收端,分别与U4的22脚、21脚相连。