免费色播,亚洲国产欧美国产第一区二区三区,毛片看,日本精品在线观看视频,国产成人精品一区二区免费视频,日本黄色免费网站,一级毛片免费

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

來(lái)源:網(wǎng)絡(luò)

點(diǎn)擊:924

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: USB接口,MAX197,嵌入式,驅(qū)動(dòng)程序

      數(shù)據(jù)采集任務(wù)多在戶外進(jìn)行,所以數(shù)據(jù)采集系統(tǒng)通常要滿足實(shí)時(shí)性、專用性、可靠性和低功耗等性能,這些特性在嵌入式系統(tǒng)中都能得到很好的體現(xiàn),因此本文將以WindowsCE的嵌入式平臺(tái)來(lái)開(kāi)發(fā)效據(jù)采集系統(tǒng)。但是由于嵌入式系統(tǒng)的硬件結(jié)構(gòu)不易改變,所以在進(jìn)行數(shù)據(jù)采集設(shè)備擴(kuò)展時(shí)應(yīng)該選擇接口簡(jiǎn)單靈活、數(shù)據(jù)傳輸率高和支持熱拔插的傳輸總線,而USB接口則能很好地滿足這些要求,同時(shí)USB還有總線供電和不受插槽、中斷等硬件資源限制的特性,因此USB接口是數(shù)據(jù)采集設(shè)備與嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)傳輸?shù)睦硐脒x擇。綜上所述,本文將設(shè)計(jì)一款基于嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)以滿足實(shí)際的需要,下面將從硬件設(shè)計(jì),程序?qū)崿F(xiàn)和實(shí)際測(cè)試3方面具體描述。

      1 硬件設(shè)計(jì)

      1.1 硬件結(jié)構(gòu)框架

      本系統(tǒng)的硬件結(jié)構(gòu)主要由控制中心、模數(shù)轉(zhuǎn)換和USB協(xié)議實(shí)現(xiàn)3個(gè)部分組成,下面將針對(duì)這3個(gè)部分進(jìn)行詳細(xì)的介紹。具體的結(jié)構(gòu)框架如圖1所示。

     

    圖1 嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)總體結(jié)構(gòu)

      1)控制中心。本系統(tǒng)采用單片機(jī)提供地址數(shù)據(jù)復(fù)用總線、選通信號(hào)(D12_CS和AD_CS),讀寫(xiě)信號(hào)(RD和WR)以及對(duì)中斷信號(hào)(D12_INT和AD_INT)進(jìn)行檢測(cè)。

      2)模數(shù)轉(zhuǎn)換。本系統(tǒng)采用MAX197芯片進(jìn)行模數(shù)轉(zhuǎn)換,該芯片具有采樣保持功能和12位的高精度輸出。單片機(jī)可向MAX197寫(xiě)入其特定的命令從而選擇指定的通道進(jìn)行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后,MAX197向單片機(jī)輸出低電平的AD_INT信號(hào),單片機(jī)采用輪詢方式檢測(cè)到后通過(guò)HBEN信號(hào)控制MAX197輸出低8位和高4位的轉(zhuǎn)換數(shù)據(jù)。

      3)USB協(xié)議實(shí)現(xiàn)。本系統(tǒng)采用PDIUSBD12作為USB設(shè)備端的控制芯片,該芯片實(shí)現(xiàn)了USB1.1傳輸協(xié)議。嵌入式系統(tǒng)要對(duì)USB設(shè)備進(jìn)行讀寫(xiě)均需通過(guò)信號(hào)D12_INT向單片機(jī)發(fā)送中斷,單片機(jī)響應(yīng)中斷后只需對(duì)PDIUSBD12的不同寄存器進(jìn)行讀寫(xiě)操作就可以利用USB進(jìn)行數(shù)據(jù)傳輸。

      1.2 固件程序設(shè)計(jì)

      硬件設(shè)備需要固件程序的控制以保證其正常運(yùn)行,本文所設(shè)計(jì)的固件程序主要用于識(shí)別USB設(shè)備以及采集與傳輸數(shù)據(jù)。固件程序的總體流程如圖2所示。

     

    圖2 固件程序的總體流程

     

      1)設(shè)備識(shí)別。USB設(shè)備的識(shí)別過(guò)程分別由操作系統(tǒng)和設(shè)備驅(qū)動(dòng)兩個(gè)部分通過(guò)USB協(xié)議的標(biāo)準(zhǔn)設(shè)備請(qǐng)求來(lái)完成。操作系統(tǒng)在USB設(shè)備連接時(shí)加載設(shè)備驅(qū)動(dòng)程序并分配通信地址,驅(qū)動(dòng)程序啟動(dòng)后通過(guò)中斷讀取相關(guān)描述符進(jìn)行資源配置并使能傳輸端點(diǎn),從而為應(yīng)用程序提供接口。

      2)數(shù)據(jù)采集與傳輸。通過(guò)單片機(jī)的定時(shí)器可對(duì)數(shù)據(jù)的采集頻率進(jìn)行設(shè)置。本系統(tǒng)的數(shù)據(jù)采集頻率為1 000 Hz,因此設(shè)置定時(shí)器每一毫秒中斷一次進(jìn)行數(shù)據(jù)采集,而主機(jī)端對(duì)USB設(shè)備的讀寫(xiě)操作則通過(guò)外部中斷實(shí)現(xiàn),定時(shí)器中斷優(yōu)先級(jí)高于外部中斷以保證采集頻率固定為1 000 Hz.主機(jī)端通過(guò)寫(xiě)操作向USB設(shè)備發(fā)送控制信息,包括設(shè)備啟動(dòng)和停止的相關(guān)初始化與清理的工作,其中在對(duì)USB設(shè)備進(jìn)行讀操作前要先在端點(diǎn)的緩沖區(qū)填寫(xiě)64字節(jié)數(shù)據(jù)并通過(guò)命令使其有效,不然主機(jī)端對(duì)USB設(shè)備進(jìn)行讀操作時(shí),無(wú)效的緩沖區(qū)將導(dǎo)致PDIUSBD12芯片不會(huì)產(chǎn)生中斷,從而導(dǎo)致讀操作失敗。

      2 驅(qū)動(dòng)程序設(shè)計(jì)

      Windows CE下的USB設(shè)備驅(qū)動(dòng)模型由3個(gè)層次組成,其中由操作系統(tǒng)實(shí)現(xiàn)的有兩層,它們分別是HCD模塊(USBHoST Controller Driver)和USBD模塊(USB Bus Driver),而第三層則被稱為USB客戶端驅(qū)動(dòng)(USB Client Driver),由驅(qū)動(dòng)開(kāi)發(fā)人員實(shí)現(xiàn)。HCD模塊處于最底層,是CPU中USB控制器的驅(qū)動(dòng),為USBD模塊提供底層的功能訪問(wèn)服務(wù)。USBD模塊處于HCD模塊的上層,它根據(jù)HCD模塊提供的功能設(shè)計(jì)USB驅(qū)動(dòng)接口函數(shù),并提供給第3層使用。USB客戶端驅(qū)動(dòng)處于USB驅(qū)動(dòng)模型的最頂層,也是本文所要設(shè)計(jì)的USB驅(qū)動(dòng)程序,它向上為應(yīng)用程序提供接口以方便對(duì)USB設(shè)備進(jìn)行控制,向下利用USBD模塊提供的接口函數(shù)傳遞控制信息和數(shù)據(jù)。因此,要成功開(kāi)發(fā)USB設(shè)備的驅(qū)動(dòng)程序,在操作系統(tǒng)定制的時(shí)候就需要把HCD和USBD的相關(guān)組件添加進(jìn)去。

      本文開(kāi)發(fā)的USB設(shè)備驅(qū)動(dòng)程序是流接口形式的驅(qū)動(dòng)程序,它被設(shè)計(jì)用來(lái)與通常的文件系統(tǒng)API(如CreateFile、ReadFile和WriteFile等)進(jìn)行通信,應(yīng)用程序通過(guò)對(duì)文件系統(tǒng)的操作來(lái)完成對(duì)設(shè)備的控制。本驅(qū)動(dòng)所設(shè)計(jì)的流接口如表1所示。

    表1 驅(qū)動(dòng)所設(shè)計(jì)的流接口

     

      3 系統(tǒng)測(cè)試

      3.1 測(cè)試條件與結(jié)果

      本測(cè)試的目的在于檢驗(yàn)本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)能否在采集頻率較高的情況下準(zhǔn)確地采集數(shù)據(jù),并通過(guò)USB接口完整地進(jìn)行數(shù)據(jù)傳輸。因此,測(cè)試將基于以下5個(gè)條件進(jìn)行。其中一個(gè)通道的部分測(cè)試數(shù)據(jù)結(jié)果如圖3所示。

     

    圖3 正弦波采集測(cè)試結(jié)果圖

      1)測(cè)試信號(hào)為正弦波,峰峰值約為12 V,頻率為100Hz.

      2)系統(tǒng)以1000Hz的采集頻率連續(xù)對(duì)8個(gè)通道進(jìn)行采集。

      3)單片機(jī)晶振頻率為12MHz.

      4)采集系統(tǒng)的數(shù)據(jù)緩沖區(qū)設(shè)置為128字節(jié)。

      5)采集數(shù)據(jù)記錄在SD卡中。

     

      3.2 測(cè)試結(jié)果分析

      由3.1的正弦波采集測(cè)試結(jié)果圖可以得出如下兩點(diǎn)結(jié)論:

      1)采集的正弦波的峰峰值約為12 V,一個(gè)周期有10個(gè)數(shù)據(jù)點(diǎn),根據(jù)采集頻率1000Hz可知采集到的正弦波的頻率為100Hz.

      2)在30 ms的時(shí)候,正弦波發(fā)生畸變,可見(jiàn)采集數(shù)據(jù)在USB傳輸過(guò)程中發(fā)生丟失。

      第一點(diǎn)結(jié)論說(shuō)明了本采集系統(tǒng)能準(zhǔn)確地進(jìn)行數(shù)據(jù)采集,而對(duì)于第二點(diǎn)結(jié)論所表現(xiàn)出的不完整性分析如下。

      1)設(shè)V1是有效數(shù)據(jù)的傳輸速度,V2是協(xié)議開(kāi)銷的傳輸速度,N為采集數(shù)據(jù)的通道數(shù)目,M為每通道采集的字節(jié)數(shù),H為采集頻率,K為緩沖區(qū)大小,U為傳輸?shù)膮f(xié)議開(kāi)銷字節(jié)數(shù)。USB數(shù)據(jù)幀的組成包括有效數(shù)據(jù)和協(xié)議開(kāi)銷兩個(gè)部分,其中傳輸協(xié)議的開(kāi)銷包括同步字段、包標(biāo)識(shí)符、地址信息、端點(diǎn)信息和CRC校驗(yàn),所以數(shù)據(jù)采集系統(tǒng)要求的USB傳輸速度可根據(jù)公式(1)計(jì)算得到。本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)共有8個(gè)通道,每通道有2個(gè)字節(jié)的數(shù)據(jù),采集頻率為1 000 Hz,根據(jù)公式(2)可得有效數(shù)據(jù)的傳輸速度約為16 kB/s.一個(gè)完整的數(shù)據(jù)幀的傳輸需要11個(gè)字節(jié)的協(xié)議開(kāi)銷,本文設(shè)計(jì)的數(shù)據(jù)傳輸過(guò)程分為4個(gè)步驟:發(fā)送傳輸請(qǐng)求,發(fā)送接收控制命令,接收請(qǐng)求應(yīng)答,開(kāi)始接收數(shù)據(jù),每個(gè)步驟均需傳輸一個(gè)完整的USB數(shù)據(jù)幀,因此進(jìn)行一次傳輸?shù)膮f(xié)議開(kāi)銷為44個(gè)字節(jié),根據(jù)公式(3)可計(jì)算出協(xié)議開(kāi)銷的傳輸速度。以緩沖區(qū)的大小為橫坐標(biāo),數(shù)據(jù)采集系統(tǒng)要求的USB傳輸速度為縱坐標(biāo)繪出圖4所示的關(guān)系圖,分析該圖可得:緩沖區(qū)越大,所要求的USB傳輸速度越少。測(cè)試中較少的128字節(jié)緩沖區(qū)使得在一次傳輸中有效數(shù)據(jù)過(guò)少,約5.5 kB/s的額外開(kāi)銷傳輸速度約占總速度的25%,過(guò)高的額外傳輸開(kāi)銷導(dǎo)致數(shù)據(jù)來(lái)不及傳輸,從而發(fā)生數(shù)據(jù)丟失的情況。

     

     

    圖4 緩存區(qū)大小與USB傳輸速度關(guān)系圖

      2)另外,由于應(yīng)用程序要在SD卡這類低速設(shè)備上記錄數(shù)據(jù),所以記錄數(shù)據(jù)的時(shí)候來(lái)不及獲取USB設(shè)備中的數(shù)據(jù)也會(huì)導(dǎo)致實(shí)際的傳輸速度變慢,導(dǎo)致新采集的數(shù)據(jù)溢出緩沖區(qū)并覆蓋來(lái)不及傳輸?shù)呐f數(shù)據(jù),從而造成數(shù)據(jù)丟失。

      因此有必要采取一定的方法來(lái)改善數(shù)據(jù)采集系統(tǒng),以保證數(shù)據(jù)采集的完整性。下面將提出3個(gè)解決方法。

      3.3 系統(tǒng)改善措施

      1)增大晶振頻率到24MHz,加快單片機(jī)的處理速度。

      2)在硬件上增加靜態(tài)RAM作為數(shù)據(jù)存儲(chǔ)的緩沖區(qū),緩沖區(qū)的存在一方面可以保證新采集的數(shù)據(jù)不會(huì)覆蓋沒(méi)來(lái)得及傳輸?shù)呐f數(shù)據(jù),另一方面可以讓USB設(shè)備在一次USB數(shù)據(jù)幀的傳輸中所含有的有效數(shù)據(jù)更多,從而減少在傳輸過(guò)程中的校驗(yàn)、識(shí)別和握手等USB協(xié)議的額外開(kāi)銷,加快傳輸速度。

      3)在應(yīng)用程序控制USB設(shè)備時(shí)將新建2條線程,一條進(jìn)程用于向USB設(shè)備進(jìn)行讀寫(xiě)操作來(lái)進(jìn)行數(shù)據(jù)采集,另一條進(jìn)程用于向嵌入式系統(tǒng)的SD卡這類低速設(shè)備進(jìn)行讀寫(xiě)操作來(lái)記錄數(shù)據(jù),利用操作系統(tǒng)分時(shí)復(fù)用的特性減少數(shù)據(jù)記錄過(guò)程對(duì)數(shù)據(jù)傳輸造成的延誤,從而加快USB設(shè)備的傳輸速度。

      4 結(jié)束語(yǔ)

      本文從硬件結(jié)構(gòu)、固件程序和驅(qū)動(dòng)程序3個(gè)方面對(duì)基于嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)進(jìn)行了設(shè)計(jì)。最后還通過(guò)實(shí)際采集正弦波信號(hào)對(duì)系統(tǒng)進(jìn)行了測(cè)試,并提出了3個(gè)方法有效地提高了數(shù)據(jù)采集系統(tǒng)的傳輸速度。本系統(tǒng)能在擁有USB接口的嵌入式設(shè)備上方便地進(jìn)行連接和安裝,是數(shù)據(jù)采集應(yīng)用的一個(gè)重要部分。

    (審核編輯: 小丸子2)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。