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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          作者: 時(shí)間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/201610/308819.htm

          USB3.0高速系統(tǒng),以其5Gbps的帶寬和即插即用等優(yōu)越的性能,越來越受到人們的重視。目前常用的USB3.0通信芯片主要有來自美國賽普拉斯(CYPRESS)公司開發(fā)的EZ USB FX3系列芯片和日本NEC公司開發(fā)的系列芯片。二者不僅都具有集成度高、功能強(qiáng)大、兼容USB2.0等優(yōu)點(diǎn),而且兩個(gè)廠家都提供了功能強(qiáng)大的開發(fā)工具包,能極大縮短開發(fā)周期,而深受開發(fā)者喜愛。目前一些采集系統(tǒng)采用傳統(tǒng)的51系列單片機(jī)為主控芯片,則不能充分發(fā)揮USB3.0的帶寬,性能不佳。雖然CPLD芯片可以工作在很高的頻率,但不及單片機(jī)靈活易用,故本文采用美國TI公司最新高速的ADS7886芯片為A/D轉(zhuǎn)換芯片,最新的單片機(jī)作為主控芯片,NEC公司的UPD720200作為USB3.0通信芯片,研究和設(shè)計(jì)了一套基于USB3.0總線的溫度系統(tǒng)。經(jīng)測試,本系統(tǒng)能實(shí)現(xiàn)高速溫度。

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

          系統(tǒng)總體框架如圖1所示。溫度傳感器采集的信號(hào)經(jīng)A/D轉(zhuǎn)換芯片ADS7886轉(zhuǎn)換為數(shù)字信號(hào)后,送入主控芯片,再經(jīng)處理后發(fā)送到USB3.0主機(jī)接口芯片,最后數(shù)據(jù)以5Gbps的速度送入到USB主機(jī)。

          基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          1.1 A/D模塊

          該模塊使用美國TI公司最新高速的A/D采樣芯片ADS7886。ADS7886是12位串行高速精密A/D芯片,為了提高系統(tǒng)的精度,我們?cè)O(shè)計(jì)采用了REF3030芯片提供3V的基準(zhǔn)電壓。A DS7886的第3腳為模擬信號(hào)輸入端口,第4腳為1MHz的工作時(shí)鐘信號(hào)輸入端口,第6腳為片選信號(hào)端,第5腳為模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)后的輸出端,供單片機(jī)讀取。

          基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          1. 2 MSP430最小系統(tǒng)模塊

          MSP430的最小系統(tǒng)如圖3所示,主要由MSP430單片機(jī)、晶振電路和電源構(gòu)成。其中P1.4為ADC7886串行數(shù)據(jù)輸入端,P2.0~P2.3用于連接USB3.0通信芯片,P1.6和P1.7連接兩個(gè)LED指示燈,用來顯示當(dāng)前的工作狀態(tài)。

          基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          1.3 USB傳輸模塊

          該模塊如圖4所示,我們選用了NEC公司的uPD720200作為USB3.0通信芯片,其完全遵循USB3.0的通信協(xié)議和接口規(guī)范。uPD720200的引腳U3TXDP1、U3TXDN1、U3RXDP1、U3 RXDN1分別與MSP430的引腳P2.0~P2.3連接。

          基于MSP430與uPD720200的高速溫度采集系統(tǒng)的設(shè)計(jì)

          其工作原理如下:采集數(shù)據(jù)時(shí),uPD720200收到用戶的數(shù)據(jù)采集請(qǐng)求后,將形成相應(yīng)的控制信號(hào),通過P2.2、P2.3下傳遞給MSP430;MSP430隨后對(duì)ADS7886發(fā)出采集數(shù)據(jù)的控制信號(hào),并將ADS7886采集的數(shù)據(jù),通過P2.0、P2.1后上傳至uPD720200;uPD720200的SIE(串行接口引擎)再將數(shù)據(jù)送入指定的接收緩沖區(qū)內(nèi),供USB上位機(jī)讀取。

          2 系統(tǒng)軟件設(shè)計(jì)

          系統(tǒng)軟件的開發(fā)包含了MSP430和uPD720200的固件程序開發(fā)、uPD720200的windows驅(qū)動(dòng)程序開發(fā)以及USB上位機(jī)應(yīng)用程序的開發(fā)。我們可以利用NEC公司提供的開發(fā)包,大大縮短開發(fā)周期,提高開發(fā)效率。

          MSP430固件程序主要完成對(duì)A/D芯片ADS7886的控制和對(duì)uPD720200芯片的通信,其將ADS7886芯片采集的數(shù)據(jù)傳送給uPD720200。MSP430的固件開發(fā)需對(duì)相應(yīng)的引腳和時(shí)序進(jìn)行定義,為此我們采用了C51語言編寫,開發(fā)環(huán)境為Keil uVision4.0。uPD720200固件程序的主要功能是讓其將MSP430芯片傳來的數(shù)據(jù)傳輸?shù)缴衔粰C(jī),實(shí)現(xiàn)超高速數(shù)據(jù)傳輸。uPD 720200完全符合USB3.0協(xié)議,固件程序主要為設(shè)置與操作其內(nèi)部的控制寄存器。NEC公司為開發(fā)者提供了功能強(qiáng)大的uPD720200 SDK開發(fā)包,可以非常方便地開發(fā)出其固件和Wind ows驅(qū)動(dòng)程序。在上位機(jī)的應(yīng)用程序的開發(fā)方面,NEC公司同樣為用戶提供了相應(yīng)的操作簡單、功能強(qiáng)大的C++編程接口庫函數(shù)。我們選用了Microsoft Visual Studio2008作為開發(fā)工具,通過相應(yīng)的庫函數(shù)與設(shè)備驅(qū)動(dòng)程序傳遞數(shù)據(jù),實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)采集功能。

          3 總結(jié)

          本文詳細(xì)介紹了采用uPD720200為接口USB3.0芯片、MSP430為主控芯片,設(shè)計(jì)與開發(fā)了一套USB3.0溫度采集傳輸系統(tǒng)。NEC公司為uPD720200提供了完整的SDK開發(fā)包,縮短了開發(fā)周期。我們采用的MSP430系列單片機(jī)在25MHz晶體的驅(qū)動(dòng)下,實(shí)現(xiàn)40ns的指令周期,再加上16位的數(shù)據(jù)寬度,其運(yùn)算速度相對(duì)傳統(tǒng)的51系列單片機(jī)非???,能充分發(fā)揮USB 3.0的帶寬。雖然受ADS7886芯片采樣速率的影響,沒有實(shí)現(xiàn)超速數(shù)據(jù)采集,但MSP430與uPD720200組合無疑是高速數(shù)據(jù)采集系統(tǒng)開發(fā)方面的一種低價(jià)高效的優(yōu)秀方案。



          評(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); })();