MCU控制4G模組(標準AT命令),CatM的最大速率?

根據3GPP標準,Cat M1的上行峰值速率大約是1 Mbps,下行大約是1 Mbps。但實際速率會受到多種因素影響,比如網絡條件、信號強度、模塊配置等。

考慮使用AT命令時的開銷。每次發送數據都需要通過AT命令,比如AT+QISEND,會引入額外的處理時間和串口通信延遲。透傳模式之所以能提高效率,是因為它減少了這些命令的開銷,允許數據直接通過串口傳輸。如果不用透傳,每個數據包都需要封裝成AT命令,這會增加時間,從而降低有效速率。

用戶使用的是115200波特率的串口,理論上的最大傳輸速率是115200 bits per second,大約14.4 KB/s。但實際中,由于協議開銷(起始位、停止位等),有效數據速率可能只有約11.5 KB/s。此外,AT命令的處理時間、模塊的響應時間也會影響整體速率。

比如,發送一個1KB的數據包,需要發送AT+QISEND命令,等待模塊響應,然后發送數據,再等待確認。每個步驟的時間總和會影響吞吐量。假設每個數據包需要100毫秒的處理時間,那么每秒最多發送10個數據包,每個1KB的話,大約是10 KB/s,即80 kbps。這明顯低于理論峰值,說明AT命令的開銷對速率有很大影響。

在不使用透傳模式(即通過標準AT命令逐條控制模塊)的情況下,Quectel BG770A 的 LTE Cat M?實際有效傳輸速率會顯著降低。以下是關鍵分析:


1. Cat M1的理論速率

  • 3GPP 標準定義
    LTE Cat M1 的理論峰值速率為?上行 1Mbps?和?下行 1Mbps(實際速率受網絡、信號、模塊配置影響)。

  • Quectel BG770A 實測能力
    在透傳模式下,優化后可達到?600kbps~800kbps(TCP/UDP 傳輸)。


2. 非透傳模式(AT命令控制)的速率限制

(1) 串口通信瓶頸
  • 串口波特率限制

    • 若使用默認?115200 波特率,理論最大傳輸速率為?14.4 KB/s(115200 bps ÷ 8 = 14.4 KB/s)。

    • 實際有效速率更低(需扣除AT命令交互時間、模塊響應延遲等)。

  • 典型速率范圍

    • 單次發送 1KB 數據
      每條?AT+QISEND?命令需約?50~100ms(包括命令發送、模塊響應、數據確認),實際速率約為?10~20 KB/s(80~160kbps)

(2) AT命令交互開銷
  • 發送數據流程

    AT+QISEND=<length> ? ? ? ? ? // 發送數據長度
    > <data> ? ? ? ? ? ? ? ? ? ? // 等待模塊返回">"后輸入數據
    OK ? ? ? ? ? ? ? ? ? ? ? ? ?// 模塊確認發送完成

    • 每條數據需?3次串口交互(命令、數據輸入、確認),額外增加約?20~50ms 延遲


3. 優化策略(提升非透傳模式速率)

(1) 提高串口波特率
  • 將波特率設為?921600(BG770A支持):

    • 理論速率提升至?115.2 KB/s,但需MCU和硬件支持高速串口。

    • 實測有效速率可達?50~80 KB/s(400~640kbps)(需優化代碼減少交互延遲)。

(2) 批量發送數據
  • 合并多包數據
    通過單次?AT+QISEND?發送更大數據塊(如 10KB),減少命令交互次數。

    AT+QISEND=10240 ? ? ? ? ? ? // 發送10KB數據
    > <10KB數據流>
    OK

    • 速率可提升至?200~300kbps(取決于數據塊大小和網絡穩定性)。

(3) 關閉冗余響應
  • 禁用模塊的自動響應(如?ATE0):

    ATE0 ? ? ? ? ? ? ? ? ? ? ? ?// 關閉回顯
    AT+QURCCFG="urcport","none" ?// 關閉非必要URC通知

    • 減少串口數據干擾,提升有效帶寬利用率。


4. 實際速率參考

場景有效速率范圍備注
默認AT模式(115200)80~160kbps單包1KB,頻繁交互
高速串口(921600)400~640kbps批量發送10KB數據,優化響應邏輯
透傳模式對比600~800kbps透傳模式顯著更高效

5. 注意事項

  1. 網絡質量

    • 確保信號強度(RSRP > -100dBm),否則模塊可能降速。

  2. MCU性能

    • MCU需快速處理AT命令和串口中斷,避免成為瓶頸。

  3. 協議選擇

    • UDP比TCP更高效(無重傳機制),但需容忍丟包。


結論

在不使用透傳模式的情況下,BG770A 的 Cat M?實際速率約為 80~640kbps,具體取決于:

  • 串口波特率(921600 > 115200

  • 數據包大小(大包 > 小包

  • AT命令交互優化(批量發送 > 單次發送

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76275.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76275.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76275.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript(JS進階)

目錄 00閉包 01函數進階 02解構賦值 03通過forEach方法遍歷數組 04深入對象 05內置構造函數 06原型 00閉包 <!-- 閉包 --><html><body><script>// 定義&#xff1a;閉包內層函數&#xff08;匿名函數&#xff09;外層函數的變量&#xff08;s&…

6.1es新特性解構賦值

解構賦值是 ES6&#xff08;ECMAScript 2015&#xff09;引入的語法&#xff0c;通過模式匹配從數組或對象中提取值并賦值給變量。&#xff1a; 功能實現 數組解構&#xff1a;按位置匹配值&#xff0c;如 let [a, b] [1, 2]。對象解構&#xff1a;按屬性名匹配值&#xff0c;…

SpringBoot美容院管理系統設計與實現

基于SpringBoot的美容院管理系統免費源碼&#xff0c;幫助您快速搭建高效、智能的美容院管理平臺。該系統涵蓋了管理員、技師、前臺、普通用戶及會員五大功能模塊&#xff0c;以下是系統的核心功能與部署方式詳細介紹。 ?功能模塊 ?管理員功能 ?美容部位管理&#xff1a;支…

記一次某網絡安全比賽三階段webserver應急響應解題過程

0X01 任務說明 0X02 靶機介紹 Webserver&#xff08;Web服務器&#xff09;是一種軟件或硬件設備&#xff0c;用于接收、處理并響應來自客戶端&#xff08;如瀏覽器&#xff09;的HTTP請求&#xff0c;提供網頁、圖片、視頻等靜態或動態內容&#xff0c;是互聯網基礎設施的核心…

ChatGPT 4:引領 AI 創作新時代

文章目錄 前言一、ChatGPT 4 的技術革新二、AI 文案創作&#xff1a;精準生成與個性化定制三、AI 繪畫藝術&#xff1a;從文字到圖像的神奇轉化四、AI 視頻制作&#xff1a;自動化剪輯與創意實現五、知識庫與 ChatGPT 4 的深度融合六、全新的變革和機遇七、相關書籍推薦《ChatG…

HTTP請求-請求行

請求行&#xff08;方法&#xff0c;URL&#xff0c;版本號&#xff09; 方法&#xff1a; 描述了這次請求的目的。 常見方法&#xff1a; GET&#xff1a;從服務器拿一個東西過來&#xff08;讀操作&#xff09; POST&#xff1a;往服務器放一個東西去&#xff08;寫操作…

OSPF不規則區域和LSA

OSPF不規則區域 1.遠離骨干的非骨干區域 R1-R4四臺路由器能夠正常學習到彼此路由&#xff0c;但是R5不行&#xff0c;因為R5是非法ABR 解決方法&#xff1a; 1使用Tunnel隧道將AR4連接到骨干區域 &#xff08;1&#xff09; 使用隧道解決不規則區域的問題 a.可能造成選路不…

【VS Code】開發C++跳轉配置

C配置c_cpp_properties.json {"env": {"myIncludePath": ["${workspaceFolder}/src/include","${workspaceFolder}/src","${workspaceFolder}","/home/xxx/include/"],"myDefines": ["RELEASE&qu…

Spring AI應用:利用DeepSeek+嵌入模型+Milvus向量數據庫實現檢索增強生成--RAG應用(超詳細)

Spring AI應用&#xff1a;利用DeepSeek嵌入模型Milvus向量數據庫實現檢索增強生成–RAG應用&#xff08;超詳細&#xff09; 在當今數字化時代&#xff0c;人工智能&#xff08;AI&#xff09;技術的快速發展為各行業帶來了前所未有的機遇。其中&#xff0c;檢索增強生成&…

Spring 的 IoC 和 DI 詳解:從零開始理解與實踐

Spring 的 IoC和 DI 詳解&#xff1a;從零開始理解與實踐 一、IoC&#xff08;控制反轉&#xff09; 1、什么是 IoC&#xff1f; IoC 是一種設計思想&#xff0c;它的核心是將對象的創建和管理權從開發者手中轉移到外部容器&#xff08;如 Spring 容器&#xff09;。通過這種…

JVM基礎架構:內存模型×Class文件結構×核心原理剖析

&#x1f680;前言 “為什么你的Java程序總在半夜OOM崩潰&#xff1f;為什么某些代碼性能突然下降&#xff1f;一切問題的答案都在JVM里&#xff01; 作為Java開發者&#xff0c;如果你&#xff1a; 對OutOfMemoryError束手無策看不懂GC日志里的神秘數字好奇.class文件如何變…

.DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具

&#x1f409;工具介紹 一款圖形化的 .DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具。 &#x1f3af;使用 本工具使用Python3 PyQt5開發&#xff0c;在開始使用前&#xff0c;請確保已經安裝了相關模塊&#xff1a; pip3 install -r requirements.txt -i ht…

為何在 FastAPI 中需要允許跨域訪問(CORS)?(Grok3 回答)

prompt: 你是一個文筆流暢、專業性極強的技術博客博主&#xff0c;你將結合具體的例子和實際代碼解釋寫一篇為何后端選擇fastapi框架時&#xff0c;需要允許跨域訪問。 為何在 FastAPI 中需要允許跨域訪問&#xff08;CORS&#xff09;&#xff1f; 在現代 Web 開發中&#xf…

JDK8前后日期(計算兩個日期時間差-高考倒計時)

JDK8之前日期、時間 Date SimpleDateFormat Calender JDK8開始日期、時間 LocalDate/LocalTime/LocalDateTime ZoneId/ZoneDateTIme Instant-時間毫秒值 DateTimeFormatter Duration/Period

Gerapy二次開發:用戶管理專欄主頁面開發

用戶管理專欄主頁面開發 寫在前面用戶權限控制用戶列表接口設計主頁面開發前端account/Index.vuelangs/zh.jsstore.js后端Paginator概述基本用法代碼示例屬性與方法urls.pyviews.py運行效果總結歡迎加入Gerapy二次開發教程專欄! 本專欄專為新手開發者精心策劃了一系列內容,旨…

關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格

以下是關于Spring MVC中傳遞數組參數的詳細說明&#xff0c;包括如何通過逗號分隔的字符串自動轉換為數組&#xff0c;以及具體的代碼示例和總結表格&#xff1a; 1. 核心機制 Spring MVC支持直接通過逗號分隔的字符串將請求參數自動轉換為數組&#xff08;String[]、int[]等&…

大模型學習七:?小米8閑置,直接安裝ubuntu,并安裝VNC遠程連接手機,使勁造

一、說明 對于咱們技術人來說&#xff0c;就沒有閑的蛋疼的時候&#xff0c;那不是現在機會來了 二、刷機器準備 1、申請解鎖手機 申請解鎖小米手機https://www.miui.com/unlock/download.html 下載工具&#xff0c;安裝下面的步驟來&#xff0c;官網不欺人吧 打開開發者工…

repo安裝配置

1.安裝屬性 以下配置方式二選一進行安裝 1.1全局級別配置 1. 安裝 repo 工具 在終端中輸入以下命令以下載 repo 工具&#xff1a; curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo chmod ax /usr/bin/repo 1.2用戶級別配置 1. 安裝 r…

Go 語言數據類型

Go 語言數據類型 概述 Go 語言(也稱為 Golang)是一種靜態強類型、編譯型、并發型、具有垃圾回收功能的編程語言。自2009年發布以來,Go 語言因其簡潔的語法、高效的執行速度和強大的并發處理能力而廣受歡迎。本文將詳細介紹 Go 語言中的數據類型,幫助讀者更好地理解和掌握…

C# 看門狗策略實現

using System; using System.Threading;public class Watchdog {private Timer _timer;private volatile bool _isTaskAlive;private readonly object _lock new object();private const int CheckInterval 5000; // 5秒檢測一次private const int TimeoutThreshold 10000; …