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

          新聞中心

          EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于ADuC841的USB接口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

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

          ——
          作者:天津大學(xué)—ADI聯(lián)合實(shí)驗(yàn)室 李玉國 李剛 林凌 時(shí)間:2006-12-11 來源:電子產(chǎn)品世界 收藏

          摘要: 本文提出了一種傅立葉光譜儀中系統(tǒng)的簡易實(shí)現(xiàn)。

          關(guān)鍵詞: ;;;

          引言

          在微機(jī)測(cè)控系統(tǒng)中,經(jīng)常會(huì)遇到需要輸入各種模擬信號(hào)的情況,這時(shí)必然要進(jìn)行A/D轉(zhuǎn)換。有時(shí)在某些實(shí)際項(xiàng)目中,為了采集某些模擬量而選用一些專用的卡,不僅使得系統(tǒng)更加復(fù)雜,不容易實(shí)現(xiàn)功能擴(kuò)展,還增加了系統(tǒng)設(shè)計(jì)成本。另一方面,接口操作簡單越來越得到廣泛的應(yīng)用,因此設(shè)備的USB接口化也是一個(gè)發(fā)展趨勢(shì)。

          XFT-1型開放式傅立葉變換光譜儀采用了經(jīng)典的麥克爾遜干涉儀,干涉后的光強(qiáng)隨著動(dòng)鏡的移動(dòng)而發(fā)生變化,光電接收器將接收到的緩慢變化的光強(qiáng)信號(hào)轉(zhuǎn)化為了相應(yīng)的電壓信號(hào)。為了去除由于動(dòng)鏡移動(dòng)速度不均勻所造成的誤差,模塊中采用了雙通道,同時(shí)測(cè)量參考光(He-Ne 激光)和被測(cè)光源后,利用參考光的信息校正被測(cè)光測(cè)量位置誤差。在XFT-1型開放式傅立葉變換光譜儀中,采用了本文提出的這種簡易的USB數(shù)據(jù)采集系統(tǒng)??紤]到經(jīng)濟(jì)、實(shí)用因素,系統(tǒng)中采用了單片機(jī)和通用USB接口芯片,將兩者結(jié)合實(shí)現(xiàn)USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)。上位PC則采用了C#語言編程,將采集到的數(shù)據(jù)實(shí)時(shí)顯示、處理分析、數(shù)據(jù)保存和打印。

          硬件電路設(shè)計(jì)

          本系統(tǒng)以ADI公司的ADuC841為核心實(shí)現(xiàn)數(shù)據(jù)采集和控制。此單片機(jī)具有單指令周期20MIPS 8052內(nèi)核和8通道高速420Ksps、12bit模/數(shù)轉(zhuǎn)換器,支持在線下載??刂破骱虯DC集成縮短了開發(fā)時(shí)間,提高了系統(tǒng)的穩(wěn)定性。

          本文以南京沁恒的USB接口芯片CH375為核心實(shí)現(xiàn)USB數(shù)據(jù)傳輸。如下特點(diǎn):兼容USB2.0;內(nèi)置固件模式下屏蔽了相關(guān)的USB 協(xié)議,自動(dòng)完成標(biāo)準(zhǔn)的USB 枚舉配置過程,完全不需要本地端控制器作任何處理,簡化了單片機(jī)的固件編程;通用Windows 驅(qū)動(dòng)程序提供設(shè)備級(jí)接口,通過DLL 提供API 應(yīng)用層接口。

          ADuC841和CH375的接口電路圖如圖1所示。ADuC841和CH375有串行和并行兩種數(shù)據(jù)線連接方法。模塊中為了提高速度采用了并行的方法,將ADuC841的P0口與CH375的并行總線相連。除了讀寫信號(hào)連接外,采用A14作為地址位。A14=0,表示數(shù)據(jù)總線上是數(shù)據(jù);A14=1,表示數(shù)據(jù)總線上是命令。USB傳輸過程中,ADuC841與CH375通過外部中斷觸發(fā),采用ADuC841的INT0外部中斷引腳直接和CH372的INT#引腳相連。CH375在正常工作時(shí)ACT#引腳輸出為低電平,因此在電源和此引腳間加一個(gè)發(fā)光二極管能夠指示USB接口芯片是否正常工作。發(fā)光二極管的亮滅為下位機(jī)程序的調(diào)試提供了重要的信息。

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

          系統(tǒng)軟件是由下位機(jī)程序(固件程序)、USB系統(tǒng)驅(qū)動(dòng)程序和應(yīng)用程序三部分構(gòu)成。利用USB協(xié)議傳輸數(shù)據(jù)的模型如圖2所示。本系統(tǒng)的軟件程序主要包括單片機(jī)C語言編寫的數(shù)據(jù)采集和數(shù)據(jù)傳輸子程序,以及用C#編寫的上位PC機(jī)采集到的數(shù)據(jù)實(shí)時(shí)顯示、處理分析、數(shù)據(jù)保存和打印子程序。

          下位機(jī)程序

          設(shè)備的固件程序是數(shù)據(jù)采集系統(tǒng)的核心,下位機(jī)程序主要利用KeilC51編寫。為了降低復(fù)雜程度和增加程序的可維護(hù)性,下位機(jī)程序設(shè)計(jì)采用先查詢PC機(jī)通過USB接口傳過來的命令再執(zhí)行的方式。在上位機(jī)和下位機(jī)通訊過程中設(shè)定協(xié)議,在協(xié)議中設(shè)定相應(yīng)的命令字和校驗(yàn)字段。主要的命令字有系統(tǒng)檢測(cè)是否正常、設(shè)定采樣頻率、設(shè)定采樣點(diǎn)數(shù)、采樣啟動(dòng)信號(hào)等。下位機(jī)主程序?yàn)椴粩鄴呙杳钭肿兞?,看其是否有效。被監(jiān)視命令字初始設(shè)為無效,上位機(jī)發(fā)出新的命令字后,下位機(jī)進(jìn)入中斷子程序接收命令字,命令字設(shè)為有效。下位機(jī)掃描到新命令字的內(nèi)容后,執(zhí)行相應(yīng)的操作,然后將待監(jiān)視命令字設(shè)為無效,繼續(xù)等待新的命令字。這種設(shè)計(jì)細(xì)化了任務(wù)的功能,有利于開發(fā)、調(diào)試和維護(hù)。

          數(shù)據(jù)采集子程序在主程序接收到啟動(dòng)數(shù)據(jù)采集過程命令字后運(yùn)行。當(dāng)單片機(jī)接收到上位機(jī)通過USB發(fā)送過來的命令字后,啟動(dòng)數(shù)據(jù)采集過程。它利用片內(nèi)的定時(shí)器設(shè)定采集時(shí)間間隔,利用片內(nèi)的ADC進(jìn)行數(shù)據(jù)采集。在定時(shí)中斷子程序中,單片機(jī)將采集兩個(gè)通道的數(shù)據(jù),將它們按一定的順序存放到緩沖區(qū)中,然后檢查緩沖區(qū)是否滿,如果緩沖區(qū)不滿,定時(shí)中斷子程序結(jié)束,否則將緩沖區(qū)中的數(shù)據(jù)通過CH375發(fā)送給上位機(jī),清空緩沖區(qū),定時(shí)中斷子程序結(jié)束。

          USB驅(qū)動(dòng)程序

          本系統(tǒng)的一大優(yōu)點(diǎn)就是開發(fā)容易。南京沁恒公司已經(jīng)為用戶提供了通用的USB驅(qū)動(dòng)程序。只需要安裝現(xiàn)有的USB驅(qū)動(dòng)安裝程序,它為應(yīng)用程序的開發(fā)提供了很多接口函數(shù)。由于主要采用批量上傳和批量下載方式,所以主要用到CH375ReadData,CH375WriteData等函數(shù)。這一部分不需編寫程序。

          上位機(jī)程序

          上位機(jī)程序可以采有多種軟件開發(fā)工具,本系統(tǒng)在Visual Studio2005開發(fā)環(huán)境下,用C#語言編寫了應(yīng)用程序。主要完成讀取、顯示、保存、打開和打印數(shù)據(jù)等工作。

          數(shù)據(jù)讀取過程是上位機(jī)程序的關(guān)鍵部分。為了在從下位機(jī)讀取數(shù)據(jù)時(shí)不影響數(shù)據(jù)采集界面響應(yīng)的流暢,在程序設(shè)計(jì)中利用多線程實(shí)現(xiàn)數(shù)據(jù)讀取。數(shù)據(jù)采集工作在單獨(dú)的子線程中完成,而主線程則負(fù)責(zé)完成鼠標(biāo)、鍵盤等對(duì)用戶的響應(yīng)。在數(shù)據(jù)采集子線程中,通過DLL 提供API 應(yīng)用層接口直接訪問USB驅(qū)動(dòng)程序中的緩沖區(qū)。成功打開設(shè)備后,利用CH375WriteData接口函數(shù)向緩沖區(qū)中寫命令字,向單片機(jī)發(fā)送命令;利用CH375ReadData接口函數(shù)讀取緩沖區(qū)中的數(shù)據(jù),獲得采集到的數(shù)據(jù)。

          在Visual Studio2005開發(fā)環(huán)境下,編寫上位機(jī)程序開發(fā)難度相對(duì)較低。數(shù)據(jù)實(shí)時(shí)顯示增加了數(shù)據(jù)采集過程的直觀性。將采集到的數(shù)據(jù)通過GDI+在PictureBox控件上繪圖,設(shè)置一個(gè)軟件定時(shí)器,每隔一定的時(shí)間將圖形重繪一次,由于時(shí)間間隔小于0.1s,視覺上是連續(xù)變化的曲線。數(shù)據(jù)的保存和打開功能主要是利用C#中的StreamWriter類和StreamReader類完成。打印數(shù)據(jù)和圖形主要使用PrintDocument類,調(diào)用Print方法后,在PrintDocument_PrintPage事件中將需要打印的文字和圖形輸出或重繪即可打印。

          結(jié)語

          利用單片機(jī)和USB接口芯片的簡單連接即可擴(kuò)展出一個(gè)USB接口的數(shù)據(jù)采集模塊,而且無需外擴(kuò)數(shù)據(jù)存儲(chǔ)器,同時(shí),該采集系統(tǒng)還可充分利用ADuC841豐富的片上外設(shè)和I/O資源進(jìn)行功能上的擴(kuò)展。在XFT-1型開放式傅立葉變換光譜儀系統(tǒng)中,利用了ADuC841通過同步電機(jī)控制麥克爾遜干涉儀動(dòng)鏡位置。經(jīng)過測(cè)試,該系統(tǒng)采樣數(shù)據(jù)精度較高,傳輸速率較快,性能穩(wěn)定,通過與PC機(jī)相連后,不僅使得數(shù)據(jù)存儲(chǔ)量大,而且更易于進(jìn)行數(shù)據(jù)處理,經(jīng)濟(jì)簡單,在XFT-1型開放式傅立葉變換光譜儀系統(tǒng)中性能穩(wěn)定。

          參考文獻(xiàn):
          1.  http://www.analog.com/UploadedFiles/Data_Sheets/ 247905996157419352262670829ADuC841_2_3_0.pdf
          2.  Universal Serial Bus Specification Reversion 1.1. www.usb.org, 1998
          3.  http://winchiphead.com/download/CH372/CH372DS1.PDF
          4.  http://winchiphead.com/download/CH372/CH372DS2.PDF

          干涉儀相關(guān)文章:干涉儀原理


          電機(jī)保護(hù)器相關(guān)文章:電機(jī)保護(hù)器原理


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