Air系列模块常见问题列表
目錄名稱
- 一、Luatools使用問題
- 1.1 燒錄下載
- ? 1.1.1、 2G模塊無法燒錄下載
- ? 1.1.2、 2G開發板無法燒錄下載
- ? 1.1.3、4G模塊(開發板)無法燒錄下載
- ? 1.1.4、生成量產文件時的加密功能有什么用
- ? 1.1.5、4G開發模式下的“USB打印Trace、UART1打印Trace、UART2打印Trace”是什么功能
- ? 1.1.6、Luat開發方式下可以燒錄哪種類型的文件
- ? 1.1.7、腳本代碼中如何讀取通過Luatools燒錄進模塊的文件
- ? 1.1.8、Luat開發方式下可以燒錄某個項目的部分文件嗎?
- ? 1.1.9、打開串口失敗
- 1.2、日志輸出
- ? 1.2.1、2G模塊(開發板)無法輸出日志
- ? 1.2.2、4G模塊(開發板)無法輸出日志
- ? 1.2.3、日志輸出過程中,突然停止輸出
- ? 1.2.4、4G模塊USB輸出日志時,會丟失開機過程的部分日志
- ? 1.2.5、為什么系統狀態、信號強度、版本類型、框架類型、軟件版本的內容有時不顯示或者顯示不正確
- ? 1.2.6、Luatools可以抓取、輸出哪幾種日志
- 1.3、其他
- ? 1.3.1、Luatools無法啟動、出現error 126
- ? 1.3.2、Luatools工作異常、閃退
- ? 1.3.3、不小心刪除了源碼,有辦法找回嗎
- ? 1.3.4、如何抓取模塊死機時的日志
- ? 1.3.5、是否有64位、Linux、Mac版本工具;是否支持xp系統
- ? 1.3.6、為什么提示多個工具在運行
- ? 1.3.7、為什么設備一直在正常運行,但是coolwatcher抓日志過程中,會突然不輸出日志
- 二、量產燒錄工具使用問題
- 2.1、使用一拖多燒錄時,出現后一個模塊開始燒錄,前一個模塊燒錄失敗的問題
- 2.24G模塊燒錄到最后,沒有提示成功,提示“USB is Removed”
- 2.3、4G模塊量產燒錄工具打開失敗
- 三、開關機(電源)問題
- 3.1、2G模塊無法開機
- 3.2、2G模塊無法關機
- 3.3、4G模塊無法開機
- 3.4、4G模塊無法關機
- 3.5、其他
- ? 3.5.1、有沒有推薦的電池
- ? 3.5.2、為什么使用市電仍然無法正常工作
- ? 3.5.3、能否獲取電量百分比
- ? 3.5.4、為什么供電沒問題卻仍然無法開機、自動關機、或者異常重啟
- ? 3.5.5、客戶示例:4G模塊開機很慢,powerkey需要按16秒才能開機
- 四、重啟問題
- 4.1、2G模塊重啟
- 4.2、4G模塊重啟
- 五、校準問題
- 5.1、2G模塊如何判斷是否校準
- 5.2 4G 模塊如何判斷是否校準
- 六、IMEI、SN問題
- 6.1、Luat版本為什么開機讀出的IMEI、SN為空
- 6.2、為什么IMEI為默認值
- 6.3、為什么4G模塊寫IMEI會失敗
- 6.4、SN是什么,如何讀寫
- 七、SIM卡問題
- 7.1、支持中國大陸哪些運營商
- 7.2、是否支持中國港澳臺、外國運營商
- 7.3、支持SIM卡熱插拔嗎
- 7.4、找不到SIM卡
- 7.5、Luat版本為什么開機讀出的ICCID、IMSI為空
- 7.6、可以讀到SIM卡的手機號碼(MSISDN)嗎
- 7.7、虛擬卡(VSIM)
- 7.8、貼片卡(ESIM)
- 7.9、合宙物聯網卡(虛擬卡、貼片卡、實體卡)商務問題
- 7.10、想使用語音短信業務怎么辦
- 7.11、實體卡如何防盜
- 7.11、實體卡如何防盜
- 7.12、為什么SIM VCC沒有供電
- 7.13、為什么Luatools提示“可能是虛擬卡數據錯誤,請重啟幾次,如果一直出現此提示,請聯系管理員”
- 7.14、如何判斷sim卡所屬運營商
- 八、天線射頻問題
- 8.1、天線設計和調試
- 8.2、天線使用環境
- 8.3、2G模塊測試傳導靈敏度時,到-107.5左右GPRS就會掉線
- 8.4、2G模塊天線為什么和GND短路了
- 8.5、2G模塊和4G模塊天線通用嗎
- 8.6、4G模塊如果支付輔天線,如何使用輔天線
- 8.7、天線廠調試天線時,如何提供來電自動接聽的軟件
- 九、信號問題
- 9.1、沒有信號(信號弱)
- 9.2、信號強度和網絡數據業務的穩定性關系
- 十、網絡注冊和附著問題
- 10.1、無法注冊網絡、注冊網絡慢、無法附著網絡、附著網絡慢
- 10.2、為什么在一些車庫里面手機接打電話正常,但是模塊注冊網絡失敗呢
- 10.3、為什么有些SIM卡在2G模塊上無法注冊網絡
- 10.4、同一地點,同一張卡,手機可以注冊上4G網絡,為什么4G模塊不可以
- 10.5、4G模塊使用2G卡,注冊網絡很慢
- 10.6、4G模塊如何設置網絡頻段
- 10.7、如何判斷4G模塊注冊的是什么網絡
- 10.8、各國網絡頻段匯總
- 10.9、網絡小區參數
- 十一、APN設置和PDP激活問題
- 11.1、2G模塊如何設置APN
- 11.2、4G 模塊如何設置APN
- 11.3、PDP激活失敗
- 11.4、為什么4G模塊專網卡連接服務器失敗
- 十二、socket問題
- 12.1、連接服務器失敗
- 12.2、數據收發延遲大、速度慢、經常失敗、掉線斷開
- 12.3、如何發送大量數據
- 12.4、為什么頻繁收發數據時,會導致整個模塊系統響應變慢
- 12.5、是否支持長連接
- 12.6、快發和慢發有什么區別
- 12.7、支持發送什么格式的數據
- 12.8、如何查詢錯誤碼
- 12.9、最多同時支持多少個連接
- 12.10、是否支持websocket、是否可以做server使用
- 12.11、為什么要發送心跳包(如何檢測連接活性)
- 12.12、為什么有時連接斷開會收到提示;有時不可以收到提示,必須等到發送數據時才能檢測到斷開
- 12.13、如何統計流量
- 12.14、是否支持IPv6
- 12.15、模塊IP地址
- 12.16、數據接收緩存問題
- 12.17、客戶示例:2G模塊3秒上傳一次GPS位置數據,軌跡丟失問題
- 12.18、數據透傳時,會丟失前面的一部分數據
- 十三、http問題
- 13.1、是否支持HTTPS
- 13.2、為什么頻繁請求會失敗
- 13.3、支持發送什么格式的數據
- 13.4、如何查詢錯誤碼
- 13.5、如何POST文件
- 13.6、為什么POST JSON格式的數據會出現失敗
- 13.7、AT版本如何設計HTTP應用邏輯
- 13.8、數據接收緩存問題
- 13.9、為什么https訪問失敗
- 十四、mqtt問題
- 14.1、是否支持ssl
- 14.2、AT版本如何設計MQTT應用邏輯
- 14.3、有沒有免費的MQTT broker可用
- 14.4、如何實現掉線自動重連
- 14.5、頻繁掉線是什么原因
- 14.6、有沒有認證機制
- 14.7、client id是否允許重復
- 14.8、是否支持通配符
- 14.9、Qos0、1、2如何選擇
- 14.10、AT版本publish json格式的數據,如何處理"
- 14.11、如何查詢錯誤碼
- 14.12、數據接收緩存問題
- 14.13、為什么mqtt ssl訪問失敗
- 十五、遠程升級問題
- 十六、阿里云問題
- 16.1、如何連接阿里云
- 16.2、除了阿里云,支持華為云、百度云、騰訊云、OneNet等其他云平臺嗎
- 16.3、一型一密方案,設備在線運行了很多天后,模塊中的設備密鑰和阿里云平臺上的密鑰不一致導致無法上線
- 16.4、為什么阿里云連接失敗
- 16.5、如何降低阿里云的離線率
- 16.6、阿里云網站上的異常信息和模塊動作的對應關系
- 16.7、如何批量寫入三元組
- 16.8、AT版本,MCU端如何實現HmacMD5算法
- 十七、基站定位問題
- 17.1、如何使用基站定位
- 17.2、基站定位原理
- 17.3、基站定位精度如何
- 17.4、為什么基站定位失敗
- 17.5、如何在iot.openluat.com中查詢設備的基站定位請求記錄
- 17.6、合宙官方的基站定位能在國外使用嗎
- 十八、GPS定位問題
- 18.1、哪些模塊支持GPS定位
- 18.2、GPS天線如何設計
- 18.2、GPS天線如何設計
- 18.3、Air800模塊如何測試信噪比
- 18.4、Air800模塊如何輸出原始NMEA數據
- 18.5、Air800模塊GPS無信號、信號弱、定位失敗
- 18.6、如何支持秒定位(GPS定位慢)
- 18.7、什么是GPS的冷啟動、溫啟動、熱啟動
- 18.8、GPS定位經緯度不準確
- 18.9、GPS模塊內部有LNA嗎
- 18.10、GPS定位海拔不準確
- 18.11、如何計算NMEA校驗碼
- 18.12、可視衛星、可用衛星有什么區別
- 18.13、GGA和RMC應該用哪個
- 18.14、如何解讀NMEA報文每個字段的含義
- 18.15、是否支持rtd、rtk
- 18.16、是否支持ntrip協議
- 18.17、已知兩個經緯度,如何計算間距?
- 18.18、如何解決靜態漂移
- 18.19、做車載定位器,進入隧道沒辦法定位怎么辦
- 18.20、能否用于制作人員定位器、定位手表
- 18.21、使用Luat版本FLOAT底層,能否實現坐標轉換(WGS84~GCJ02)加偏/糾偏
- 18.22、哪些地圖使用的是GCJ02坐標系
- 18.23、哪些地圖可以直接查看WGS84定位
- 18.24、車載使用時需要天線引出到車頂上嗎
- 十九、GPIO問題
- 19.1、為什么GPIO配置后,功能不正常
- 19.2、GPIO的輸出能力是多少
- 19.3、中斷檢測能力是多少
- 19.4、哪些管腳可以用做GPIO
- 19.5、異常重啟,能否恢復之前的工作狀態
- 19.6、從硬件上電到腳本可控制GPIO狀態,這段時間內的管腳電平狀態如何變化
- 二十、合宙官方硬件看門狗問題(僅適用于Luat版本)
- 20.1、軟硬件設計
- 20.1、軟硬件設計
- 20.2、硬件看門狗是否有必要
- 20.3、為什么4G模塊不需要外部硬件看門狗
- 20.4、為什么會提示喂狗失敗(WatchDog <--> AirM2M didn't respond : wdt reset 153b)
- 20.5、PWR_ON_OUT腳有什么作用
- 20.6、如何測試看門狗是否正常工作
- 20.7、能否修改看門狗喂狗時序
- 20.8、能否使用自己的硬件看門狗芯片
- 20.9、有沒有軟件看門狗
- 20.10、硬件看門狗外圍電路不規范可能導致2G模塊一直重啟
- 二十、合宙官方硬件看門狗問題(僅適用于Luat版本)
- 20.1、軟硬件設計
- 20.2、硬件看門狗是否有必要
- 20.3、為什么4G模塊不需要外部硬件看門狗
- 20.4、為什么會提示喂狗失敗(WatchDog <--> AirM2M didn't respond : wdt reset 153b)
- 20.5、PWR_ON_OUT腳有什么作用
- 20.6、如何測試看門狗是否正常工作
- 20.7、能否修改看門狗喂狗時序
- 20.8、能否使用自己的硬件看門狗芯片
- 20.9、有沒有軟件看門狗
- 二十一、短信問題
- 21.1、支持長短信嗎
- 21.2、為什么Air720H模塊無法使用中國電信卡收發短信
- 二十二、日志使用問題(僅適用于Luat版本)
- 22.1、如何解讀Luatools抓到的腳本日志
- 22.2、errDump功能有什么用
- 22.3、設備使用errDump對接合宙官方服務器,如何查看設備上報的錯誤信息
- 二十三、串口通信問題
- 23.1、AT版本發送AT無應答
- 23.2、串口數據亂碼
- 23.3、Luat版本串口問題
- 二十四、音頻問題(僅適用于Luat版本)
- 24.1、無法播放mp3文件
- 24.2、無法播放tts
- 24.3、支持什么規格的喇叭
- 24.4、TTS音質可以更好嗎
- 二十五、core固件使用問題
- 25.1、固件區別
- 25.2、哪里可以下載舊版本固件
- 25.3、如何在2G模塊Luat開源core中添加自己的功能模塊
- 二十六、合宙云平臺問題
- 26.1、提供哪些云平臺服務
- 26.2、物聯網云平臺(iot.openluat.com)問題
- 26.2.1、如何添加設備到設備列表中
- 26.2.2、如何查詢設備在哪個產品下
- 26.2.3、為什么公司采購的4G模塊不在我自己創建的產品項目下
- 26.2.3、為什么轉移設備會失敗
- 26.2.4、如何在不同賬號間轉移產品
- 26.3、TCP測試平臺(tcplab.openluat.com)問題
- 26.3.1、如何使用TCP測試平臺
- 26.3.2、瀏覽器打開tcplab.openluat.com失敗怎么辦
- 26.3.3、為什么模塊連接TCP測試平臺,會出現斷開的問題
- 二十八、JSON問題
- 28.1、底層使用哪個庫實現的
- 28.2、為什么會解析出錯
- 28.3、為什么HTTP POST JSON格式的數據會出現失敗
- 28.4、AT版本mqtt publish json格式的數據,如何處理"
- 二十九、UI問題(僅使用于Luat版本)
- 29.1、如何支持UI顯示
- 29.2、為什么lcd不顯示
- 29.3、最大支持的lcd分辨率是多少
- 29.4、如何使用自定義字體
- 29.5、為什么圖片無法顯示
- 29.6、如何顯示二維碼
- 29.7、如何顯示Code128條形碼
- 三十、FLASH和RAM使用問題(僅適用于Luat版本)
- 30.1、Luat版本用戶可使用哪些FLASH空間
- 30.2、Luat版本用戶可用的RAM空間
- 30.3、NVM使用問題
- 30.4、為什么讀文件失敗
- 30.5、動態創建自定義文件的注意事項
- 30.6、是否支持外擴SPI FLASH
- 三十一、RNDIS問題
- 31.1、模塊軟件中支持關閉RNDIS網卡功能嗎
- 31.2、WINDOWS如何使用RNDIS模式上網
- 三十二、PCB文件使用問題
- 32.1、合宙官方的PCB文件用 PADS的什么版本可以打開
- 三十三、語音通話問題
- 33.1、4G模塊是否支持語音通話業務
- 33.2、為什么Air720G模塊無法使用中國移動卡的語音通話業務
- 33.3、天線廠調試天線時,如何提供來電自動接聽的軟件
- 33.4、如何處理通話或者錄音中的電流噪音(TDD噪音)
- 三十四、模塊參數
- 34.1、4G模塊
- 三十五、Luat版本腳本開發小問題
- 35.1、Luat版本腳本運行框架
- 35.2、sys.taskInit創建的task有沒有優先級之分
- 35.3、如何實現延時運行
- 三十六、認證問題
- 36.1、模塊做過哪些認證
- 36.2、客戶產品SRRC認證注意事項
- 36.3、模塊有入網證書(CTA)嗎
- 三十七、SPI問題
- 37.1、如何用Luat腳本模擬實現SPI
- 三十八、I2C問題(僅適用于Luat版本)
- 38.1、如何用腳本驅動mpu6050
- 三十九、PPP撥號問題
- 39.1、WINDOWS下4G模塊如何撥號上網
- 39.2、Linux下4G模塊如何撥號上網
- 四十、時鐘問題
- 40.1、如何同步時鐘
一、Luatools使用問題
使用教程:http://oldask.openluat.com/article/4
1.1 燒錄下載
? 1.1.1、 2G模塊無法燒錄下載
檢查下載線連接是否正確,下載線要連接模塊的host_txd、host_rxd、gnd
檢查下host_txd、host_rxd是否與其他管腳短路,特別是host_txd和vddio相鄰,可能會因為貼片或者焊接問題導致短路
下載線不穩定,更換ft232/cp2102等芯片串口線對比試一下
檢查供電以及開機是否正常,測量vbat 3.6V到4.2V,并拉低pwrkey 2000ms開機
檢查下載口電平是否匹配,支持2.8V,兼容3.3V
更換電腦usb口或者更換電腦對比測試
模塊可能損壞【靜電擊穿、爐溫過高可能導致損壞】,更換模塊對比測試確認
如果出現下載過程中失敗問題,參考如下順序排查
1)供電可能不穩定,使用穩定的電源供電,可以直接用穩壓電源對vbat供電對比確認
2)下載線可能不穩定,更換ft232/cp2102等芯片串口線對比試一下
? 更多詳細說明參考:http://doc.openluat.com/article/600/0
? 1.1.2、 2G開發板無法燒錄下載
參考開發板使用手冊,確認跳線帽使用是否正常
開發板上已經有usb轉串口芯片,所以要使用micro usb線,不要使用usb轉串口線
檢查供電以及開機是否正常,測量vbat 3.6V到4.2V,并長按pwrkey開機
檢查下載口電平是否匹配,支持2.8V,兼容3.3V
更換電腦usb口或者更換電腦對比測試
模塊可能損壞【靜電擊穿、爐溫過高可能導致損壞】,更換模塊對比測試確認
如果出現下載過程中失敗問題,參考如下順序排查
1)供電可能不穩定,使用穩定的電源供電,可以直接用穩壓電源對vbat供電對比確認
2)下載線可能不穩定,更換ft232/cp2102等芯片串口線對比試一下
? 1.1.3、4G模塊(開發板)無法燒錄下載
檢查下載線連接是否正確,如果是模塊,要連接模塊的usb_dp、usb_dm、vbus、gnd;如果是開發板,要連接usb口,luatools準備好下載后,撥動開關撥到on位置
需要使用穩定的usb下載線,不要使用usb轉串口下載線
檢查供電是否正常,測量vbat 3.6V到4.2V
要安裝驅動,參考:http://oldask.openluat.com/article/92, 注意:安裝好驅動之后,在燒錄固件過程中,設備管理器中會出現下圖所示的下載驅動
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-24f53taG-1619422566511)(http://oldask.openluat.com/image/show/attachments-2019-10-P2aiLCiP5db9ad0250805.png “undefined”)]
燒錄固件,正常開機后,設備管理器中會出現下圖所示的3種驅動
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-nDM7kCFW-1619422566523)(http://oldask.openluat.com/image/show/attachments-2019-10-nP7l5Mlr5db9acf3b676b.png “undefined”)]
如果沒有出現這些端口,或者有感嘆號,表示驅動沒有安裝成功,請重新安裝驅動
注意:如果電腦安裝了USBPcap,會造成下載驅動有感嘆號,從而造成無法燒錄固件,但是可以正常抓取日志。如果遇到此問題,請刪除USBPcap后再試;此問題可以參考下圖操作:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-zCqhW8QU-1619422566524)(http://oldask.openluat.com/image/show/attachments-2019-11-cWGdgtNF5dd3a643e6a80.png “undefined”)]
更換電腦usb口或者更換電腦對比測試
模塊可能損壞【靜電擊穿、爐溫過高可能導致損壞】,更換模塊或者開發板對比測試確認
如果出現下載過程中失敗問題,參考如下順序排查
1)供電可能不穩定,使用穩定的電源供電,可以直接用穩壓電源對vbat供電對比確認
2)下載線可能不穩定,更換穩定的usb下載線
? 1.1.4、生成量產文件時的加密功能有什么用
? 如果項目有安全性方便的考慮,防止別人拿到設備后,讀取自己寫的腳本文件,可以在生成量產文件時,打開加密功能選項,輸入密碼,Luatools對所有腳本和其他資源文件進行加密,即使別人拿到了加密設備,也無法解密出原始的腳本和資源文件
? 1.1.5、4G開發模式下的“USB打印Trace、UART1打印Trace、UART2打印Trace”是什么功能
? 可以選擇輸出腳本日志的端口,默認是USB輸出日志,如果燒錄或者生成量產文件時,選擇了指定端口輸出日志,注意在Luatools主界面,選擇對應的打印口,這樣在Trace窗口才能輸出日志
? 1.1.6、Luat開發方式下可以燒錄哪種類型的文件
? 任何類型的文件都可以燒錄,例如mp3、bmp、png、jpg、txt、自定義后綴的文件等等,燒錄后,腳本如何訪問這些文件,參考1.1.7章節
? 1.1.7、腳本代碼中如何讀取通過Luatools燒錄進模塊的文件
? 通過Luatools燒錄進模塊的文件,開機啟動時,根據不同類型的文件,會自動創建不同的目錄保存這些文件,完整的文件路徑(filePath)定義如下:
?2G模塊:
- 如果是lua文件,例如xxx.lua:非加密下載時,文件路徑為/lua/xxx.lua;加密下載時,文件路徑為/lua/xxx.luae
- 如果是非lua文件,例如xxx.mp3:非加密下載時,文件路徑為/ldata/xxx.mp3;加密下載時,文件路徑為/ldata/xxx.mp3e
?4G模塊:
- 無論什么格式的文件,例如xxx.lua,文件路徑都為:/lua/xxx.lua
? 考慮到對內存的消耗過大可能會造成內存不足的問題:如果文件較小(小于4KB),可以使用io.readFile(filePath)一次性全部讀出;如果文件較大(大于4KB),可以使用io.readStream(filePath, offset, len)分段讀出
? 1.1.8、Luat開發方式下可以燒錄某個項目的部分文件嗎?
? 不可以。每次燒錄,都會刪除模塊中之前的所有腳本和資源文件,所以每次燒錄,必須燒錄某個項目的所有腳本和資源文件(包括lib腳本文件)
? 1.1.9、打開串口失敗
? Luatools打開串口時,會對波特率做校驗,如果串口芯片的波特率滿足不了要求,會打開失敗
? 2G模式下,波特率為921600;4G模式下,波特率為115200
? 目前遇到過如下幾種打開串口失敗的情況:
? 1. 使用了PCIE轉串口卡,這種串口卡不支持921600波特率,所以在2G開發模式下會提示打開失敗,在4G模式下可以正常打開
1.2、日志輸出
? 1.2.1、2G模塊(開發板)無法輸出日志
? 1.2.2、4G模塊(開發板)無法輸出日志
? 1.2.3、日志輸出過程中,突然停止輸出
? 1.2.4、4G模塊USB輸出日志時,會丟失開機過程的部分日志
? 4G模塊開機時,部分電腦識別usb口過慢,導致開機部分的日志可能丟失;遇到此類問題,可以參考1.1.5章節,使用uart1或者uart2輸出日志
? 1.2.5、為什么系統狀態、信號強度、版本類型、框架類型、軟件版本的內容有時不顯示或者顯示不正確
? 這些內容都是從抓取的日志中分析關鍵字解析出來的,如果不是從開機開始抓取日志,會丟失一些日志,從而導致解析失敗。例如軟件版本是搜索poweron reason解析出來的,如果沒有抓到這一行日志,軟件版本就會解析失敗,或者如果自己寫的應用腳本中也會輸出poweron reason關鍵字日志,也可能導致解析異常。所以,這些信息的解析僅僅是作為參考方便開發者分析問題,要進一步準確分析問題,一定要直接分析日志
? 1.2.6、Luatools可以抓取、輸出哪幾種日志
1.3、其他
? 1.3.1、Luatools無法啟動、出現error 126
缺少vc_redist運行庫,http://www.openluat.com/Product/file/asr1802/vc%E8%BF%90%E8%A1%8C%E5%BA%93%E5%90%88%E9%9B%86MSVBCRT_AIO_2018.07.30_X86+X64.exe 下載安裝后,重新運行Luatools
? 1.3.2、Luatools工作異常、閃退
? 1.3.3、不小心刪除了源碼,有辦法找回嗎
? 1.3.4、如何抓取模塊死機時的日志
? 1.3.5、是否有64位、Linux、Mac版本工具;是否支持xp系統
? 沒有64位、Linux、Mac版本工具,Linux和Mac請使用虛擬機運行Luatools工具;支持部分XP系統,建議在WIN7以上的系統上使用
? 1.3.6、為什么提示多個工具在運行
? 檢查電腦的任務管理中是否有多個luatools.exe,如果有,關閉所有后,再重啟Luatools
? 1.3.7、為什么設備一直在正常運行,但是coolwatcher抓日志過程中,會突然不輸出日志
? 按照如下順序嘗試解決
如果左下角command編輯框中輸入r 0命令后回車【注意:host rx要和串口線連接,才能正常接收命令】,有0xXXXXXXXX格式的數據返回,表示host口通信正常,沒輸出日志,可能是host寄存器受到干擾導致,此時參照下圖將可能受到干擾的寄存器主動設置正常
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-l78rDgGD-1619422566526)(http://oldask.openluat.com/image/show/attachments-2019-11-qMXxAfM15dcd00cc6582b.png “undefined”)]!
二、量產燒錄工具使用問題
? 2G模塊量產燒錄工具:http://www.openluat.com/Product/file/rda8955/RDA 平臺Lod客戶升級工具2.5.7z
? 4G模塊量產燒錄工具:http://www.openluat.com/Product/file/asr1802/ASR 平臺core客戶升級工具V1.3_Air720系列.7z
? 合宙提供了官方的燒錄夾具和設計文件,如有需要,打開:luat.taobao.com,在店鋪內搜索夾具,與淘寶客服溝通;合宙也提供免費代燒錄服務,購買模塊到達一定數量時,此服務免費,詳情與模塊銷售溝通
2.1、使用一拖多燒錄時,出現后一個模塊開始燒錄,前一個模塊燒錄失敗的問題
? 檢查下夾具供電,使用穩定的電源給夾具供電;不要一個電源同時給多個夾具供電
2.24G模塊燒錄到最后,沒有提示成功,提示“USB is Removed”
2.3、4G模塊量產燒錄工具打開失敗
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ve8hLpKw-1619422566527)(https://oldask.openluat.com/image/show/attachments-2020-03-CQaioO2Q5e69f0ce8ac32.png “undefined”)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-q8bYL9z9-1619422566528)(https://oldask.openluat.com/image/show/attachments-2020-03-7OnkBxOR5e69f0eb5f1df.png “undefined”)]
? 出現此問題,一般都是blf文件配置出錯導致的,打開config/param.ini,檢查下圖中的core對應的blf文件配置是否正確
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6UHFIhD8-1619422566528)(https://oldask.openluat.com/image/show/attachments-2020-03-kMfp2nr75e69f1160fa18.png “undefined”)]
三、開關機(電源)問題
3.1、2G模塊無法開機
? 1) 開機狀態下,檢測到powerkey被拉低1.5秒以上時間
? 2) 收到了AT+CPOWD=1命令
3.2、2G模塊無法關機
3.3、4G模塊無法開機
測量V_GLOBAL_1V8引腳電壓,如果是1.8V左右,表示已經正常開機,“無法開機”純屬誤判;如果是低電平0V左右,表示沒有開機
如果引出了usb引腳,usb連接電腦,參考1.1.3章節第4步,持續觀察20秒,看是否會穩定出現設備管理器中的3個端口,如果穩定出現,表示已經正常開機,“無法開機”純屬誤判;如果沒有出現,表示沒有正常開機;如果出現后一閃而過,表示可能一直在異常重啟,參考4.2章節處理
vbat引腳電壓3.4V到4.3V,powerkey拉低至少2秒,才有可能開機;測量vbat引腳和powerkey狀態,確認是否滿足要求
模塊峰值需要2A電流,供電跌落不能太多
將模塊的第142腳:EXTON1N直接接地可以實現上電自動開機功能。需要注意,在上電自動開機模式下,將無法關機,只要VBAT管腳的電壓大于開機電壓,即使軟件調用關機接口,模塊仍然會再次開機。另外,在此模式下,要想成功自動開機,VBAT管腳電壓仍然要大于軟件設定的開機電壓值(3.1V),如果不滿足,模塊會關閉,就會出現反復開關機的情況。
不建議把模塊的第21腳:PWRKEY 直接接地來實現上電開機功能。假如把PWRKEY 直接接地了,此時再把RESET_IN_N 拉低超過15秒的話,模塊內部的PMU會認為模塊狀態異常,強制斷電,即使在RESET_IN_N釋放以后模塊也會一直處于關機狀態,直到松開PWRKEY一段時間。
3.4、4G模塊無法關機
不建議把模塊的第21腳:PWRKEY 直接接地來實現上電開機功能。假如把PWRKEY 直接接地了,此時再把RESET_IN_N 拉低超過15秒的話,模塊內部的PMU會認為模塊狀態異常,強制斷電,即使在RESET_IN_N釋放以后模塊也會一直處于關機狀態,直到松開PWRKEY一段時間。
3.5、其他
? 3.5.1、有沒有推薦的電池
? 建議選擇18650或鋰聚合物電池。供電必須滿足3.7~4.2v,電壓跌落不超過0.6v,最低不低于3.4v
? 3.5.2、為什么使用市電仍然無法正常工作
? 請檢查電源動態響應能力。必要時vbat、gnd并電容
? 3.5.3、能否獲取電量百分比
不能,只能獲得電池電壓。使用misc.getVbatt(),返回毫安。開發者自行根據電池的承認書去換算百分比(因為不同電池放電曲線各有差異)
? 3.5.4、為什么供電沒問題卻仍然無法開機、自動關機、或者異常重啟
請用示波器檢查供電有無跌落,萬用表響應能力較差
? 3.5.5、客戶示例:4G模塊開機很慢,powerkey需要按16秒才能開機
? RESET管腳與MCU直接相連,這樣的話板子在上電時,MCU的IO反轉可能會影響到模塊的開機;RESET管腳需要用三極管驅動,或者加二極管隔離。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-W8zKcwFJ-1619422566529)(https://oldask.openluat.com/image/show/attachments-2019-12-Dey6JVAC5de4c676d9c94.png “undefined”)]
四、重啟問題
? 關于重啟問題的詳細描述參考如下文章:
? http://oldask.openluat.com/article/27
? http://oldask.openluat.com/article/28
? http://oldask.openluat.com/article/29
? http://oldask.openluat.com/article/909
? 重要提醒:使用Luat固件開發時,一定要使用errDump功能,此功能對“量產投放市場的設備,遠程調試初步定位問題”至關重要
4.1、2G模塊重啟
? 1) 如果出現“(0xffffffff)模塊硬件上電中,正在啟動”,表示硬件重啟,直接按照第1步確認問題,同時確認下是否為外圍單片機給模塊斷電復位引起的重啟
? 2) 其他的重啟,直接聯系合宙技術支持人員按照如下方式處理
? A. 合宙技術支持人員提供一個debug assert版本的固件【注意:此固件僅供測試使用,不能用于量產】
? B. 客戶在MCU端開機發送AT* EXASSERT=1命令【注意:此命令會導致模塊發生重啟問題時,直接死機,僅測試使用,不能用于量產;測試設備使用完畢之后,再發送AT*EXASSERT=0恢復默認配置】
? C. 如果有硬件看門狗機制,要從硬件上斷開硬件看門狗;以防復現死機問題后,被硬件看門狗重啟復位
? D. 參考http://oldask.openluat.com/article/63掛測復現問題死機問題后,保留死機現場,聯系合宙技術支持人員遠程分析
? 1) reason為0,表示硬件重啟,直接按照第1步確認問題,同時確認下是否為硬件看門狗或者外圍單片機給模塊斷電復位引起的重啟
? 2) reason為7,表示點擊了Luatools的“重啟模塊”按鈕控制的重啟
? 3) reason為8,表示core中的軟件看門狗重啟,檢查一下腳本中是否寫了死循環的邏輯
? 4) reason為3,表示軟件重啟,在日志中搜索restart或者[E]或者traceback,分析原因自行解決;如果日志中搜索不到這些關鍵字,檢查一下應用腳本中是否調用了rtos.restart()所致
? 5) 如果以上步驟都不能解決問題,直接聯系合宙技術支持人員按照如下方式處理
? A.合宙技術支持人員提供一個debug assert版本的固件【注意:此固件僅供測試使用,不能用于量產】
? B. 客戶在main.lua中sys.init前加一行代碼ril.request(“AT* EXASSERT=1”)【注意:此行代碼會導致模塊發生重啟問題時,直接死機,僅測試使用,不能用于量產;測試設備使用完畢之后,再修改為ril.request(“AT*EXASSERT=0”)恢復默認配置】
? C. 如果有硬件看門狗機制,關閉此功能;以防復現死機問題后,被硬件看門狗重啟復位
? D. 參考http://oldask.openluat.com/article/63掛測復現問題死機問題后,保留死機現場,聯系合宙技術支持人員遠程分析
4.2、4G模塊重啟
? 1) reason為0,表示硬件重啟,直接按照第1步確認問題,同時確認下是否為硬件看門狗或者外圍單片機給模塊斷電復位引起的重啟
? 2) reason為3,表示軟件重啟,在日志中搜索restart或者[E]或者traceback或者EE LOG,分析原因自行解決
如果以上步驟都不能解決問題,參考1.2.6章節,提供trc日志文件和sdl日志文件給合宙技術支持人員分析;如果需要設置為死機模式,復現問題進一步分析,參考 http://oldask.openluat.com/article/910 處理
五、校準問題
模塊如果沒有校準,射頻性能就無法達到最優,極端情況下,會造成網絡通信非常不穩定;未校準的模塊必須走售后流程維修或者換貨
5.1、2G模塊如何判斷是否校準
5.2 4G 模塊如何判斷是否校準
? 4G模塊會對2G、3G、4G進行單獨校準,所以要單獨查詢這三部分是否校準;同時也要根據模塊支持的網絡制式區別對待,例如720H支持2G、3G、4G,則這三部分都要校準才正常;720G支持3G、4G,則只要這兩部分都校準就正常
六、IMEI、SN問題
6.1、Luat版本為什么開機讀出的IMEI、SN為空
? Lua版本的腳本運行起來之后,會發送AT命令查詢imei、sn,從腳本開始運行到查詢到結果,一般需要3秒鐘【只是經驗值,不要用做程序設計依據】,如果在查詢到結果之前使用misc.getImei()、misc.getSn()接口讀取,就為返回空;
? 用戶開發項目時,可以根據項目的應用場景,分別做不同處理,比較典型的兩種場景如下:
sys.subscribe(“IMEI_READY_IND”, function() end)
sys.subscribe(“SN_READY_IND”, function() end)s
6.2、為什么IMEI為默認值
? 2G模塊的默認值:359759002514931
? 4G模塊的默認值:3520990017614823
6.3、為什么4G模塊寫IMEI會失敗
? 實際場景中,用戶可能會寫自定義的imei到模塊中,AT版本使用AT+WIMEI命令、Luat版本使用misc.setImei接口來寫入;imei一共15位,其中最后1位是校驗位,根據前14位計算得來
? 2G模塊的固件對最后1位的校驗位沒做檢查,即使校驗位錯誤,也允許寫入
? 4G模塊的固件對最后1位的校驗位會做正確性檢查,校驗位出錯,返回寫入失敗;所以如果4G模塊出現寫IMEI失敗,可以通過https://www.oming.me/tools/imei檢查下校驗位【如果此鏈接失效,可以把校驗位設置為0到9依次嘗試】,如果檢驗位沒問題,提供日志給合宙技術支持人員分析
6.4、SN是什么,如何讀寫
? sn的標準含義是指序列號,合宙模塊的標簽上都有sn號,記錄了生產日期等信息;模塊的flash中也有一塊區域為sn,我們現在討論的是模塊flash中的這一塊區域。 sn區域最多可以存儲64字節的數據,即使重新燒錄固件,此區域的數據也不丟失,和imei的存儲機制類似。合宙工廠生產模塊時,對sn區域沒有寫入任何有效數據【2G模塊雖然寫入了數據,但是此數據沒什么實際意義】,所以客戶拿到模塊之后,可以根據sn區域的特性,存儲自定義的不超過64字節的任何數據,例如阿里云的設備密鑰
? sn讀寫接口如下:
七、SIM卡問題
7.1、支持中國大陸哪些運營商
7.2、是否支持中國港澳臺、外國運營商
例如,要判斷Air720H是否在其他國家可以使用,首先打開http://www.openluat.com/Product/file/asr1802/Air720x(3229)%E7%B3%BB%E5%88%97%E6%A8%A1%E5%9D%97%E7%A1%AC%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8CV1.27.pdf找到Air720H支持的頻段,如下圖所示
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uU2vihsI-1619422566529)(https://oldask.openluat.com/image/show/attachments-2020-01-8Opab9VQ5e0ee32c936da.png “undefined”)]
可以得知:Air720H支持B1、B3、B5、B8、B38、B39、B40、B41
那么Air720H可以在哪些國家使用呢?分如下幾種情況討論
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mZcAKb6E-1619422566530)(https://oldask.openluat.com/image/show/attachments-2020-01-Ag5kfJYa5e0ee38a73945.png “undefined”)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NwhwZU5w-1619422566530)(https://oldask.openluat.com/image/show/attachments-2020-01-mNG0jtwC5e0ee3a9dd309.png “undefined”)]
注意:一旦確定可用,需要參考本文的APN設置章節,設置為正確的APN,才能正常上網
7.3、支持SIM卡熱插拔嗎
?支持
? 1) 默認打開了軟件檢測SIM卡熱插拔功能,但是軟件檢測有延時,詳情參考AT手冊中的AT+AMSDTC命令
? 2) 支持硬件檢測SIM卡熱插拔功能,硬件檢測無延時,但是默認關閉了此功能,如果需要打開,參考AT手冊中的AT+CSDT命令【AT版本發送AT+CSDT=1命令,Lua版本執行ril.request(“AT+CSDT=1”)】,同時硬件電路上要接SIMDET腳
? 1) 不支持軟件檢測SIM卡熱插拔功能
? 2) 支持硬件檢測SIM卡熱插拔功能,硬件檢測無延時,但是默認關閉了此功能,如果需要打開,參考AT手冊中的AT+CSDT命令【AT版本發送AT+CSDT=1命令,Lua版本執行ril.request(“AT+CSDT=1”)】,同時硬件電路上要接USIM_CD腳
7.4、找不到SIM卡
? 2G模塊:主動上報+CPIN: NOT INSERTED或者AT+CPIN?查詢返回+CPIN: NOT INSERTED
? 4G模塊:主動上報+CPIN: SIM REMOVED或者AT+CPIN?查詢返回+CME ERROR: 10
? 都表示找不到SIM卡,按照如下步驟排查:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ry0OABRB-1619422566531)(https://oldask.openluat.com/image/show/attachments-2020-02-uCSSInC15e437c7292d22.png “undefined”)]
? 1) 如果不正常,檢查下卡片是否變形、氧化,用卡背貼膠帶、膠水灌注、擦拭卡片等方式再嘗試,如果都不行,考慮換卡吧
? 2) 如果正常,把此卡放到其他板子上,如果其他板子正常,可能屬于板子單體問題;如果其他板子也不正常,應該是板子硬件設計問題。參考第5步分析
7.5、Luat版本為什么開機讀出的ICCID、IMSI為空
? Lua版本的腳本運行起來,檢測到sim卡之后,會發送AT命令查詢iccid、imsi,從腳本開始運行到查詢到結果,一般需要5秒鐘【只是經驗值,不要用做程序設計依據】,如果在查詢到結果之前使用sim.getIccid()、sim.getImsi()接口讀取,就為返回空;
? 用戶開發項目時,可以根據項目的應用場景,分別做不同處理,比較典型的兩種場景如下:
sys.subscribe(“IMSI_READY”, function() end) --iccid也是IMSI_READY的消息
sys.subscribe(“IMSI_READY”, function() end)
7.6、可以讀到SIM卡的手機號碼(MSISDN)嗎
? 目前有兩種方式可以獲取本機號碼:
? 1) AT版本,發送AT+CNUM命令查詢
? 2) Luat版本,開機后調用sim.setQueryNumber(true)打開查詢本機號碼功能,會自動查詢本機號碼;可通過sim.getNumber()獲取查詢結果
? 1) 短信平臺下發一條短信給模塊,短信內容中包含手機號碼,模塊收到后解析出號碼
? 2) 模塊連接一個后臺服務器,后臺服務器與短信平臺相連,根據imei或者imsi讀取到對應的手機號碼,然后把這個號碼,下發給imei或者imsi對應的模塊
7.7、虛擬卡(VSIM)
? 虛擬卡是一種“將sim卡數據寫入模塊flash,實現和實體卡同樣網絡功能”的純軟件技術,相比實體卡存在“省去卡槽的硬件設計、不會出現掉卡、不會因為卡被盜而產生的巨額流量”的優點
? 目前合宙已不生產新的虛擬卡模塊,之前已經出貨的虛擬卡模塊會持續維護。部分2G和4G模塊支持貼片卡(ESIM卡),有需要的話,可咨詢購買
? 虛擬卡使用時常見問題如下:
7.8、貼片卡(ESIM)
? 目前,支持貼片卡的模塊型號列表如下:
7.9、合宙物聯網卡(虛擬卡、貼片卡、實體卡)商務問題
? 物聯網卡管理平臺地址:sim.openluat.com
? 商務問題列表如下,有需要請聯系淘寶客服處理:
? 1) 測試期:物聯網卡在申請開通時,可自由選擇是否開通測試期,測試期最長為三個月,即時生效,測試期以合同訂單簽訂的失效日期為止,測試期結束后自動進入沉默期。在測試期內,有2M/月測試流量,不超過該流量不計費,超過2M則當月按照0.29元/MB(10M及以上套餐)、1元/MB(2M及5M套餐)進行計費,且測試期不享受流量池。(測試期流量一般用于設備前裝質量檢測)
? 2) 沉默期:測試期后,進入沉默期,最長六個月,沉默期用戶產生流量后直接激活,并進入流量池。沉默期結束后仍未激活,強制激活
? 3) 計費期:物聯網卡從激活之日期,根據購買流量時長(以月為計時單位)在系統內以套餐生效日期、套餐失效日期呈現,即物聯網卡的有效使用期限,用戶如需長期使用物聯網卡應在套餐失效期前進行續費,以延長套餐的有效期,避免因套餐失效而停機
7.10、想使用語音短信業務怎么辦
? 合宙出售的物聯網卡為純流量卡,不支持語音和短信業務。必須去運營商辦理實名認證的卡才能使用
7.11、實體卡如何防盜
? 無法防盜,建議使用貼片卡
7.11、實體卡如何防盜
? 無法防盜,建議使用貼片卡
7.12、為什么SIM VCC沒有供電
? sim_vcc不是持續供電,是間歇性供電,只有卡在位才持續供電
7.13、為什么Luatools提示“可能是虛擬卡數據錯誤,請重啟幾次,如果一直出現此提示,請聯系管理員”
? Luatools有一個檢測虛擬卡數據是否完整的功能,但是此功能無法做好,如果出現此提示,根據如下情況分析:
7.14、如何判斷sim卡所屬運營商
? 參考:http://doc.openluat.com/article/556/0
八、天線射頻問題
? 常見的模塊天線有如下幾種:PCB天線、FPC天線、彈簧天線、棒狀天線、外置吸盤天線
? 常見的GPS天線有:陶瓷天線
? 本章節描述的是常見的注意事項,具體到一款產品遇到的天線問題,還是要分析產品的內部結構,需要拍張清晰的產品內部以及外殼照片發給合宙技術支持人員分析
8.1、天線設計和調試
? 任何一款規范的產品,天線設計至關重要,一定要到正規的天線廠,針對整機,對天線做匹配性調試。如果天線沒有經過調試,在使用過程中會出現信號不穩定、駐網失敗、連接服務器斷線等網絡問題
? 任何一款規范的產品,天線設計至關重要,一定要到正規的天線廠,針對整機,對天線做匹配性調試。如果天線沒有經過調試,在使用過程中會出現信號不穩定、駐網失敗、連接服務器斷線等網絡問題
? 客戶如果沒有條件做調試,建議選擇抗干擾強的天線,下面分情況討論:
? 建議天線選配按照如下順序執行:
8.2、天線使用環境
? 天線調試好之后,使用環境對天線性能也有影響,需要注意的問題如下:
8.3、2G模塊測試傳導靈敏度時,到-107.5左右GPRS就會掉線
? GSM靈敏度-108左右,正常應該不會掉線,可能是有干擾導致靈敏度下降,或者線損沒有補上
8.4、2G模塊天線為什么和GND短路了
? 設計如此,這是正常表現;天線和GND之間有電感,所以測試為0歐姆
8.5、2G模塊和4G模塊天線通用嗎
? 4G天線可以用到2G上,但是2G天線不建議用到4G上
8.6、4G模塊如果支付輔天線,如何使用輔天線
? 合宙大部分的4G模塊不支持輔天線,個別模塊支持輔天線,對于支持輔天線的模塊來說,僅使用主天線可以滿足日常基本需求,如果要求射頻高性能發揮到極致,可以同時使用主天線和輔天線
8.7、天線廠調試天線時,如何提供來電自動接聽的軟件
? 1) 2G模塊
? require “cc”
? sys.subscribe(“CALL_INCOMING”, function(num) cc.accept(num) end)
?2) 4G模塊
? ril.regUrc(“RING”, function() ril.request(“ATA”) end)
九、信號問題
9.1、沒有信號(信號弱)
9.2、信號強度和網絡數據業務的穩定性關系
? 信號強度和dBm的對應關系為:信號強度*2-113 = dBm值
? 信號強度的查詢方法:
? 信號強度僅僅表示當前駐留小區的網絡覆蓋程度,一般來說,信號強度和網絡通信穩定率是正比關系。信號強度差,網絡數據通信相對就不穩定;但不能絕對的認為信號強度好,網絡數據通信就一定穩定,和網絡是否擁堵等其他因素也有關系;經驗值如下:
? CSQ值小于10,可以認為網絡較差
? CSQ值在10和25之間,可以認為網絡中等
? CSQ值大于25,可以認為網絡較好
十、網絡注冊和附著問題
10.1、無法注冊網絡、注冊網絡慢、無法附著網絡、附著網絡慢
10.2、為什么在一些車庫里面手機接打電話正常,但是模塊注冊網絡失敗呢
? 首先確保手機和模塊使用的網絡制式相同,例如模塊是移動2G網絡,手機也要在移動2G網絡下,這樣才有對比意義
10.3、為什么有些SIM卡在2G模塊上無法注冊網絡
? 0029版本開始的core固件,支持了中國移動的一種新標準的物聯網卡,如果遇到此問題,確認一下版本是否為0029以及之后的版本,如果不是,燒錄最新core固件測試確認下
10.4、同一地點,同一張卡,手機可以注冊上4G網絡,為什么4G模塊不可以
? 之前有客戶遇到過類似問題,均為“測試地點,4G信號太弱”引起的,手機上的天線增益比4G模塊大板上的天線增益要高,所以手機正常,4G模塊不正常。4G模塊更換高增益天線后,也變得正常
10.5、4G模塊使用2G卡,注冊網絡很慢
? 不同型號的4G模塊,支持的網絡頻段也不相同。
? 以支持頻段最多的4G模塊Air720H為例,同時支持4G、3G、2G網絡,開機搜索網絡時,默認軟件是按照4G、3G、2G網絡的順序依次搜索,等搜索到2G網絡時,可能已經過去幾分鐘了(例如我在上海辦公室,使用Air720H模塊,3分鐘左右才能搜索到2G網絡),對于使用2G卡的用戶或者要使用2G網絡的應用場景來說,這種速度簡直是不能忍受。那么如何加快搜索2G網絡的速度呢,有如下兩種方式:
| 全網搜索,減少搜索4G、3G網絡的時間,通過每次開機發送如下AT命令實現: AT+MEDCR=0,8,1 AT+MEDCR=0,17,240 AT+MEDCR=0,19,1 | 兼容各種網絡環境,注冊2G網絡的速度可以稍微變快一點兒(例如,我這邊Air720H模塊,發送這三條指令前,測試了4次,分別為:174秒、118秒、147秒、136秒;發送這三條指令后,測試了4次,分別為240秒、110秒、112秒、112秒) | 2G的駐網速度還是沒有質的提升 |
| 僅搜索2G網絡,通過開機發送如下AT命令實現: AT*BAND=0,74 | 2G網絡注冊快,和2G模塊的駐網速度基本一致(例如,我這邊Air720H模塊,基本上都是在20秒以內) | 設置AT命令后,模塊就只能使用2G網絡了;以后如果要使用默認網絡配置,必須發送AT+RSTSET(發送后,會自動重啟)命令來恢復出廠設置 |
10.6、4G模塊如何設置網絡頻段
? 1) AT版本:開機發送AT* BAND=0,74命令設置
? 2) Luat版本:main.lua中sys.init(0,0)前添加一行代碼ril.request(“AT*BAND=0,74”)
? 1) AT版本:開機發送AT* BAND=5,74,129,480,149命令設置
? 2) Luat版本:main.lua中sys.init(0,0)前添加一行代碼ril.request(“AT*BAND=5,74,129,480,149”)
注意:這些設置生效后,會保存到flash中,不會丟失;如果僅僅是測試需要,在測試結束之后,AT版本通過發送AT+RSTSET命令,Luat版本通過執行一行代碼ril.request(“AT+RSTSET”)來恢復出廠設置
更多使用方式參考:http://oldask.openluat.com/article/130 和AT手冊
10.7、如何判斷4G模塊注冊的是什么網絡
? 1) 當注冊的網絡類型發生變化時,會通過urc上報^MODE:<SysMainMode>,<SysMode>;其中<SysMainMode>表示當前注冊的網絡類型:
? <SysMainMode>為3時表示2G網絡
? <SysMainMode>為5時表示3G WCDMA網絡
? <SysMainMode>為15時表示3G TD網絡
? <SysMainMode>為17時表示4G網絡
? <SysMainMode>為其余值時表示未注冊網絡
? 2) 發送AT*BANDIND?命令主動查詢,返回的查詢結果格式為:*BANDIND: <n>[,<band>,<AcT>];其中<AcT>表示當前注冊的網絡類型:
? <AcT>為0、1、3時表示2G網絡
? <AcT>為2、4、5、6、8時表示3G網絡
? <AcT>為7時表示4G網絡
? <AcT>為其余值時表示未注冊網絡
? 1) 日志中搜索MODE,搜索結果的格式為:MODE:<SysMainMode>,<SysMode>;其中<SysMainMode>表示當前注冊的網絡類型:
? <SysMainMode>為3時表示2G網絡
? <SysMainMode>為5時表示3G WCDMA網絡
? <SysMainMode>為15時表示3G TD網絡
? <SysMainMode>為17時表示4G網絡
? <SysMainMode>為其余值時表示未注冊網絡
? 2) 調用net.getNetMode()接口,返回值表示當前注冊的網絡類型:
? 返回值為0表示未注冊網絡
? 返回值為1、2時表示2G網絡
? 返回值為3時表示3G TD網絡
? 返回值為4時表示4G網絡
? 返回值為5時表示3G WCDMA網絡
詳情可參考AT手冊和 http://oldask.openluat.com/article/130 幫助理解
10.8、各國網絡頻段匯總
參考:
https://oldask.openluat.com/article/946
http://bw.openluat.com/#/inter_view 這個地址也可以備注上。
10.9、網絡小區參數
? 在對接后臺時,有些后臺會要求終端上傳一些小區參數,例如:
? cell id:小區ID
? ecl、ce level:無線信號覆蓋等級
? pci:物理小區標識
? sinr:信號與干擾加噪聲比
? rsrp:參考信號接收功率
? tac:基站跟蹤區域碼
? strength:信號強度,通過AT+CSQ或者AT+CESQ獲取
? 一般來說,只有4G小區才具有這些參數信息,我們以4G小區為例,來說明如何獲取這些參數,AT手冊中有一個+EEMLTESVC的上報,上報的數據中包含了這些參數;有如下兩種方式可以觸發+EEMLTESVC上報:
+EEMLTESVC中的參數和我們需要的參數對應關系參考下圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JdUDYRSp-1619422566532)(https://oldask.openluat.com/image/show/attachments-2020-03-dJlpDc0D5e7ef832f1ee1.png “undefined”)]
? ecl、ce level:無線信號覆蓋等級,沒有現成的AT命令可以直接查詢,可參考下圖自行計算
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BoxeAmCj-1619422566532)(https://oldask.openluat.com/image/show/attachments-2020-03-b34z2byh5e7ef8581b4fd.jpg “undefined”)]
十一、APN設置和PDP激活問題
11.1、2G模塊如何設置APN
? 1. AT版本,固件包含各國公網APN列表,但是列表無法保證完整性和正確性,除中國大陸外,其他國家和地區還是建議用戶使用AT+CSTT或者AT+SAPBR命令主動設置正確的APN
? 1) 如果在中國大陸使用中國移動的公網卡,根據應用場景不同,可選是否設置APN
? A. 如果socket單連接,在AT+CGATT?附著上數據網絡之后,可以不設置APN,直接使用AT+CIPSTART命令去連接服務器
? 2) 如果在中國港澳臺或者國外使用,請咨詢SIM卡供應商獲取APN信息,使用AT+CSTT或者AT+SAPBR命令主動去設置正確的APN
? 3) 如果是專網卡,無論在什么國家和地區使用,請咨詢SIM卡供應商獲取APN信息,使用AT+CSTT或者AT+SAPBR命令主動去設置正確的APN
2. Luat版本,固件包含各國公網APN列表,但是列表無法保證完整性和正確性,除中國大陸外,其他國家和地區還是建議用戶使用link.setApn(apn, userName, password)主動設置正確的APN
? 1) 如果在中國大陸使用中國移動的公網卡,可以不主動設置APN
? 2) 如果在中國港澳臺或者國外使用,請咨詢SIM卡供應商獲取APN信息,使用link.setApn(apn, userName, password)主動去設置正確的APN
? 3) 如果是專網卡,無論在什么國家和地區使用,請咨詢SIM卡供應商獲取APN信息,使用link.setApn(apn, userName, password)主動去設置正確的APN
11.2、4G 模塊如何設置APN
? 1) 如果是公網SIM卡,不需要用戶主動設置APN,軟件自動去網絡端查詢APN進行設置
? 2) 如果是專網SIM卡,首先咨詢SIM卡提供商APN參數,然后參考:http://oldask.openluat.com/article/913 進行設置,設置成功后,后續用到CSTT或者SAPBR設置APN時,必須再次傳入正確的APN參數,才能正常使用
? 1) 如果是公網SIM卡,不需要用戶主動設置APN,軟件自動去網絡端查詢APN進行設置
? 2) 如果是專網SIM卡,首先咨詢SIM卡提供商APN參數,然后在main.lua盡可能靠前的位置調用link.setAuthApn(prot,apn,user,pwd)進行設置【注意:第一次設置成功之后,軟件會自動重啟,因為重啟后才能生效】
11.3、PDP激活失敗
? 參考10.1章節
11.4、為什么4G模塊專網卡連接服務器失敗
十二、socket問題
12.1、連接服務器失敗
? 1) 2G模塊:使用合宙技術支持人員提供的debug core文件,參考:http://oldask.openluat.com/article/63 抓日志
? 2) 4G模塊:參考1.2.6章節中的1和2,提供Luatools下的trc文件和sdl文件
12.2、數據收發延遲大、速度慢、經常失敗、掉線斷開
? 1) 如果直接使用的是tcp udp socket連接,檢查下心跳包的頻率,基站策略會關閉長時間沒有數據傳輸的連接,建議心跳包的頻率不要超過4分鐘,一般都是建議使用2分鐘
? 2) 如果使用的是mqtt連接,檢查下mqtt keep alive的時間,基站策略會關閉長時間沒有數據傳輸的連接,建議心跳包的頻率不要超過4分鐘,一般都是建議使用2分鐘
? 3) 如果使用的是mqtt連接,檢查下是否在1.5倍的mqtt keep alive的時間,沒有成功發送數據到服務器,就會被被服務器主動斷開,這種情況一般都是發送數據超時引起的
? 1) 2G模塊
? A. AT版本:
? a) 通過AT+TCPUSERPARAM命令設置較大的重傳次數和重傳間隔
? b) 如果使用的是MQTT,除了執行第a)步操作之外,還可以通過AT+MCONNECT命令增大MQTT KEEP ALIVE的時間來降低掉線率
? B. Luat版本:
? a) 調用socket.setTcpResendPara接口設置較大的重傳次數和重傳間隔
? b) 如果使用的是MQTT,除了執行第a)步操作之外,還可以通過調用mqtt.client接口增大MQTT KEEP ALIVE的時間來降低掉線率
? 2) 4G模塊
? A. AT版本:
? a) 目前還不支持AT設置重傳次數和重傳間隔
? b) 如果使用的是MQTT,除了執行第a)步操作之外,還可以通過AT+MCONNECT命令增大MQTT KEEP ALIVE的時間來降低掉線率
? B.Luat版本:
? a) 目前還沒有接口支持設置重傳次數和重傳間隔
? b) 如果使用的是MQTT,除了執行第a)步操作之外,還可以通過調用mqtt.client接口增大MQTT KEEP ALIVE的時間來降低掉線率
? 1) 分析正常設備和異常設備的使用環境是否相同:
? A. 如果不同,例如異常設備固定在鋼制墻壁上,正常設備放置在桌子上,鋼制墻壁可能對天線射頻有干擾,將異常設備和正常設備放置在同樣的使用環境中,再對比測試
? B. 如果相同,參考第2)步
? 2) 分析正常和異常的設備,駐留的小區是否相同:
? A. 如果相同,重點排查異常設備的天線射頻部分,分析不出結果的話,異常設備寄給合宙分析
? B. 如同不同,多測試幾次,確認下,是不是在異常小區內很容易出問題,如果異常小區很容易出問題,可能就是小區擁堵造成的
? 1) 2G模塊:使用合宙技術支持人員提供的debug core文件,參考:http://oldask.openluat.com/article/63 抓日志
? 2) 4G模塊:參考1.2.6章節中的1和2,提供Luatools下的trc文件和sdl文件
12.3、如何發送大量數據
12.4、為什么頻繁收發數據時,會導致整個模塊系統響應變慢
? 模塊的主頻是有限的,如果一直頻繁收發數據,CPU頻繁的處理數據收發,肯定會導致對其他任務的處理有延時。
? 如果是Luat版本二次開發,這種表現會更加明顯,因為所有Luat應用是一個單task應用,頻繁的收發數據,會導致這個單task在頻繁的處理數據收發消息,從而影響其他功能的及時響應。可參考:http://oldask.openluat.com/article/930 輔助理解
12.5、是否支持長連接
? UDP協議的socket不支持長連接,TCP協議的socket支持長連接;長連接需要在代碼中實現斷開自動重連的控制邏輯,以及實現定時發送心跳的業務邏輯
12.6、快發和慢發有什么區別
? UDP協議本身沒有可靠性保證,所以不存在快發慢發之說,可以認為UDP協議的socket一直是快發模式
? TCP協議發送數據時,數據發送出去之后,必須等到服務器返回TCP ACK包,才認為數據發送成功,在網絡較差的情況下,這種ACK確認就會導致發送過程很慢。從而導致用戶程序后續的AT處理邏輯一直處于等待狀態。例如執行AT+CIPSEND動作發送一包數據后,接下來要執行AT+QTTS播放TTS,但是CIPSEND一直等了1分鐘才返回SEND OK,這時AT+QTTS就會一直等待1分鐘,可能不是程序中想看到的。此時就可以設置為快發模式,AT+CIPSEND可以立即返回一個結果,此結果表示“數據是否被緩沖區所保存”,從而不影響后續其他AT指令的及時執行
? AT版本可以通過AT+CIPQSEND指令、Luat版本可以通過socket.setSendMode接口設置發送模式為快發或者慢發
? 快發模式下,在core中有一個1460*7=10220字節的緩沖區,要發送的數據首先存儲到此緩沖區,然后在core中自動循環發送。如果此緩沖區已滿,則AT+CIPSEND會直接返回ERROR,socket:send接口也會直接返回失敗
? 同時滿足如下幾種條件,適合使用快發模式:
注意:4G Luat版本沒有快發慢發的設置,因為4G Luat版本直接使用了api的方式來實現socket,不影響其他功能的及時響應
12.7、支持發送什么格式的數據
? 任何數據格式都支持
12.8、如何查詢錯誤碼
? 參考:http://oldask.openluat.com/article/61
12.9、最多同時支持多少個連接
參考:http://oldask.openluat.com/article/61
注意:Luat版本的lib中的一些功能模塊會用到socket連接,例如update、agps、lbsLoc、errDump;同時支持的連接個數包含lib中的這些連接;例如在某個時間點,update和lbsLoc在工作,會占用2個socket連接,這個時間點用戶的應用腳本中最多能夠同時使用的連接個數就少2個了
12.10、是否支持websocket、是否可以做server使用
? 不支持websocket
? 不可以做server使用
12.11、為什么要發送心跳包(如何檢測連接活性)
? 因為基站資源有限,如果不發心跳包保活,基站會主動斷掉鏈路,回收資源,模塊和服務器無感,并不知道鏈路已經斷開。建議心跳包的頻率不要超過4分鐘,一般都是建議使用2分鐘
12.12、為什么有時連接斷開會收到提示;有時不可以收到提示,必須等到發送數據時才能檢測到斷開
? 能收到提示的情況,通常是服務器主動斷開連接
? 不能收到提示的情況,可能是鏈路被基站斷開,或者其他意外情況導致【例如服務器網線被拔掉】,模塊和服務器無感知;此時只能通過發送數據超時來感知
12.13、如何統計流量
? 運營商按照ip包來統計流量,ip包包含:ip包頭+tcp包頭+用戶數據,以IPv4為例:
? ip包頭包含固定的20字節+可選的4字節,至少20字節
? tcp包頭包含固定的20字節+可選的4字節,至少20字節
? 用戶數據就是用戶能夠感知到的數據內容了,如果直接使用socket,就是用戶感知的數據;如果使用http、mqtt、ssl,這部分數據就不是用戶能夠感知的原始數據了,http會加上http包頭,mqtt會加入mqtt的包裹部分,ssl會加密數據
? tcp數據收發時,有ack確認機制,例如設備發數據給服務器后,還會收到服務器返回的tcp ack包,這個tcp ack包(至少40字節)也是計算在流量之內的。接收到服務器下發的數據時,設備也會回復一個tcp ack包,同樣這個ack包仍然計算在流量之內
? 另外,socket連接以及斷開連接,都有多次數據收發,這部分也會消耗流量
? 例如有一個tcp socket連接,連接成功后,每分鐘設備發送2字節的心跳數據到服務器,服務器收到數據后,再回復2字節的心跳應答數據。這個過程中,每分鐘消耗的流量至少有42(設備發送)+40(服務器回復ack)+42(服務器發送)+40(設備回復ack)=164字節,實際處理中,服務器回復ack和服務器發送可能合并成一個IP包42字節,這樣的話,至少也要42+42+40 = 124字節。這是最簡單的算法,實際應用中,還要考慮到重傳、包頭中的可選字節,應該會比這里計算的流量多一些。如果要準確計算,建議在服務器端用wireshark抓包分析
? 另外一個常見的例子是,為什么通過http下載一個文件,實際消耗的流量比文件本身要多呢?跟上個例子類似,文件本身大小僅僅是用戶數據,除了用戶數據外,還有如下幾部分的流量消耗:
12.14、是否支持IPv6
? 2G模塊不支持IPv6
? 4G模塊支持IPv6協議,rndis和ppp應用也支持了IPv6,但是Luat版本二次開發和AT版本tcp、http、mqtt指令沒有使用IPv6
12.15、模塊IP地址
? 模塊激活pdp后,模塊端顯示的ip地址是運營商分配的內網ip
? 模塊與服務器連接成功后,在服務器端顯示的ip地址是運營商分配的公網ip地址
? 對于同一個模塊來說,這兩個ip地址都是會變化的,例如同一個模塊:
? 所以這兩種ip地址,對模塊來說沒有多大意義,不要用他們來標識模塊,如果要標識模塊,請使用模塊imei
12.16、數據接收緩存問題
注意:緩存表位于內存中,斷電或者重啟后,緩存表中的數據會被清空;雖然緩存表可以緩存很多數據,但是建議收到數據時,還是要及時讀取出來;緩存表不斷緩存數據,會占用大量內存,在項目內存緊張的情況下,很容易出現內存不足問題導致重啟
12.17、客戶示例:2G模塊3秒上傳一次GPS位置數據,軌跡丟失問題
? 現在的2G網絡環境無法保證"任何時間任何地點,都能及時成功的傳輸數據",延時和發送失敗的問題,肯定是存在的,如果要比較完美的行駛軌跡,需要在應用層設計好數據緩存和數據補傳工作,注意事項如下:
12.18、數據透傳時,會丟失前面的一部分數據
? 確認下是否收發數據前是否喚醒了模塊
十三、http問題
13.1、是否支持HTTPS
支持,TLSV1.2
支持如下四種加密套件:
TLS_RSA_WITH_AES_128_CBC_SHA (0x2F)
TLS_RSA_WITH_AES_256_CBC_SHA (0x35)
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3C)
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3D)
證書支持情況如下:
? 1) AT版本:不支持證書配置,不校驗證書
? 2) Luat版本:支持證書配置,支持單向認證和雙向認證
支持證書配置,支持單向認證和雙向認證
支持如下六種加密套件:
0X0035 TLS_RSA_WITH_AES_256_CBC_SHA
0X002F TLS_RSA_WITH_AES_128_CBC_SHA
0X0005 TLS_RSA_WITH_RC4_128_SHA
0X0004 TLS_RSA_WITH_RC4_128_MD5
0X000A TLS_RSA_WITH_3DES_EDE_CBC_SHA
0X003D TLS_RSA_WITH_AES_256_CBC_SHA256
13.2、為什么頻繁請求會失敗
? 支持的http連接總數有限,參考12.9章節
? 建議一個http連接返回請求結果之后,再去請求下一個連接;不要使用循環定時器方式不斷的發起新的http請求
13.3、支持發送什么格式的數據
? 任何數據格式都支持
13.4、如何查詢錯誤碼
如果是https連接失敗,參考13.1章節,確認下服務器是否支持“模塊支持的加密套件”
13.5、如何POST文件
13.6、為什么POST JSON格式的數據會出現失敗
檢查一下是否忘記設置了"Content-Type: application/json"請求頭
13.7、AT版本如何設計HTTP應用邏輯
參考:http://oldask.openluat.com/article/939
13.8、數據接收緩存問題
AT版本:有緩存機制,內存中有一個的緩沖區(2G模塊300KB,4G模塊319499字節),收到數據后,插入此緩沖區,然后通過AT口輸出urc,提示收到的數據長度;緩沖區滿之后,再收到新數據,會丟棄新收到的數據,并通過AT口輸出urc提示出錯;需要讀取數據時,發送AT+HTTPREAD命令讀取,可分段讀取,也可全部讀取
注意:緩沖區位于內存中,斷電或者重啟后,緩存表中的數據會被清空;雖然緩沖區可以緩存很多數據,但是建議收到數據時,通過AT+HTTPREAD及時讀取出來,以防緩沖區滿出錯
Luat版本:有如下兩種緩存機制, http.request接口可以設置使用何種緩存機制,http的demo中有詳細示例可供參考
? 1) 內存緩存:內存中有一個緩沖區,在項目剩余可用內存的范圍內,此緩沖區沒有大小限制,例如項目可用內存剩余200KB,則此緩沖區的理想最大值是200KB;收到的數據都會緩存到此緩沖區,如果收到的數據超過緩沖區大小,會導致內存不足重啟;數據接收完整后,通過回調函數傳出緩沖區數據,供用戶應用腳本使用
注意:緩沖區位于內存中,斷電或者重啟后,緩沖區中的數據會被清空;如果接收的數據過多,不建議使用內存緩存的機制,可能會導致內存不足重啟
? 2) 文件緩存:接收到的數據可以保存在文件中,在文件系統剩余空間的范圍內,此文件沒有大小限制,例如項目剩余文件系統空間200KB,則此文件的理想最大值是200KB;收到的數據都會保存到此文件中,如果收到的數據文件最大值,會導致保存失敗,新數據被丟棄;數據接收完整后,通過回調函數傳出文件完整路徑,供用戶應用腳本使用
注意:文件位于文件系統中,斷電或者重啟后,文件不會被自動清空刪除;如果文件已經不再使用,一定要通過os.remove接口將文件刪除。否則會一直占用文件系統空間,導致可用文件系統空間變小
13.9、為什么https訪問失敗
? 1) 2G模塊AT版本:AirM2M_VXXXX_AT_S_SSL.lod和AirM2M_VXXXX_AT_S_8955F.lod才支持ssl功能
? 2) 2G模塊Luat版本:帶SSL或者8955F的lod才支持ssl功能
? 3) 4G模塊:所有版本都支持
十四、mqtt問題
14.1、是否支持ssl
? 支持,TLSV1.2
支持如下四種加密套件:
TLS_RSA_WITH_AES_128_CBC_SHA (0x2F)
TLS_RSA_WITH_AES_256_CBC_SHA (0x35)
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3C)
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3D)
證書支持情況如下:
? 1) AT版本:不支持證書配置,不校驗證書
? 2) Luat版本:支持證書配置,支持單向認證和雙向認證
支持證書配置,支持單向認證和雙向認證
支持如下六種加密套件:
0X0035 TLS_RSA_WITH_AES_256_CBC_SHA
0X002F TLS_RSA_WITH_AES_128_CBC_SHA
0X0005 TLS_RSA_WITH_RC4_128_SHA
0X0004 TLS_RSA_WITH_RC4_128_MD5
0X000A TLS_RSA_WITH_3DES_EDE_CBC_SHA
0X003D TLS_RSA_WITH_AES_256_CBC_SHA256
14.2、AT版本如何設計MQTT應用邏輯
? 參考:http://doc.openluat.com/article/625/0
14.3、有沒有免費的MQTT broker可用
? 合宙有一個lbsmqtt.airm2m.com:1884的broker,沒有網頁端控制頁面,可以用模塊和mqtt.fx客戶端配合測試
14.4、如何實現掉線自動重連
14.5、頻繁掉線是什么原因
? 1) 檢查下mqtt keep alive的時間,一般建議使用2分鐘【如果每2分鐘內都有應用數據收發,則可以把mqtt keep alive的時間設置的長一點兒】,除非有強制要求,否則不能太長,也不能太短。不建議超過4分鐘,基站策略會關閉長時間沒有數據傳輸的連接,太長時間可能會導致連接被基站關閉;不建議少于1分鐘,太短時間可能會因為網絡環境波動導致上行數據發送超時,可能超過1.5倍的心跳時間,從而被服務器主動斷開連接
? 2) 檢查下是否在1.5倍的mqtt keep alive的時間,沒有成功發送數據到服務器,就會被被服務器主動斷開,這種情況一般都是發送數據超時引起的
? 1) 2G模塊
? A. 加大TCP重傳次數和重傳間隔:AT版本通過AT+TCPUSERPARAM命令設置;Luat版本通過socket.setTcpResendPara接口設置
? B. mqtt keep alive的時間,一般建議使用2分鐘【如果每2分鐘內都有應用數據收發,則可以把mqtt keep alive的時間設置的長一點兒】,除非有強制要求,否則不能太長,也不能太短。不建議超過4分鐘,基站策略會關閉長時間沒有數據傳輸的連接,太長時間可能會導致連接被基站關閉;不建議少于1分鐘,太短時間可能會因為網絡環境波動導致上行數據發送超時,可能超過1.5倍的心跳時間,從而被服務器主動斷開連接
? C. 減少Qos1和Qos2的publish使用,允許的話建議都使用Qos0
? 2) 4G模塊
? A. 加大TCP重傳次數和重傳間隔:目前還不支持
? B. mqtt keep alive的時間,一般建議使用2分鐘【如果每2分鐘內都有應用數據收發,則可以把mqtt keep alive的時間設置的長一點兒】,除非有強制要求,否則不能太長,也不能太短。不建議超過4分鐘,基站策略會關閉長時間沒有數據傳輸的連接,太長時間可能會導致連接被基站關閉;不建議少于1分鐘,太短時間可能會因為網絡環境波動導致上行數據發送超時,可能超過1.5倍的心跳時間,從而被服務器主動斷開連接
? C. 減少Qos1和Qos2的publish使用,允許的話建議都使用Qos0
? 1) 分析正常設備和異常設備的使用環境是否相同:
? A. 如果不同,例如異常設備固定在鋼制墻壁上,正常設備放置在桌子上,鋼制墻壁可能對天線射頻有干擾,將異常設備和正常設備放置在同樣的使用環境中,再對比測試
? B. 如果相同,參考第2)步
? 2) 分析正常和異常的設備,駐留的小區是否相同:
? A. 如果相同,重點排查異常設備的天線射頻部分,分析不出結果的話,異常設備寄給合宙分析
? B. 如同不同,多測試幾次,確認下,是不是在異常小區內很容易出問題,如果異常小區很容易出問題,可能就是小區擁堵造成的
? 1) 2G模塊:使用合宙技術支持人員提供的debug core文件,參考:http://oldask.openluat.com/article/63 抓日志
? 2) 4G模塊:參考1.2.6章節中的1和2,提供Luatools下的trc文件和sdl文件
14.6、有沒有認證機制
? 有,每個設備有clientid、username、password
14.7、client id是否允許重復
? 不允許重復,重復的話,服務器會踢掉上一個相同id的設備
14.8、是否支持通配符
? 訂閱的主題支持通配符,所以建議訂閱的主題復雜且不易被猜;建議使用自建服務器,或者項目之間隔離,公網broker不可靠
? 參考:http://doc.openluat.com/article/600/0
14.9、Qos0、1、2如何選擇
? 應用允許的情況下,建議使用Qos0,Qos1和Qos2會加重網絡負擔,4G網絡還好,特別是2G網絡,在網絡擁堵和較差的情況下,數據傳輸的次數越多,掉線的概率就會越高
14.10、AT版本publish json格式的數據,如何處理"
需要轉義處理,參考:http://oldask.openluat.com/article/122
14.11、如何查詢錯誤碼
如果是mqtt ssl連接失敗,參考14.1章節,確認下服務器是否支持“模塊支持的加密套件”
14.12、數據接收緩存問題
? 1) 不緩存:通過AT+MQTTMSGSET=0設置;收到訂閱的publish報文后,立即通過AT口輸出主題、payload長度、payload內容,每個報文中支持的payload內容最長1360字節
? 2) 內存緩存:通過AT+MQTTMSGSET=1設置;內存中有一個緩存表,最多支持緩存4條publish報文;收到訂閱的publish報文后,插入緩沖表中的空閑位置,然后通過AT口輸出存儲位置;緩存表滿之后,新收到的publish報文會覆蓋最舊的publish報文
注意:緩存表位于內存中,斷電或者重啟后,緩存表中的數據會被清空;建議收到數據時,通過AT+MQTTMSGGET及時讀取出來,以防緩沖區滿覆蓋丟失數據
內存中有一個緩存表,在項目剩余可用內存的范圍內,此緩存表沒有大小限制,例如項目可用內存剩余200KB,則此緩存表的理想最大值是200KB;收到的publish報文都會緩存到此緩存表,如果收到的數據超過緩存表大小,會導致內存不足重啟;需要讀取數據時,通過mqtt:receive接口主動讀取即可
注意:緩存表位于內存中,斷電或者重啟后,緩存表中的數據會被清空;雖然緩存表可以緩存很多數據,但是建議收到數據時,還是要及時讀取出來;緩存表不斷緩存數據,會占用大量內存,在項目內存緊張的情況下,很容易出現內存不足問題導致重啟
14.13、為什么mqtt ssl訪問失敗
? 1) 2G模塊AT版本:AirM2M_VXXXX_AT_S_SSL.lod和AirM2M_VXXXX_AT_S_8955F.lod才支持ssl功能
? 2) 2G模塊Luat版本:帶SSL或者8955F的lod才支持ssl功能
? 3) 4G模塊:所有版本都支持
十五、遠程升級問題
參考:http://oldask.openluat.com/article/916
十六、阿里云問題
16.1、如何連接阿里云
? 1) 一機一密參考:http://www.openluat.com/Product/file/rda8955/%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91AT%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E%EF%BC%88%E4%B8%80%E6%9C%BA%E4%B8%80%E5%AF%86%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88%EF%BC%8CAT_S_TTS%E5%92%8CAT_S%E7%89%88%E6%9C%AC%E4%B8%8D%E6%94%AF%E6%8C%81%EF%BC%8CAT_S_SSL%E5%92%8CAT_S_NOTTS%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81%EF%BC%89.pdf
? 2) 一型一密參考:http://www.openluat.com/Product/file/rda8955/%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91AT%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E%EF%BC%88%E4%B8%80%E5%9E%8B%E4%B8%80%E5%AF%86%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88%EF%BC%8CAT_S_TTS%E5%92%8CAT_S%E7%89%88%E6%9C%AC%E4%B8%8D%E6%94%AF%E6%8C%81%EF%BC%8CAT_S_SSL%E5%92%8CAT_S_NOTTS%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81%EF%BC%89.pdf
? 1) 一機一密參考:http://www.openluat.com/Product/file/asr1802/%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91AT%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E%EF%BC%88%E4%B8%80%E6%9C%BA%E4%B8%80%E5%AF%86%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88%EF%BC%89.pdf
? 2) 一型一密參考:http://www.openluat.com/Product/file/asr1802/%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91AT%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E%EF%BC%88%E4%B8%80%E5%9E%8B%E4%B8%80%E5%AF%86%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88%EF%BC%89.pdf
16.2、除了阿里云,支持華為云、百度云、騰訊云、OneNet等其他云平臺嗎
? 支持,但是需要用戶自己開發,沒有提供官方例程和lib文件
? 開發者伙伴發布了一些文章在ask網站,僅供參考,不保證正確和穩定性
? 華為云:http://oldask.openluat.com/article/904、http://oldask.openluat.com/article/902、http://oldask.openluat.com/article/903
? OneNET:http://oldask.openluat.com/article/56、http://oldask.openluat.com/article/893、http://oldask.openluat.com/article/179
? 百度云、騰訊云:http://oldask.openluat.com/article/177
16.3、一型一密方案,設備在線運行了很多天后,模塊中的設備密鑰和阿里云平臺上的密鑰不一致導致無法上線
? 有一個客戶陸續反映此問題,目前還沒有定位到根本原因,可按照如下方式協助確認此問題:
? 在定位出根本原因之前,可通過如下方式規避處理:在阿里云上刪除此設備,然后再重新錄入
16.4、為什么阿里云連接失敗
? 1) 2G模塊AT版本:AirM2M_VXXXX_AT_S_SSL.lod和AirM2M_VXXXX_AT_S_8955F.lod才支持ssl功能
? 2) 2G模塊Luat版本:帶SSL或者8955F的lod才支持ssl功能
? 3) 4G模塊:所有版本都支持
16.5、如何降低阿里云的離線率
? 目前2G網絡環境在逐步惡化,在網絡較好的情況下,24小時出現10次以內的掉線【僅僅作為經驗值參考】都可以認為正常,如果掉線率太高,需要日志分析,如果不方便抓日志,可以按照如下方式處理后,對比看下是否有改善:
? 1) 加大TCP重傳次數和重傳間隔:AT版本通過AT+TCPUSERPARAM命令設置;Luat版本通過socket.setTcpResendPara接口設置
? 2) mqtt keep alive的時間,一般建議使用2分鐘【如果每2分鐘內都有應用數據收發,則可以把mqtt keep alive的時間設置的長一點兒】,除非有強制要求,否則不能太長,也不能太短。不建議超過4分鐘,基站策略會關閉長時間沒有數據傳輸的連接,太長時間可能會導致連接被基站關閉;不建議少于1分鐘,太短時間可能會因為網絡環境波動導致上行數據發送超時,可能超過1.5倍的心跳時間,從而被服務器主動斷開連接
? 3) 減少Qos1和Qos2的publish使用,允許的話建議都使用Qos0
? 1) 加大TCP重傳次數和重傳間隔:目前還不支持
? 2) mqtt keep alive的時間,一般建議使用2分鐘【如果每2分鐘內都有應用數據收發,則可以把mqtt keep alive的時間設置的長一點兒】,除非有強制要求,否則不能太長,也不能太短。不建議超過4分鐘,基站策略會關閉長時間沒有數據傳輸的連接,太長時間可能會導致連接被基站關閉;不建議少于1分鐘,太短時間可能會因為網絡環境波動導致上行數據發送超時,可能超過1.5倍的心跳時間,從而被服務器主動斷開連接
? 3) 減少Qos1和Qos2的publish使用,允許的話建議都使用Qos0
16.6、阿里云網站上的異常信息和模塊動作的對應關系
| Device disconnect | 發送了disconnect報文,可能是邏輯問題,導致異常發送了disconnect報文,需要腳本日志文件分析【2G模塊2.3.5版本之前的部分版本腳本lib,存在一個bug,可能會導致此問題,建議更新到2.3.5以及之后的版本】 |
| Connectoin reset by peer | 模塊發送超時失敗,沒有斷開mqtt連接,直接斷開了socket【可參考16.5章節優化】 |
| keepalive timeout | 模塊發送mqtt心跳超時,被服務器斷開【可參考16.5章節優化】 |
| kicked by the same device | 有兩種可能性: 1、存在相同client id的設備,默認使用模塊imei作為client id,可能是imei重復,可參考6.2章節確認下是否模塊imei為默認值 2、設備在線狀態下,發生了重啟,重啟后成功連接阿里云【如果使用了errDump功能模塊,可參考22.3章節檢查下是否有異常信息上報】 |
16.7、如何批量寫入三元組
? 一機一密的三元組信息為:ProductKey、DeviceName、DeviceSecret
? 一型一密的三元組信息為:ProductKey、ProductSecret、DeviceName
? 一型一密的三元組信息為:ProductKey、ProductSecret、DeviceName
? ProductKey和ProductSecret可以直接固化在代碼中
? DeviceName建議直接使用模塊的IMEI,也可以使用MCU端的一個唯一ID,只要這個ID在同一個ProductKey下是唯一的即可
? DeviceSecret的批量寫入,詳細說明如下:
? 1) 在工廠燒錄固件時,上位機通過模塊uart口將DeviceSecret寫入到模塊中【強烈建議存儲在模塊sn中,參考6.4章節;Luat版本也可存儲在nvm中,參考30.3章節;AT版本,如果mcu端可以存儲,也可以存儲在mcu端】
? 2) 終端設備第一次開機運行時,連接自建的服務器,將ProductKey和DeviceName上傳給自建服務器,自建服務器訪問阿里云獲取對應的DeviceSecret,然后將DeviceSecret下發給終端設備存儲【強烈建議存儲在模塊sn中,參考6.4章節;Luat版本也可存儲在nvm中,參考30.3章節;AT版本,如果mcu端可以存儲,也可以存儲在mcu端】
? 更多說明參考:http://doc.openluat.com/article/600/0
16.8、AT版本,MCU端如何實現HmacMD5算法
下載http://www.openluat.com/Product/file/rda8955/core_src.7z,參考:cust_src\elua\lib\crypto\src\aliyun_iot_common_hmac.c文件中的aliyun_iot_common_hmac_md5接口
十七、基站定位問題
17.1、如何使用基站定位
? 目前合宙的2G和4G模塊都支持基站定位,此服務免費
17.2、基站定位原理
? 模塊正常聯網后,搜索附近的小區信息,上報給后臺;后臺查詢小區經緯度,并結合信號強度等因素進行計算(三角定位原理),最后返回計算出來的經緯度給模塊
17.3、基站定位精度如何
? 搜索到的小區越多,定位的精度越高;一般來說,城市中心定位精度比郊區和農村定位精度高,城市中心的定位精度在幾十米到幾百米不等,郊區和農村的定位精度更低,可能會有幾千米甚至更多的誤差
基站定位的誤差都比較大,如果需要準確定位,請使用支持GPS的模塊,例如Air800、Air530
17.4、為什么基站定位失敗
? 搜索到的小區越多,定位的精度越高;一般來說,城市中心定位精度比郊區和農村定位精度高,城市中心的定位精度在幾十米到幾百米不等,郊區和農村的定位精度更低,可能會有幾千米甚至更多的誤差
? 1) main.lua中的PRODUCT_KEY和此設備在iot.openluat.com中所屬項目的ProductKey必須一致,請去檢查
? 2) 后臺基站數據庫查詢不到所有小區的位置信息;在trace中向上搜索encellinfo,然后在電腦瀏覽器中打開http://bs.openluat.com/,手動查找encellinfo后的所有小區位置;如果手動可以查到位置,則服務器存在BUG,直接向技術支持人員反映問題;如果手動無法查到位置,則基站數據庫還沒有收錄當前設備的小區位置信息,向技術支持人員反饋,我們會盡快收錄
17.5、如何在iot.openluat.com中查詢設備的基站定位請求記錄
? 因基站定位請求數據太多,為了保證iot后臺運行的穩定性,不再保存請求記錄,如果實在有查詢需求,聯系合宙技術支持人員處理
17.6、合宙官方的基站定位能在國外使用嗎
? 不能,沒有國外的基站數據庫
十八、GPS定位問題
18.1、哪些模塊支持GPS定位
? 目前僅:Air800、Air801、Air530支持
? 其余模塊例如Air720G如果要支持GPS,可以采用Air720G+Air530方案,使用Luat二次開發實現
18.2、GPS天線如何設計
? 目前僅:Air800、Air801、Air530支持
? 其余模塊例如Air720G如果要支持GPS,可以采用Air720G+Air530方案,使用Luat二次開發實現
18.2、GPS天線如何設計
? 參考:https://www.jianshu.com/p/f52e9a52cc11
18.3、Air800模塊如何測試信噪比
? 參考:http://oldask.openluat.com/article/963
18.4、Air800模塊如何輸出原始NMEA數據
gps.setNmeaMode(2, function(nmeaItem) log.info("nmea", nmeaItem) end)
18.5、Air800模塊GPS無信號、信號弱、定位失敗
? 1) 必須使用gps天線,普通的gsm、藍牙、wifi、433等天線不支持gps定位
? 2) gps陶瓷天線,如果大板和陶瓷天線面積都比較小,一定要去正規天線廠調試。如果面積都比較大,實在沒條件調試,可以不去調試
? 3) 天線朝上,面向天空,天線上方不能有金屬物質,不能有較厚的遮擋物(例如幾厘米的塑料盒子肯定不行,幾毫米的塑料盒子可以)
? 4) 如果用的是有源天線,測量下供電電壓是否正常;如果使用GPLDO(LDOVIB)給天線供電:Air800 AT版本默認已經打開GPLDO(LDOVIB)供電;Luat版本需要在gps開啟之前,執行一行代碼pmd.ldoset(7,pmd.LDO_VIB)來打開供電
18.6、如何支持秒定位(GPS定位慢)
? 1) AT版本:默認支持秒定位,不需要MCU做控制
? 2) Luat版本:require"agps"即可
注意:即使支持了秒定位,GPS斷電后第一次開機,定位速度仍然會比較慢
18.7、什么是GPS的冷啟動、溫啟動、熱啟動
? 參考:http://oldask.openluat.com/article/32
18.8、GPS定位經緯度不準確
18.9、GPS模塊內部有LNA嗎
? 有LNA低噪聲放大器
18.10、GPS定位海拔不準確
? 衛星距離地球有33000km,所以高程差幾十米很正常。幾十米相對于33000km,真的不算什么。如果要求精確,一般個人建議:
那么,放在飛機上會更準嗎?就方向角、經緯度、速度而言,會;但是,氣壓不會準,因為艙內有增壓裝置。但是海拔而言,飛機一般用雷達、聲納,以及皮托管(氣壓)、或者陀螺儀(慣導)
18.11、如何計算NMEA校驗碼
參考:http://oldask.openluat.com/article/70
18.12、可視衛星、可用衛星有什么區別
? 可視衛星是當前區域,接收條件良好情況下,應該可以收到衛星信號的衛星
? 可用衛星是當前已經收到信號并正在使用參與定位的衛星
18.13、GGA和RMC應該用哪個
? 視具體情況而定,建議用gga,信息相對更全面
18.14、如何解讀NMEA報文每個字段的含義
? 參考:http://www.openluat.com/Product/file/800/NMEA%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E.docx
18.15、是否支持rtd、rtk
? 不支持,推薦選型:unicorecomm um482;ublox f9p
18.16、是否支持ntrip協議
? 不支持,可以使用Luat開發方式自行對接ntrip協議
? ntrip協議參考:https://blog.csdn.net/hanford/article/details/53025771
18.17、已知兩個經緯度,如何計算間距?
可以使用如下函數(但是注意,沒有考慮到地球曲率,計算結果存在誤差。建議使用高德地圖等提供的api在服務端計算
-[[
函數名:diffofloc
功能 :計算兩對經緯度之間的直線距離(近似值)
參數:
? latti1:緯度1(度格式,例如31.12345度)
?longti1:經度1(度格式)
?latti2:緯度2(度格式)
?longti2:經度2(度格式)
?typ:距離類型
返回值:typ如果為true,返回的是直線距離(單位米)的平方和;否則返回的是直線距離(單位米)
]]
end
18.18、如何解決靜態漂移
? 通常是因為衛星、接收器、天線等多重因素導致,建議服務端從算法層面去過濾這種漂移;設備端也可以通過振動傳感器判斷靜止狀態、wifi判斷wifi變化率較低、基站變化率較低等多種手段,較少不必要的GPS位置上報來過濾漂移
18.19、做車載定位器,進入隧道沒辦法定位怎么辦
? 使用基站定位
18.20、能否用于制作人員定位器、定位手表
? 可以
18.21、使用Luat版本FLOAT底層,能否實現坐標轉換(WGS84~GCJ02)加偏/糾偏
? 建議在服務器端實現。因為加偏算法是很復雜的浮點運算,模塊輸出結果可能和實際情況有差;如果需要更高的加偏結果,可以使用百度/高德等地圖提供的api
18.22、哪些地圖使用的是GCJ02坐標系
? 高德、騰訊;(百度是GCJ02又轉換為BD09,所以不能直接使用GCJ02)
18.23、哪些地圖可以直接查看WGS84定位
? bing maps(非bing地圖),google maps(非gogole 地圖)
18.24、車載使用時需要天線引出到車頂上嗎
十九、GPIO問題
? 因AT版本不支持gpio操作,故本章節討論的是Luat版本下的gpio問題
19.1、為什么GPIO配置后,功能不正常
pmd.LDO_VMMC:GPIO8、GPIO9、GPIO10、GPIO11、GPIO12、GPIO13
pmd.LDO_VLCD:GPIO14、GPIO15、GPIO16、GPIO17、GPIO18
pmd.LDO_VCAM:GPIO19、GPIO20、GPIO21、GPIO22、GPIO23、GPIO24
GPIO 0到GPIO 31表示為pio.P0_0到pio.P0_31
GPIO 32到GPIO 63表示為pio.P1_0到pio.P1_31
GPIO 64到GPIO XX表示為pio.P2_0到pio.P2_(XX-64),例如GPIO65 表示為pio.P2_1
19.2、GPIO的輸出能力是多少
? 1) 電壓輸出最高3.3V,部分管腳最高2.8V;沒有電壓域控制的管腳電壓只能輸出0V、3.3/2.8V,有電壓域控制的管腳輸出電壓可通過電壓域控制【詳情參考demo/gpio/gpioSingle/testGpioSingle.lua中的注釋】
? 2) 電流最大輸出2mA
? 1) 電壓最高輸出1.8V
? 2) 電流最高輸出2mA
19.3、中斷檢測能力是多少
? 最快檢測20ms
? 中斷越頻繁,中斷檢測的及時性越低;可參考:http://oldask.openluat.com/article/930輔助理解
19.4、哪些管腳可以用做GPIO
? 參考模塊硬件手冊“管腳描述”章節的表格,表格中表明可以用做gpio的都可以使用
19.5、異常重啟,能否恢復之前的工作狀態
? 建議把gpio狀態寫入nvm,萬一異常重啟,根據nvm保存的狀態配置gpio
19.6、從硬件上電到腳本可控制GPIO狀態,這段時間內的管腳電平狀態如何變化
? Air720系列4G模塊:http://doc.openluat.com/article/600/0
二十、合宙官方硬件看門狗問題(僅適用于Luat版本)
? 因AT版本需要外接MCU主控,MCU可自行實現硬件看門狗的功能,故本章節不討論AT版本的硬件看門狗問題,僅討論Luat版本下的合宙官方硬件看門狗問題
20.1、軟硬件設計
? 看門狗購買鏈接:打開:m.openluat.com,進入“周邊工具”頁面,選擇“看門狗Air153B”
? 看門狗硬件設計以及工作原理參考:http://www.openluat.com/Product/file/rda8955/Luat%E4%B8%93%E7%94%A8%E7%9C%8B%E9%97%A8%E7%8B%97%E8%8A%AF%E7%89%87%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8CV1.6.pdf
? Luat軟件代碼:
? require"wdt"
? wdt.setup(pio.P0_30, pio.P0_31) --根據實際的硬件連接,自行修改這兩個管腳的gpio id
20.1、軟硬件設計
? 看門狗購買鏈接:打開:m.openluat.com,進入“周邊工具”頁面,選擇“看門狗Air153B”
20.2、硬件看門狗是否有必要
? 有,可以保證無人值機設備系統的穩定性,避免人肉運維的尷尬
20.3、為什么4G模塊不需要外部硬件看門狗
? 參考:http://oldask.openluat.com/article/74
20.4、為什么會提示喂狗失敗(WatchDog <–> AirM2M didn’t respond : wdt reset 153b)
20.5、PWR_ON_OUT腳有什么作用
? 當模塊的pwrkey沒有接地,它可以使模塊開機;如果模塊pwrkey接地,則該腳懸空
20.6、如何測試看門狗是否正常工作
? 有如下兩種方法:
20.7、能否修改看門狗喂狗時序
? 不能,固件已經固化在芯片中
20.8、能否使用自己的硬件看門狗芯片
? 可以,軟件和硬件需要自行設計
20.9、有沒有軟件看門狗
? 2G模塊的core中有一種死循環軟件看門狗機制,如果腳本中一直在死循環執行某段代碼,2G模塊半分鐘會軟件看門狗重啟【重啟原因值為poweron reason 8】
? 4G模塊的0027以及之后版本的core+2.2.8以及之后版本的腳本lib,實現了一種死循環軟件看門狗機制,如果腳本中一直在死循環執行某段代碼,4G模塊1分鐘會軟件看門狗重啟【沒有特定的重啟原因值,重啟原因值為普通的軟件重啟3,重啟前的日志會輸出SoftDog Restart】
? 除此之外,還有一種常見的業務邏輯軟件看門狗,此軟件看門狗的基本實現原理為:根據業務邏輯,連續一段時間和服務器通信不正常,則控制軟重啟;示例代碼如下:
oftwareDogCo = sys.taskInit(function()
如何去確認這個“適當的位置”呢?下面列舉兩種常見示例:
20.10、硬件看門狗外圍電路不規范可能導致2G模塊一直重啟
? 下圖為一個不規范的硬件看門狗外圍電路
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ioPgZXbk-1619422566533)(https://oldask.openluat.com/image/show/attachments-2019-12-JkFUgt7d5df33e2cbefac.png “undefined”)]
? 下圖為參考硬件連接圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AhXbhPHL-1619422566534)(https://oldask.openluat.com/image/show/attachments-2019-12-FR6D7uzD5df33e539faaa.png “undefined”)]
? 不規范的電路圖中,看門狗供電VDDIO沒有串聯二極管,會導致反復重啟模塊。因為二極管是為了防止單片機的供電漏掉,如果沒有二極管,在VDDIO掉電時會將看門狗的電源拉掉,導致看們關機導致拉低RESET,引起模塊重啟
二十、合宙官方硬件看門狗問題(僅適用于Luat版本)
? 因AT版本需要外接MCU主控,MCU可自行實現硬件看門狗的功能,故本章節不討論AT版本的硬件看門狗問題,僅討論Luat版本下的合宙官方硬件看門狗問題
20.1、軟硬件設計
? 看門狗購買鏈接:打開:m.openluat.com,進入“周邊工具”頁面,選擇“看門狗Air153B”
? 看門狗硬件設計以及工作原理參考:http://www.openluat.com/Product/file/rda8955/Luat%E4%B8%93%E7%94%A8%E7%9C%8B%E9%97%A8%E7%8B%97%E8%8A%AF%E7%89%87%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8CV1.6.pdf
? Luat軟件代碼:
? require"wdt"
? wdt.setup(pio.P0_30, pio.P0_31) --根據實際的硬件連接,自行修改這兩個管腳的gpio id
20.2、硬件看門狗是否有必要
? 有,可以保證無人值機設備系統的穩定性,避免人肉運維的尷尬
20.3、為什么4G模塊不需要外部硬件看門狗
? 參考:http://oldask.openluat.com/article/74
20.4、為什么會提示喂狗失敗(WatchDog <–> AirM2M didn’t respond : wdt reset 153b)
20.5、PWR_ON_OUT腳有什么作用
? 當模塊的pwrkey沒有接地,它可以使模塊開機;如果模塊pwrkey接地,則該腳懸空
20.6、如何測試看門狗是否正常工作
? 有如下兩種方法:
20.7、能否修改看門狗喂狗時序
? 不能,固件已經固化在芯片中
20.8、能否使用自己的硬件看門狗芯片
? 可以,軟件和硬件需要自行設計
20.9、有沒有軟件看門狗
? 2G模塊的core中有一種死循環軟件看門狗機制,如果腳本中一直在死循環執行某段代碼,2G模塊半分鐘會軟件看門狗重啟【重啟原因值為poweron reason 8】;4G模塊暫時沒有這種功能
? 除此之外,還有一種常見的業務邏輯軟件看門狗,此軟件看門狗的基本實現原理為:根據業務邏輯,連續一段時間和服務器通信不正常,則控制軟重啟;示例代碼如下:
oftwareDogCo = sys.taskInit(function()
如何去確認這個“適當的位置”呢?下面列舉兩種常見示例:
二十一、短信問題
21.1、支持長短信嗎
21.2、為什么Air720H模塊無法使用中國電信卡收發短信
? 中國電信的短信業務要回落到2G或者3G網絡下才能使用,但是Air720H不支持中國電信的2G和3G網絡頻段,所以不支持中國電信的短信業務;
? 支持中國移動和中國聯通的短信業務
二十二、日志使用問題(僅適用于Luat版本)
22.1、如何解讀Luatools抓到的腳本日志
? 參考:http://oldask.openluat.com/article/15
22.2、errDump功能有什么用
? errDump功能模塊對“量產投放市場的設備,遠程調試初步定位問題”至關重要, 強烈建議客戶一定要使用此功能,加載此功能模塊后,具備如下功能:
22.3、設備使用errDump對接合宙官方服務器,如何查看設備上報的錯誤信息
? 登錄 iot.openluat.com,隨便選擇一個產品,點進去,點擊左側的“查詢debug”菜單,輸入設備imei,選擇開始日期、結束日期,點擊搜索即可
? 友情提醒:開始和結束日期的跨度越大,搜索速度越慢
二十三、串口通信問題
23.1、AT版本發送AT無應答
23.2、串口數據亂碼
? 檢查下模塊板和主控板的參考地是否有電勢差,曾經有一個客戶的板子如下圖設計,通過主控板給模塊供電,然后只通過上圖排插針通插座的方式連接主板串口,導致地連接的阻抗增加,在弱信號下大功率發射時,會導致模塊板和主控板的參考地有電勢差,導致串口通信異常
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uONlTzX8-1619422566534)(https://oldask.openluat.com/image/show/attachments-2019-12-GqrKcQmE5de4aebb2f099.png “undefined”)]
23.3、Luat版本串口問題
? 參考:http://oldask.openluat.com/article/924
二十四、音頻問題(僅適用于Luat版本)
24.1、無法播放mp3文件
24.2、無法播放tts
24.3、支持什么規格的喇叭
? 4G模塊不支持喇叭;2G模塊支持的喇叭規格為:8Ω,1W、8Ω,2W、8Ω,3W…,只要8Ω,大于等于1W都支持
24.4、TTS音質可以更好嗎
? 0037以及之后版本的8955F和8955F_FLOAT固件,改善了tts播放音質,模塊需要選用Air202F、Air268F等64Mb flash的型號;因flash空間問題,非8955F的固件,無法改善
二十五、core固件使用問題
25.1、固件區別
AirM2M_VXXXX_AT_S_SSL.lod:支持SSL,不支持TTS,32Mb flash模塊固件
AirM2M_VXXXX_AT_S_TTS.lod:支持TTS,不支持SSL,32Mb flash模塊固件
AirM2M_VXXXX_AT_S_8955F.lod:既支持TTS,又支持SSL,64Mb flash模塊固件
Luat_VXXXX_8955.lod:不支持SSL、TTS、SPI接口的LCD功能
Luat_VXXXX_8955_SSL.lod:支持SSL功能
Luat_VXXXX_8955_SSL_TTS.lod:支持SSL、TTS功能,不支持MP3、MIDI、錄音功能
Luat_VXXXX_8955_SSL_UI.lod:支持SSL、SPI接口的LCD功能
Luat_VXXXX_8955_TTS_UI.lod:支持TTS、SPI接口的LCD功能
Luat_VXXXX_8955_TTS1.lod:支持TTS功能
Luat_VXXXX_8955_TTS2.lod:支持TTS功能、不支持MP3、MIDI、錄音、json
Luat_VXXXX_8955_UI.lod:支持SPI接口的LCD功能
Luat_VXXXX_8955_SSL_FLOAT.lod:支持SSL功能、浮點數
Luat_VXXXX_8955_SSL_UI_FLOAT.lod:支持SSL功能、PI接口的LCD功能、浮點數
Luat_VXXXX_8955F.lod:64M flash版本(Air202F),支持SSL、TTS、SPI接口的LCD功能
Luat_VXXXX_ASR1802.lod:不支持浮點數
Luat_VXXXX_ASR1802_FLOAT.lod:支持浮點數
25.2、哪里可以下載舊版本固件
? AT固件不方便下載舊版本固件,如果需要,直接聯系合宙技術支持人員
? 2G模塊Luat舊版本core固件的下載鏈接為:http://www.openluat.com/Product/file/rda8955/oldCore/core_VXXXX.zip; VXXXX 替換為特定的版本號,例如V0025
? 2G模塊Luat舊版本core固件的下載鏈接為:http://www.openluat.com/Product/file/rda8955/oldScript/script_LuaTask_VX.Y.Z.zip ;VX.Y.Z替換為特定的版本號,例如V2.3.5
? 4G模塊Luat舊版本core固件的下載鏈接為:http://www.openluat.com/Product/file/asr1802/oldCore/core_VXXXX.zip ;VXXXX替換為特定的版本號,例如V0025
? 4G模塊Luat舊版本core固件的下載鏈接為:http://www.openluat.com/Product/file/asr1802/oldScript/script_LuaTask_VX.Y.Z.zip ;VX.Y.Z替換為特定的版本號,例如V2.2.7
25.3、如何在2G模塊Luat開源core中添加自己的功能模塊
? 參考:http://doc.openluat.com/article/600/0
二十六、合宙云平臺問題
26.1、提供哪些云平臺服務
遠程升級:tcp協議 域名:iot.openluat.com 端口:80
日志服務:udp協議 域名:ota.airm2m.com 端口:9072
基站定位:udp協議 域名:bs.openluat.com 端口:12411和12412
AGPS星歷下載:tcp協議 域名:download.openluat.com 端口:80
sim.openluat.com:流量卡管理查詢
iot.openluat.com:物聯網云平臺,用于支持模塊終端的遠程升級、日志服務、基站定位功能
erp.openluat.com:商務信息查詢
? tcplab.openluat.com:TCP測試平臺
26.2、物聯網云平臺(iot.openluat.com)問題
26.2.1、如何添加設備到設備列表中
? 不需要手動添加設備到產品的設備列表中,使用Luat版本二次開始時,update、lbsLoc都要用到產品的productKey,當設備第一次成功使用update或者lbsLoc功能時【注意:此處的成功使用,update成功指的是從云平臺上成功下載了升級包、lbsLoc成功指的是獲取到了基站對應的經緯度】,會自動將設備模塊的imei添加到productKey對應產品的設備列表中
26.2.2、如何查詢設備在哪個產品下
? 把模塊IMEI發給合宙技術支持人員查詢
? 如果查詢不到,說明設備還沒有成功上報過,參考26.2.1處理后才能查詢到歸屬產品,此情況不影響設備正常使用update和lbsLoc功能,設備成功使用過一次update或者lbsLoc功能后,就可以在云平臺查到歸屬產品了
26.2.3、為什么公司采購的4G模塊不在我自己創建的產品項目下
? 客戶向合宙采購4G模塊時,如果采購人員沒有告知合宙這批模塊放在iot.openluat.com上的哪個產品下,則合宙會以采購人的手機號為賬號,默認密碼888888,創建一個“Air720X標準模塊”的產品,此次采購的所有模塊都會放在這個產品下
? 通常采購人員和開發人員并不是同一個人,開發人員拿到模塊,如果使用Lua版本開發,用到了合宙服務器提供的基站定位、遠程升級功能,就會在iot.openluat.com上開發人員自己的賬號下,創建一個新產品【假設產品名為“模塊Lua開發”】,此時就會出現main.lua中的PRODUCT_KEY和模塊歸屬的產品ProductKey不一致的問題,導致基站定位和遠程升級功能無法正常使用
? 遇到這種問題,需要把“Air720X標準模塊”產品下的所有設備轉移到“模塊Lua開發”產品下,操作步驟如下:
以后采購模塊時,如果所有的模塊都需要放在開發人員賬戶下的“模塊Lua開發”產品下,則告知采購人員,讓合宙發貨時默認全放在這個產品下,可以省去“開發人員轉移全部設備”的操作
如果不方便指定產品,所有模塊都用做Luat二次開發,則可以進入“Air720X標準模塊”產品,打開設備列表,點擊“重置所有設備”,這樣所有模塊都沒有歸屬項目了,以后模塊使用Luat版本第一次成功使用基站定位或者遠程升級功能后,就自動加入“腳本中PRODUCT_KEY對應的項目”下
如果查詢不到,說明設備還沒有成功上報過,參考26.2.1處理后才能查詢到歸屬產品,此情況不影響設備正常使用update和lbsLoc功能,設備成功使用過一次update或者lbsLoc功能后,就可以在云平臺查到歸屬產品了
26.2.3、為什么轉移設備會失敗
? 要轉移的設備必須屬于源產品,如果批量轉移的設備中有些設備不屬于源產品,網站不會報錯,會忽略這些不屬于源產品的設備,僅僅轉移屬于源產品的設備
26.2.4、如何在不同賬號間轉移產品
此功能不對外開放,告知合宙技術支持人員:源賬號、產品ProductKey、目的賬號,由合宙技術支持人員處理
26.3、TCP測試平臺(tcplab.openluat.com)問題
26.3.1、如何使用TCP測試平臺
? 使用chrome瀏覽器打開http://tcplab.openluat.com,如下示例所示
Openluat TCP Lab
服務器建立在[180.97.81.180:51329] 2019/12/20 上午10:30:40
設備通過tcp連接180.97.81.180的51329端口即可
26.3.2、瀏覽器打開tcplab.openluat.com失敗怎么辦
? 建議使用chrome瀏覽器
26.3.3、為什么模塊連接TCP測試平臺,會出現斷開的問題
? 模塊發送0x7F的字符,會導致平臺斷開
? 設備和平臺之間連續3分鐘沒有數據通信,會導致平臺斷開
? 除此之外,因為該平臺為測試平臺,無法保證穩定性,可能平臺存在bug導致斷開
二十八、JSON問題
28.1、底層使用哪個庫實現的
? cjson
28.2、為什么會解析出錯
? 檢查數據的完整性和正確性;可在第三方json解析網站對比測試
? 在非協程中,解析出錯時,如果沒有判斷解析結果,直接使用解析后的table,會導致軟件異常重啟,如果使用了errDump功能模塊,軟件重啟后,會通過errDump將異常信息上報到調試服務器;如果不想異常重啟,可參考如下代碼設計
local tDecodedData,result,errInfo = json.decode(data)
if result and type(tDecodedData)==“table” then
--使用tDecodedDataelse--可以使用errDump功能模塊將錯誤信息上報到調試服務器--errDump.appendErr(errInfo)end? 在協程中,解析出錯時,如果沒有判斷解析結果,直接使用解析后的table,會導致協程異常退出,不會引起軟件重啟,如果使用了errDump功能模塊,會通過errDump將異常信息上報到調試服務器
28.3、為什么HTTP POST JSON格式的數據會出現失敗
? 檢查一下是否忘記設置了"Content-Type: application/json"請求頭
28.4、AT版本mqtt publish json格式的數據,如何處理"
? 需要轉義處理,參考:http://oldask.openluat.com/article/122
二十九、UI問題(僅使用于Luat版本)
29.1、如何支持UI顯示
29.2、為什么lcd不顯示
29.3、最大支持的lcd分辨率是多少
&esnp; 因內存限制,2G模塊支持的最大分辨率為240*320;如果想要更大分辨率lcd,建議使用hmi usart等串口屏,此情況需要自行開發軟件實現,不能使用core提供的ui庫
? 4G模塊還不支持UI功能
29.4、如何使用自定義字體
? 參考:http://doc.openluat.com/article/600/0
29.5、為什么圖片無法顯示
29.6、如何顯示二維碼
? 參考qrcode的demo,scriptLuaTask/demo/qrcode
? 參考:http://doc.openluat.com/article/600/0
29.7、如何顯示Code128條形碼
? 參考:http://doc.openluat.com/article/600/0、http://doc.openluat.com/article/600/0
三十、FLASH和RAM使用問題(僅適用于Luat版本)
30.1、Luat版本用戶可使用哪些FLASH空間
? 1) 用來存放通過Luatools燒錄的腳本、圖片、音頻等文件;或者通過Luatools合成腳本、圖片、音頻等文件,再通過量產燒錄工具燒錄的合成文件
? 2) 腳本區內的數據只讀,不可寫
? 3) 4G 720D、720H、720G、720SX系列的模塊的腳本區空間為1MB
? 4) 4G 720UX系列的模塊的腳本區空間為700KB
? 5) 2G模塊,不同的core固件的腳本區空間不盡相同,可用記事本打開lod文件,搜索SCRIPT_DATA_SIZE表示腳本區空間
? 6) 如果實際的腳本、圖片、音頻等文件的總大小超過了腳本區空間,在Luatools燒錄或者合成時會提示出錯
? 1) 用來存放程序運行過程中,動態創建的文件,例如從網絡上下載一個圖片、下載遠程升級包、本地創建的參數文件等
? 2) 文件系統區的文件數據可讀可寫
? 3) 不同的core固件分配的文件系統空間不盡相同,可通過rtos.get_fs_free_size()返回文件系統的剩余空間,單位為字節。注意:
? A. 此處返回的剩余空間為理論值,除了存儲文件中的實際數據之外,還要存儲文件索引信息,所以文件系統存在一個利用率的問題,一般來說85%是比較保險的一個經驗值
? B. 2G模塊如果用到了遠程升級功能,需要為遠程升級功能保留足夠的文件系統空間,詳情參考:http://oldask.openluat.com/article/916 4.3章節
? 4) lib中基于文件系統實現了一個nvm功能模塊,可用于存儲小數據量的簡單鍵值對數據,詳情參考:http://doc.openluat.com/article/600/0 ;如果存儲大數據量數據,參考fs的demo直接操作文件
30.2、Luat版本用戶可用的RAM空間
? 2G模塊RAM總空間為1MB
? 4G 720D、720H、720G、720SX系列的模塊RAM總空間為1.5MB
? 4G 720UX系列的模塊RAM總空間為1180KB
? collectgarbage(“count”)返回已用RAM空間,單位為KB;注意:
30.3、NVM使用問題
? NVM是基于文件系統實現的一個功能模塊,可用于存儲小數據量的簡單鍵值對數據,詳情參考:http://doc.openluat.com/article/600/0 ;如果存儲大數據量數據,參考fs的demo直接操作文件
30.4、為什么讀文件失敗
? 文件讀取不存在權限問題,按照如下順序排查問題
30.5、動態創建自定義文件的注意事項
? 1) 自定義的文件不要放在根目錄/下,根目錄下有最多32個文件的限制
? 2) 自定義的文件完整路徑長度不能超過32字節,例如/user_dir/783748932749327493274237493274932749237.txt超過了32字節,創建時會失敗
30.6、是否支持外擴SPI FLASH
? 支持,但是無法掛載文件系統,只能使用spi接口進行讀寫數據存儲管理
三十一、RNDIS問題
31.1、模塊軟件中支持關閉RNDIS網卡功能嗎
? 不支持
? 如果因為電腦誤使用RNDIS造成了SIM卡流量損失,可以在電腦的網絡連接中禁用RNDIS網卡
31.2、WINDOWS如何使用RNDIS模式上網
? 參考:http://doc.openluat.com/article/600/0
三十二、PCB文件使用問題
32.1、合宙官方的PCB文件用 PADS的什么版本可以打開
? 9.5
三十三、語音通話問題
33.1、4G模塊是否支持語音通話業務
? 4G模塊支持電話的呼入、呼出、接聽;但是因為沒有語音編解碼芯片,所以聽不到通話聲音
33.2、為什么Air720G模塊無法使用中國移動卡的語音通話業務
? Air720G僅支持聯通3G和移動4G網絡
? 目前,中國移動的語音通話業務在如下幾種網絡狀態下可用:
所以,Air720G模塊無法使用中國移動卡的語音通話業務
但是支持中國移動的短信業務,因為短信業務不需要回落到2G和3G網絡,直接在4G網絡下使用2G網絡的核心網就可以完成短信收發
33.3、天線廠調試天線時,如何提供來電自動接聽的軟件
? 1) 2G模塊
? require "cc"
? sys.subscribe("CALL_INCOMING", function(num) cc.accept(num) end)
? 2) 4G模塊
? ril.regUrc("RING",function()ril.request("ATA") end)
33.4、如何處理通話或者錄音中的電流噪音(TDD噪音)
? 參考:http://doc.openluat.com/article/600/0
三十四、模塊參數
34.1、4G模塊
? Flash:128Mb(16MB)
? DDRRAM:256Mb(32MB)
? 主頻:600MHz
三十五、Luat版本腳本開發小問題
35.1、Luat版本腳本運行框架
? 參考:http://doc.openluat.com/article/600/0
35.2、sys.taskInit創建的task有沒有優先級之分
? sys.taskInit創建的task實際上是Lua中的協程,無優先級之分,協程的掛起和運行完全由用戶自己編寫的腳本來主動控制,當前協程運行過程中,只能被當前協程中的sys.wait和sys.waitUntil掛起,不會被外部協程掛起
35.3、如何實現延時運行
? 可以使用定時器接口sys.timerStart或者sys.timerLoopStart實現延時,不阻塞任何業務邏輯
? 也可以在task協程中使用sys.wait或者sys.waitUntil實現延時,僅僅阻塞本task協程
? 也可以使用rtos.sleep接口實現延時,但是不建議這樣使用,因為這個接口會使整個軟件系統掛起
? 詳情參考:http://doc.openluat.com/article/600/0
三十六、認證問題
36.1、模塊做過哪些認證
? 在123.openluat.com中搜索證書,可查到具體模塊的對應證書
36.2、客戶產品SRRC認證注意事項
? 1) 使用合宙官方發布的AT或者Luat版本的內核固件即可,不需要定制內核固件
? 2) 不要有重啟模塊或者給模塊斷電的邏輯,如果有外部硬件看門狗,要斷掉硬件看門狗
? 3) 實現來電自動接聽的業務邏輯,參考33.3章節
? 4) 模塊射頻頭和測試儀器連接,測試儀器自行測試,不需要軟件配置其他任何功能
? 5) 關鍵射頻元器件清單如下
? A.基帶芯片 RDA8955L BBIC;GSM/GPRS single chip;1.8VFLASH(32Mb+32Mb);TFBGA142B;0.5mm pitch;7.57.01.21mm;ROHS 銳迪科微電子有限公司
? B. 射頻功放 RDA6625E SWITCH+PA;EGSM/DCS;551.1mm;ROHS;改善ESD;銳迪科微電子有限公司
? C. 天線信息需要聯系天線廠獲取
36.3、模塊有入網證書(CTA)嗎
? 沒有
? 模塊都沒有入網證書,只有終端產品才允許做入網認證,我們的模塊本身是可以認證通過的,已經有幾家客戶的終端產品成功做過入網認證
? 4G模塊終端產品,如果要做入網測試,參考:http://doc.openluat.com/article/600/0
三十七、SPI問題
37.1、如何用Luat腳本模擬實現SPI
? 參考:http://doc.openluat.com/article/600/0
三十八、I2C問題(僅適用于Luat版本)
38.1、如何用腳本驅動mpu6050
? 參考:http://doc.openluat.com/article/600/0
三十九、PPP撥號問題
39.1、WINDOWS下4G模塊如何撥號上網
? WIN7參考:http://doc.openluat.com/article/600/0
? WIN10參考:http://doc.openluat.com/article/600/0
39.2、Linux下4G模塊如何撥號上網
? 參考:http://doc.openluat.com/article/600/0
四十、時鐘問題
40.1、如何同步時鐘
? 參考:http://doc.openluat.com/article/600/0
上海合宙通信模塊 - 合宙Luat,讓萬物互聯更簡單
總結
以上是生活随笔為你收集整理的Air系列模块常见问题列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学术论文参考文献书写规范
- 下一篇: Protel99SE精彩教程