當(dāng)多個CH348芯片同時接入電腦時,每塊芯片虛擬出的8個串口都相同,這會導(dǎo)致難以區(qū)分和管理這些串口。為了解決這個問題,我們可以通過修改每個CH348芯片的Serial String字段,并在Qt上讀取這個字段來唯一標(biāo)識每個串口。
一
背景知識
CH348是一款常用的USB轉(zhuǎn)串口芯片,它可以將USB信號轉(zhuǎn)換為串行通信信號,使得計算機(jī)能夠與各種串口設(shè)備進(jìn)行通信。在某些應(yīng)用場景中,我們需要在一臺電腦上同時連接多個串口設(shè)備,這時就需要使用到CH348芯片的多串口功能。然而,當(dāng)多個CH348芯片同時工作時,如何區(qū)分它們就成了一個問題。
二
問題描述
1、假設(shè)我們在一臺電腦上連接了多個CH348芯片,每個芯片都虛擬出了8個串口。但是每8個串口描述字符串是相同的,這就導(dǎo)致了一個問題:當(dāng)需要與特定的串口設(shè)備進(jìn)行通信時,很難確定應(yīng)該選擇哪個串口。如果通過系統(tǒng)枚舉出來的串口號來區(qū)分哪個串口是不可靠的,因為系統(tǒng)枚舉是隨機(jī)的,在同一臺電腦上換一個USB口后枚舉的串口號也會改變。
![c0db60c8-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmiAS2diAAC1h4DutKA368.png)
2、在QT環(huán)境中,讀取串口的Vendor ID與Product ID是失敗的,也無法通過讀取其他信息來獲得唯一標(biāo)識。
![c0fc1e58-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmiAR9FsAAEvKPPwzzw193.png)
三
解決方案
為了解決這個問題,我們可以利用CH348芯片自帶的上位機(jī)工具來修改其Serial String字段。這個字段是一個字符串,可以用來描述芯片的一些信息。我們可以在這個字段中寫入一些唯一的標(biāo)識符,比如設(shè)備的型號、序列號等。這樣,當(dāng)我們在Qt上位機(jī)程序中讀取這個字段時,就可以根據(jù)這個標(biāo)識符來確定是哪一塊CH348芯片以及它所對應(yīng)的虛擬串口。
四
實現(xiàn)方法
1.安裝CH348的驅(qū)動
首先,我們需要找到并打開CH348芯片的上位機(jī)工具與驅(qū)動等。這些資料可以通過官方網(wǎng)站或者相關(guān)資源下載(CH348資料下載)。打開資料下的USBMSER.exe軟件,選擇卡類型:USB轉(zhuǎn)多串口(USB1.1/2.0),點擊安裝驅(qū)動,等待安裝完成。
![c115bb92-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmiAF98WAAM21w58Muc149.png)
2.使用修改字段的上位機(jī)
找到并打開CH348芯片的上位機(jī)工具。選擇資料鏈接下的CH34xSerCfg.ZIP。
![c13b8624-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmmAGj0MAABEaZNgSiQ102.png)
打開上位機(jī)工具后,我們會看到一個界面,其中列出了所有連接的CH348芯片及其對應(yīng)的虛擬串口。
![c14ffd48-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmmAJGejAAEIyybNH4I088.png)
3.修改Serial String字段
在上位機(jī)工具中,選擇需要修改的CH348芯片,然后找到Serial String字段。我們將想要寫入的信息(如設(shè)備的型號、序列號等)輸入到這個字段中,勾選Serial String,并寫入配置。
![c16ba4f8-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmmATCedAAF3ZvOPHpU569.png)
4.在Qt中讀取Serial String字段
在Qt程序中,我們可以遍歷所有的串口信息,調(diào)用QSerialPortInfo類下的serialNumber()方法,并檢查返回的結(jié)果是否是我們之前設(shè)置的Serial String字段內(nèi)容。如果找到了匹配的內(nèi)容,我們就可以確定這個串口是由哪一塊CH348芯片虛擬出來的。
![c190a6e0-adaa-11ef-8084-92fbcf53809c.png](https://file1.elecfans.com//web3/M00/00/6C/wKgZO2dJNmmAcYGWAADBVti0Qj8312.png)
五
總結(jié)
通過利用CH348芯片自帶的上位機(jī)工具來修改Serial String字段,并在Qt程序中讀取這個字段,我們可以方便地確定某一塊CH348芯片及其對應(yīng)的虛擬串口。這種方法不僅可以解決多芯片環(huán)境下的設(shè)備識別問題,還可以提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。當(dāng)然,這種方法也有一定的局限性,比如可能會增加一些額外的工作量和風(fēng)險。因此,在實際應(yīng)用中需要根據(jù)具體情況權(quán)衡利弊。
-
芯片
+關(guān)注
關(guān)注
456文章
51243瀏覽量
427624 -
串口
+關(guān)注
關(guān)注
14文章
1559瀏覽量
77124 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
945瀏覽量
55030
發(fā)布評論請先 登錄
相關(guān)推薦
請問下CH348支持STM32或ESP32單片機(jī)的USB接入,實現(xiàn)擴(kuò)展8串口功能嗎?
請問ch344和ch348是否有l(wèi)inux驅(qū)動?
CH348使用問題求解
linux系統(tǒng)使用ch348q的gpio功能,這些GPIO是否可以自由配制成輸入或輸出功能?
CH348能否提供基于MCU的USB操作例程?
WinCE環(huán)境下指紋識別設(shè)備驅(qū)動的設(shè)計和實現(xiàn)
![WinCE<b class='flag-5'>環(huán)境</b><b class='flag-5'>下</b>指紋<b class='flag-5'>識別</b><b class='flag-5'>設(shè)備</b>驅(qū)動的設(shè)計和實現(xiàn)](https://file.elecfans.com/web2/M00/4A/21/pYYBAGKhvJ2ASmLnAAAzlZM_Nc4546.png)
高速USB總線的轉(zhuǎn)接芯片CH348概述及特點
![高速USB總線的轉(zhuǎn)接<b class='flag-5'>芯片</b><b class='flag-5'>CH348</b>概述及特點](https://file.elecfans.com//web2/M00/49/AA/poYBAGKimrCASoc6AAE86lxlguw54.jpeg)
集成480Mbps高速USB2.0協(xié)議的接口芯片CH348簡介
![集成480Mbps高速USB2.0協(xié)議的接口<b class='flag-5'>芯片</b><b class='flag-5'>CH348</b>簡介](https://file.elecfans.com//web2/M00/50/76/pYYBAGLGO9-ADlHyAACqXro6DDM130.jpg)
USB轉(zhuǎn)8串口芯片CH348概述
![USB轉(zhuǎn)8串口<b class='flag-5'>芯片</b><b class='flag-5'>CH348</b>概述](https://file.elecfans.com/web2/M00/67/20/poYBAGMWphKAZlrpAAQLz7d-CgE193.png)
USB轉(zhuǎn)8串口芯片CH348技術(shù)手冊
![USB轉(zhuǎn)8串口<b class='flag-5'>芯片</b><b class='flag-5'>CH348</b>技術(shù)手冊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論