無(wú)線(xiàn)傳感器網(wǎng)絡(luò)SOC芯片的低功耗設(shè)計(jì)
4. 結(jié)構(gòu)層次上的低功耗設(shè)計(jì)
通過(guò)仔細(xì)分析整個(gè)SOC芯片的功耗來(lái)源,可知RISC CPU核,RAM,F(xiàn)lash及基帶處理模塊占去了絕大部分。下面從結(jié)構(gòu)層次進(jìn)行低功耗設(shè)計(jì)。
4.1 RISC CPU核的低功耗設(shè)計(jì)
微處理器的功耗降低可以通過(guò)降低頻率,及降低工作電壓的方法來(lái)解決。在網(wǎng)絡(luò)節(jié)點(diǎn)SOC結(jié)構(gòu)層次上的設(shè)計(jì)中,除了采用慢速時(shí)鐘,及低電壓供電的方法,還同時(shí)針對(duì)數(shù)據(jù)路徑進(jìn)行優(yōu)化,主要目的是為了減少電路中不必要的翻轉(zhuǎn)。指令譯碼數(shù)據(jù)路徑的優(yōu)化:一般情況下,CPU中所有的執(zhí)行單元直接接在指令譯碼單元后面。一旦有新的譯碼數(shù)據(jù)輸入,與其相連的所有執(zhí)行單元電路也去進(jìn)行翻轉(zhuǎn),造成不必要的功耗浪費(fèi)。所以,在不影響時(shí)序功能的情況,設(shè)計(jì)分離的內(nèi)部總線(xiàn),將不執(zhí)行的單元輸入數(shù)據(jù)及控制信號(hào)鎖存,其輸入信號(hào)保持不變,動(dòng)態(tài)功耗可以減少。芯片內(nèi)部集成了RAM及Flash ROM。為了降低這兩者的功耗,避免不必要的翻轉(zhuǎn),內(nèi)部總線(xiàn)與RAM,F(xiàn)lash 的接口單元設(shè)計(jì)鎖存器,這樣的話(huà),只有CPU訪(fǎng)問(wèn)相應(yīng)的地址時(shí),RAM及Flash內(nèi)部才進(jìn)行翻轉(zhuǎn)。
4.2基帶處理模塊的低功耗設(shè)計(jì)
基帶處理模塊的設(shè)計(jì)框圖如圖 2所示;其基于IEEE 802.15.4協(xié)議的物理層幀及數(shù)據(jù)鏈路層幀結(jié)構(gòu)如圖 3所示。從提高cpu的效率和減少功耗角度出發(fā),基帶處理模塊采用中斷方式與CPU通線(xiàn)?;鶐幚砟K發(fā)送完接收FIFO的數(shù)據(jù)幀,向CPU申請(qǐng)發(fā)送中斷,等待CPU寫(xiě)入新的數(shù)據(jù)到發(fā)送FIFO;當(dāng)基帶處理模塊接收到TR6903模塊發(fā)來(lái)的數(shù)據(jù)幀,存放入接收FIFO中,產(chǎn)生接收中斷等待CPU處理。
圖 2 基帶處理模塊結(jié)構(gòu)框圖
圖 3 物理層及數(shù)據(jù)鏈路層幀結(jié)構(gòu)
基帶處理模塊主要采用并行結(jié)構(gòu)與流水線(xiàn)技術(shù)來(lái)降低功耗。發(fā)送功能與接收功能的物理層發(fā)送模塊,緩沖區(qū)都是并行結(jié)構(gòu)。配置模塊也是分開(kāi)來(lái)設(shè)計(jì),數(shù)據(jù)的處理方式也是并行。包處理模塊的中CRC16也是采用并行結(jié)構(gòu)進(jìn)行校驗(yàn)的。這樣設(shè)計(jì)的好處,是為了在慢時(shí)鐘頻率下,通過(guò)并行設(shè)計(jì)提高性能,達(dá)到與高速時(shí)速一樣的性能。在圖 2中的各子模塊與子模塊之間都有流水級(jí),也就是鎖存器,不僅僅為了減少不必要的翻轉(zhuǎn),更重要的減少關(guān)鍵路徑上的長(zhǎng)度,從而達(dá)到間接降低功耗的目的。
基帶處理模塊低功耗結(jié)構(gòu)設(shè)計(jì)如下:
?
發(fā)送FIFO,接收FIFO:為接收,發(fā)送幀緩沖區(qū),用來(lái)存放MAC層的數(shù)據(jù)負(fù)載。
?
SFR特殊功能寄存器:1、中斷寄存器。主要有發(fā)送、接收中斷標(biāo)志、中斷使能位,F(xiàn)IFO溢出標(biāo)志位,發(fā)送、接收啟位位。2、配置寄存器。CPU 通過(guò)寫(xiě)入SFR寄存器,來(lái)選擇TR6903的工作模式,工作速率等。3、狀態(tài)寄存器:存放FIFO的數(shù)據(jù)字節(jié)數(shù)等。
?
包處理模塊:用硬件實(shí)現(xiàn)數(shù)據(jù)鏈路層部分功能。發(fā)送模式下,添加可變字節(jié)的前導(dǎo)碼,3位的界定符,1個(gè)字節(jié)的幀長(zhǎng),可選的前向糾錯(cuò)編碼,2個(gè)字節(jié)CRC16校驗(yàn)這些數(shù)據(jù)作為MAC層負(fù)載;接收模式下,包處理模塊完成對(duì)數(shù)據(jù)包的解包,主要工作為前導(dǎo)碼的檢測(cè),界定符的檢測(cè),可選的1個(gè)字節(jié)地址比較,2個(gè)字節(jié)的CRC16校驗(yàn)。
?
配置模塊:配置控制模塊,根據(jù)SFR中相應(yīng)的配置來(lái)控制CLK,DATA,STOBE引腳的時(shí)序來(lái)控制TR6903相應(yīng)的狀態(tài),實(shí)現(xiàn)跳頻的功能。
接收物理層模塊:接收控制模塊,實(shí)現(xiàn)物理層發(fā)送數(shù)據(jù)的功能。在RX_FLAG信號(hào)為高,即檢測(cè)界定符之后,在DCLK上升沿時(shí)采樣RX_DATA引腳的狀態(tài),依次接收幀長(zhǎng)字節(jié),物理層有效負(fù)載,2個(gè)字節(jié)的CRC16校驗(yàn),送給包處理模塊處理,并同時(shí)從LEARN/HOLD引腳向TR6903芯片輸出相應(yīng)的高電平,來(lái)應(yīng)答接收狀態(tài)。
?
發(fā)送物理層模塊:發(fā)送控制模塊,實(shí)現(xiàn)物理層發(fā)送數(shù)據(jù)的功能。在DCLK的上升沿將包處理模塊送來(lái)的物理層有效負(fù)載發(fā)送出去。
配置TR6903模式下仿真波形如所圖 4示,以串行方式向TR6903寫(xiě)入6個(gè)字節(jié)的配置,改變TR6903工作頻率,實(shí)現(xiàn)跳頻。此時(shí)在ConfigClock的上升沿時(shí)從ConfigData送出10110010,00111010,01010110,00111010,10101010,10110010數(shù)據(jù)。Strobe為高時(shí),ConfigClock停止。發(fā)送物理層幀部分仿真波形如圖 5所示,以串行方式向TR6903發(fā)送物理層的幀。此時(shí),先送出32位的0101…0101同步碼,3個(gè)位的界字符111(TR6903檢測(cè)到3個(gè)時(shí)鐘周期以上的高電平),后面緊接是幀長(zhǎng)及物理層負(fù)載。接收物理層幀部分仿真波形如圖 6所示。TR6903在界定符發(fā)送完畢的最后一位,送出1個(gè)時(shí)鐘周期高電平RxFlag信號(hào);基帶處理模塊檢測(cè)有效高電平,作為有效數(shù)據(jù)幀的開(kāi)始,同時(shí)基帶處理模塊從LH引腳輸出高電平,來(lái)響應(yīng)TR6903。
圖 4配置波形
圖 5發(fā)送物理層幀波形
圖 6接收物理層幀波形
評(píng)論