《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于USB接口的高增益數(shù)據(jù)采集系統(tǒng)研究
基于USB接口的高增益數(shù)據(jù)采集系統(tǒng)研究
EEworld
EEworld
摘要: 0引言在現(xiàn)代工業(yè)生產(chǎn)和科學(xué)技術(shù)研究等各行業(yè)中,,通常需要對各種數(shù)據(jù)進行采集,。目前常用的通...
Abstract:
Key words :

        關(guān)鍵字:USB接口" title="USB接口">USB接口,高增益" title="高增益">高增益,數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集

  0 引言   
 
  在現(xiàn)代工業(yè)生產(chǎn)和科學(xué)技術(shù)研究等各行業(yè)中,,通常需要對各種數(shù)據(jù)進行采集,。目前常用的通過數(shù)據(jù)采集板卡采集的方法存在著以下缺點:安裝麻煩,易受機箱內(nèi)環(huán)境的干擾而導(dǎo)致采集數(shù)據(jù)的失真,容易受計算機插槽數(shù)量和地址,、中斷資源的限制,,可擴展性差,。而帶RS-232串口的數(shù)據(jù)采集器,在需要大批量,、高速傳輸?shù)膱龊舷?,其?yīng)用也受到限制。通用串行總線USB(Universal Serial Bus)的出現(xiàn),,很好地解決了上述問題,,很容易實現(xiàn)便捷、高速,、低成本,、易擴展、高可靠性的數(shù)據(jù)采集,,代表了現(xiàn)代數(shù)據(jù)采集系統(tǒng)的發(fā)展趨勢。

1 硬件設(shè)計與實現(xiàn)   

USB總線傳輸速度快,,為了充分發(fā)揮USB總線這一優(yōu)勢,,易選用速度較快的微處理器。另外,,USB接口設(shè)備是采用總線供電的,,考慮到總線輸出功率有限,盡量采用集成度高的器件有利于降低USB總線的負(fù)荷,。

USB接口模塊的選擇有兩種方案:一種是采用帶有USB接口的單片機,;另一種是采用普通單片機和USB控制芯片。對于第一種方案,,不需要設(shè)計單片機和USB控制芯片之間的接口電路,,簡化了電路設(shè)計,但是帶有USB接口的單片機種類有限,,從而限制了單片機的選擇,。對于后一種方案,可以選擇所熟悉的單片機,,以減小開發(fā)難度,,并縮短開發(fā)周期。系統(tǒng)采用的是SOC單片機C8051F000,,USB控制芯片采用PDIUSBD12,。

C8051F000單片機[1]是四邊扁平貼片封裝,內(nèi)部集成了8通道的12位A/D轉(zhuǎn)換器, 可編程增益放大器PGA,,自帶看門狗,,具有32位數(shù)字I/O端口,體積小巧,,集成度高,,功耗較小,,滿足USB總線供電的要求。而且,,C8051F000單片機最大工作頻率可達到25MIPS,,采用流水線結(jié)構(gòu),是單指令周期單片機,,運行速度也較快,,適于開發(fā)USB設(shè)備。

PDIUSBD12 是Philips 公司推出的符合USB1.1版規(guī)范的帶并行總線的接口芯片,。片內(nèi)集成了320B的FIFO存儲器,,在批量模式和同步模式下均可實現(xiàn)1MB/s的數(shù)據(jù)傳輸速率,集成了模擬收發(fā)器,,串行接口引擎,,串行接口引擎實現(xiàn)了全部的USB協(xié)議層,包括并行/串行轉(zhuǎn)換,、位填充/解除填充,、CRC校驗/產(chǎn)生、地址識別和握手估/產(chǎn)生等,從而減小了PDIUSBD12驅(qū)動程序開發(fā)的難度[2,3],。

系統(tǒng)硬件包括主MCU,、USB接口電路、模擬信號輸入調(diào)理電路和電源轉(zhuǎn)換電路等組成部分,,其工作原理圖如圖1所示,。

系統(tǒng)有8路模擬輸入,模擬輸入信號經(jīng)過信號調(diào)理電路濾波,、放大后送給C8051F000,,此單片機自帶的A/D轉(zhuǎn)換器將輸入的模擬信號轉(zhuǎn)換為數(shù)字信號,并通過USB接口傳送給計算機,。計算機也可以通過USB接口向C8051F000發(fā)送命令,。系統(tǒng)采用USB總線供電,由于USB總線只能提供+5V供電,,而單片機C8051F000所需要的典型供電電壓是3.3V,,信號調(diào)理電路中的多路轉(zhuǎn)換開關(guān)和運算放大器所需要的供電電壓是+9V和-5V,故須設(shè)計電源轉(zhuǎn)換電路將5V電壓轉(zhuǎn)換為3.3V,、-5V和+9V,,以便給相應(yīng)的芯片提供電壓。其中USB接口電路和信號調(diào)理電路的設(shè)計是最為重要的兩個部分,。

1.1 USB接口電路的設(shè)計   

USB控制芯片PDIUSBD12與計算機及單片機之間的接口電路如圖2所示,。USB總線共4條線,兩條電源線VCC和GND、兩條差分?jǐn)?shù)據(jù)線D+和D-,。為了防止在讀寫數(shù)據(jù)的過程中電壓波動,,及附近大功率用電設(shè)備對電壓的影響,在USB總線的兩條電源線VCC和GND之間加了去耦電容,。USB總線是采用差分?jǐn)?shù)據(jù)傳輸,,因此在任意時刻,只能有一個發(fā)送器或接收器,。在D+/D-線上串接的兩個18Ω電阻,,及下拉的兩個1M電阻是用來進行阻抗匹配的。

PDIUSBD12的8根數(shù)據(jù)線D0~D7與單片機的8根數(shù)據(jù)線分別連接,,實現(xiàn)PDIUSBD12與單片機之間8位數(shù)據(jù)的并行傳輸,,PDIUSBD12的讀寫引腳與單片機的I/O引腳相連,以實現(xiàn)單片機對PDIUSBD12的讀寫操作,。PDIUSBD12的引腳A0是命令口和數(shù)據(jù)口的地址線,,PDIUSBD12有兩種數(shù)據(jù)總線方式:多路地址/數(shù)據(jù)總線和單地址數(shù)據(jù)總線,為了盡量少占用單片機的I/O引腳,,系統(tǒng)采用單地址數(shù)據(jù)總線,,PDIUSBD12的引腳ALE接地,引腳A0與單片機的I/O引腳相連,,A0為1時,,總線D0~D7上傳輸?shù)氖敲?,A0為0時,,總線D0~D7上傳輸?shù)氖菙?shù)據(jù),。PDIUSBD12的掛起引腳SUSPD和中斷引腳INT分別與單片機的一個I/O引腳相連,,以實現(xiàn)PDIUSBD12掛起及PDIUSBD12向單片機發(fā)出中斷,。系統(tǒng)中PDIUSBD12的DMA功能沒有使用,,引腳DMACK和EOT都通過一個上拉電阻連到電源,。振蕩電路采用6MHz晶振,,經(jīng)過PDIUSBD12內(nèi)部倍頻電路之后,,PDIUSBD12內(nèi)部實際時鐘為24MHz 。引腳GL通過一個綠色指示燈和一個電阻連到電源,,當(dāng)該儀器枚舉成功以后,,該指示燈亮,當(dāng)計算機與該儀器進行通訊時,,此指示燈閃爍,。

1.2 信號調(diào)理電路的設(shè)計   

信號調(diào)理電路主要包括模擬信號多路選擇、濾波和信號放大等組成部分,,電路如圖3所示,。

系統(tǒng)電路設(shè)計中,只使用了單片機C8051F000本身自帶的一路模擬輸入AIN0;在單片機外圍用多路模擬開關(guān)CD4051擴展了8路模擬輸入,。當(dāng)單片機給CD4066的引腳CONT1輸入一個低電平,、給引腳CONT2輸入一個高電平時,CD4066的引腳IN1和OUT1之間斷開,、引腳IN2和OUT2之間短接,,運算放大器ICL7650的負(fù)端輸入與它的輸出斷開,此時ICL7650對它的輸入信號放大8倍,;當(dāng)單片機給CD4066的引腳CONT1輸入一個高電平,、引腳CONT2輸入一個低電平時,CD4066的引腳IN1和OUT1之間短接,、引腳IN2和OUT2之間斷開,,ICL7650的負(fù)端輸入與它的輸出直接短接,此時ICL7650和它的外圍電路一起組成了一個電壓跟隨器,,只是增大A/D轉(zhuǎn)換器的輸入阻抗,,并不對它的輸入信號進行增益放大。

C8051F000片內(nèi)集成的增益放大器PGA編程范圍為0.5~16,,當(dāng)ICL7650作為一個電壓跟隨器時,,系統(tǒng)可編程增益范圍為0.5~16;當(dāng)ICL7650對輸入信號進行8倍放大時,,系統(tǒng)可編程增益范圍為4~128,,由此可見,系統(tǒng)可編程增益范圍較寬,,滿足大多數(shù)情況下增益放大需要,。

2 軟件設(shè)計與實現(xiàn)   

系統(tǒng)軟件包括單片機固件程序,USB驅(qū)動程序及其鏈接庫,,及用戶應(yīng)用程序,。為了降低開發(fā)難度及縮短開發(fā)周期,系統(tǒng)采用了周立功公司開發(fā)的D12 SMART套件中的USB驅(qū)動程序及其鏈接庫[3],,該鏈接庫為用戶應(yīng)用程序提供了API函數(shù),,在編寫應(yīng)用程序時,只需調(diào)用API函數(shù)與采集系統(tǒng)之間交換數(shù)據(jù),,而不需要關(guān)心具體的USB通訊協(xié)議,。

單片機固件設(shè)計采用中斷驅(qū)動方式。CPU在前臺進行數(shù)據(jù)采集, USB傳輸則在后臺進行, 而其中斷和主循環(huán)的數(shù)據(jù)交換則通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)進行,。這樣既保證了數(shù)據(jù)采集的實時性,,又獲得了最佳的傳輸速率。固件結(jié)構(gòu)如圖4 所示,。

 

中斷服務(wù)程序主要負(fù)責(zé)從PDIUSBD12收集數(shù)據(jù), 將建立包和OUT數(shù)據(jù)存入數(shù)據(jù)緩沖結(jié)構(gòu)體,,并設(shè)置相應(yīng)的標(biāo)志位,;而主循環(huán)負(fù)責(zé)對數(shù)據(jù)進行處理,根據(jù)標(biāo)志位區(qū)分是標(biāo)準(zhǔn)請求還是廠商請求,,進而調(diào)用標(biāo)準(zhǔn)請求處理程序和廠商請求處理程序,。其中標(biāo)準(zhǔn)請求處理程序主要負(fù)責(zé)在設(shè)備枚舉過程中主機為識別設(shè)備而發(fā)送的請求, 主要包括讀取USB設(shè)備描述符、給USB設(shè)備分配地址,、配置USB設(shè)備等功能,。只有在計算機與USB設(shè)備建立鏈接之后,計算機才能識別出USB設(shè)備,,與USB設(shè)備進行通訊,。而廠商請求處理中是自行定義的請求處理函數(shù), 用來處理計算機發(fā)送給采集系統(tǒng)的各個設(shè)定命令,主要包括設(shè)定采集系統(tǒng)的量程,、讀取通道采樣數(shù)據(jù)等命令,。標(biāo)準(zhǔn)設(shè)備請求是在枚舉過程中由安裝在PC機中的USB驅(qū)動程序發(fā)送給USB設(shè)備的,而廠商請求是由用戶應(yīng)用程序通過調(diào)用USB鏈接庫提供的API函數(shù)將命令傳遞到功能驅(qū)動程序后, 通過相應(yīng)例程發(fā)送到USB設(shè)備的,。

PDIUSBD12 命令接口是一套訪問PDIUSBD12 所有功能的處理函數(shù),,主要包括對PDIUSBD12設(shè)置地址、設(shè)置端點使能,、設(shè)置模式,、讀中斷寄存器、選擇端點,、讀端點狀態(tài),、讀取緩沖區(qū)、清緩沖區(qū)等操作,。當(dāng)固件中的其它程序需要對PDIUSBD12 進行操作時, 只須調(diào)用其中相應(yīng)的子程序即可,。

硬件提取層是固件中的最底層代碼, 直接對PDIUSBD12訪問,其執(zhí)行與具體硬件電路有關(guān),,使用的單片機不同, 或者實現(xiàn)的設(shè)備功能不同時這部分代碼也有所不同,。

3 結(jié)束語   

系統(tǒng)采用高速SOC單片機C8051F000PDIUSBD12實現(xiàn)了寬量程的數(shù)據(jù)采集和基于USB接口的數(shù)據(jù)傳輸,,基于該方案的采集系統(tǒng)已經(jīng)在實驗室調(diào)試通過,,能夠準(zhǔn)確地進行數(shù)據(jù)采樣和傳輸。本文作者創(chuàng)新點:利用了C8051F000片內(nèi)集成的增益放大器PGA,,并結(jié)合外圍增益放大電路使系統(tǒng)的最大增益放大倍數(shù)達到了128倍,,從而使系統(tǒng)能完成較寬范圍內(nèi)的電壓信號采集;系統(tǒng)在PDIUSBD12與單片機之間的接口電路設(shè)計中采用了單地址數(shù)據(jù)總線方案,,相對于通常所采用的多路地址/數(shù)據(jù)總線方式大大減少了單片機I/O引腳的占用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。