基于USB接口的高增益數(shù)據(jù)采集系統(tǒng)
0 引言
本文引用地址:http://m.butianyuan.cn/article/202695.htm在現(xiàn)代工業(yè)生產(chǎn)和科學(xué)技術(shù)研究等各行業(yè)中,通常需要對(duì)各種數(shù)據(jù)進(jìn)行采集。目前常用的通過數(shù)據(jù)采集板卡采集的方法存在著以下缺點(diǎn):安裝麻煩,易受機(jī)箱內(nèi)環(huán)境的干擾而導(dǎo)致采集數(shù)據(jù)的失真,容易受計(jì)算機(jī)插槽數(shù)量和地址、中斷資源的限制,可擴(kuò)展性差。而帶RS-232串口的數(shù)據(jù)采集器,在需要大批量、高速傳輸?shù)膱?chǎng)合下,其應(yīng)用也受到限制。通用串行總線USB(Universal Serial Bus)的出現(xiàn),很好地解決了上述問題,很容易實(shí)現(xiàn)便捷、高速、低成本、易擴(kuò)展、高可靠性的數(shù)據(jù)采集,代表了現(xiàn)代數(shù)據(jù)采集系統(tǒng)的發(fā)展趨勢(shì)。
1 硬件設(shè)計(jì)與實(shí)現(xiàn)
USB總線傳輸速度快,為了充分發(fā)揮USB總線這一優(yōu)勢(shì),易選用速度較快的微處理器。另外,USB接口設(shè)備是采用總線供電的,考慮到總線輸出功率有限,盡量采用集成度高的器件有利于降低USB總線的負(fù)荷。
USB接口模塊的選擇有兩種方案:一種是采用帶有USB接口的單片機(jī);另一種是采用普通單片機(jī)和USB控制芯片。對(duì)于第一種方案,不需要設(shè)計(jì)單片機(jī)和USB控制芯片之間的接口電路,簡(jiǎn)化了電路設(shè)計(jì),但是帶有USB接口的單片機(jī)種類有限,從而限制了單片機(jī)的選擇。對(duì)于后一種方案,可以選擇所熟悉的單片機(jī),以減小開發(fā)難度,并縮短開發(fā)周期。系統(tǒng)采用的是SOC單片機(jī)C8051F000,USB控制芯片采用PDIUSBD12。
C8051F000單片機(jī)[1]是四邊扁平貼片封裝,內(nèi)部集成了8通道的12位A/D轉(zhuǎn)換器, 可編程增益放大器PGA,自帶看門狗,具有32位數(shù)字I/O端口,體積小巧,集成度高,功耗較小,滿足USB總線供電的要求。而且,C8051F000單片機(jī)最大工作頻率可達(dá)到25MIPS,采用流水線結(jié)構(gòu),是單指令周期單片機(jī),運(yùn)行速度也較快,適于開發(fā)USB設(shè)備。
PDIUSBD12 是Philips 公司推出的符合USB1.1版規(guī)范的帶并行總線的接口芯片。片內(nèi)集成了320B的FIFO存儲(chǔ)器,在批量模式和同步模式下均可實(shí)現(xiàn)1MB/s的數(shù)據(jù)傳輸速率,集成了模擬收發(fā)器,串行接口引擎,串行接口引擎實(shí)現(xiàn)了全部的USB協(xié)議層,包括并行/串行轉(zhuǎn)換、位填充/解除填充、CRC校驗(yàn)/產(chǎn)生、地址識(shí)別和握手評(píng)估/產(chǎn)生等,從而減小了PDIUSBD12驅(qū)動(dòng)程序開發(fā)的難度[2,3]。
系統(tǒng)硬件包括主MCU、USB接口電路、模擬信號(hào)輸入調(diào)理電路和電源轉(zhuǎn)換電路等組成部分,其工作原理圖如圖1所示。
系統(tǒng)有8路模擬輸入,模擬輸入信號(hào)經(jīng)過信號(hào)調(diào)理電路濾波、放大后送給C8051F000,此單片機(jī)自帶的A/D轉(zhuǎn)換器將輸入的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并通過USB接口傳送給計(jì)算機(jī)。計(jì)算機(jī)也可以通過USB接口向C8051F000發(fā)送命令。系統(tǒng)采用USB總線供電,由于USB總線只能提供+5V供電,而單片機(jī)C8051F000所需要的典型供電電壓是3.3V,信號(hào)調(diào)理電路中的多路轉(zhuǎn)換開關(guān)和運(yùn)算放大器所需要的供電電壓是+9V和-5V,故須設(shè)計(jì)電源轉(zhuǎn)換電路將5V電壓轉(zhuǎn)換為3.3V、-5V和+9V,以便給相應(yīng)的芯片提供電壓。其中USB接口電路和信號(hào)調(diào)理電路的設(shè)計(jì)是最為重要的兩個(gè)部分。
1.1 USB接口電路的設(shè)計(jì)
USB控制芯片PDIUSBD12與計(jì)算機(jī)及單片機(jī)之間的接口電路如圖2所示。USB總線共4條線,兩條電源線VCC和GND、兩條差分?jǐn)?shù)據(jù)線D+和D-。為了防止在讀寫數(shù)據(jù)的過程中電壓波動(dòng),及附近大功率用電設(shè)備對(duì)電壓的影響,在USB總線的兩條電源線VCC和GND之間加了去耦電容。USB總線是采用差分?jǐn)?shù)據(jù)傳輸,因此在任意時(shí)刻,只能有一個(gè)發(fā)送器或接收器。在D+/D-線上串接的兩個(gè)18Ω電阻,及下拉的兩個(gè)1M電阻是用來進(jìn)行阻抗匹配的。
PDIUSBD12的8根數(shù)據(jù)線D0~D7與單片機(jī)的8根數(shù)據(jù)線分別連接,實(shí)現(xiàn)PDIUSBD12與單片機(jī)之間8位數(shù)據(jù)的并行傳輸,PDIUSBD12的讀寫引腳與單片機(jī)的I/O引腳相連,以實(shí)現(xiàn)單片機(jī)對(duì)PDIUSBD12的讀寫操作。PDIUSBD12的引腳A0是命令口和數(shù)據(jù)口的地址線,PDIUSBD12有兩種數(shù)據(jù)總線方式:多路地址/數(shù)據(jù)總線和單地址數(shù)據(jù)總線,為了盡量少占用單片機(jī)的I/O引腳,系統(tǒng)采用單地址數(shù)據(jù)總線,PDIUSBD12的引腳ALE接地,引腳A0與單片機(jī)的I/O引腳相連,A0為1時(shí),總線D0~D7上傳輸?shù)氖敲?,A0為0時(shí),總線D0~D7上傳輸?shù)氖菙?shù)據(jù)。PDIUSBD12的掛起引腳SUSPD和中斷引腳INT分別與單片機(jī)的一個(gè)I/O引腳相連,以實(shí)現(xiàn)PDIUSBD12掛起及PDIUSBD12向單片機(jī)發(fā)出中斷。系統(tǒng)中PDIUSBD12的DMA功能沒有使用,引腳DMACK和EOT都通過一個(gè)上拉電阻連到電源。振蕩電路采用6MHz晶振,經(jīng)過PDIUSBD12內(nèi)部倍頻電路之后,PDIUSBD12內(nèi)部實(shí)際時(shí)鐘為24MHz 。引腳GL通過一個(gè)綠色指示燈和一個(gè)電阻連到電源,當(dāng)該儀器枚舉成功以后,該指示燈亮,當(dāng)計(jì)算機(jī)與該儀器進(jìn)行通訊時(shí),此指示燈閃爍。
評(píng)論