<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于USB接口的水量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          基于USB接口的水量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-02-11 來(lái)源:網(wǎng)絡(luò) 收藏
          系統(tǒng)簡(jiǎn)介

          通用串行總線(USB)支持,真正的即插即用。USB1.1在全速傳輸時(shí)可以達(dá)到12Mbps的傳輸速率;低速傳輸時(shí)傳輸速率可達(dá)1.5Mbps。USB電纜線只有4根,兩根是電源線,傳送5V電源,可用來(lái)向設(shè)備供電;另外兩根是信號(hào)線,用來(lái)傳輸串行數(shù)據(jù)。與傳統(tǒng)的RS-232串口比較,USB具有傳輸速度更快、集成化程度更高、編程化更好以及能夠支持多個(gè)設(shè)備等優(yōu)點(diǎn)。因此在我們的設(shè)計(jì)中用它來(lái)和主機(jī)接口實(shí)現(xiàn)高速的數(shù)據(jù)通信。

          中,通常采用單片機(jī)或DSP(數(shù)字信號(hào)處理器)作為CPU,控制ADC(模/數(shù)轉(zhuǎn)換器)、存儲(chǔ)器和其他外圍電路的工作。但是單片機(jī)的時(shí)鐘頻率較低,難以適應(yīng)高速的要求,而DSP雖然可以實(shí)現(xiàn)較高速的數(shù)據(jù)采集,但其速度提高的同時(shí)也提高了系統(tǒng)的成本。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)有單片機(jī)和DSP無(wú)法比擬的優(yōu)勢(shì):時(shí)鐘頻率高,內(nèi)部時(shí)延?。蝗靠刂七壿嬘捎布瓿?,速度快,效率高;組成形式靈活,可以集成外圍控制、譯碼和接口電路。因此,在本系統(tǒng)中我們用FPGA來(lái)控制A/D和USB芯片的運(yùn)行。系統(tǒng)結(jié)構(gòu)圖如圖1所示。

          圖1 系統(tǒng)結(jié)構(gòu)圖

          圖中FPGA采用ALTERA公司生產(chǎn)的APEX 1k系列芯片,型號(hào)為EP1K30,通過(guò)在EPGA中編寫(xiě)硬件邏輯控制A/D轉(zhuǎn)換器的運(yùn)行;實(shí)現(xiàn)A/D轉(zhuǎn)換器和USB 控制芯片間數(shù)據(jù)傳輸?shù)臄?shù)據(jù)總線接口。除此之外,為了保證EPGA和USB控制芯片間數(shù)據(jù)交互過(guò)程的實(shí)現(xiàn),必須在FPGA中提供一個(gè)用于傳輸通信雙方控制和狀態(tài)信息的GPIO接口。

          2 A/D轉(zhuǎn)換環(huán)節(jié)

          在該系統(tǒng)中我們采用TI公司的ADS7800。它是12位并行模數(shù)轉(zhuǎn)換器[2>,接口簡(jiǎn)單,很容易控制,最大采樣率可達(dá)333kHz,輸入的電壓范圍為-10V~+10V或-5V~+5V。ADS7800芯片的數(shù)字接口比較簡(jiǎn)單,可以很方便地與其它數(shù)字系統(tǒng)相連接。對(duì)此芯片地控制有完全控制模式(full control mode )和孤立控制磨蝕(stand-alone control mode )兩種控制方法。

          在本系統(tǒng)中,對(duì)ADS7800芯片的控制是通過(guò)在FPGA芯片中編寫(xiě)控制邏輯來(lái)實(shí)現(xiàn)的。我們采用了孤立控制模式,在此控制模式下,輸出數(shù)字信號(hào)是12位并行的。

          利用FPGA芯片的可編程性可以使用芯片中的12個(gè)IO腳作為數(shù)據(jù)總線,另使用一些IO腳作為ADS7800的控制信號(hào)輸入,控制模/數(shù)變換器以32kHz的速率對(duì)模擬輸入信號(hào)進(jìn)行采樣,采樣的數(shù)據(jù)存入FPGA的RAM中。本系統(tǒng)中所使用的FPGA芯片型號(hào)為EP1K30QC208-3,它具有著良好的特性,芯片內(nèi)部共有3萬(wàn)個(gè)邏輯門(mén),容量相當(dāng)大;6個(gè)嵌入式陣列塊,可是現(xiàn)最大為3k字節(jié)的RAM存儲(chǔ)器。

          3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          3.1 芯片介紹

          在設(shè)計(jì)中,我們選取Cyprees公司的EZ-USB系列芯片來(lái)實(shí)現(xiàn)設(shè)備方的控制。它是一款帶有多個(gè)外設(shè)、高度集成的芯片,其功能框圖如圖2所示。一個(gè)集成的USB收發(fā)器(transceiver)連接USB總線的D+和D-。串行接口引擎(SIE)對(duì)總線上的數(shù)據(jù)進(jìn)行編/解碼、錯(cuò)誤檢測(cè)、位填充以及USB規(guī)范規(guī)定的其它信號(hào)級(jí)操作的實(shí)現(xiàn),并且最終把數(shù)據(jù)收或發(fā)到部分。

          圖2 EZ-USB系統(tǒng)框圖

          內(nèi)部的微處理器是8051單片機(jī)的增強(qiáng)型,提高了執(zhí)行速度并增加了一些新的特性。它使用內(nèi)部RAM作為程序和數(shù)據(jù)存儲(chǔ)器;帶有16位地址線和8位數(shù)據(jù)線用來(lái)訪問(wèn)外部存儲(chǔ)器,特有的快速傳輸模式可以在外部邏輯和內(nèi)部USB FIFO間快速地傳遞數(shù)據(jù)。

          3.2 USB總線數(shù)據(jù)通信解決方案

          在實(shí)現(xiàn)數(shù)據(jù)通信解決方案時(shí),為完成數(shù)據(jù)流地正常傳輸,所建立的硬件平臺(tái)必須能夠提供兩個(gè)接口。首先必須要有一個(gè)實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)臄?shù)據(jù)總線接口;除此之外,為了保證數(shù)據(jù)交互過(guò)程的正常實(shí)現(xiàn),必須提供一個(gè)用于傳輸通信雙方控制和狀態(tài)信息的GPIO接口。

          AN2135SC芯片提供了EZ-USB系列芯片的所有接口和功能。在本系統(tǒng)中,我們將利用這款芯片和FPGA芯片配合工作,建立一個(gè)基于USB總線接口的數(shù)據(jù)通信解決方案,以實(shí)現(xiàn)將采樣信號(hào)輸出到上位機(jī)中的功能。

          在此解決方案中,我們選擇AN2135SC芯片工作在快速數(shù)據(jù)傳輸模式下的8位并行數(shù)據(jù)總線D[7…0>作為數(shù)據(jù)傳輸?shù)目偩€接口;選擇AN2135SC芯片中的通用 C總線主控制器接口作為數(shù)據(jù)通信過(guò)程中進(jìn)行控制和狀態(tài)信息傳輸?shù)腉PIO接口。這樣,芯片中的一般GPIO引腳就可以用來(lái)實(shí)現(xiàn)其它功能,方便了系統(tǒng)的進(jìn)一步擴(kuò)充。圖3所示為AN2135SC芯片與FPGA芯片的接口示意圖。

          為了使AN2135SC芯片中快速數(shù)據(jù)傳輸模式下的數(shù)據(jù)總線D[7…0>和通用 主控制器分別完成流數(shù)據(jù)傳輸和控制狀態(tài)信息傳輸?shù)墓δ?,需要在芯片?051核中編寫(xiě)程序,對(duì)AN2135SC芯片內(nèi)部相關(guān)的專用寄存器進(jìn)行配置[3>。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();