當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

摘要:USB接口的通用性和簡(jiǎn)便性使其成為數(shù)據(jù)采集系統(tǒng)嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)傳輸?shù)睦硐脒x擇。因此,設(shè)計(jì)一款以單片機(jī)控制MAX197芯片進(jìn)行模數(shù)轉(zhuǎn)換,以及通過USB接口芯片PDIUSBD12進(jìn)行數(shù)據(jù)傳輸?shù)牟杉到y(tǒng),并詳細(xì)介紹了單片機(jī)固件程序和嵌入式驅(qū)動(dòng)程序的具體實(shí)現(xiàn)。最后通過實(shí)際采集正弦波信號(hào)進(jìn)行測(cè)試以驗(yàn)證該系統(tǒng)的可用性,并針對(duì)出現(xiàn)的問題提出了相應(yīng)的改善措施。改善后的整個(gè)系統(tǒng)功耗低、可靠性高,傳輸速度能滿足實(shí)際的數(shù)據(jù)采集任務(wù)。
關(guān)鍵詞:數(shù)據(jù)采集系統(tǒng);USB接口開發(fā);嵌入式系統(tǒng);驅(qū)動(dòng)程序開發(fā);MAX197;PDIUSBD12

    數(shù)據(jù)采集任務(wù)多在戶外進(jìn)行,所以數(shù)據(jù)采集系統(tǒng)通常要滿足實(shí)時(shí)性、專用性、可靠性和低功耗等性能,這些特性在嵌入式系統(tǒng)中都能得到很好的體現(xiàn),因此本文將以WindowsCE的嵌入式平臺(tái)來(lá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)控制中心。本系統(tǒng)采用單片機(jī)提供地址數(shù)據(jù)復(fù)用總線、選通信號(hào)(D12_CS和AD_CS),讀寫信號(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寫入其特定的命令從而選擇指定的通道進(jìn)行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后,MAX197向單片機(jī)輸出低電平的AD_INT信號(hào),單片機(jī)采用輪詢方式檢測(cè)到后通過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)行讀寫均需通過信號(hào)D12_INT向單片機(jī)發(fā)送中斷,單片機(jī)響應(yīng)中斷后只需對(duì)PDIUSBD12的不同寄存器進(jìn)行讀寫操作就可以利用USB進(jìn)行數(shù)據(jù)傳輸。
1.2 固件程序設(shè)計(jì)
    硬件設(shè)備需要固件程序的控制以保證其正常運(yùn)行,本文所設(shè)計(jì)的固件程序主要用于識(shí)別USB設(shè)備以及采集與傳輸數(shù)據(jù)。固件程序的總體流程如圖2所示。

[!--empirenews.page--]
    1)設(shè)備識(shí)別。USB設(shè)備的識(shí)別過程分別由操作系統(tǒng)和設(shè)備驅(qū)動(dòng)兩個(gè)部分通過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ān)描述符進(jìn)行資源配置并使能傳輸端點(diǎn),從而為應(yīng)用程序提供接口。
    2)數(shù)據(jù)采集與傳輸。通過單片機(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è)備的讀寫操作則通過外部中斷實(shí)現(xiàn),定時(shí)器中斷優(yōu)先級(jí)高于外部中斷以保證采集頻率固定為1 000 Hz。主機(jī)端通過寫操作向USB設(shè)備發(fā)送控制信息,包括設(shè)備啟動(dòng)和停止的相關(guān)初始化與清理的工作,其中在對(duì)USB設(shè)備進(jìn)行讀操作前要先在端點(diǎn)的緩沖區(qū)填寫64字節(jié)數(shù)據(jù)并通過命令使其有效,不然主機(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)開發(fā)人員實(shí)現(xiàn)。HCD模塊處于最底層,是CPU中USB控制器的驅(qū)動(dòng),為USBD模塊提供底層的功能訪問服務(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ù)。因此,要成功開發(fā)USB設(shè)備的驅(qū)動(dòng)程序,在操作系統(tǒng)定制的時(shí)候就需要把HCD和USBD的相關(guān)組件添加進(jìn)去。
    本文開發(fā)的USB設(shè)備驅(qū)動(dòng)程序是流接口形式的驅(qū)動(dòng)程序,它被設(shè)計(jì)用來(lái)與通常的文件系統(tǒng)API(如CreateFile、ReadFile和WriteFile等)進(jìn)行通信,應(yīng)用程序通過對(duì)文件系統(tǒng)的操作來(lái)完成對(duì)設(shè)備的控制。本驅(qū)動(dòng)所設(shè)計(jì)的流接口如表1所示。

[!--empirenews.page--]

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


    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ā)生畸變,可見采集數(shù)據(jù)在USB傳輸過程中發(fā)生丟失。
    第一點(diǎn)結(jié)論說明了本采集系統(tǒng)能準(zhǔn)確地進(jìn)行數(shù)據(jù)采集,而對(duì)于第二點(diǎn)結(jié)論所表現(xiàn)出的不完整性分析如下。
    1)設(shè)V1是有效數(shù)據(jù)的傳輸速度,V2是協(xié)議開銷的傳輸速度,N為采集數(shù)據(jù)的通道數(shù)目,M為每通道采集的字節(jié)數(shù),H為采集頻率,K為緩沖區(qū)大小,U為傳輸?shù)膮f(xié)議開銷字節(jié)數(shù)。USB數(shù)據(jù)幀的組成包括有效數(shù)據(jù)和協(xié)議開銷兩個(gè)部分,其中傳輸協(xié)議的開銷包括同步字段、包標(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é)議開銷,本文設(shè)計(jì)的數(shù)據(jù)傳輸過程分為4個(gè)步驟:發(fā)送傳輸請(qǐng)求,發(fā)送接收控制命令,接收請(qǐng)求應(yīng)答,開始接收數(shù)據(jù),每個(gè)步驟均需傳輸一個(gè)完整的USB數(shù)據(jù)幀,因此進(jìn)行一次傳輸?shù)膮f(xié)議開銷為44個(gè)字節(jié),根據(jù)公式(3)可計(jì)算出協(xié)議開銷的傳輸速度。以緩沖區(qū)的大小為橫坐標(biāo),數(shù)據(jù)采集系統(tǒng)要求的USB傳輸速度為縱坐標(biāo)繪出圖4所示的關(guān)系圖,分析該圖可得:緩沖區(qū)越大,所要求的USB傳輸速度越少。測(cè)試中較少的128字節(jié)緩沖區(qū)使得在一次傳輸中有效數(shù)據(jù)過少,約5.5 kB/s的額外開銷傳輸速度約占總速度的25%,過高的額外傳輸開銷導(dǎo)致數(shù)據(jù)來(lái)不及傳輸,從而發(fā)生數(shù)據(jù)丟失的情況。
   
    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ì)覆蓋沒來(lái)得及傳輸?shù)呐f數(shù)據(jù),另一方面可以讓USB設(shè)備在一次USB數(shù)據(jù)幀的傳輸中所含有的有效數(shù)據(jù)更多,從而減少在傳輸過程中的校驗(yàn)、識(shí)別和握手等USB協(xié)議的額外開銷,加快傳輸速度。
    3)在應(yīng)用程序控制USB設(shè)備時(shí)將新建2條線程,一條進(jìn)程用于向USB設(shè)備進(jìn)行讀寫操作來(lái)進(jìn)行數(shù)據(jù)采集,另一條進(jìn)程用于向嵌入式系統(tǒng)的SD卡這類低速設(shè)備進(jìn)行讀寫操作來(lái)記錄數(shù)據(jù),利用操作系統(tǒng)分時(shí)復(fù)用的特性減少數(shù)據(jù)記錄過程對(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ì)。最后還通過實(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è)重要部分。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉