當(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口后枚舉的串口號也會改變。
2、在QT環(huán)境中,讀取串口的Vendor ID與Product ID是失敗的,也無法通過讀取其他信息來獲得唯一標(biāo)識。
三
解決方案
為了解決這個問題,我們可以利用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ū)動,等待安裝完成。
2.使用修改字段的上位機(jī)
找到并打開CH348芯片的上位機(jī)工具。選擇資料鏈接下的CH34xSerCfg.ZIP。
打開上位機(jī)工具后,我們會看到一個界面,其中列出了所有連接的CH348芯片及其對應(yīng)的虛擬串口。
3.修改Serial String字段
在上位機(jī)工具中,選擇需要修改的CH348芯片,然后找到Serial String字段。我們將想要寫入的信息(如設(shè)備的型號、序列號等)輸入到這個字段中,勾選Serial String,并寫入配置。
4.在Qt中讀取Serial String字段
在Qt程序中,我們可以遍歷所有的串口信息,調(diào)用QSerialPortInfo類下的serialNumber()方法,并檢查返回的結(jié)果是否是我們之前設(shè)置的Serial String字段內(nèi)容。如果找到了匹配的內(nèi)容,我們就可以確定這個串口是由哪一塊CH348芯片虛擬出來的。
五
總結(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)注
455文章
50714瀏覽量
423131 -
串口
+關(guān)注
關(guān)注
14文章
1551瀏覽量
76421 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
941瀏覽量
54790
發(fā)布評論請先 登錄
相關(guān)推薦
評論