1. 什么是 CMUX
CMUX( Connection Multiplexing ),即連接(串口)多路復(fù)用,其功能主要在一個真實的物理通道上虛擬多個通道,每個虛擬通道上的連接和數(shù)據(jù)通訊可獨立進行。
CMUX 的設(shè)計需求來自于蜂窩模塊:蜂窩模塊作為一種基礎(chǔ)通信模塊,設(shè)計時就有電話,短信,上網(wǎng)等需求,但通常模塊上的片上外設(shè)資源比較少,于是 GSMMUX 應(yīng)運而生。
GSM0707/GSM0710 協(xié)議提供了解決問題的方法,在同一個串口上同時傳輸 AT, PPP, MODEM 等數(shù)據(jù)而互不干擾,也就是可以傳輸電話,上網(wǎng),短信等數(shù)據(jù)。
2. 為什么使用 CMUX
GSMMUX 可以解決在一個串口上與蜂窩模塊通信傳輸多種數(shù)據(jù)的場景,那 CMUX 就同樣可以解決在兩個 CMUX 上只使用一個物理串口傳輸多種 APP 數(shù)據(jù)的使用場景。
這就是我們 CMUX 軟件包推出的目的,一方面可以兼容 GSMMUX ,實現(xiàn) PPP 與 AT 模式同時進行,解決之前 PPP 數(shù)據(jù)單獨占用物理串口,而無法實時查詢模塊狀態(tài)的問題;另一方面,也可以由兩塊 MCU 在搭載 CMUX 的情況下僅使用一個物理串口實現(xiàn)多種傳輸場景的需求。
3. 軟件包介紹
3.1 框架圖

CMUX 是一種類似于傳輸層的協(xié)議,用戶使用時無法感知該層;數(shù)據(jù)傳輸依賴一個真實串口傳輸,cmux 層負責(zé)解析數(shù)據(jù)用以分發(fā)到不同的 virtual uart ;從而實現(xiàn)一個真實串口虛擬出多個 UART 的目的
CMUX 在應(yīng)用場景中多用于 UART, 如有必要也可以支持 SPI 方式
3.2 功能介紹
支持所有基于 GSM0707 / GSM0710 協(xié)議的蜂窩模塊
兼容 PPP_DEVICE 軟件包,實現(xiàn) CMUX+PPP 場景,在一個串口上同時傳輸 AT 命令與 PPP 數(shù)據(jù);解決PPP 通信獨占一個物理串口的問題
CMUX 的 GSM 功能已經(jīng)在 Luat Air720, SIM7600, SIM800C 模塊測試通過

支持通過一個真實串口虛擬出多個串口
CMUX 協(xié)議限制,理論上一個物理串口最多可以虛擬出 63 個虛擬串口
虛擬出的串口使用與真實串口一致,擁有 open,write,read 操作,設(shè)置 rx_indicate 接收回調(diào)
兩方的 MCU 接收時要注意 DLCI ( Data Link Connection Identifier ) 數(shù)據(jù)鏈路連接接標(biāo)識,相同的 DLCI 才可以互相正常通信
低資源占用

使用 GSM 支持時,對 PPP_DEVICE 軟件包同時開啟的情況,做了一些處理,以節(jié)省 ROM 資源占用。
因為解析出的數(shù)據(jù),掛載在不同虛擬端口的鏈表上,理論上占用 RAM 的大小只與鏈表上數(shù)據(jù)個數(shù)與長度相關(guān),1.57 K 是在 CMUX + PPP 環(huán)境下測出。
-
數(shù)據(jù)通訊
+關(guān)注
關(guān)注
0文章
50瀏覽量
13441 -
蜂窩模塊
+關(guān)注
關(guān)注
0文章
7瀏覽量
3519
原文標(biāo)題:CMUX 軟件包發(fā)布 | 不一樣的串口復(fù)用
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
什么是CMUX?為什么使用CMUX?
評論