智能控制的筆記本外置散熱器
0 引言
本文引用地址:http://dyxdggzs.com/article/201808/388069.htm筆記本的硬件設計趨向于集成、輕薄,而越來(lái)越緊密的物理結構使得內部空間更加狹小。在運行過(guò)程中產(chǎn)生大量的熱量,使得筆記本內部即使配備了風(fēng)扇、散熱器等散熱裝置,也不能夠達到很好的散熱效果。并且使用長(cháng)時(shí)間后內部灰塵堆積,更加影響散熱能力。而過(guò)高的內部溫度可能導致筆記本死機或器件損壞、影響使用壽命。
1 系統總體設計
本文設計的智能控制的筆記本外置散熱系統包括單片機控制模塊、溫度傳感器模塊、顯示模塊、電機驅動(dòng)控制模塊、上位機通信模塊及渦輪分散散熱模塊組成。如圖1所示。

2 系統工作原理
該系統通過(guò)溫度傳感器DS18B20獲取周?chē)h(huán)境溫度并送到單片機,并通過(guò)單片機與上位機筆記本通信,獲取計算機WMI(Windows Management Instrumentation,Windows管理規范)中CPU工作溫度。
三種工作模式的工作過(guò)程,模式一:對比兩種溫度信息,當CPU工作溫度超過(guò)周?chē)h(huán)境溫度30攝氏度時(shí),啟動(dòng)散熱器;模式二:當CPU工作溫度達到70攝氏度時(shí),啟動(dòng)散熱器;另外,系統可以交由用戶(hù)控制強制啟動(dòng)散熱器,以達到去除灰塵和降溫目的。系統工作模式、CPU工作溫度及周?chē)h(huán)境溫度等信息都可以顯示在顯示屏上。當啟動(dòng)散熱器時(shí),系統必須由單片機控制,當單片機接到命令后,輸出PWM控制信號使L298N驅動(dòng)電路驅動(dòng)渦輪風(fēng)扇電機的轉動(dòng)。
3 主要模塊介紹
3.1 單片機介紹及外圍電路
STM32F103xx增強型系列使用ARM Correx—M332位的RISC內核,工作頻率為72MHz,內置高速存儲器(128K字節的閃存和20K字節的SRAM),增強I/O端口和聯(lián)接到兩條APB總線(xiàn)的外設。包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和一個(gè)PWM定時(shí)器,還包含多種通信接口:2個(gè)I2C和SPI、3個(gè)USART、一個(gè)USB和一個(gè)CAN。
I/O口中把GPIOA.3作為DS18B20數據采集端口。如圖2所示,PA9(USART1 TX)、PA10(USART1 RX)做上位機通信口分別接MAX232芯片的IN輸入與OUT輸出引腳。PA、PB、PD、PE等端口部分引腳連接TFT液晶屏。

3. 2 驅動(dòng)電路
L298N是SGS公司的產(chǎn)品,內部包含4通道邏輯驅動(dòng)電路,是一種二相和四相電機的專(zhuān)用驅動(dòng)器,即內含二個(gè)H橋的高電壓大電流雙全橋式驅動(dòng)器,接收標準TTL邏輯電平信號,可驅動(dòng)46V、2A以下的電機。本設計中使用12V電壓驅動(dòng)電機,使其能夠達到較大功率,增強散熱能力。其中單片機GPIOA.0連接L298N使能端ENA,控制電機轉動(dòng)開(kāi)關(guān);GPIOA.1復用PWM輸出,連接L298N輸入端IN1,輸入端IN2接地,通過(guò)改變PWM輸出的占空比從而控制電機轉速。

4 程序設計
該系統軟件模塊較多,主要包括主程序、單片機與筆記本通信子程序、溫度傳感器模塊、電機驅動(dòng)子程序、液晶顯示子程序等。
4.1 上位機程序設計及界面

本設計中的上位機通過(guò)Visual Basic編寫(xiě)完成,Visual Basic是一種由微軟公司開(kāi)發(fā)的包含協(xié)助開(kāi)發(fā)環(huán)境的事件驅動(dòng)編程語(yǔ)言。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應用程序。
4.2 CPU溫度獲取
WMI,是Windows 2K/XP管理系統的核心,是一個(gè)描述操作系統構成單元的對象數據庫,為MMC和腳本程序提供了一個(gè)訪(fǎng)問(wèn)操作系統構成單元的公共接口。
VB中通過(guò)檢索WMI中的MSAcpi_Thermal ZoneTemperature類(lèi),查找其中數據成員CurrentTemperature,隨后通過(guò)公式CPU_Temperature=(CltItem.CurrentTemperature-2732)/10計算得出當前CPU溫度。但由于該數據更新只發(fā)生在開(kāi)機時(shí),而開(kāi)啟SpeedFan軟件可以使得WMI中CPU溫度數據不斷被刷新。在VB中運用Timer定時(shí)器定時(shí)讀取該數據從而獲取實(shí)時(shí)CPU溫度。
附程序如下:

4.3 散熱模式設置
這一模塊設計中設有風(fēng)扇使能按鈕并有三種散熱模式,分別是1.手動(dòng)調節模式2.根據CPU溫度智能調節模式3.根據出分口溫度智能調節模式。
風(fēng)扇使能按鈕通過(guò)改變風(fēng)扇使能位,通過(guò)串口通信發(fā)送至單片機,改變GPIOA.0電平高低進(jìn)而改變L298N使能端電平,達到控制電機開(kāi)關(guān)的效果。
通過(guò)單選按鈕可以切換三種散熱模式:1.手動(dòng)調節模式2.根據CPU溫度智能調節模式3.根據出分口溫度智能調節模式。
手動(dòng)調節模式可通過(guò)拉動(dòng)滾動(dòng)條改變風(fēng)扇速度值;根據CPU溫度智能調節模式將當前CPU溫度與風(fēng)扇轉速相對應,風(fēng)扇速度值等于CPU溫度值;根據出分風(fēng)溫度智能調節模式是通過(guò)獲取DS18B20傳感器所采集溫度,風(fēng)扇速度值等于該溫度乘上比例系數2;通過(guò)串口將風(fēng)扇速度發(fā)送至單片機并轉化為PWM占空比,進(jìn)而控制電機的轉速。
4.4 串口通信
本設計中利用VB中MSComm控件可以很方便地與單片機進(jìn)行串口通信。對該控件的串口號、波特率、數據位、驗校位、停止位在VB界面中設計下拉選項就能快速進(jìn)行設置。下面列舉在本設計中涉及到的幾個(gè)常用屬性:
Commport:設置或返回串口號。
Settings:以字符串的形式設置或返回串口通信參數。
Portopen:設置或返回串口狀態(tài)。
Inputlen:設置或返回一次從接收緩沖區中讀取字節數。
InBufferSize:設置或返回接收緩沖區的大小,缺省值為1024字節。
Rthreshold:該屬性為一閥值。
Output:向發(fā)送緩沖區發(fā)送數據,該屬性設計時(shí)無(wú)效,運行時(shí)只讀。
Inptut:從接收緩沖區中讀取數據并清空該緩沖區,該屬性設計時(shí)無(wú)效,運行時(shí)只讀。
在程序運行中,通過(guò)定時(shí)器每隔1 s向單片機發(fā)送4項數據:風(fēng)扇使能,散熱模式,CPU溫度,風(fēng)扇速度。而單片機也每隔1 00ms向上位機發(fā)送DS18B20采集的溫度數據。
4.5 PWM輸出
在設計中使GPIOA.1輸出PWM波,借助庫函數對PWM初始化步驟包括:
1、開(kāi)啟TIM2時(shí)鐘以及復用功能時(shí)鐘,配置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最新單線(xiàn)數字溫度傳感器的“一線(xiàn)器件”。是世界上第一片支持“一線(xiàn)總線(xiàn)”接口的溫度傳感器。測量溫度范圍為-55℃~+125℃,在-10~+85℃范圍內,精度為±0.5℃。
STM32讀取DS18B20溫度數據過(guò)程中,首先將GPIOA.3端口時(shí)鐘使能并配置為推挽輸出。根據DS18B20的協(xié)議規定,微控制器控制DS18B20完成溫度的轉換必須經(jīng)過(guò)以下4個(gè)步驟:DS18B20初始化、ROM操作命令、存儲器操作命令、處理數據。
初始化過(guò)程中,總線(xiàn)主機發(fā)出一個(gè)復位脈沖,接著(zhù)由從屬器件送出存在脈沖。存在脈沖讓總線(xiàn)控制器知道DS1820在總線(xiàn)上且己準備好操作。
初始化過(guò)后,當需要讀取DS18B20內溫度信息時(shí),按照以下操作:
1、主機發(fā)出復位操作并接收DS18B20的應答(存在)脈沖
2、主機發(fā)出跳過(guò)ROM操作命令(CCH)
3、主機發(fā)出轉換溫度操作命令(44H)
4、主機發(fā)出復位操作并接收DS18B20的應答(存在)脈沖
5、主機發(fā)出跳過(guò)ROM操作命令(CCH)
6、主機發(fā)出讀取RAM的命令(BEH)
先讀取低字節后讀取高字節,按照高字節最高位判斷溫度正負,若最高位為1溫度為負,對兩個(gè)字節做取反操作,為0保持不變,隨后進(jìn)行溫度轉換。轉換公式為:實(shí)際溫度=(float)16位數據*0.625。
4.7 LCD液晶顯示
TFT—LCD即薄膜晶體管液晶顯示器。(Thin Film Transistor-Liquid Crystal Display)。TFT-LCD與無(wú)源TN-LCD、STN-LCD的簡(jiǎn)單矩陣不同,它在液晶顯示屏的每一個(gè)象素上都設置有一個(gè)薄膜晶體管(TFT),可有效地克服非選通時(shí)的串擾,使顯示液晶屏的靜態(tài)特性與掃描線(xiàn)數無(wú)關(guān),因此大大提高了圖像質(zhì)量。
本設計中TFT模塊采用16位的并行方式與外部連接,相對8位的并行方式速度快一倍。在控制TFT液晶顯示時(shí),采用STM32的FSMC接口。
FSMC,即靈活的靜態(tài)存儲控制器,能夠與同步或異步存儲器和16位PC存儲器卡接口,STM32的FSMC接口支持包括SRAM、NAND FLASH、NORFLASH和PSRAM等存儲器。在本設計中用到的TFT液晶顯示就是將TFTLCD當成SRAM來(lái)控制。通過(guò)對FSMC中寄存器的配置,可以在對TFT進(jìn)行讀寫(xiě)時(shí)自行模擬時(shí)序,從而大大簡(jiǎn)化了程序。
在程序運行中,TFTLCD每隔100ms刷新顯示數據,包括散熱模式、風(fēng)扇使能、風(fēng)扇速度、CPU溫度、出風(fēng)口溫度等信息,讓用戶(hù)直觀(guān)地了解散熱情況。
本設計運用Keil-MDK集成編譯環(huán)境進(jìn)行單片機程序設計,MDK是一個(gè)集代碼編輯,編譯,鏈接和下載于一體的集成開(kāi)發(fā)環(huán)境(KDE),并且運用STM32庫函數能使編程設計更加方便快捷。
STM32庫是由ST公司針對STM32提供的函數接口,即API(Application Program Interface),開(kāi)發(fā)者可調用這些函數接口來(lái)配置STM32的寄存器,使開(kāi)發(fā)人員得以脫離最底層的寄存器操作,有開(kāi)發(fā)快速,易于閱讀,維護成本低等優(yōu)點(diǎn)。
5 結束語(yǔ)
本設計在實(shí)際散熱測試中,最多能達到降溫15度的效果,并可選擇多種模式靈活適應不同環(huán)境的需要。并采用抽風(fēng)式散熱,有力減少筆記本內部的灰層堆積,減少高溫對筆記本內部器件的損壞。
同時(shí)該智能散熱系統還存在不足。主要有三方面,第一方面,風(fēng)扇散熱期間響聲較大,造成噪聲污染,可以考慮改進(jìn)渦輪風(fēng)扇物理結構或添加潤滑劑減少噪音;第二方面,成本較高,在推廣成商品時(shí),可以適當降低硬件配置,例如采用較為便宜的單片機以及液晶顯示;第三方面,在采集CPU溫度時(shí),依賴(lài)第三方軟件,可改進(jìn)為C#編譯上位機,獨立從硬件中讀取溫度信息。
評論