1. 什么是 CMUX
CMUX( Connection Multiplexing ),即連接(串口)多路復用,其功能主要在一個真實的物理通道上虛擬多個通道,每個虛擬通道上的連接和數據通訊可獨立進行。
CMUX 的設計需求來自于蜂窩模塊:蜂窩模塊作為一種基礎通信模塊,設計時就有電話,短信,上網等需求,但通常模塊上的片上外設資源比較少,于是 GSMMUX 應運而生。
GSM0707/GSM0710 協議提供了解決問題的方法,在同一個串口上同時傳輸 AT, PPP, MODEM 等數據而互不干擾,也就是可以傳輸電話,上網,短信等數據。
2. 為什么使用 CMUX
GSMMUX 可以解決在一個串口上與蜂窩模塊通信傳輸多種數據的場景,那 CMUX 就同樣可以解決在兩個 CMUX 上只使用一個物理串口傳輸多種 APP 數據的使用場景。
這就是我們 CMUX 軟件包推出的目的,一方面可以兼容 GSMMUX ,實現 PPP 與 AT 模式同時進行,解決之前 PPP 數據單獨占用物理串口,而無法實時查詢模塊狀態的問題;另一方面,也可以由兩塊 MCU 在搭載 CMUX 的情況下僅使用一個物理串口實現多種傳輸場景的需求。
3. 軟件包介紹
3.1 框架圖
CMUX 是一種類似于傳輸層的協議,用戶使用時無法感知該層;數據傳輸依賴一個真實串口傳輸,cmux 層負責解析數據用以分發到不同的 virtual uart ;從而實現一個真實串口虛擬出多個 UART 的目的
CMUX 在應用場景中多用于 UART, 如有必要也可以支持 SPI 方式
3.2 功能介紹
支持所有基于 GSM0707 / GSM0710 協議的蜂窩模塊
兼容 PPP_DEVICE 軟件包,實現 CMUX+PPP 場景,在一個串口上同時傳輸 AT 命令與 PPP 數據;解決PPP 通信獨占一個物理串口的問題
CMUX 的 GSM 功能已經在 Luat Air720, SIM7600, SIM800C 模塊測試通過
支持通過一個真實串口虛擬出多個串口
CMUX 協議限制,理論上一個物理串口最多可以虛擬出 63 個虛擬串口
虛擬出的串口使用與真實串口一致,擁有 open,write,read 操作,設置 rx_indicate 接收回調
兩方的 MCU 接收時要注意 DLCI ( Data Link Connection Identifier ) 數據鏈路連接接標識,相同的 DLCI 才可以互相正常通信
低資源占用
使用 GSM 支持時,對 PPP_DEVICE 軟件包同時開啟的情況,做了一些處理,以節省 ROM 資源占用。
因為解析出的數據,掛載在不同虛擬端口的鏈表上,理論上占用 RAM 的大小只與鏈表上數據個數與長度相關,1.57 K 是在 CMUX + PPP 環境下測出。
-
數據通訊
+關注
關注
0文章
45瀏覽量
11854 -
蜂窩模塊
+關注
關注
0文章
6瀏覽量
3423
原文標題:CMUX 軟件包發布 | 不一樣的串口復用
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論