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