智能控制的笔记本外置散热器
0 引言
笔记本的硬件设计趋向于集成、轻薄,而越来越紧密的物理结构使得内部空间更加狭小。在运行过程中产生大量的热量,使得笔记本内部即使配备了风扇、散热器等散热装置,也不能够达到很好的散热效果。并且使用长时间后内部灰尘堆积,更加影响散热能力。而过高的内部温度可能导致笔记本死机或器件损坏、影响使用寿命。
1 系统总体设计
本文设计的智能控制的笔记本外置散热系统包括单片机控制模块、温度传感器模块、显示模块、电机驱动控制模块、上位机通信模块及涡轮分散散热模块组成。如图1所示。
![](http://m.amcfsurvey.com/uphotos/fetch/20180719/388069_1_0.jpg)
2 系统工作原理
该系统通过温度传感器DS18B20获取周围环境温度并送到单片机,并通过单片机与上位机笔记本通信,获取计算机WMI(Windows Management Instrumentation,Windows管理规范)中CPU工作温度。
三种工作模式的工作过程,模式一:对比两种温度信息,当CPU工作温度超过周围环境温度30摄氏度时,启动散热器;模式二:当CPU工作温度达到70摄氏度时,启动散热器;另外,系统可以交由用户控制强制启动散热器,以达到去除灰尘和降温目的。系统工作模式、CPU工作温度及周围环境温度等信息都可以显示在显示屏上。当启动散热器时,系统必须由单片机控制,当单片机接到命令后,输出PWM控制信号使L298N驱动电路驱动涡轮风扇电机的转动。
3 主要模块介绍
3.1 单片机介绍及外围电路
STM32F103xx增强型系列使用ARM Correx—M332位的RISC内核,工作频率为72MHz,内置高速存储器(128K字节的闪存和20K字节的SRAM),增强I/O端口和联接到两条APB总线的外设。包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含多种通信接口:2个I2C和SPI、3个USART、一个USB和一个CAN。
I/O口中把GPIOA.3作为DS18B20数据采集端口。如图2所示,PA9(USART1 TX)、PA10(USART1 RX)做上位机通信口分别接MAX232芯片的IN输入与OUT输出引脚。PA、PB、PD、PE等端口部分引脚连接TFT液晶屏。
![](http://m.amcfsurvey.com/uphotos/fetch/20180719/388069_1_1.jpg)
3. 2 驱动电路
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。本设计中使用12V电压驱动电机,使其能够达到较大功率,增强散热能力。其中单片机GPIOA.0连接L298N使能端ENA,控制电机转动开关;GPIOA.1复用PWM输出,连接L298N输入端IN1,输入端IN2接地,通过改变PWM输出的占空比从而控制电机转速。
![](http://m.amcfsurvey.com/uphotos/fetch/20180719/388069_1_2.jpg)
4 程序设计
该系统软件模块较多,主要包括主程序、单片机与笔记本通信子程序、温度传感器模块、电机驱动子程序、液晶显示子程序等。
4.1 上位机程序设计及界面
![](http://m.amcfsurvey.com/uphotos/fetch/20180719/388069_1_3.jpg)
本设计中的上位机通过Visual Basic编写完成,Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
4.2 CPU温度获取
WMI,是Windows 2K/XP管理系统的核心,是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。
VB中通过检索WMI中的MSAcpi_Thermal ZoneTemperature类,查找其中数据成员CurrentTemperature,随后通过公式CPU_Temperature=(CltItem.CurrentTemperature-2732)/10计算得出当前CPU温度。但由于该数据更新只发生在开机时,而开启SpeedFan软件可以使得WMI中CPU温度数据不断被刷新。在VB中运用Timer定时器定时读取该数据从而获取实时CPU温度。
附程序如下:
![](http://m.amcfsurvey.com/uphotos/fetch/20180719/388069_1_4.jpg)
4.3 散热模式设置
这一模块设计中设有风扇使能按钮并有三种散热模式,分别是1.手动调节模式2.根据CPU温度智能调节模式3.根据出分口温度智能调节模式。
风扇使能按钮通过改变风扇使能位,通过串口通信发送至单片机,改变GPIOA.0电平高低进而改变L298N使能端电平,达到控制电机开关的效果。
通过单选按钮可以切换三种散热模式:1.手动调节模式2.根据CPU温度智能调节模式3.根据出分口温度智能调节模式。
手动调节模式可通过拉动滚动条改变风扇速度值;根据CPU温度智能调节模式将当前CPU温度与风扇转速相对应,风扇速度值等于CPU温度值;根据出分风温度智能调节模式是通过获取DS18B20传感器所采集温度,风扇速度值等于该温度乘上比例系数2;通过串口将风扇速度发送至单片机并转化为PWM占空比,进而控制电机的转速。
4.4 串口通信
本设计中利用VB中MSComm控件可以很方便地与单片机进行串口通信。对该控件的串口号、波特率、数据位、验校位、停止位在VB界面中设计下拉选项就能快速进行设置。下面列举在本设计中涉及到的几个常用属性:
Commport:设置或返回串口号。
Settings:以字符串的形式设置或返回串口通信参数。
Portopen:设置或返回串口状态。
Inputlen:设置或返回一次从接收缓冲区中读取字节数。
InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。
Rthreshold:该属性为一阀值。
Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。
Inptut:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。
在程序运行中,通过定时器每隔1 s向单片机发送4项数据:风扇使能,散热模式,CPU温度,风扇速度。而单片机也每隔1 00ms向上位机发送DS18B20采集的温度数据。
4.5 PWM输出
在设计中使GPIOA.1输出PWM波,借助库函数对PWM初始化步骤包括:
1、开启TIM2时钟以及复用功能时钟,配置PA1为复用输出;
2、设置TIM2 CH2重映射到PA1上;
3、初始化TIM2,设置TIM2的ARR和PSC;
4、设置TIM2 CH2的PWM模式,使能TIM2的CH2输出;
5 使能TIM2。
本设计中TIM TimeBaseStructure.TIM_Period=900;
TIM TimeBaseStructure.TIM_Prescaler=0;使得GPIOA.1输出频率7200/900=8Khz;
在主函数中调用TIM_SetCompare2(TIM2,uint16_t Compare2),改变Compare2值便可以控制PWM输出频率。
4.6 DS18B20温度采集
DS18B20是DALLAS最新单线数字温度传感器的“一线器件”。是世界上第一片支持“一线总线”接口的温度传感器。测量温度范围为-55℃~+125℃,在-10~+85℃范围内,精度为±0.5℃。
STM32读取DS18B20温度数据过程中,首先将GPIOA.3端口时钟使能并配置为推挽输出。根据DS18B20的协议规定,微控制器控制DS18B20完成温度的转换必须经过以下4个步骤:DS18B20初始化、ROM操作命令、存储器操作命令、处理数据。
初始化过程中,总线主机发出一个复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820在总线上且己准备好操作。
初始化过后,当需要读取DS18B20内温度信息时,按照以下操作:
1、主机发出复位操作并接收DS18B20的应答(存在)脉冲
2、主机发出跳过ROM操作命令(CCH)
3、主机发出转换温度操作命令(44H)
4、主机发出复位操作并接收DS18B20的应答(存在)脉冲
5、主机发出跳过ROM操作命令(CCH)
6、主机发出读取RAM的命令(BEH)
先读取低字节后读取高字节,按照高字节最高位判断温度正负,若最高位为1温度为负,对两个字节做取反操作,为0保持不变,随后进行温度转换。转换公式为:实际温度=(float)16位数据*0.625。
4.7 LCD液晶显示
TFT—LCD即薄膜晶体管液晶显示器。(Thin Film Transistor-Liquid Crystal Display)。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。
本设计中TFT模块采用16位的并行方式与外部连接,相对8位的并行方式速度快一倍。在控制TFT液晶显示时,采用STM32的FSMC接口。
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡接口,STM32的FSMC接口支持包括SRAM、NAND FLASH、NORFLASH和PSRAM等存储器。在本设计中用到的TFT液晶显示就是将TFTLCD当成SRAM来控制。通过对FSMC中寄存器的配置,可以在对TFT进行读写时自行模拟时序,从而大大简化了程序。
在程序运行中,TFTLCD每隔100ms刷新显示数据,包括散热模式、风扇使能、风扇速度、CPU温度、出风口温度等信息,让用户直观地了解散热情况。
本设计运用Keil-MDK集成编译环境进行单片机程序设计,MDK是一个集代码编辑,编译,链接和下载于一体的集成开发环境(KDE),并且运用STM32库函数能使编程设计更加方便快捷。
STM32库是由ST公司针对STM32提供的函数接口,即API(Application Program Interface),开发者可调用这些函数接口来配置STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。
5 结束语
本设计在实际散热测试中,最多能达到降温15度的效果,并可选择多种模式灵活适应不同环境的需要。并采用抽风式散热,有力减少笔记本内部的灰层堆积,减少高温对笔记本内部器件的损坏。
同时该智能散热系统还存在不足。主要有三方面,第一方面,风扇散热期间响声较大,造成噪声污染,可以考虑改进涡轮风扇物理结构或添加润滑剂减少噪音;第二方面,成本较高,在推广成商品时,可以适当降低硬件配置,例如采用较为便宜的单片机以及液晶显示;第三方面,在采集CPU温度时,依赖第三方软件,可改进为C#编译上位机,独立从硬件中读取温度信息。
![](http://m.amcfsurvey.com/webstorage/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码