程立敏
(吉林化工學(xué)院信息與控制工程學(xué)院,吉林 吉林132022)
基于CH341的USB總線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
程立敏
(吉林化工學(xué)院信息與控制工程學(xué)院,吉林 吉林132022)
本文提出一種基于USB接口數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方案.使用CH341(USB轉(zhuǎn)串口)芯片完成數(shù)據(jù)的采集.可實(shí)現(xiàn)8路模擬量和8路開關(guān)量的數(shù)據(jù)采集,采集數(shù)據(jù)通過USB接口送PC機(jī)顯示和處理。
USB;數(shù)據(jù)采集;上位機(jī)
傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)下位機(jī)采集的數(shù)據(jù)通常使用RS-232通信接口送到上位機(jī)顯示和處理,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,RS-232通信接口逐步被USB通用總線接口所取代,本設(shè)計(jì)解決了目前PC機(jī)及筆記本電腦沒有RS-232串口接口問題,利用CH341(USB轉(zhuǎn)串口)芯片在PC機(jī)或筆記本電腦上虛擬出一個(gè)RS-232串行接口,實(shí)現(xiàn)USB總線的實(shí)時(shí)數(shù)據(jù)采集。其特點(diǎn)是電路簡單,使用方便,開發(fā)成本低。
系統(tǒng)硬件電路包括SST98E516RD單片機(jī)、8路模擬量采集電路和CH341 USB轉(zhuǎn)串口電路組成,模擬量采集電路由TC4051八選一模擬開關(guān)及ADC0832A/D轉(zhuǎn)換器構(gòu)成。采集數(shù)據(jù)經(jīng)USB接口送上位機(jī)顯示和處理。上位機(jī)操作界面使用VB程序編寫,具有數(shù)據(jù)接收和顯示功能,當(dāng)接收信號超限時(shí)可進(jìn)行聲光報(bào)警。
1.1 USB轉(zhuǎn)串口電路
CH341是一個(gè)USB總線的轉(zhuǎn)接芯片,可以通過USB總線提供標(biāo)準(zhǔn)的TTL電平(0-5V DC)異步串型接口,兼容USB V2.0。外圍元器件只需要晶振和電容,具有電路簡單使用方便的特點(diǎn)。CH341內(nèi)置了獨(dú)立的收發(fā)緩沖區(qū),支持單工、半雙工或者全雙工異步串行通訊,支持標(biāo)準(zhǔn)串行接口的波特率,串口發(fā)送信號的波特率誤差小于0.3%。
CH341的硬件驅(qū)動程序由硬件代理商免費(fèi)提供,在計(jì)算機(jī)端的Windows操作系統(tǒng)下,CH341的驅(qū)動程序能夠仿真標(biāo)準(zhǔn)RS-232串型接口,仿真串口與應(yīng)用程序完全兼容,不需要作任何修改,使用非常方便,CH341與51單片機(jī)連接電路如圖1所示。
1.2 模擬量采集電路
模擬量采集電路由TC4051八選一模擬開關(guān)、ADC0832 A/D轉(zhuǎn)換器和模擬量輸入電路組成,完成八路模擬信號(0-5V DC)到數(shù)字信號的轉(zhuǎn)換。模擬量采集電路如圖2所示。
(1)ADC0832引腳引腳說明:CS:片選端,用以啟動A/D轉(zhuǎn)換;CH0,CH1:模擬量輸入端;CLK:時(shí)鐘輸入端,做串行數(shù)據(jù)傳送的同步時(shí)鐘信號;DO:數(shù)據(jù)輸出端,用以讀取轉(zhuǎn)換后的數(shù)據(jù);DI:數(shù)據(jù)輸入端,向ADC0832寫命令端口;VCC:電源輸入端,接+5V DC電源;GND:接地端。
ADC0832是兩通道A/D轉(zhuǎn)換器,可以單端輸入或差分輸入,由軟件選擇輸入通道和輸入方式。
(2)ADC0832主要特點(diǎn):單5V供電,SPI串行數(shù)據(jù)連接,雙通道輸入,8位轉(zhuǎn)換精度,轉(zhuǎn)換時(shí)間位32μS。
(3)ADC0832 A/D轉(zhuǎn)換原理:ADC0832啟動一次轉(zhuǎn)換首先要將片選CS置為低電平,然后向ADC0832發(fā)送由開始位和通道設(shè)置位構(gòu)成的關(guān)鍵字,發(fā)送數(shù)據(jù)位對應(yīng)的時(shí)鐘信號由時(shí)鐘輸入端送入。在每一個(gè)時(shí)鐘的上升沿DI端口的數(shù)據(jù)狀態(tài)被鎖存到通道設(shè)置地址寄存器。起始位送1(高電平)做為ADC0832的轉(zhuǎn)換標(biāo)志,接下來的2和3位是通道設(shè)置位的設(shè)置字。如使用單端輸入方式中的0通道作為模擬量的輸入,應(yīng)向ADC0832的DI端口送 “110”命令字。當(dāng)開始位和通道設(shè)置位送入ADC0832的DI端口后,相應(yīng)的輸入通道被選擇,轉(zhuǎn)換開始。在同步時(shí)鐘的引導(dǎo)下,每個(gè)時(shí)鐘的下降沿,從ADC0832的DO端口讀取轉(zhuǎn)換的位,高位在前,8個(gè)時(shí)鐘周期過后轉(zhuǎn)換完成,轉(zhuǎn)換后的數(shù)字量存入單片機(jī)內(nèi)存。轉(zhuǎn)換結(jié)束后,CS置1(高電平),此時(shí)ADC0832所有的內(nèi)部寄存器清零。為下一次轉(zhuǎn)換作準(zhǔn)備。
2.1 主程序流程圖
單片機(jī)主程序流程框圖參見圖3所示,主程序主要完成硬件初始化、數(shù)據(jù)采集、A/D轉(zhuǎn)換和數(shù)據(jù)發(fā)送等子程序調(diào)用功能。初始化程序完成通信參數(shù)設(shè)置及A/D轉(zhuǎn)換準(zhǔn)備等初始化工作;數(shù)據(jù)采集、A/D轉(zhuǎn)換程序完成模擬量采集及處理工作,采集到的數(shù)據(jù)進(jìn)行存儲和轉(zhuǎn)換;數(shù)據(jù)發(fā)送程序完成采集數(shù)據(jù)的發(fā)送工作,發(fā)送的數(shù)據(jù)通過CH341送上位機(jī)顯示。
2.2 上位機(jī)操作界面
上位機(jī)軟件由啟動、登陸、主操作界面等構(gòu)成,數(shù)據(jù)的接收和發(fā)送等功能在主操作界面中完成,由VB開發(fā)。主操作界面如圖4所示。