国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

wiminet的個人空間 http://www.qingdxww.cn/space-uid-174231.html [收藏] [復制] [RSS]

博客

低功耗休眠喚醒之三級環形架構

已有 551 次閱讀2024-4-29 12:43 |個人分類:無線低功耗技術

前言

無線通信技術相關應用中,用戶體驗一直是用戶關系的重點。無線通訊距離近一點,通訊速度慢一點,這都不是致命的問題,在某些場合下是完全可以接受的,甚至 本身就是項目的技術需求;但是有一些設計缺陷卻會嚴重影響用戶體驗的,一旦大面積的出現,基本上可以判定為產品失敗了;總結起來,大家都無法忍受的問題主要是下述兩個 


1)通訊失敗或者數據傳輸錯誤


2)電池消耗快,很快沒電

 

01

業內問題

 

在絕大部分用戶的心目中,無線通訊本身就不如有線通訊技術穩定,如果一款產品還經常傳輸失敗,試問用戶會對這款產品有信心嗎?

 

無線產品配合上電池供電,才能充分發揮無線技術可以隨意移動的優勢,因此很多的無線產品經常和低功耗或電池供電有非常緊密的聯系;一旦這個產品電池消耗很快,那么必然將是其便攜性,移動性大打折扣。

 

當然,在理論設計上產品的電池壽命肯定是非常長的,但是真正實現起來卻比較困難,很多的產品設計電池壽命有 5 年之久,但是現場運行不到一年,甚至幾個月就完全沒電了,這種問題的發作經常沒有任何規律,測試時間上又以年/月為單位,且呈現出偶發特性,定位起來極其困難,困擾了不少的無線通訊技術工程師,被認為是業界的重要難題之一。

 

02

技術難點

 

其實電池快速耗電和通訊不穩定說到底都是軟件設計,特別是軟件架構方面的設計問題;軟件架構上的不完整或混亂,導致射頻芯片的控制不準確甚至部分狀態失去控制才是問題的源頭。既然大家都認為功耗的管理是一個難題,那么到底難在哪些環節呢?

 

1 產品的低功耗休眠喚醒設計,存在系統業務和應用層業務兩種:在系統層面講,主要有OTA無線升級、遠程診斷、遠程控制(無線I/O)等;在應用層中則是回調機制、關閉端口上拉、檢測用戶按鍵、關閉工作指示燈等。系統層內容屬于整個產品的軀干和骨架,通常需要交給經驗豐富的工程師負責,因為涉及精密的規則和龐大的算法問題,需要較為強大的抽象能力和全面的視角。而應用層則是面向用戶的,體現在軟件部分則相對比較簡單。

 

2 系統存在多種喚醒源:UARTGPIORTCTimer等,這些喚醒源中斷方式和清除規則略有不同,但是進入和退出休眠需要遵循相同的路徑,因此其控制邏輯需要做一定的抽象化設計,具有一定的挑戰。

 

3 基于RTC定時器的后臺背景活動: 某些延遲操作,比如開啟一個 LED 指示燈,十秒之后關閉,此時如果處理器全速運行就為了運行這一功能,是不太經濟的;通常是設置一個狀態標志,然后啟動RTC定時器,并將處理器切入休眠狀態,計時的時間到了之后會產生一個RTC中斷,處理器可以在這種中斷到達的時候關閉這個LED 指示燈。類似這些延遲操作,往往還會和其他的業務狀態交織在一起,控制邏輯需要精確設計,稍有不慎就會失去控制。

 

4 被未知的電磁波干擾,吵醒  誤喚醒等假喚醒行為:無線電波由于空間開放的特性,其喚醒動作往往伴隨著少量的模擬特性,偶爾會被一些未知的信號給誤觸發,處理器被喚醒之后, 需要對喚醒后的實時參數做一些分析計算,對喚醒源進行甄別篩選,如果不是有效的喚醒,需要提前終止業務邏輯。

 

5 存在多種不同模式的睡眠深度的低功耗模式:處理器通常支持多種不同的睡眠 深度 對應不同的功耗等級。不同睡眠模式下,處理器可以激活的外設不一樣的,在喚醒之后,有些外設需要再次初始化之后才可以重新投入工作,只有深入了解處理器的工作特性,才能控制好處理器不同睡眠模式 切換工作。

 

6 雙芯片模式(獨立的無線通訊模塊)模式和單芯片模式(協議棧和應用層業務運行在一個芯片上),需要統一的編程接口 如果維持兩套不同的編程接口,代碼分支龐大不說,還很容易產生歧義,為后續的產品維護和架構升級帶來困難。


綜合以上難點,需要解決如此復雜的功耗控制要求,必須分而治之,采用分層的控制策略;行之有效的解決方案就是如下的內--外,三級環形架構。

 

03

三級環形架構

(圖1

上圖是一個電子價簽的主程序框架。可以看出該程序主要分為三個主線程,分別是協議棧的主線程;低功耗休眠與喚醒的主線程與墨水屏應用業務的主線程。這三個主線程在同一個層級平行運行,具有相同的調度優先級。

 

局放圖

(圖2

我們將低功耗休眠與喚醒的主線程做局部放大,如上所示。

圖中的三級環架構是休眠喚醒管理模塊的核心,是整個休眠喚醒功能的局部放大。如圖所示,由內環、中環、外環,三部分構成。因為考慮到在無線通信中,各種事件的復雜程度及其處理方式,分為以上三環。最內部一環主管電磁波喚醒,中層環主管GPIO喚醒、RTC喚醒、UART喚醒,最外層環則啟動了整個協議棧以及業務層,面向用戶進行交互。

三級環的目的突出的是分層做事原則。在內環中只進行電磁波喚醒的工作,這里主要有三部分,查詢中斷、分析中斷狀態、無線電波處理。當信號到達這一環,會根據信號類型分析是否進行無線電波的喚醒處理。

如果不是無線電波喚醒,則跳出該層,進入中環處理。這里的信號類型分析和處理是根據不同事件、不同時刻產生的耦合性而定的。

在中環,GPIO 喚醒是特定產品的喚醒模式;RTC 喚醒通常用于一些低優先級的后臺任務,比如檢測是否漏電或者執行一些延遲 I/O 操作;UART   串口喚醒 則是針對用戶處理器。

外環則是面向用戶的層級,如需要啟動主程序固件升級或者業務邏輯,比如墨水屏的刷新屏幕顯示內容等,則程序會被全面喚醒,此時就在外環中進行。

 

04

環形架構的優勢


由外環、中環到內環,視覺效果方面是越來越小的,越來越縮放的。自然在功能性方面也是越來越小,越來越簡潔的過程。三級環從外到內,能做的    就越來越少,體現在軟件代碼方面就是,代碼更少,功能性更加單一,邏輯更加清晰,運行更穩定。從而更加節省功耗。


為什么功耗更加節約?將電磁波喚醒獨立拆分,做成了獨立的單元結構,是出于這樣的考慮的。當信號指令到達三級環,內環首先進行判定,是否需要電磁波喚醒,判定是,就進行電磁波喚醒;判定不是,則跳入中環選擇喚醒類別,內環進入休眠。


考慮到事件的復雜性、多樣性,需要從不同屬性、不同時間等多角度考量休眠喚醒的執行,通俗點說就是“跟我相關起來干活,跟我無關繼續睡覺”,這樣的三級環設計針對性很強,在需要單一模式喚醒時,只需要調動少數軟件資源和內部耗能就可以完成,完成相關作業后繼續休眠,等待下一輪指令喚醒。從而這樣的三級環設計是一款更加節約功耗的方案。

 

05

回調函數


// *****************************************************************************
// Design Notes:  
// -----------------------------------------------------------------------------
char OnHostWakeup_Request( unsigned char iStatus, char iCause, char iReqAck )
{      
   unsigned char iRetVal;
   
   // The callback status
   switch ( iStatus )
   {
   
 case  WIMINET_SLEEP_CALL_INIT:
      {
         OnWakeupRequest_Init( iCause, iReqAck );
      }
      
 break ;
      
   
 case  WIMINET_SLEEP_CALL_OPEN:
      {
         OnWakeupRequest_Open( iCause, iReqAck );
      }
      
 break ;

   
 case  WIMINET_SLEEP_CALL_WORK:
      {
         OnWakeupRequest_Work( iCause, iReqAck );
      }
      
 break ;

   
 case  WIMINET_SLEEP_CALL_STOP:
      {
         OnWakeupRequest_Stop( iCause, iReqAck );         
      }
      
 break ;

   default:
      {
         iRetVal = 0X00;
      }
      
 break ;      
   } 
   
   // The 
 return  status
   
 return  iRetVal;


以上是一個 SoC 產品方案,回調函數的標準樣本,通常需要實現“系統剛剛喚醒”,“已經完成初始化”,“執行用戶任務”,“即將進入休眠”等幾個重要的通知時刻:

系統剛剛喚醒  系統運行在三級環的內環,處理器剛剛被中斷喚醒,需要啟用系統層級別的外設,比如 SPI 總線等;

已經完成初始化: 系統已經切換至三級環的外環,控制權準備釋放給用戶程序,通常在此時初始化用戶任務;

執行用戶任務  系統運行在三級環的外環,此時協議棧程序也在同層級平行運作,用戶程序執行完了之后,需要釋放控制權給系統,通知系統進入睡眠模式

即將進入休眠  系統運行在三級環的中環,所有的數據都已經發送完畢或者超時終止,即將重新進入睡眠模式,通知用戶關閉外設,執行任務的清理或者重置工作。

對于不太復雜的系統,通常僅僅需要實現上述四個通知的回調函數即可,其余的通知可以不做處理器;對于更加復雜的系統,可以根據需要實現其他更多的回調通知。  


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 卡一卡二卡三精品app下载 | 91热久久免费精品99 | 四虎在线观看视频 | 免费国产黄网站在线观看 | 久久精品国产精品亚洲20 | 亚洲美女综合网 | 1204曰韩欧美成人看片 | 性色aⅴ闺蜜一区二区三区 性色a v 一区 | 国产精品亚洲第五区在线 | a级国产乱理伦 | 亚洲精品专区 | 99久久久久国产 | 亚洲六月丁香色婷婷综合久久 | 国产一区国产二区国产三区 | 欧美资源站 | 欧美大片网址 | 第四色播日韩第一页 | 五月天久草 | 久草亚洲视频 | 欧美日韩视频在线第一区二区三区 | 在线观看黄a | 青青青国产在线 | 亚洲人成在线中文字幕 | 国产一区二区精品在线观看 | aaa在线观看 | 青草视频在线观看视频 | 久久久亚洲精品蜜桃臀 | 亚洲天堂久久 | 免费五级在线观看日本片 | 成人在线日韩 | 免费人成在线观看网站品爱网日本 | 91社区在线观看 | 韩国黄色网页 | 欧美一级黄色片免费看 | 日日干综合 | 手机看片中文字幕 | 黄色免费在线观看网站 | 经典老汉gayoldmantv | 男女性关系视频免费观看软件 | 夜夜狠狠 | 久久www免费人成看片入口 |