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