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