智能控制的筆記本外置散熱器
0 引言
本文引用地址:http://cafeforensic.com/article/201808/388069.htm筆記本的硬件設(shè)計趨向于集成、輕薄,而越來越緊密的物理結(jié)構(gòu)使得內(nèi)部空間更加狹小。在運行過程中產(chǎn)生大量的熱量,使得筆記本內(nèi)部即使配備了風(fēng)扇、散熱器等散熱裝置,也不能夠達到很好的散熱效果。并且使用長時間后內(nèi)部灰塵堆積,更加影響散熱能力。而過高的內(nèi)部溫度可能導(dǎo)致筆記本死機或器件損壞、影響使用壽命。
1 系統(tǒng)總體設(shè)計
本文設(shè)計的智能控制的筆記本外置散熱系統(tǒng)包括單片機控制模塊、溫度傳感器模塊、顯示模塊、電機驅(qū)動控制模塊、上位機通信模塊及渦輪分散散熱模塊組成。如圖1所示。
2 系統(tǒng)工作原理
該系統(tǒng)通過溫度傳感器DS18B20獲取周圍環(huán)境溫度并送到單片機,并通過單片機與上位機筆記本通信,獲取計算機WMI(Windows Management Instrumentation,Windows管理規(guī)范)中CPU工作溫度。
三種工作模式的工作過程,模式一:對比兩種溫度信息,當(dāng)CPU工作溫度超過周圍環(huán)境溫度30攝氏度時,啟動散熱器;模式二:當(dāng)CPU工作溫度達到70攝氏度時,啟動散熱器;另外,系統(tǒng)可以交由用戶控制強制啟動散熱器,以達到去除灰塵和降溫目的。系統(tǒng)工作模式、CPU工作溫度及周圍環(huán)境溫度等信息都可以顯示在顯示屏上。當(dāng)啟動散熱器時,系統(tǒng)必須由單片機控制,當(dāng)單片機接到命令后,輸出PWM控制信號使L298N驅(qū)動電路驅(qū)動渦輪風(fēng)扇電機的轉(zhuǎn)動。
3 主要模塊介紹
3.1 單片機介紹及外圍電路
STM32F103xx增強型系列使用ARM Correx—M332位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(128K字節(jié)的閃存和20K字節(jié)的SRAM),增強I/O端口和聯(lián)接到兩條APB總線的外設(shè)。包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含多種通信接口:2個I2C和SPI、3個USART、一個USB和一個CAN。
I/O口中把GPIOA.3作為DS18B20數(shù)據(jù)采集端口。如圖2所示,PA9(USART1 TX)、PA10(USART1 RX)做上位機通信口分別接MAX232芯片的IN輸入與OUT輸出引腳。PA、PB、PD、PE等端口部分引腳連接TFT液晶屏。
3. 2 驅(qū)動電路
L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動電路,是一種二相和四相電機的專用驅(qū)動器,即內(nèi)含二個H橋的高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯電平信號,可驅(qū)動46V、2A以下的電機。本設(shè)計中使用12V電壓驅(qū)動電機,使其能夠達到較大功率,增強散熱能力。其中單片機GPIOA.0連接L298N使能端ENA,控制電機轉(zhuǎn)動開關(guān);GPIOA.1復(fù)用PWM輸出,連接L298N輸入端IN1,輸入端IN2接地,通過改變PWM輸出的占空比從而控制電機轉(zhuǎn)速。
4 程序設(shè)計
該系統(tǒng)軟件模塊較多,主要包括主程序、單片機與筆記本通信子程序、溫度傳感器模塊、電機驅(qū)動子程序、液晶顯示子程序等。
4.1 上位機程序設(shè)計及界面
本設(shè)計中的上位機通過Visual Basic編寫完成,Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語言。程序員可以輕松的使用VB提供的組件快速建立一個應(yīng)用程序。
4.2 CPU溫度獲取
WMI,是Windows 2K/XP管理系統(tǒng)的核心,是一個描述操作系統(tǒng)構(gòu)成單元的對象數(shù)據(jù)庫,為MMC和腳本程序提供了一個訪問操作系統(tǒng)構(gòu)成單元的公共接口。
VB中通過檢索WMI中的MSAcpi_Thermal ZoneTemperature類,查找其中數(shù)據(jù)成員CurrentTemperature,隨后通過公式CPU_Temperature=(CltItem.CurrentTemperature-2732)/10計算得出當(dāng)前CPU溫度。但由于該數(shù)據(jù)更新只發(fā)生在開機時,而開啟SpeedFan軟件可以使得WMI中CPU溫度數(shù)據(jù)不斷被刷新。在VB中運用Timer定時器定時讀取該數(shù)據(jù)從而獲取實時CPU溫度。
附程序如下:
4.3 散熱模式設(shè)置
這一模塊設(shè)計中設(shè)有風(fēng)扇使能按鈕并有三種散熱模式,分別是1.手動調(diào)節(jié)模式2.根據(jù)CPU溫度智能調(diào)節(jié)模式3.根據(jù)出分口溫度智能調(diào)節(jié)模式。
風(fēng)扇使能按鈕通過改變風(fēng)扇使能位,通過串口通信發(fā)送至單片機,改變GPIOA.0電平高低進而改變L298N使能端電平,達到控制電機開關(guān)的效果。
通過單選按鈕可以切換三種散熱模式:1.手動調(diào)節(jié)模式2.根據(jù)CPU溫度智能調(diào)節(jié)模式3.根據(jù)出分口溫度智能調(diào)節(jié)模式。
手動調(diào)節(jié)模式可通過拉動滾動條改變風(fēng)扇速度值;根據(jù)CPU溫度智能調(diào)節(jié)模式將當(dāng)前CPU溫度與風(fēng)扇轉(zhuǎn)速相對應(yīng),風(fēng)扇速度值等于CPU溫度值;根據(jù)出分風(fēng)溫度智能調(diào)節(jié)模式是通過獲取DS18B20傳感器所采集溫度,風(fēng)扇速度值等于該溫度乘上比例系數(shù)2;通過串口將風(fēng)扇速度發(fā)送至單片機并轉(zhuǎn)化為PWM占空比,進而控制電機的轉(zhuǎn)速。
4.4 串口通信
本設(shè)計中利用VB中MSComm控件可以很方便地與單片機進行串口通信。對該控件的串口號、波特率、數(shù)據(jù)位、驗校位、停止位在VB界面中設(shè)計下拉選項就能快速進行設(shè)置。下面列舉在本設(shè)計中涉及到的幾個常用屬性:
Commport:設(shè)置或返回串口號。
Settings:以字符串的形式設(shè)置或返回串口通信參數(shù)。
Portopen:設(shè)置或返回串口狀態(tài)。
Inputlen:設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)。
InBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)。
Rthreshold:該屬性為一閥值。
Output:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計時無效,運行時只讀。
Inptut:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設(shè)計時無效,運行時只讀。
在程序運行中,通過定時器每隔1 s向單片機發(fā)送4項數(shù)據(jù):風(fēng)扇使能,散熱模式,CPU溫度,風(fēng)扇速度。而單片機也每隔1 00ms向上位機發(fā)送DS18B20采集的溫度數(shù)據(jù)。
4.5 PWM輸出
在設(shè)計中使GPIOA.1輸出PWM波,借助庫函數(shù)對PWM初始化步驟包括:
1、開啟TIM2時鐘以及復(fù)用功能時鐘,配置PA1為復(fù)用輸出;
2、設(shè)置TIM2 CH2重映射到PA1上;
3、初始化TIM2,設(shè)置TIM2的ARR和PSC;
4、設(shè)置TIM2 CH2的PWM模式,使能TIM2的CH2輸出;
5 使能TIM2。
本設(shè)計中TIM TimeBaseStructure.TIM_Period=900;
TIM TimeBaseStructure.TIM_Prescaler=0;使得GPIOA.1輸出頻率7200/900=8Khz;
在主函數(shù)中調(diào)用TIM_SetCompare2(TIM2,uint16_t Compare2),改變Compare2值便可以控制PWM輸出頻率。
4.6 DS18B20溫度采集
DS18B20是DALLAS最新單線數(shù)字溫度傳感器的“一線器件”。是世界上第一片支持“一線總線”接口的溫度傳感器。測量溫度范圍為-55℃~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃。
STM32讀取DS18B20溫度數(shù)據(jù)過程中,首先將GPIOA.3端口時鐘使能并配置為推挽輸出。根據(jù)DS18B20的協(xié)議規(guī)定,微控制器控制DS18B20完成溫度的轉(zhuǎn)換必須經(jīng)過以下4個步驟:DS18B20初始化、ROM操作命令、存儲器操作命令、處理數(shù)據(jù)。
初始化過程中,總線主機發(fā)出一個復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820在總線上且己準(zhǔn)備好操作。
初始化過后,當(dāng)需要讀取DS18B20內(nèi)溫度信息時,按照以下操作:
1、主機發(fā)出復(fù)位操作并接收DS18B20的應(yīng)答(存在)脈沖
2、主機發(fā)出跳過ROM操作命令(CCH)
3、主機發(fā)出轉(zhuǎn)換溫度操作命令(44H)
4、主機發(fā)出復(fù)位操作并接收DS18B20的應(yīng)答(存在)脈沖
5、主機發(fā)出跳過ROM操作命令(CCH)
6、主機發(fā)出讀取RAM的命令(BEH)
先讀取低字節(jié)后讀取高字節(jié),按照高字節(jié)最高位判斷溫度正負,若最高位為1溫度為負,對兩個字節(jié)做取反操作,為0保持不變,隨后進行溫度轉(zhuǎn)換。轉(zhuǎn)換公式為:實際溫度=(float)16位數(shù)據(jù)*0.625。
4.7 LCD液晶顯示
TFT—LCD即薄膜晶體管液晶顯示器。(Thin Film Transistor-Liquid Crystal Display)。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體管(TFT),可有效地克服非選通時的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。
本設(shè)計中TFT模塊采用16位的并行方式與外部連接,相對8位的并行方式速度快一倍。在控制TFT液晶顯示時,采用STM32的FSMC接口。
FSMC,即靈活的靜態(tài)存儲控制器,能夠與同步或異步存儲器和16位PC存儲器卡接口,STM32的FSMC接口支持包括SRAM、NAND FLASH、NORFLASH和PSRAM等存儲器。在本設(shè)計中用到的TFT液晶顯示就是將TFTLCD當(dāng)成SRAM來控制。通過對FSMC中寄存器的配置,可以在對TFT進行讀寫時自行模擬時序,從而大大簡化了程序。
在程序運行中,TFTLCD每隔100ms刷新顯示數(shù)據(jù),包括散熱模式、風(fēng)扇使能、風(fēng)扇速度、CPU溫度、出風(fēng)口溫度等信息,讓用戶直觀地了解散熱情況。
本設(shè)計運用Keil-MDK集成編譯環(huán)境進行單片機程序設(shè)計,MDK是一個集代碼編輯,編譯,鏈接和下載于一體的集成開發(fā)環(huán)境(KDE),并且運用STM32庫函數(shù)能使編程設(shè)計更加方便快捷。
STM32庫是由ST公司針對STM32提供的函數(shù)接口,即API(Application Program Interface),開發(fā)者可調(diào)用這些函數(shù)接口來配置STM32的寄存器,使開發(fā)人員得以脫離最底層的寄存器操作,有開發(fā)快速,易于閱讀,維護成本低等優(yōu)點。
5 結(jié)束語
本設(shè)計在實際散熱測試中,最多能達到降溫15度的效果,并可選擇多種模式靈活適應(yīng)不同環(huán)境的需要。并采用抽風(fēng)式散熱,有力減少筆記本內(nèi)部的灰層堆積,減少高溫對筆記本內(nèi)部器件的損壞。
同時該智能散熱系統(tǒng)還存在不足。主要有三方面,第一方面,風(fēng)扇散熱期間響聲較大,造成噪聲污染,可以考慮改進渦輪風(fēng)扇物理結(jié)構(gòu)或添加潤滑劑減少噪音;第二方面,成本較高,在推廣成商品時,可以適當(dāng)降低硬件配置,例如采用較為便宜的單片機以及液晶顯示;第三方面,在采集CPU溫度時,依賴第三方軟件,可改進為C#編譯上位機,獨立從硬件中讀取溫度信息。
評論