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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C52和USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          基于AT89C52和USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2011-12-16 來(lái)源:網(wǎng)絡(luò) 收藏
          在工業(yè)生產(chǎn)和科學(xué)技術(shù)研究中,常利用PC或工控機(jī)對(duì)各種數(shù)據(jù)進(jìn)行采集,以獲得所需要的控制信息和實(shí)驗(yàn)數(shù)據(jù)。傳統(tǒng)的多以ISA,EISA或PCI插卡的形式完成數(shù)據(jù)傳輸,這種方式存在安裝麻煩,受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源限制,可擴(kuò)展性差等缺點(diǎn)。由于通用串行總線(Universal Serial Bus.USB)具有自動(dòng)被系統(tǒng)識(shí)別.自動(dòng)安裝驅(qū)動(dòng)程序、自行進(jìn)行系統(tǒng)配置,以及支持不同速率的同步和異步傳輸方式,支持熱插拔和即插即用(Plug and Play,PNP)等優(yōu)點(diǎn),已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)。目前實(shí)現(xiàn)USB數(shù)據(jù)傳送多采用專用的芯片,文獻(xiàn)采用的PDIUSBDl2可支持USBl.1協(xié)議,文獻(xiàn)E37采用的接口芯片為USBl00也僅支持USBl.1協(xié)議,文獻(xiàn)采用CP2102符合USB2.0協(xié)議,其通用的驅(qū)動(dòng)程序可將設(shè)備作為虛擬的COM端口設(shè)備進(jìn)行操作,文獻(xiàn)采用Philips公司ISPl581芯片作為USB2.0的接VI芯片’。這里采用Cypress公司的CY7C68013作為芯片,設(shè)計(jì)實(shí)現(xiàn)了基于單片機(jī)和USB2.0的。該系統(tǒng)可實(shí)現(xiàn)單通道模擬信號(hào)的采集,主機(jī)應(yīng)用程序負(fù)責(zé)啟動(dòng)和停止采樣,采樣間隔時(shí)間由主機(jī)應(yīng)用程序設(shè)置調(diào)整,采樣數(shù)據(jù)傳給主機(jī)應(yīng)用程序顯示并保存。

          1 系統(tǒng)硬件設(shè)計(jì)
          1.1 系統(tǒng)硬件組成

          整個(gè)系統(tǒng)的硬件結(jié)構(gòu)如圖l所示。為主控單片機(jī),負(fù)責(zé)控制A/D轉(zhuǎn)換、上傳采集數(shù)據(jù)、接收并執(zhí)行主機(jī)的命令。CY7C68013為芯片。A/D轉(zhuǎn)換芯片采用TI公司生產(chǎn)的TLC549,AD780是一款高精度參考電壓芯片,可為TLC549提供2.5 V或 者3.0 V的參考電壓。系統(tǒng)+5 V電源由主機(jī)的USB 接口提供,CY7C68013所需的電源為+3.3 V,由+5 v 電源接穩(wěn)壓芯片APlll7提供,圖中沒(méi)有畫出。

          1.2 TLC549
          TLC549是以8位開(kāi)關(guān)電容逐次逼近A/D轉(zhuǎn)換器為基礎(chǔ)而構(gòu)造的CMOS A/D轉(zhuǎn)換器,將其設(shè)計(jì)成能通過(guò)三態(tài)輸出與微處理器或外圍設(shè)備串行接VI。TLC549用輸入/輸出時(shí)鐘(I/O CLOCK)和芯片選擇(CS)輸入作數(shù)據(jù)控制,轉(zhuǎn)換結(jié)果由DATAOUT引腳輸出。I/o CLOCK端的最高頻率可達(dá)1.1 MHz。TLC一549片內(nèi)系統(tǒng)時(shí)鐘工作在4 MHz(不需要外部時(shí)鐘)。片內(nèi)系統(tǒng)時(shí)鐘使內(nèi)部器件的操作獨(dú)立于串行輸入/輸出時(shí)序并允許TLC549像許多軟件和硬件所要求的那樣工作。I/O CLOCK和內(nèi)部系統(tǒng)時(shí)鐘可以實(shí)現(xiàn)高速數(shù)據(jù)傳送,使得TLc549可實(shí)現(xiàn)40 kHz的采樣頻率。TLC549具有通用控制邏輯及自動(dòng)工作或在微處理器控制下工作的片內(nèi)采樣/保持電路,差分高阻抗基準(zhǔn)電壓輸入端,易于實(shí)現(xiàn)比例轉(zhuǎn)換的高速轉(zhuǎn)換器,定標(biāo)及隔離電路。整個(gè)開(kāi)關(guān)電容逐次逼近轉(zhuǎn)換器電路的設(shè)計(jì)允許在小于17μs的時(shí)間內(nèi),以最大誤差±0.5為最低有效位的精度實(shí)現(xiàn)轉(zhuǎn)換。
          1.3 CY7(368013及其固件程序
          EZ—USB FX2系列芯片CY7C68013是業(yè)界第一個(gè)支持USB2.0,同時(shí)向下兼容USBl.1規(guī)范的單片機(jī),為描述方便以下簡(jiǎn)稱該芯片為FX2。FX2支持全速傳輸(12 Mb/s)和高速傳輸(480 Mb/s),該芯片將USB2.O收發(fā)器、串行接口引擎SIE、增強(qiáng)的8051內(nèi)核、GPIF等集成于一體。FX2內(nèi)含4 KB的端點(diǎn)緩沖區(qū)F1FO,可以被配置為具有不同大小緩沖區(qū)的IN或OUT端點(diǎn)(EP2,EP4,EP6,EP8),具有USB協(xié)議所規(guī)定的4種傳輸方式,即控制方式、中斷方式、批量傳輸、和同步傳輸方式。Cypress公司為FX2提供了完善的軟件開(kāi)發(fā)工具包,降低了開(kāi)難度,加快了開(kāi)發(fā)進(jìn)度。
          FX2可以工作在3種不同的模式下完成USB數(shù)據(jù)的傳輸,即:Ports模式、GPIF模式和Slave FIFO模式。Ports模式下其uSB數(shù)據(jù)的傳輸主要在FX2的8051內(nèi)核參與下完成,數(shù)據(jù)傳輸通過(guò)執(zhí)行指令實(shí)現(xiàn),因此數(shù)據(jù)的傳輸率比較低,對(duì)大批量數(shù)據(jù)傳輸一般采用后兩種方式。GPIF方式,稱為通用可編程接口方式,在此模式下,F(xiàn)X2的FIFO是由內(nèi)部的GPIF控制的,F(xiàn)X2利用由軟件編程輸出讀寫控制波形讀取FIFO標(biāo)志,控制FIFO的選通,并且對(duì)外部設(shè)備提供了用戶專用接口,可以對(duì)許多通用總線接口進(jìn)行訪問(wèn),如ASIC,DSP和存儲(chǔ)器等。文獻(xiàn)利用FX2的GPIF方式構(gòu)建了LISB數(shù)據(jù)傳輸通道。Slave FIFO方式是將FX2的FIFO作為外部控制器(如FPGA或單片機(jī))的從屬FIFO,外部控制器可像普通FIFO操作一樣對(duì)FX2的FIFO進(jìn)行讀寫,而不考慮該包的大小,傳輸速率可明顯提高,文中FX2在Slave FIFO模式下工作。FX2有3種封裝形式:128引腳、100引腳和56引腳,這里選用FX2的56引腳的封裝形式。
          FX2芯片在使用時(shí)必須先下載固件程序,固件程序主要負(fù)責(zé)完成芯片初始化,對(duì)芯片進(jìn)行必要的配置、處理設(shè)備請(qǐng)求、進(jìn)行數(shù)據(jù)傳輸?shù)认鄳?yīng)工作。用戶通過(guò)編寫適當(dāng)?shù)墓碳绦蛲瓿蓪?duì)FX2的設(shè)置。Cypress公司提供了一個(gè)固件程序開(kāi)發(fā)框架可以大大簡(jiǎn)化FX2芯片固件程序的開(kāi)發(fā)難度。通過(guò)編寫用戶初始化函數(shù)TD_Init(),用戶可以規(guī)定各種端點(diǎn)資源的使用以及配置外圍接口的輸入/輸出等。其主要配置語(yǔ)句如下:


          上一頁(yè) 1 2 3 下一頁(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); })();