如何解决3G模块和USB转串口冲突问题
如何解決3G模塊和USB轉(zhuǎn)串口沖突問題
關(guān)于「3G模塊」
看運(yùn)營(yíng)商做的廣告就知道所謂的3G早已過去時(shí)了,現(xiàn)在(2016)年是4G時(shí)代了;但是「3G模塊」在硬件開發(fā)就好比一個(gè)代名詞,你說了這個(gè)詞就知道你在指什么,而不是要說一堆「可以使用SIM卡上網(wǎng)的模塊」。對(duì)我來說「3G模塊」也是早就聽過了,但是也僅僅是聽過。這次的遇到的問題讓我徹底和「3G模塊」有了親密接觸。原因是就是WiFi熱點(diǎn)不穩(wěn)定,需要使用「3G模塊」結(jié)合SIM卡來上網(wǎng)。
然后我從主板廠家拿到了一個(gè)3G模塊,型號(hào)為U7500。初步測(cè)試正常,就通知采購(gòu)可用了,然后在用在正式設(shè)備上出現(xiàn)了問題,讓我感到十分的奇怪。
還是老規(guī)矩,一點(diǎn)一點(diǎn)對(duì)比測(cè)試,定位到它和一個(gè)「USB轉(zhuǎn)串口」設(shè)備沖突,只要連接了這個(gè)「USB轉(zhuǎn)串口」,3G模塊就不能正常工作。有了這個(gè)測(cè)試結(jié)果,我開始有方向從軟件層面來查看問題所在了。
這個(gè)U7500這個(gè)3G模塊是一個(gè)PCI-e接口,一時(shí)我無法把它和「USB轉(zhuǎn)串口」聯(lián)系到一起。通過adb shell進(jìn)入Android設(shè)備中查看不同情況下USB轉(zhuǎn)串口的設(shè)備節(jié)點(diǎn)情況,暫時(shí)總結(jié)出的規(guī)律是單插入「3G模塊」會(huì)生成ttyUSB0/1/2這3個(gè)設(shè)備節(jié)點(diǎn),我的思路大概清晰了。應(yīng)該是在插入「USB轉(zhuǎn)串口」時(shí)其設(shè)備節(jié)點(diǎn)占用了「3G模塊」固定使用的ttyUSB0/1/2這3個(gè)設(shè)備節(jié)點(diǎn)全部或者部分從而導(dǎo)致「3G模塊」無法正常使用。
問題的規(guī)律得以找到后,一方面將此問題反饋給了主板廠家,讓他們協(xié)助解決,具體的方案我都給他們想好了,a.改「3G模塊」底層代碼以實(shí)現(xiàn)動(dòng)態(tài)識(shí)別「3G模塊」所在的設(shè)備節(jié)點(diǎn); b.改USB轉(zhuǎn)串口驅(qū)動(dòng)程序,將設(shè)備節(jié)點(diǎn)改到一個(gè)數(shù)10開始命名,這樣就可以躲開「3G模塊」固定使用的0,1,2這三個(gè)串口端口號(hào);如果廠家不能即時(shí)幫助我還想到了硬件上的實(shí)現(xiàn)方案:c.在USB轉(zhuǎn)串口前加一個(gè)可控上電裝置,APP啟動(dòng)后通過GPIO控制「USB轉(zhuǎn)串口」上電,這個(gè)方案其實(shí)是b方案的硬件實(shí)現(xiàn)方法。
廠家按照方案b改的,改過之后測(cè)試正常,暫無其它情況問題不暫以這樣結(jié)束,但是我并不死心。USB轉(zhuǎn)串口只是這樣的命運(yùn)嗎?為什么這么慘呢?沒有固定的名字?大廠(大公司)是怎么解決這個(gè)問題呢?這是一個(gè)問題。
總結(jié)
以上是生活随笔為你收集整理的如何解决3G模块和USB转串口冲突问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Games101】Lecture05
- 下一篇: python布尔类型运算_Python3