?今天我們一起來學習查找和設置mobile頻段,并獲取相關參數。
一、mobile概述
1.1 簡介
“4G mobile”指的是第四代移動通信技術,常用于描述通過4G網絡進行的高速無線數據傳輸和通信。4G網絡最顯著的特征是其高速數據傳輸能力。理論上,4G可以提供下行速率高達100Mbps(移動環(huán)境下)和上行速率達50Mbps(靜止或低速移動環(huán)境下)。
1.2 架構
4G網絡采用了全IP網絡架構,所有數據和語音通信都是通過IP(InternetProtocol)傳輸的。相比之前的移動通信技術(如2G和3G),4G能夠更有效地處理數據流量,尤其是用于互聯網服務和多媒體應用。
1.3 采用技術
4g主要采用正交頻分復用技術(OFDM)和多輸入多輸出技術(MIMO)。OFDM將寬頻帶劃分為多個窄頻帶,從而提高了頻譜的利用效率,并減少了信號間的干擾。它使得4G能夠在同樣的頻譜下傳輸更多的數據,并具有更強的抗干擾能力。多輸入多輸出(MIMO)技術也廣泛應用于4G網絡中。MIMO使用多個天線來同時發(fā)送和接收數據,增加了信號的容量和覆蓋范圍,顯著提高了數據傳輸速率。
關于4gmobile技術更詳細的使用說明,請參考:https://zh.wikipedia.org/wiki/4G
二、演示功能概述
本demo演示了查找和設置mobile頻段,和獲取相關參數。
三、準備硬件環(huán)境
3.1 開發(fā)板準備
1)Air780E核心板一個:
https://item.taobao.com/item.htm?id=693774140934
2)此核心板的詳細使用說明參考:
https://docs.openluat.com/air780e/product/
Air780E產品手冊中的《開發(fā)板Core_Air780E使用說明V1.0.5.pdf》,核心板使用過程中遇到任何問題,可以直接參考這份使用說明pdf文檔。
3.2 SIM卡
請準備一張可正常上網的SIM卡,該卡可以是物聯網卡或您的個人手機卡。
特別提醒:
請確保SIM卡未欠費且網絡功能正常,以便順利進行后續(xù)操作。
3.3 數據通信線
3.4 PC電腦
WINDOWS系統。
四、準備軟件環(huán)境
4.1 基本的下載調試工具
使用說明參考:
Luatools下載和詳細使用:
https://docs.openluat.com/Luatools/
五、mobile的使用軟硬件資料
5.1 源碼和工具
- 780E模塊使用固件:SDK&Demo-合宙文檔中心,本demo使用的固件版本是:
LuatOS-SoC_V1112_EC618_FULL.soc - 本教程使用的demo:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/mobile - 將固件和腳本燒錄到模塊中,使用說明參考:Luatools下載和詳細使用
- 源碼和固件已打包,如下所示:點我,下載完整壓縮文件包
5.2 常量消息
這里是發(fā)布的消息,可以使用sys.waitUntil()或者sys.subscribe()函數來獲取消息是否發(fā)布。
常量 | 類型 | 解釋 |
---|---|---|
mobile.UNREGISTER | number | 未注冊 |
mobile.REGISTERED | number | 已注冊 |
mobile.SEARCH | number | 正在搜索中 |
mobile.DENIED | number | 注冊被拒絕 |
mobile.UNKNOW | number | 未知 |
mobile.REGISTERED_ROAMING | number | 已注冊,漫游 |
mobile.SMS_ONLY_REGISTERED | number | 已注冊,僅SMS |
mobile.SMS_ONLY_REGISTERED_ROAMING | number | 已注冊,漫游,僅SMS |
mobile.EMERGENCY_REGISTERED | number | 已注冊,緊急服務 |
mobile.CSFB_NOT_PREFERRED_REGISTERED | number | 已注冊,非主要服務 |
mobile.CSFB_NOT_PREFERRED_REGISTERED_ROAMING | number | 已注冊,非主要服務,漫游 |
mobile.CONF_RESELTOWEAKNCELL | number | 小區(qū)重選信號差值門限,需要飛行模式設置 |
mobile.CONF_STATICCONFIG | number | 網絡靜態(tài)模式優(yōu)化,需要飛行模式設置 |
mobile.CONF_QUALITYFIRST | number | 網絡切換以信號質量優(yōu)先,需要飛行模式設置,0不開,1開啟,2開啟并加速切換,功耗會增加 |
mobile.CONF_USERDRXCYCLE | number | LTE跳paging,需要飛行模式設置,謹慎使用,0是不設置,1 |
mobile.CONF_T3324MAXVALUE | number | PSM模式中的T3324時間,單位S |
mobile.CONF_PSM_MODE | number | PSM模式開關,0關,1開 |
mobile.CONF_CE_MODE | number | attach模式,0為EPSONLY2為混合,遇到IMSIdetach脫網問題,設置為0,注意設置為EPSONLY時會取消短信功能 |
mobile.CONF_SIM_WC_MODE | number | SIM寫入次數的配置和讀取 |
mobile.CONF_FAKE_CELL_BARTIME | number | 偽基站禁止接入的時間,取值為0時取消,0xffff永久 |
mobile.CONF_RESET_TO_FACTORY | number | 刪除已保存的協議棧參數,重啟后會使用默認配置 |
mobile.CONF_USB_ETHERNET | number | 蜂窩網絡模塊的usb以太網卡控制,bit0開關,1開,0關,bit1模式,1NAT,0獨立IP(在usb以太網卡開啟前可以修改,開啟過就不行),bit2協議1ECM,0RNDIS,飛行模式里設置 |
mobile.CONF_DISABLE_NCELL_MEAS | number | 關閉鄰區(qū)測量1關,0開,除了功耗測試外不建議使用 |
mobile.PIN_VERIFY | number | 驗證PIN碼操作 |
mobile.PIN_CHANGE | number | 更換PIN碼操作 |
mobile.PIN_ENABLE | number | 使能PIN碼驗證 |
mobile.PIN_DISABLE | number | 關閉PIN碼驗證 |
mobile.PIN_UNBLOCK | number | 解鎖PIN碼 |
5.3 本demo使用api簡介
mobile.status()
作用:獲取網絡狀態(tài)。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前網絡狀態(tài) |
mobile.getBand(band,is_default)
作用:獲取當前使用/支持的band
參數:
傳入值類型 | 解釋 |
---|---|
zbuff | 輸出band |
boolean | true默認支持,false當前支持的,默認是false,當前是預留功能,不要寫true |
返回值:
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,失敗返回false |
mobile.setBand(band,num)
作用:設置使用的band
參數:
傳入值類型 | 解釋 |
---|---|
zbuff | 輸入使用的band |
int | band數量 |
返回值:
返回值類型 | 解釋 |
---|---|
boolean | 成功返回true,失敗返回false |
mobile.flymode(index,enable)
作用:進出飛行模式
參數:
傳入值類型 | 解釋 |
---|---|
int | 編號,默認0.在支持雙卡的模塊上才會出現0或1的情況 |
bool | 是否設置為飛行模式,true為設置,false為退出,可選 |
返回值:
返回值類型 | 解釋 |
---|---|
boolean | 原飛行模式的狀態(tài) |
mobile.vsimOnOff(enable)
作用:切換內置虛擬卡和外置實體卡,2024年8月13日啟用,虛擬卡需要固件支持,否則切換后無網絡,需要在飛行模式下切換,或者切換后重啟協議棧。
參數:
傳入值類型 | 解釋 |
---|---|
bool | 開啟,true開啟,false關閉 |
返回值:
返回值類型
解釋
nil | 無返回值 |
返回值:
返回值類型 | 解釋 |
---|---|
string | 獲取到的默認APN值,失敗返回nil |
mobile.rtime(time,auto_reset_stack,data_first)
作用:設置RRC自動釋放時間間隔,當開啟時后,遇到極弱信號+頻繁數據操作可能會引起網絡嚴重故障,因此需要額外設置自動重啟協議棧。
參數:
傳入值類型 | 解釋 |
---|---|
int | RRC自動釋放時間,等同于Air724的AT+RTIME,單位秒,寫0或者不寫則是停用,不要超過20秒,沒有意義 |
boolean | 網絡遇到嚴重故障時嘗試自動恢復,和飛行模式/SIM卡切換沖突,true開啟,false關閉,留空時,如果設置了時間則自動開啟。本參數于2023年9月14日已廢棄 |
boolean | 是否啟用數據傳輸優(yōu)化,true啟用,false關閉,留空為false,開啟后必須等到TCP數據ACK或者超時失敗,或者socketCONNECT完成(無論成功或者失?。┎旁试SRRC提前釋放,可能會增加功耗。本參數于2024年8月12日啟用 |
返回值:
返回值類型 | 解釋 |
---|---|
nil | 無返回值 |
mobile.setAuto(check_sim_period,get_cell_period,search_cell_time,auto_reset_stack,network_check_period)
作用:設置一些輔助周期性或者自動功能,目前支持SIM卡暫時脫離后恢復,周期性獲取小區(qū)信息,網絡遇到嚴重故障時嘗試自動恢復。
參數:
傳入值類型 | 解釋 |
---|---|
int | SIM卡自動恢復時間,單位毫秒,建議5000~10000,和飛行模式/SIM卡切換沖突,不能再同一時間使用,必須錯開執(zhí)行。寫0或者不寫則是關閉功能 |
int | 周期性獲取小區(qū)信息的時間間隔,單位毫秒。獲取小區(qū)信息會增加部分功耗。寫0或者不寫則是關閉功能 |
int | 每次搜索小區(qū)時最大搜索時間,單位秒。不要超過8秒 |
boolean | 網絡遇到嚴重故障時嘗試自動恢復,和飛行模式/SIM卡切換沖突,true開啟,false關閉,開始狀態(tài)是false,留空則不做改變 |
int | 設置定時檢測網絡是否正常并且在檢測到長時間無網時通過重啟協議棧來恢復,無網恢復時長,單位ms,建議60000以上,為網絡搜索保留足夠時間,留空則不做更改 |
返回值:
返回值類型 | 解釋 |
---|---|
nil | 無返回值 |
mobile.imei(index)
獲?。韩@取IMEI。
參數:
傳入值類型 | 解釋 |
---|---|
int | 編號,默認0.在支持雙卡的模塊上才會出現0或1的情況 |
返回值:
返回值類型 | 解釋 |
---|---|
string | 當前的IMEI值,若失敗返回nil |
mobile.imsi(index)
作用:獲取IMSI。
參數:
傳入值類型 | 解釋 |
---|---|
int | 編號,默認0.在支持雙卡的模塊上才會出現0或1的情況 |
返回值:
返回值類型 | 解釋 |
---|---|
string | 當前的IMSI值,若失敗返回nil |
mobile.iccid(id)
作用:獲取或設置ICCID。
參數:
傳入值類型 | 解釋 |
---|---|
int | SIM卡的編號,例如0,1,默認0 |
返回值:
返回值類型 | 解釋 |
---|---|
string | ICCID值,若失敗返回nil |
mobile.csq()
作用:獲取csq。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前CSQ值,若失敗返回0.范圍0-31,越大越好 |
mobile.rssi()
作用:獲取rssi。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前rssi值,若失敗返回0.范圍0到-114,越小越好 |
mobile.rsrp()
作用:獲取rsrp,參考信號接收功率。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前rsrp值,若失敗返回0.取值范圍:-44~-140,值越大越好 |
mobile.rsrq()
作用:獲取rsrq,參考信號發(fā)送功率。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前rsrq值,若失敗返回0.取值范圍:-3~-19.5,值越大越好 |
mobile.scell()
作用:獲取當前服務小區(qū)更詳細的信息。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
table | 服務小區(qū)的信息 |
mobile.getCellInfo()
作用:獲取基站信息。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
table | 包含基站數據的數組 |
mobile.config(item,value)
作用:網絡特殊配置。
參數:
傳入值類型 | 解釋 |
---|---|
int | 配置項目,看mobile.CONF_XXX |
int | 配置值,根據具體配置的item決定 |
返回值:
返回值類型 | 解釋 |
---|---|
boolean | 是否成功 |
mobile.reqCellInfo(timeout)
作用:發(fā)起基站信息查詢,含臨近小區(qū)。
參數:
傳入值類型 | 解釋 |
---|---|
int | 超時時長,單位秒,默認15.最少5,最高60 |
返回值:
返回值類型 | 解釋 |
---|---|
nil | 無返回值 |
mobile.number(id)
作用:獲取手機卡號,注意,只有寫入了手機號才能讀出,因此有可能讀出來是空的。
參數:
傳入值類型 | 解釋 |
---|---|
int | SIM卡的編號,例如0,1,默認0 |
返回值:
返回值類型 | 解釋 |
---|---|
string | number值,若失敗返回nil |
mobile.snr()
作用:獲取snr,信噪比。
參數:
無
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前snq值,若失敗返回0.范圍0-30,越大越好 |
mobile.simid(id)
作用:獲取當前SIM卡槽,或者切換卡槽。
參數:
填入的參數以表格中的為準。
傳入值類型 | 解釋 |
---|---|
int | SIM卡的編號,例如0,1,如果支持雙卡,比如EC618,可以填2來自適應,但是會占用掉4個IO(gpio4/5/6/23)。如果不填就直接讀取當前卡槽 |
boolean | 是否優(yōu)先用SIM0,只有SIM卡編號寫2自適應才有用!??!。true優(yōu)先用SIM0,false則由具體平臺決定,支持雙卡雙待SIM0優(yōu)先,不支持的是上一次檢測到的優(yōu)先,默認是false,必須在開機就配置,否則就無效了 |
返回值:
返回值類型 | 解釋 |
---|---|
int | 當前sim卡槽編號,若失敗返回-1 |
mobile.apn(index,cid,new_apn_name,user_name,password,ip_type,protocol)
作用:獲取或設置APN,設置APN必須在入網前就設置好,比如在SIM卡識別完成前就設置好。
參數:
填入的參數以表格中的為準。
傳入值類型 | 解釋 |
---|---|
int | 編號,默認0。在支持雙卡的模塊上才會出現0或1的情況 |
int | cid,默認0。如果要用非默認APN來激活,必須>0 |
string | 新的APN,不填就是獲取APN,填了就是設置APN,是否支持設置取決于底層實現 |
string | 新的APN的username,如果APN不是空,那必須填寫,如果沒有則留空字符串""。如果APN是空的,則可以為nil |
string | 新的APN的password,如果APN不是空,那必須填寫,如果沒有則留空字符串""。如果APN是空的,則可以為nil |
int | 激活APN時的IPTYPE,1=IPV4,2=IPV6,3=IPV4V6,默認是1 |
int | 激活APN時,如果需要username和password,就要寫鑒權協議類型(0沒有,1:PAP,2:CHAP),1~3,默認3。一般沒有用戶名密碼的寫0,反之寫3,如果不行1和2都可以嘗試。不需要鑒權的寫0 |
boolean | 是否刪除APN,true表示是,其他都否。只有參數3新的APN不是string的時候才有效 |
返回值:
返回值類型 | 解釋 |
---|---|
string | 獲取到的默認APN值,失敗返回nil |
6.1查詢mobile的band和iccid和csq等信息。六、代碼示例介紹
6.1.1查詢、更改、和恢復band的設置
?
6.1.2查詢mobile相關數據
?
![]("點擊并拖拽以移動"
6.1.3訂閱查詢的信息:
?
6.1.5獲取SIM卡狀態(tài)
?
七、功能驗證
實現了設置頻率和查找到的mobile相關參數的功能。
?
?
八、常見問題
8.1 獲取模塊SN
出廠未必有寫SN,一般用途的唯一id,可以用mobile.imei()代替,如需要真正的唯一ID,使用mcu.unique_id()。
8.2 專網卡如何上網
使用函數mobile.apn()時,專網卡設置的demo,name,user,password聯系卡商獲取。
?審核編輯 黃宇
-
數據傳輸
+關注
關注
9文章
1788瀏覽量
64399 -
Mobile
+關注
關注
0文章
518瀏覽量
26462
發(fā)布評論請先 登錄
相關推薦
評論