以前人們討論談人工智能時主要關注云計算 — 數據上傳到云端,利用其強大計算能力得到結果。然而,云計算的前提是所有的數據都要傳到云端,對帶寬要求極高,可能到6G時代才能真正實現。
現在我們將人工智能轉移到邊緣端進行邊緣計算。通常情況下,邊緣計算是將算法放置到MCU中,傳感器只輸出數據,MCU運行獨立算法。然后,現在我們將算法下沉放到傳感器中,有兩種不同的方案:
1)基于MLC,采用rPU處理器進行重配置,能將部分算法(如決策樹算法)運行于傳感器中,再由傳感器輸出事件結果給MCU。這樣就不需要MCU去處理運行全部算法。
2)基于我們今天的主角ISPU,Intelligent Sensor Processing Unit,智能傳感器處理單元。
ISPU不是傳感器,只是嵌入在傳感器IMU里面的功能模塊。ISPU本質上是一種微型C語言可編程處理器,可在傳感器內執行信號處理和AI算法,與常見開發工具兼容,相當于傳感器中嵌入了一個DSP,可以運行類似MCU的算法。因此,它擁有更強大的功能,可以運行標準的C指令,支持信號處理和AI推理、機器學習和深度學習,甚至二進制神經網絡,同時以μA級的功耗提供廣泛的編程靈活性,讓傳感器的智能程度更進一步!
目前帶ISPU的6軸慣性測量單元(IMU)有兩種。面向復雜動作手勢識別、事件檢測和運動追蹤等消費應用的LSM6DSO16IS,以及面向機器人、空調和資產追蹤,預測性維護等邊緣工業應用的ISM330IS。除了基本的IMU功能(如可配置陀螺儀量程,加速度量程,ODR數據,SPI/I2C接口),內部還集成了ISPU用于人工智能算法和處理超低功耗可編程核心,運行頻率最高可達到10兆赫茲,配備32KB用于程序的RAM和8KB用于數據的RAM,總40KB內存,支持浮點運算及32位整數運算。
ST的ISPU方案基于DSP架構。這種DSP面積很小,只有8K門;封裝也很小,僅為3*2.5*0.83;支持浮點運算,同時也支持神經網絡。基于32位的哈佛架構,最高主頻可達10MHz,最大輸出數據達到6.6KHz。
ISPU的優勢很明顯,首先在功耗方面,如果將傳感器融合算法運行到ISPU中,5MHz功耗僅為200μA。但是,如果運行在Cortex-M0上,即使主頻為4MHz,功耗也需要1300μA。可見,ISPU傳感器融合的功耗是比M0低5倍。此外,由于ISPU是DSP直接集成在傳感器中,可以直接獲取類似加速度儀等傳感器的處理數據,無需總線參與,從而降低系統的負載和功效。在104Hz頻率下讀取數據時,ISPU僅僅耗費1μA,而Cortex-M0在4MHz時就已經需要94.4個μA。
當ODR增大,ISPU運行速率加快時,功耗差距越大。例如,當883Hz去提取加速度數據時,ISPU功耗僅為7.5μA,而Context-M0為747μA,兩者的差距已達百倍。當然,對于其他算法,如傾角檢測,排氣檢測,傳感器融合,手腕傾斜(比如手表穿帶的翻腕亮屏功能),ISPU的功耗也很低。
其次是ISPU的AI優勢 — ISPU提供更多選擇和更大自由的自學習方案:一方面,它可以支持機器學習,如決策樹,Scikit-learn;另一方面,它也支持深度學習算法,如常見的QKeras、TensorFlow、ONNX等,同時,我們采用ISPU的編譯器,將基于機器學習和深度學習算法模型進行編譯,生成ISPU可運行的UCF配置文件,通過MCU將該配置文件寫入ISPU,即可運行算法。這可以廣泛應用于個人電子產品(如穿戴設備,頭戴設備等)以及工業領域的事件監測等。
ISPU的運行原理:
在LSM6DSO16IS/ISM330IS的IMU內部框架中,傳感器hub可以通過I2C連接外部磁力計和氣壓計等設備。ISPU可以通過內部的IMU傳感鏈直接讀取外部的傳感器(地磁或氣壓計)和內部的加速度、陀螺儀和溫度數據。ISPU支持運行最多30個算法,但由于ISPU是單核,它以串型的方式運行,每一個算法都可以產生一個中斷信號,通知主控發生的中斷事件。
ISPU可以通過I2C與SPI與主控連接,同時通過多種寄存器跟主控交互。例如,如果主控需要配置參數,可以通過總線將參數寫到ISPU的配置寄存器對ISPU進行配置,而標志寄存器可以通過總線實現主控和ISPU的數據交互。此外,ISPU輸出數據寄存器可以在中斷發生后將數據送出,告知MCU當前發生了什么事件。
ISPU開發流程:
首先是基于ISPU代碼進行編碼,使用工具鏈將其編譯成ISPU二進制文件。然后,將該ISPU二進制文件與傳感器配置文件(configureTXT)傳感器配置文件一起使用工具生成ISPU.h或者.UCF配置文件。將這些文件復制到MCU的應用程序代碼中,加載ISPU程序并讀取算法結果,使用ARM工具鏈進行編譯,生成應用.bin文件,最后將應用.bin文件燒錄到MCU中運行。
ISPU軟件的開發工具有3種:1)基于命令行工具CLI
命令行主要在Windows下使用,通過CMD輸入命令來實現編譯工作。
采用這種方法,開發之前需要先安裝ISPU編譯工具鏈,并在Windows里安裝make工具。然后可以基于我們提供ISPU模版開發Norm算法,修改傳感器配置,通過json輸出文件進行編譯,再通過GUI連接板子并連上電腦,使能ISPU。
2)基于Eclipse的IDE
如STM32CubeIDE,可以編輯代碼及編譯ISPU程序。開發時需要先下載安裝Eclipse插件,然后導入工程進行編譯。
3)GUI
采用AlgoBuilder,無需編寫代碼,只需要在軟件中拖拽不同模塊進行連接,即可自動生成代碼。用戶需要先在ST官網上下載AlgoBuidler、STM32CubeIDE、STM32CubeProgrammer和Unico-GUI軟件并安裝,通過設置后即可實現零代碼設計,基于模塊固件編譯和燒寫以及調用Unicleo-GUI。
-
傳感器
+關注
關注
2550文章
51056瀏覽量
753245 -
算法
+關注
關注
23文章
4608瀏覽量
92852 -
人工智能
+關注
關注
1791文章
47229瀏覽量
238330
原文標題:技術分享 | 傳感器的智能之路和實現之道(下)
文章出處:【微信號:comtech_inc,微信公眾號:Comtech科通】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論