ADI實(shí)驗(yàn)室電路:低功耗、長距離ISM無線測量節(jié)點(diǎn)
電路功能與優(yōu)勢
理想情況下,無線測量節(jié)點(diǎn)具有低功耗、長距離特點(diǎn),易于與不同傳感器接口。通過配合使用ADI公司的三款器件,可以實(shí)現(xiàn)平均電流消耗《70 μA、距離接近1 km(無障礙)、數(shù)據(jù)速率達(dá)到每分鐘一次傳輸?shù)闹悄軠y量節(jié)點(diǎn),同時(shí)維持16位ADC性能(見圖1),使電路適合電池供電和自動(dòng)化、遠(yuǎn)程檢測等應(yīng)用。
系統(tǒng)內(nèi)包含的低功耗溫度測量節(jié)點(diǎn)每分鐘喚醒一次,測量溫度并將結(jié)果以10 kbps速率發(fā)送到基節(jié)點(diǎn),然后返回睡眠狀態(tài)。基節(jié)點(diǎn)不斷接收來自測量節(jié)點(diǎn)的數(shù)據(jù)包,并通過UART將信息發(fā)送到PC,以便在“超級(jí)終端”內(nèi)顯示。
ADuC7060精密模擬微控制器采用低功耗ARM7內(nèi)核,擁有多種精密模擬功能。由于內(nèi)置片上多路復(fù)用器、數(shù)字可編程增益放大器(PGA)、基準(zhǔn)電壓源、可編程電流源和24位Σ-Δ型ADC,該器件幾乎可直接連接任何溫度和橋式傳感器。本例中選擇的是4線式Pt100(100 Ω鉑RTD)溫度傳感器。有關(guān)測量電路的詳情請參閱應(yīng)用筆記應(yīng)用筆記 AN-0970
本應(yīng)用選擇的無線頻段是低于1GHz的免執(zhí)照ISM(工業(yè)、科研和醫(yī)用)頻段。 ADF7021 收發(fā)器支持431 MHz至478 MHz及862 MHz至956 MHz范圍內(nèi)的頻段,因此是必然選擇。該低功耗收發(fā)器所需的外部元件極少,可以輕松連接ADuC7060精密模擬微控制器,性能卓越。
ADP121 穩(wěn)壓器利用兩節(jié)1.5 V電池提供2.5 V電源電壓。該穩(wěn)壓器的極低靜態(tài)電流(無負(fù)載時(shí)為11 μA)對(duì)盡可能延長電池壽命至關(guān)重要。
圖1. 低功耗遠(yuǎn)程ISM無線測量節(jié)點(diǎn)(簡化示意圖:未顯示去耦和所有連接)
電路描述
連接 ADF7020 ISM收發(fā)器和ADuC7060精密微控制器的是兩條總線。兩者均為串行雙向總線:其中一條總線負(fù)責(zé)配置收發(fā)器,需要四個(gè)微處理器端口;另一條總線是數(shù)據(jù)總線,用于在控制器與收發(fā)器之間傳輸數(shù)據(jù),該總線至少需要三個(gè)微處理器端口。在該應(yīng)用中,使用的是兩個(gè)端口,而非具有兩個(gè)中斷的單個(gè)雙向端口。這樣雖然簡化了軟件,但必須使用額外的二極管和電阻器,以分離輸入和輸出數(shù)據(jù)流。兩個(gè)肖特基二極管的并聯(lián)組合確保了低于200 mV的邏輯低電平。在相同封裝中BAT54C有兩個(gè)二極管(連接引腳1和引腳2從而得到并聯(lián)配置)。ADuC7060上的所有數(shù)字端口均具有可編程上拉電阻;但也需要外部上拉電阻。對(duì)于10 kbps的數(shù)據(jù)速率,4.7 kΩ的電阻效果不錯(cuò)。
電路汲取的總電流取決于三個(gè)因素:個(gè)別元件在睡眠和活動(dòng)模式中的要求、系統(tǒng)活動(dòng)的時(shí)間以及收發(fā)器本身活動(dòng)的時(shí)間。
第一個(gè)因素通過選擇低功耗元件來解決,例如ADuC7060和ADF7020。第二個(gè)因素即最大程度地減少系統(tǒng)活動(dòng),可通過讓系統(tǒng)盡可能長地處于非活動(dòng)狀態(tài)來實(shí)現(xiàn)??梢钥紤]在整數(shù)與浮點(diǎn)算法間進(jìn)行折衷,許多情況下整數(shù)就足夠了,其執(zhí)行時(shí)間更短,因此更省電。最后一個(gè)因素即縮短傳送時(shí)間,可部分通過使用開銷最小的協(xié)議實(shí)現(xiàn),但更主要的是使用ADF7020,該器件具有極高的接收器靈敏度和出色的帶外抑制性能,最大程度地提高數(shù)據(jù)包含有正確數(shù)據(jù)的概率。
代碼說明-概述
系統(tǒng)大部分時(shí)間處于深度睡眠模式中,功耗為50 μA至60 μA(取決于環(huán)境溫度)。定時(shí)器2每秒將系統(tǒng)喚醒一次。每60秒執(zhí)行一次ADC測量,將結(jié)果線性化并發(fā)送出去。定時(shí)器2可將系統(tǒng)從深度睡眠中喚醒;其他三個(gè)定時(shí)器無此功能。定時(shí)器2是16位器件,表示它采用32 kHz時(shí)鐘運(yùn)行時(shí)每秒喚醒一次(睡眠模式內(nèi))。啟動(dòng)ADC后,系統(tǒng)進(jìn)入暫停模式(參見ADuC7060數(shù)據(jù)手冊)。這也是一個(gè)低功耗模式,盡管未低至深度睡眠水平。完成后ADC將系統(tǒng)喚醒。根據(jù)ADC結(jié)果計(jì)算溫度值,將數(shù)據(jù)打包后發(fā)送。
打包其實(shí)就是將適當(dāng)數(shù)據(jù)放置在緩沖器內(nèi)。此時(shí)數(shù)據(jù)包含一個(gè)4字節(jié)浮點(diǎn)溫度值和一個(gè)2字節(jié)CRC(循環(huán)冗余校驗(yàn))。在更復(fù)雜的系統(tǒng)中,該數(shù)據(jù)之前還會(huì)添加節(jié)點(diǎn)地址標(biāo)頭、接收信號(hào)強(qiáng)度和其他信息。在將該緩沖數(shù)據(jù)發(fā)送至ADF7020收發(fā)器前,先發(fā)送一個(gè)8字節(jié)前導(dǎo)碼(用于幫助同步接收節(jié)點(diǎn))和一個(gè)3字節(jié)同步字。后者是一個(gè)唯一的3字節(jié)數(shù)字,接收節(jié)點(diǎn)在接收數(shù)據(jù)包前會(huì)進(jìn)行匹配檢查。
接收端上的硬件非常相似;配置一個(gè)ADF7020收發(fā)器隨時(shí)接收唯一的同步字。收到同步字后便接收數(shù)據(jù)包。數(shù)據(jù)通過UART發(fā)送至PC。
圖2中顯示的是測量節(jié)點(diǎn)和基礎(chǔ)接收節(jié)點(diǎn)主環(huán)路的流程圖。
圖2. 測量和接收節(jié)點(diǎn)主環(huán)路流程圖
代碼說明-ADF7020驅(qū)動(dòng)器
ADF7020支持多種調(diào)制方案。本例中使用GFSK(高斯頻移鍵控),該方案的優(yōu)點(diǎn)是頻譜效率極佳。在此模式中,ADF7020在發(fā)送和接收時(shí)均產(chǎn)生數(shù)據(jù)時(shí)鐘。時(shí)鐘上升沿(DATA CLK)產(chǎn)生一個(gè)中斷,使ADuC7060按圖3所示將數(shù)據(jù)逐位地放置在輸出端口上。輸出所有數(shù)據(jù)后,芯片選擇解除,ADuC7060重新進(jìn)入深度睡眠模式。
在接收端上,ADF7020在接收到匹配的同步字后產(chǎn)生一個(gè)中斷(INT/LOCK端口在九個(gè)時(shí)鐘周期內(nèi)保持高電平)。
該信號(hào)通知ADuC7060處理器準(zhǔn)備接收數(shù)據(jù)包。從數(shù)據(jù)包接收的每一位均在ADuC7060內(nèi)產(chǎn)生一個(gè)中斷。在中斷服務(wù)程序(ISR)中,讀取位流并存儲(chǔ)在緩沖器內(nèi)。接收到數(shù)據(jù)包內(nèi)的所有字節(jié)后,設(shè)置一個(gè)標(biāo)志,指示新數(shù)據(jù)包已經(jīng)收到。主環(huán)路現(xiàn)在可通過校驗(yàn)和確認(rèn)數(shù)據(jù)包的有效性。然后處理正確和完整的數(shù)據(jù)包。本例中通過UART將以上信息發(fā)送至PC進(jìn)行顯示。如圖4所示,同一ISR既可接收來自ADF7020收發(fā)器的數(shù)據(jù),也可向其發(fā)送數(shù)據(jù)。
圖3. 數(shù)據(jù)I/O時(shí)序
圖4. 處理接收和發(fā)送數(shù)據(jù)的中斷服務(wù)程序
常見變化
根據(jù)所需頻率,可使用許多其他產(chǎn)品來代替ADF7020。例如,對(duì)于2.4 GHz頻段, ADF7242 是很好的選擇。