a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 技術方案 >健康醫療 > 基于澎湃微PT32x033系列的NTC應用 血糖儀環境溫度監測設計方案?

基于澎湃微PT32x033系列的NTC應用 血糖儀環境溫度監測設計方案?

來源:
2024-10-15
類別:健康醫療
eye 9
文章創建人 拍明芯城

基于澎湃微PT32x033系列的NTC應用:血糖儀環境溫度監測設計方案

一、引言

血糖儀作為現代醫療診斷的重要工具,其準確性和穩定性對病患的健康管理至關重要。血糖儀的工作原理是通過電化學原理,測試血糖試紙反應區內的生化酶與血液中的葡萄糖產生的微電流,再轉化成葡萄糖濃度讀數。這一過程對于測試環境的溫度有著較高的要求,適宜血糖儀運作的溫度一般來說在10℃~40℃之間,太冷或者太熱的環境均會影響其測試準確性。因此,設計一個有效的環境溫度監測系統,對血糖儀的測試精度和可靠性具有重大意義。

image.png

本文基于澎湃微PT32x033系列MCU,提出了一種基于NTC電阻(負溫度系數熱敏電阻)的血糖儀環境溫度監測設計方案。通過詳細闡述主控芯片的型號、功能及其在設計中的具體作用,旨在為血糖儀的環境溫度監測提供一種高效、可靠的解決方案。

二、主控芯片型號及功能

2.1 主控芯片型號

本方案采用的主控芯片為澎湃微PT32x033系列MCU。該系列MCU以其低功耗和豐富的外設模塊著稱,特別適用于血糖儀等便攜式醫療設備。

具體來說,PT32x033系列MCU包括多個型號,如PT32L033等。這些型號在功能和外設上略有差異,但均具備強大的數據處理能力和低功耗特性,能夠滿足血糖儀環境監測的需求。

2.2 主控芯片功能

PT32x033系列MCU的主要功能包括:

  1. 低功耗設計

    • 提供正常工作模式和低功耗模式,其中低功耗模式又分為普通休眠低功耗模式和深度休眠低功耗模式。

    • 一顆紐扣電池至少能保障儀器正常工作3年。

    • 可以通過失能未被使用的時鐘源、外設,以及配置GPIO為輸入同時做下拉處理等方式進一步降低功耗。

  2. 高性能外設

    • 內嵌LCD驅動器,支持多種復用技術,可用于驅動液晶顯示屏。

    • 集成兩路高性能的OPA(運算放大器),用于小信號放大。

    • 集成一路12位的ADC(模數轉換器)和一路12位的DAC(數模轉換器),用于信號的采集和轉換。

  3. 實時時鐘(RTC)

    • 提供高精度的實時時鐘功能,可用于記錄血糖測試的時間。

  4. 靈活的電源管理

    • 提供多種電源管理策略,包括電源調整器部分(Power Regulator),用于產生LCD驅動所需的最高直流電平。

  5. 豐富的接口

    • 提供多種通信接口,如UART、SPI、I2C等,便于與其他外設或上位機進行通信。

三、NTC電阻在血糖儀中的應用

3.1 NTC電阻概述

NTC電阻,即負溫度系數熱敏電阻,指的是阻值隨溫度上升而呈指數關系減小的現象和材料。NTC熱敏電阻一般以錳、鈷、鎳和銅等金屬氧化物為主要材料,采用陶瓷工藝制造而成。這些金屬氧化物在導電方式上完全類似鍺、硅等半導體材料:溫度越低,這些氧化物材料的載流子(電子和空穴)數目減少,其電阻增大;溫度越高,氧化物材料的載流子數目增多,其電阻減小。NTC電阻以其成本低、精度高的特性,被越來越廣泛地應用在各種場合。

3.2 NTC電阻在血糖儀中的應用

血糖儀采用電化學原理,測試血糖試紙反應區內的生化酶與血液中的葡萄糖產生的微電流,再轉化成葡萄糖濃度讀數。這一過程對于測試環境的溫度有著較高的要求。使用NTC電阻檢測溫度并對結果進行溫度補償,可以避免測試結果因外界溫度產生偏差,耽誤病患的治療。

四、基于PT32x033的NTC應用方案

4.1 NTC電路設計

NTC常規的應用是將熱敏電阻和普通電阻器串聯連接,并施加以恒定電壓VIN,再將端點電壓VNTC接入到ADC中采樣。使用這種電路,熱敏電阻此時的阻值可以通過相應的公式計算得出。

在血糖儀應用中,PT32x033提供了幾種配置策略來提供恒定的電壓源VIN,如通過AVREF+引腳或間接通過DVREF+引腳接入BG2v0作為恒壓源。

4.2 ADC配置與采樣

PT32x033內部集成了一個12bit分辨率的高精度ADC,提供了多個可選的參考源,如VDDA、BG2V0、AVREF+等。在血糖儀應用中,選擇BG2v0以提供成本和精度間的最佳平衡。

ADC的采樣率可支持到500KSPS,能夠滿足血糖儀對環境溫度實時監測的需求。通過ADC采樣得到的VNTC電壓值,可以進一步通過計算得出NTC電阻的阻值。

4.3 溫度算法實現

NTC的溫度算法常見的有三種:B值法、查表法和線性擬合法。其中,B值法需要占用較大的計算資源,但其得出的數據準確度較高。血糖儀Demo板上使用的就是這種方法。

B值法根據一條公式,僅需要代入NTC電阻值和B值這兩個變量,即可獲取溫度值。公式中的TN為常量,表示25℃的開爾文溫度單位(298.15K),B為變量,指NTC電阻的B值。血糖儀Demo板上使用的NTC電阻B值為3380。

通過PT32x033的MCU內部處理器,可以實時計算并得出環境溫度值,從而實現對血糖儀測試環境的實時監測和補償。

五、低功耗設計與實現

5.1 低功耗模式配置

PT32x033提供兩種低功耗模式:普通休眠低功耗模式和深度休眠低功耗模式。在正常工作模式下,可以通過失能未被使用的時鐘源、外設,以及配置GPIO為輸入同時做下拉處理等方式進一步降低功耗。

使用ARM Cortex-M0的Wait for Interrupt (WFI)和wait for Event (WFE)兩條指令可以使芯片進入休眠模式或深度睡眠模式。當執行WFI或WFE指令后,芯片進入哪種低功耗模式,由系統控制寄存器(SCR)的SLP位決定。

5.2 超低功耗設計注意事項

在超低功耗模式下,需要注意以下幾點:

  • PB9管腳由于作為Crystal_OUT管腳內部存在下拉反饋電阻,因此休眠過程不能存在外部或者內部上拉電阻導致漏電。

  • 超低功耗模式下,不相關的模擬外設軟件需要主動關閉,比如內部2V參考以及OPA。

  • 超低功耗模式下,不相關的引腳復用功能全部清除并且軟件做下拉處理。

  • WFE為事件喚醒方式,那么只需要配置NVIC以及中斷類型(無需響應中斷)即可產生喚醒;如配置為WFI中斷喚醒方式,那么需要使能中斷(需要響應中斷)才可產生喚醒。

六、軟件設計與實現

6.1 軟件架構

軟件設計采用模塊化架構,主要包括以下幾個模塊:

  • 初始化模塊:負責系統初始化、時鐘配置、外設初始化等。

  • ADC采樣模塊:負責NTC電阻電壓的采樣和轉換。

  • 溫度計算模塊:根據采樣得到的電壓值,通過B值法計算得出環境溫度值。

  • LCD顯示模塊:將環境溫度值顯示在液晶顯示屏上。

  • 低功耗管理模塊:負責低功耗模式的配置和切換。

6.2 關鍵代碼實現

以下是部分關鍵代碼的實現示例:


// ADC初始化配置  

void ADC_Init(void)  

{

// 配置ADC控制寄存器  

ADC_CR = ...;

// 配置ADC狀態寄存器  

ADC_STAU = ...;

// 配置ADC數據寄存器  

ADC_DATA = ...;

// 配置ADC采樣時間寄存器  

ADC_SAMPLE = ...;

// 啟動ADC  

ADC_CR |= ADC_CR_EN;

}



// 溫度計算函數  

float CalculateTemperature(uint16_t adcValue)  

{

// 根據NTC電阻的阻值和B值計算溫度  

// 公式:TN = (B * T * ln(R/R0)) / (B + T * ln(R/R0)) + T0  

// 其中,TN為溫度(K),T為常數(298.15K),R為NTC電阻阻值,R0為NTC電阻在25℃時的阻值,B為NTC電阻的B值  

// adcValue為ADC采樣得到的電壓值,需要通過公式轉換為NTC電阻的阻值  

float R = ...; // 根據adcValue計算得到的NTC電阻阻值  

float TN = (B * 298.15 * log(R / R0)) / (B + 298.15 * log(R / R0)) + 298.15;

return TN - 273.15; // 將開爾文溫度轉換為攝氏度  

}



// LCD顯示函數  

void LCD_DisplayTemperature(float temperature)  

{

// 將溫度值顯示在LCD上  

// 具體實現依賴于LCD驅動器的配置和顯示邏輯  

...

}



// 低功耗管理函數  

void LowPowerMode_Enter(void)  

{

// 配置系統控制寄存器,準備進入低功耗模式  

SCR = ...;

// 執行WFI或WFE指令,

進入低功耗模式。


// 對于WFI指令,芯片會等待中斷喚醒;

// 對于WFE指令,芯片會等待特定事件喚醒。

__WFI(); // 或者使用 __WFE() 根據具體需求選擇。



// 注意:在實際應用中,需要根據具體的低功耗需求和喚醒條件,

// 配置相應的中斷和事件,以確保在低功耗模式下能夠正確喚醒。

}

// 主函數
int main(void)
{
// 系統初始化
System_Init();


// ADC初始化

ADC_Init();



// 無限循環,實時監測環境溫度

while (1)

{

// 采集NTC電阻的電壓值

uint16_t adcValue = ADC_Sample();



// 計算環境溫度

float temperature = CalculateTemperature(adcValue);



// 顯示環境溫度

LCD_DisplayTemperature(temperature);



// 如果沒有其他任務需要處理,進入低功耗模式

LowPowerMode_Enter();

}



// 注意:在實際應用中,通常不會直接在這里進入低功耗模式,

// 因為會有其他任務(如按鍵掃描、通信處理等)需要處理。

// 這里只是為了演示低功耗模式的進入方式。



return 0; // 雖然對于嵌入式系統來說,main函數通常不會返回。

}

// ADC采樣函數(示例)
uint16_t ADC_Sample(void)
{
// 啟動ADC采樣
ADC_CR |= ADC_CR_START;


// 等待采樣完成(可以通過查詢狀態寄存器或中斷方式實現)

// 這里為了簡化示例,使用簡單的延時等待(不推薦在實際應用中使用)

for (volatile int i = 0; i < 1000000; i++);



// 讀取ADC數據

uint16_t adcValue = ADC_DATA;



// 停止ADC采樣(如果需要)

ADC_CR &= ~ADC_CR_START;



return adcValue;

}

// 系統初始化函數(示例)
void System_Init(void)
{
// 配置系統時鐘
SystemClock_Config();


// 初始化GPIO

GPIO_Init();



// 初始化LCD

LCD_Init();



// 其他初始化操作...

}

// 系統時鐘配置函數(示例)
void SystemClock_Config(void)
{
// 根據具體需求配置系統時鐘
// 這里只是一個示例,具體實現依賴于具體的MCU型號和時鐘源
...
}

// GPIO初始化函數(示例)
void GPIO_Init(void)
{
// 根據具體需求配置GPIO
// 這里只是一個示例,具體實現依賴于具體的MCU型號和GPIO配置需求
...
}

// LCD初始化函數(示例)
void LCD_Init(void)
{
// 根據具體需求初始化LCD
// 這里只是一個示例,具體實現依賴于具體的LCD型號和驅動方式
...
}

責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告