周晨業

摘要
本文致力于設計出一種基于13C總線為系統通信方式并通過實時與傳感器進行數據交互的具有傳感器數據網絡回傳功能的嵌入式傳感器監控系統。設計工作是基于高通SDM845平臺控為核心的,通過I3C總線獨有的對總線設備實時交互的特性,從而實時獲得設備節點的運行狀態。該設計方案可以很好的應用于物聯網中對設備環境和運行參數的監測。
【關鍵詞】物聯網 高通SDM845平臺 I3C總線傳輸 實時性
如今4G/5G,NB-Iot等網絡技術的不斷迅猛發展,信息交換溝通的范圍迅速擴大,萬物互聯已經不是紙上談兵,其實質就是對各個可控設備的實時數據采集,狀態監控。而萬物互聯的技術自然離不開各種傳感器。隨著監測的數據量不斷增大,更加需要傳感器采集系統兼具網絡化,高時性、和高可靠,簡易性等特點。本文致力于研究并設計出一套以I3C總線為系統通信方式的,傳感器狀態通過I3C總線實時的與控制端以及其他設備進行交互的,并能夠快速的通過網絡接口把傳感器數據發送到終端用戶的系統。
1 I3C總線無線控制的傳感器電路設計
系統的電路設計主要是由3個模塊化電路實現的,其中以SDM845系統電路為控制核心,以I3C控制器和加速度陀螺儀傳感器組成SDM845外設的系統電路。
1.1 核心控制器SDM845簡介
系統硬件選用高通驍龍系列的SDM845的ARM控制芯片,其對外設有很好的支持能力,并有很高的處理速度和可靠性。并且其芯片本身自帶AI Core以及modem模塊也是本次設計選擇SDM845的緣由。
Qualcomm SDM845使用Kryo 385內核,八核心架構,四顆大核心最高頻率可達2.8GHz,四顆小核心頻率可達1.8GHz。
諸多新的特性以及性能的提升是SDM845實現整個系統高效,快速,可靠的關鍵因素之
1.2 Mipi I3C協議簡介以及I3C總線的優勢
I3C的全稱是Improved Inter IntegratedCircuit。I3C兼容了I2C(雙線、簡單)與SPI(高速度,低功耗)的優勢并加入了新功能,包括支持in-band中斷、動態編址(dynamicaddressing),以及更先進的電源管理。各種傳感器的系統或應用若采用I3C接口,將可大幅降低成本與功耗;這類系統的擴展性也將優于采用I2C或SPI接口的系統。”
I3C總線支持從12.5Mbps到接近37.5Mbps的速率。在SDR模式下,I3C總線中的SCL時鐘頻率最高為12.5MHz。
同時I3C的帶內中斷In-band功能可以節省更多的系統GPIO資源,這使得芯片間的連接更加簡潔,PCB也可以簡化。此外I3C的hot-join功能可以支持從設備的熱插拔和主動退線功能,進而節省更多的系統功耗。諸多I3C總線新的特性使得I3C更加適合傳感器等類似物聯網系統的應用上。
1.3 I3C控制器與傳感器簡介
I3C的主控制器仍然是高通提供的,其核心是基于cortex-M4的傳感器hub。
本次項目中的傳感器選用的應美盛的ICM
42605。該芯片是加速度以及陀螺儀以及溫度多用途傳感器芯片,可以實時穩定的監測設備的狀態,包括待檢測設備的運行姿態,運行溫度等狀態。
ICM42605內嵌了最新的MIPI I3C從設備控制器,是如今最早支持I3C總線的傳感器芯片之一。
2 I3C總線上傳感器的交互程序實現
基于I3C總線的傳感器與主控制端的的程序分為4個部分,這4個部分是從軟件功能來劃分的,如下:I3C主控制端的通信控制邏輯實現,I3C總線的帶內中斷(In-Band)功能,I3C bus主控端Hot-join熱插拔功能,整體系統狀態的處理和數據上報。
2.1 I3C主控制端的通信控制邏輯實現
I3C主設備的控制邏輯以及程序流程步驟由如下步驟組成:
(1)主控制設備程序在恰當的狀態啟動,并通過從設備處收到以下數據:①需要配置動態地址的I3C兼容設備。②掛接到I3C總線上的已有靜態地址的I3C設備數量。③掛接到I3C總線上IZC設備的數據
(2)主控端程序使用Set DynamicAddress命令為已有靜態地址的I3C設備設置動態地址。
(3)主控端發送廣播命令Enter DynamicAddress Assignment。
(4)主控端程序發送一個RepeatedSTART,并產生廣播地址7h'7E,并將RnW位置高。
(5)主控端程序將SCL線拉低,并釋放SDA線為High-Z狀態,以允許上拉電阻將SDA拉為高電平。
(6)在第4步中,每一個響應I3C廣播的I3C從設備應當在SDA線上輸出自己48-bit的專有ID,直到由于仲裁丟失通訊。
(7)主控端使用相同的時鐘連續驅動SCL信號線,同時保持釋放SDA。沒有丟失通訊的I3C設備接著傳送它的BCR數據,直到丟失通訊權。
(8)主控端負責向贏得仲裁的設備傳送7bit的動態地址。這一動態地址與主機希望分配的優先級相匹配。贏得仲裁的設備在動態地址被發送的時候ACK。
(9)主控端發送7bit動態地址,然后發送校驗位,校驗位是7bit數據XOR的取反。
(10)如果校驗成功,傳感器從設備會在下一SCL時鐘接受該動態地址,然后再下一SCL發送NACK
(11)主控端程序一直重復這一過程,跳回第4步,直到總線上不再有I3C設備并返回ACK。
2.2 I3C bus主控端帶內中斷In-band功能的實現
在I3C中總線通信的帶內中斷程序實現中,I3地址的優先級決定了傳感器從設備請求中斷時的優先級。每一個從設備的優先級被編碼到其動態地中,地址越小則優先級越高。地址越小優先級高的傳感器從設備在發出In-Band中斷請求的時候則會被Master更優先處理。
在動態地址指定過程中,主控制器將更低的地址賦給需要優先處理In-Band中斷請求的設備。
而在I3C從設備這端,為了請求中斷,傳感器從設備在START后向總線上發送參與仲裁的地址頭。主控端同時將SCL拉低并完成START序列的形成。主控端以既定優先級順序處理中斷請求。接著傳感器從設備會將自己的地址寫到SDA線上。
此時,主控Master根據需求執行下述三項之一:
(1)第一種情況,通過ACK接受IBI。
1.如果傳感器從設備的BCR[2]位是1,則主控制端讀取由IBI設備允許的時鐘速率發起的數據流。當前的主設備不可以拒絕接收伴隨的數據,因為它是以推挽輸出模式傳送的。
2.如果傳感器從設備的BCR[2]是0,當前主設備可以實施任何有效的I3C動作。可以發送一個STOP,或是Repeated START,或者繼續按照一般讀數據模式讀取負載數據。
(2)第二種情況:拒絕IBI但并不禁止中斷。當前的主控設備簡單的NACK IBI即可。
(3)第三種情況:拒絕IBI并禁止中斷。首先當前的主控設備NACK IBI事件,然后起始一個Repeated START,最后使用DisableSlave Event Connnand命令來設置DISINT位以禁止中斷。
3 基于I3C總線的傳感系統集成設計
之前的部分講述的是各個模塊的軟件設計,這里把所有的模塊整合在一起就形成了本次設計的整套軟件系統。從最低層的主控端與傳感器的物理總線通信部分到傳感器的狀態識別處理,再到通過移動互聯網來進行數據分發到終端用戶。
簡易的系統架構設計模塊圖如圖1。
整個系統分為:系統硬件通信層,數據獲取以及處理層,數據分發上報層。
系統硬件通信層:I3C控制端口的初始化模塊,傳感器初始化和通信模塊。
數據獲取以及處理層:監測傳感器狀態的處理線程,Hot-join的監測及處理模塊,In-band帶內中斷模塊,傳感器數據識別以及處理模塊等。
數據分發上報層:移動網絡數據分發模塊,NB-Iot數據鏈路模塊,物聯網設備管理和數據推送模塊。
4 結語
此設計方案可用于智能家具等物聯網應用,對傳感器設備的狀況進行實時監測,并可以通過移動互聯網獲取并控制物聯網現場每個傳感器設備的狀態和參數。經過本設計以及多次實驗證明,嵌入式I3C總線控制的傳感器監控系統設計方案可行有效。在SDM845上基于I3C總線傳輸的傳感器監控系統的設計是符合并滿足如今物聯網對于傳感器以及衍生設備數據實時獲取的需求,而且同時兼備了系統設計的簡潔以及高效性。
參考文獻
[1]伍新華,陸麗萍.物聯網工程技術[M].北京:清華大學出版社,2011.
[2]黃玉蘭.物聯網傳感器技術與應用[M].北京:職業教育出版分社,2012.
[3]沙占友.智能傳感器系統設計與應用[M].北京:電子工業出版社,2004.