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