usb編程器源代碼(usb串口編程)
前沿拓展:
某臺分析儀支持ModbusRTU通訊,然而通訊接口是USB Client,內(nèi)部接口芯片用的是CP210X。
接到PC沒有難度,還有官方軟件,接PLC就只能靠額外的設(shè)備中轉(zhuǎn),相當于需要一個帶USB口的串口服務(wù)器。手頭有l(wèi)inux嵌入式主機可以實現(xiàn)這個功能,不用寫一行代碼,只需要找到軟件、配置和驅(qū)動模塊,揉到一起就行,PLC只能自己去實現(xiàn)ModbusRTU over TCP或over UDP協(xié)議了。
現(xiàn)實世界總是充滿了陷阱和意外,舉一把粟子:
在OpenWRT系統(tǒng)(淘的硬改的迷你路由器)上,用opkg包管理工具裝上驅(qū)動、ser2net軟件,做好配置就能測到回應(yīng)數(shù)據(jù)了,可惜USB串口總是卡死,重插又能通一小會兒,如此反復(fù),其它部分卻相當穩(wěn)定。
在armlinux嵌入式主機上沒有軟件源,程序只能自己找源碼編譯,還是交叉編譯,操作麻煩一些。工業(yè)級設(shè)備希望可靠性足夠高吧。
ser2net有2個依賴庫,gensio和yaml。硬著頭皮編譯,有一個需要pythondev包,沒裝成功,還好有配置項可以把python功能關(guān)掉,反正只是測試程序在用,編譯好的ser2net連帶依賴庫的.so裝到目標主機,順手做了配置。
還缺少驅(qū)動,這應(yīng)該是個大麻煩。目標機自帶了ftdi、ch340、pl2303的usbserial驅(qū)動,cp210x的只能到網(wǎng)上找找了,for linux 2.6.的有驅(qū)動源碼,但Makefile寫得很爛,沒法支持交叉編譯,改起來沒有頭緒,試試其它途徑。
幸好還有l(wèi)inux的源碼包,里面有需要的驅(qū)動源碼。好在不用編譯內(nèi)核,不然要花很多時間,只編譯模塊就很快,但相應(yīng)的設(shè)置修改不能省
安裝驅(qū)動模塊自然也不順,先是magic code對不上,選錯芯片了,重選了才好,應(yīng)該是指令集相同就行
insmod可以用,modprobe沒成功,能用就行吧。
聯(lián)機測試發(fā)現(xiàn)波特率不匹配,分析儀不回應(yīng),改對了就行。
分析儀回應(yīng)的數(shù)據(jù)幀被分多段轉(zhuǎn)發(fā)了,由于使用了UDP協(xié)議,不能靠延時接收處理,配置轉(zhuǎn)發(fā)程序的字符間隔時間好像不起作用,只能自行拼接字節(jié)數(shù)組了。TCP有TCP的麻煩,UDP有UDP的不便,想著UDP可以實現(xiàn)用一個PLC連接,查詢多個設(shè)備就去堆代碼了。
手冊沒有提供Modbus地址表,暫時懶得去找了,盲猜到了2個主要浮點數(shù)據(jù),先把通訊建起來吧。
還差一些設(shè)置項,比如驅(qū)動沒有自行加載,ser2net缺少服務(wù)設(shè)置,都直接寫進啟動腳本。
最后做驗證,重啟嵌入式設(shè)備、PLC、插拔USB線纜、網(wǎng)線,通訊至此已正常,穩(wěn)定性還有待觀察。
通訊的坑只能一個接一個的去填,幸好沒被卡死,希望路越來越好走吧。
拓展知識:
- 寧波市燃氣灶維修(寧波萬家樂燃氣灶維修)12-04
- 1電視頻道沒了怎么恢復(fù)(快速解決方法)
- 2海信42k11p怎么折開(海信42K11P:全方位展示超清畫質(zhì))
- 3Fardior燃氣灶售后維修電話號碼查詢(Fardior燃氣灶售后維修電話查詢)
- 4艾木歐防盜門沒電打不開怎么辦(艾木歐防盜門沒電無法啟動?解決方法總結(jié))
- 5ENS指紋鎖售后熱線(ENS指紋鎖售后熱線-專業(yè)解決您的問題)
- 6打電話顯示關(guān)機是什么原因(如何解決手機無法接通問題)。
- 7v500hk1 cs5故障維修(v500hk1 cs5故障維修指南)
- 8創(chuàng)維液晶電視的遙控器怎么調(diào)試(創(chuàng)維電視遙控器調(diào)試指南)
- 9林內(nèi)空氣能售后服務(wù)官網(wǎng)熱線(林內(nèi)空氣能售后服務(wù)官網(wǎng)熱線)
- 10朝友精工保險柜24小時售后電話(朝友精工保險柜24小時售后電話 - 完善24小時保
-
貼片代碼怎么看(深入解讀貼片代碼:洞悉世界編碼秘密)
2025-06-07
-
怎么拆彩電顯像管管座(拆解彩電顯像管管座技巧——30字以內(nèi))
2025-06-07
-
壁掛爐一天多少方氣(壁掛爐每天消耗幾方氣能?)
2025-06-07
-
海歌壁掛爐官網(wǎng)(海歌壁掛爐:讓溫暖環(huán)繞你)
2025-06-07
-
德能空氣能故障代碼e5(空調(diào)故障代碼E5的原因與解決方法)
2025-06-07


