灌漿記錄 儀以前經(jīng)常采用并行接口和PC直插卡的方式,隨著行業(yè)高速發(fā)發(fā)展,現(xiàn)如今都采用即插即用的UsB接口設(shè)計(jì),使用起來(lái)方便,可靠。
利用USB接口的灌漿記錄 儀,使用起來(lái)比并行接口要簡(jiǎn)單,減少了故障率,一定程度上縮減了生產(chǎn)成本,維護(hù)起來(lái)方便。
灌漿記錄 儀USB接口的設(shè)計(jì)***
通用串行總線(USB)是一種支持即插即用的新型串行接口,使外設(shè)到計(jì)算機(jī)的連接更加便利。這種接口適合于種設(shè)備,不僅具有快速、即插即用、支持熱插拔的特點(diǎn),還能同時(shí)連接多達(dá)127個(gè)設(shè)備,解決了如資源沖突、中斷請(qǐng)求和直接數(shù)據(jù)通道等問(wèn)題。因此,越來(lái)越多的***者欲在自己的產(chǎn)品中使用這種標(biāo)準(zhǔn)接口。RS232是單個(gè)設(shè)備接入計(jì)算機(jī)時(shí)常采用的一種接入方式,其硬件和軟件協(xié)議比較簡(jiǎn)單,有很多傳統(tǒng)設(shè)備采用了這種通信方式。將USB轉(zhuǎn)UART技術(shù)應(yīng)用于單片機(jī)與PC機(jī)之間的數(shù)據(jù)通信,在計(jì)算機(jī)上產(chǎn)生樣使用USB口即可。這樣僅能使單片機(jī)具備UsB通信的諸多優(yōu)點(diǎn),簡(jiǎn)化了USB編程,同時(shí)還可以利用USB對(duì)單片機(jī)提供5V的電源(500mA以下)。
市場(chǎng)上USB接口芯片有很多種,例如FT245、CH375、CP2101等。CP2101其升***型號(hào)CP2102是一種高度集成的USθUART橋接器,該芯片是由美國(guó) Silicom公司生產(chǎn),集成度高,內(nèi)置一個(gè)USB20全速功能控制器,USB收發(fā)器EEPROM,振蕩器和帶有全部的調(diào)制解調(diào)器控制信號(hào)的昇步串行數(shù)據(jù)總線(UART)。
與其他的 USB-UART轉(zhuǎn)接芯片工作原理相似,CP2101系列芯片是通過(guò)驅(qū)動(dòng)程序?qū)C機(jī)的USB口虛擬成CC擴(kuò)展的目的。虛擬COM口(VCP)器件驅(qū)動(dòng)程序允許一個(gè)基于cP2101的器件以PC機(jī)的應(yīng)用軟件的形式作為一個(gè)增加coM口單***于任何現(xiàn)有的硬件。℃OM口使用運(yùn)行在PC機(jī)上的應(yīng)用軟件以訪問(wèn)一個(gè)標(biāo)準(zhǔn)COM口的方式訪問(wèn)基于cP2101的器件但P℃與cP2101器件間的數(shù)據(jù)傳輸卻是通過(guò)υsB完成的,因此僅需修改現(xiàn)有的軟硬件的部分代碼和電路就可以實(shí)現(xiàn)通過(guò)US日向基于cP2101的器件傳輸數(shù)據(jù),無(wú)需全部重新設(shè)計(jì)。
1.1cP2101的特性
CP2101體積雖小但是功能非常強(qiáng)大,其主要的特性包括以下幾點(diǎn).
1)集成的UsB收發(fā)器無(wú)需外部電阻;(2)集成的時(shí)鐘無(wú)需外部振蕩器;(3)集成的512字節(jié) EEPROM用于存儲(chǔ)產(chǎn)品生產(chǎn)商D產(chǎn)品D序列號(hào)電源參數(shù)版本號(hào)和產(chǎn)品說(shuō)明;(4)片內(nèi)上電復(fù)位電路;(5)片內(nèi)電壓調(diào)節(jié)器3.3V輸出。
此外,廠商以及銷售商免費(fèi)提供了適用于 Windows,LinuⅨx, Mac Os-X等多個(gè)操作系統(tǒng)的驅(qū)動(dòng)程序,省去成并安好驅(qū)動(dòng)程序即可以使用。
1.2cP2101的原理和外圍電
由(圖1)可以看到,用cP2101進(jìn)行串口擴(kuò)展所需的外部器件非常少,使用方便。CP2101是US時(shí)串行口橋接器它需要設(shè)計(jì)外接USB接口電路和RS232接口電口電路實(shí)現(xiàn)CP2101與計(jì)算機(jī)之間的通信;RS232接口電路實(shí)現(xiàn)CP2101和外設(shè)之間的通信(電路如圖1示)。其中RS232電平轉(zhuǎn)換電路可根據(jù)需要選用MAX3243或MAX232。
當(dāng)CP2101轉(zhuǎn)換器與主機(jī)連接后,須根據(jù)操怍系統(tǒng)選擇相對(duì)應(yīng)的虛擬串行口驅(qū)動(dòng)程序。不必修改設(shè)備的應(yīng)用程序就像存取一個(gè)標(biāo)準(zhǔn)的物理串口一樣訪問(wèn)該虛擬串口,端口設(shè)備會(huì)產(chǎn)生“cP210 x USB to UARTBridgeController(c○Mκ)"的新端口(*隨計(jì)算機(jī)的配置而昇),此時(shí)說(shuō)明驅(qū)動(dòng)程序安裝成功。實(shí)質(zhì)上,所有針對(duì)虛擬串口的數(shù)據(jù)通信都足以USB總線傳輸實(shí)現(xiàn)的,但在設(shè)備上,收發(fā)則是RS232數(shù)據(jù)。
2.1MsComm控件的實(shí)際應(yīng)用
前面已經(jīng)闡述了CP2101的準(zhǔn)備工作,下面就來(lái)說(shuō)明如何利用 MsComm控件來(lái)和cP2101進(jìn)行通訊。筆者以灌漿記錄仁的實(shí)驗(yàn)程序?yàn)槔?而這也是***的目的。***先在Deph中新建一個(gè)工程,在新建工程的窗體中加入 MsComm、Edt、Button、 Label、 ComboBox等控件。
根據(jù)需要調(diào)整好各個(gè)控件的屬性和位置。在窗體創(chuàng)建時(shí)設(shè)置串口通信的有關(guān)參數(shù),部分代碼如下:
combobox1 Items. Add(com2);
combobox1 Items. Add(com4);在 combobox1中添加備選的com2和com4
mbobox2 tems Add(9600,n,8,1);/在 combobox2中添加備選的通信參數(shù)
MSComm1 nputLen:=0; //Input讀取整個(gè)緩沖區(qū)的內(nèi)容 MSComm1 THreshold:=1;∥每次接收到字符即產(chǎn)
MSComm1 outBuffercount:=0;M清空發(fā)送緩沖區(qū)
MSCommlInBuffersize:=1024;/設(shè)置接收緩沖區(qū)大小為1024字節(jié)
MSComm1. OutBuffersize:=1024;h設(shè)置發(fā)送緩沖區(qū)大小為1024字節(jié)
nlnputModeBinary;灬心二進(jìn)制形勢(shì)取回?cái)?shù)據(jù)
設(shè)置好通信參數(shù)燦以后,在打開串口的 On clicκ事件下需添加打開串口代碼為通訊做好準(zhǔn)備,部分代碼如下
MSComm1 Settings: =combobox Text
if combobox Text=com2 then
MSComm1 CommPort: =2
MSComm1 CommPort:=4;∥假設(shè)只考慮com2和com4兩種情況
MSComm1 Portopen:=true;∥打開串口
MSComm1 DTREnable:=true;∥/數(shù)據(jù)終端準(zhǔn)備好
MSComm1 RTSEnable:=true;/請(qǐng)求發(fā)送
同樣,在采集結(jié)束后關(guān)閉程序時(shí)也應(yīng)關(guān)閉串口,采用打開動(dòng)作相反的代碼來(lái)實(shí)
MSComm1 Portopen:=fase;/關(guān)閉串口
MSComm1. DTREnable: =false
MSComm1. RTSEnable: =false
根據(jù)記錄 儀的通信協(xié)議,上位機(jī)每發(fā)送一條采集命令到記錄 儀,記錄 儀便返回一組
發(fā) Oncomm事件,從接收數(shù)據(jù)緩沖區(qū)讀取數(shù)據(jù)
以及后續(xù)復(fù)雜的數(shù)據(jù)處理過(guò)程都應(yīng)寫到 On comm事件下,部分代碼如下
if MSComm. CommEvent=2 then
recto:= MSComm Input;∥讀取數(shù)據(jù)緩沖區(qū)內(nèi)容
end