當前位置:首頁 > 消費電子 > 消費電子
[導讀]通用串行總線(USB,universalserialbus)由于具有高傳輸速率、即插即用和易于擴展等優(yōu)點而被廣泛應用于計算機外設、數(shù)字設備和儀器儀表等領域。ARM嵌入式處理器因其低廉的成

通用串行總線(USB,universalserialbus)由于具有高傳輸速率、即插即用和易于擴展等優(yōu)點而被廣泛應用于計算機外設、數(shù)字設備和儀器儀表等領域。ARM嵌入式處理器因其低廉的成本和較好的性能被廣泛地應用于企業(yè)應用、汽車系統(tǒng)、家庭網(wǎng)絡和無線技術等市場領域。將USB與ARM相結合是進行數(shù)據(jù)采集、處理與傳輸?shù)睦硐虢鉀Q方案。

1、USB數(shù)據(jù)采集系統(tǒng)概述

USB數(shù)據(jù)采集系統(tǒng)由主機和USB設備兩部分組成,如圖1所示。本系統(tǒng)中,PC作為USB主機,USB采集模塊作為USB設備,通過USB接口與主機相連。模塊與主機連接之后,主機能夠正確識別設備并將設備初始化(枚舉)。設備初始化完畢后,主機向采集模塊發(fā)送采集命令和任務參數(shù)。采集模塊正確接收命令后將命令解析并執(zhí)行,然后通過USB接口將采集到的數(shù)據(jù)回傳到主機上。

從層次上劃分,USB系統(tǒng)的軟、硬件資源可劃分為3個層次:總線接口層、設備層及功能層。接口層涉及的是具體的物理層,主要實現(xiàn)物理信號和數(shù)據(jù)包的交互,它包括物理鏈接、電信號環(huán)境和包傳輸機制;設備層主要提供USB基本協(xié)議棧,執(zhí)行通用的USB的各種操作和請求命令,從邏輯上講就是USB系統(tǒng)軟件與USB邏輯設備之間的數(shù)據(jù)交換;功能層提供每個USB設備所需的特定功能,包括客戶應用軟件和設備功能塊,它們之間有直接的邏輯對應關系。這種對應關系說明在邏輯上客戶應用軟件只需考慮如何實現(xiàn)具體設備功能即可。USB的層次結構對應關系如圖2所示。

 

 

圖1 USB數(shù)據(jù)采集系統(tǒng)組成

2、數(shù)據(jù)采集系統(tǒng)方案設計

在系統(tǒng)開發(fā)中選用集成度高的器件,不僅開發(fā)方便,而且所開發(fā)的系統(tǒng)的性能及其可靠性也較高。另一方面,由于USB接口設備是采用總線供電的,考慮到總線輸出功率有限,盡量采用集成度高的器件有利于降低USB總線的負荷。但選用集成度高的器件及其開發(fā)工具會導致成本的提高,所以要綜合各種因素統(tǒng)籌考慮。

 

 

圖2 USB系統(tǒng)的層次對應關系

當前,USB的開發(fā)方法主要有兩種:一種采用具有USB接口的MCU,另一種采用普通MCU和USB通信芯片。后者是目前被廣泛采用的方法,技術相對成熟,開發(fā)成本較低。由于STM32ARM本身自帶A/D轉換器和USB控制器,僅需一片ARM即可完成采集與傳輸?shù)墓δ埽虼藷o需再外加USB通信芯片,但是調(diào)試的成本較大。

本模塊選用的處理器STM32F103是意法半導體新近推出的STM32的增強型系列處理器,主頻為72MHz,帶有片內(nèi)RAM和USB2.0接口、16通道的12位A/D轉換器等豐富的外設。其中系統(tǒng)集成的雙ADC結構允許雙通道采樣/保持,能夠實現(xiàn)12位的轉換精度、1μs的轉換速度。由于STM32豐富的片內(nèi)資源,本數(shù)據(jù)采集模塊僅需一片STM32F103以及常見的外部電路即可,電路結構簡單緊湊。數(shù)據(jù)采集模塊的硬件組成框圖如圖3所示。

 

 

圖3 數(shù)據(jù)采集模塊的硬件組成框圖

整個數(shù)據(jù)采集模塊采用外部USB取電,USB的+5V電壓經(jīng)由LD1117穩(wěn)壓芯片轉換成3.3V供ARM及外設使用。復位電路能夠完成上電復位與手動復位。由于USB工作的時鐘頻率為48MHz,所以選用8MHz外部晶振經(jīng)由9倍頻為72MHz作為系統(tǒng)主頻,72MHz再1.5分頻后得到準確的48MHz時鐘。為了提高采集的效率,在ARM的內(nèi)存空間開辟4KB作為數(shù)據(jù)緩沖區(qū)。外部模擬信號送入A/D轉換器進行模數(shù)轉換。A/D每次轉換結束之后,使用DMA方式將轉換后的16位數(shù)據(jù)順序搬移到數(shù)據(jù)緩沖區(qū)中。待緩沖區(qū)滿后,將4KB數(shù)據(jù)打包經(jīng)由USB總線回傳到PC主機,由應用程序進行數(shù)據(jù)處理。

3、軟件設計與實現(xiàn)

系統(tǒng)軟件設計包括3個部分:固件驅動程序開發(fā)、USB設備驅動程序開發(fā)、主機應用程序開發(fā)。三者是一個有機整體,缺一不可,需要互相配合,才能完成可靠、高速的數(shù)據(jù)采集與傳輸。3.1STM32F10xxxUSB固件驅動程序庫簡介STM32F10xxxUSB固件驅動程序庫是意法半導體公司專為STM32F10xxx系列ARM微處理器提供的固件驅動程序庫,其主要用途是利用STM32F10xxx系列微控制器中的USB宏單元來簡化應用開發(fā)。USB固件庫分為內(nèi)核層和應用接口層兩個層次,層次結構框圖如圖4所示。

 

 

圖4 USB固件庫層次結構框圖

內(nèi)核層:該層管理使用USBIP硬件與USB標準協(xié)議兩者間的直接通信。USB庫內(nèi)核遵從USB2.0標準并和標準的STM32F10xxx固件庫分離。

應用接口層:該層為用戶提供了內(nèi)核和最終應用之間的完整接口。

在USB內(nèi)核層,采用調(diào)用構造體函數(shù)指針的方法調(diào)用應用回調(diào)函數(shù),用這樣的方法將USB內(nèi)核層與應用接口層連接在一起。在實際應用中,開發(fā)人員可以不對內(nèi)核層進行十分深入的理解,也無需對內(nèi)核層函數(shù)進行修改,僅對應用接口層函數(shù)進行必要的修改即可。

3.2、固件驅動程序設計

固件驅動程序(又稱單片機程序)是指固化到CPU模塊內(nèi)的軟件。固件程序采用模塊化設計,主要模塊包括:數(shù)據(jù)采集控制模塊和數(shù)據(jù)通信模塊兩大部分。模塊化設計的優(yōu)點是可靠性高、可讀性好、軟件改動簡單。

USB設備在上電之后需要首先完成系統(tǒng)時鐘配置及片內(nèi)外設的初始化操作。設備初始化完畢后,采集命令的接收、解析及數(shù)據(jù)傳輸?shù)乃胁僮骶谥袛喾粘绦蛑型瓿?。中斷源及對應功能如?所列。定時器3為節(jié)拍發(fā)生器,定時器中斷用于定時觸發(fā)A/D轉換器采樣與轉換。DMA通道1產(chǎn)生中斷表明4KB數(shù)據(jù)緩存已滿,可以將AD采樣數(shù)據(jù)打包并通過USB發(fā)送。

表1中斷源及對應功能

 

 

3.3、驅動程序設計

USB設備驅動程序介于USB硬件與數(shù)據(jù)采集系統(tǒng)應用程序之間,為它們之間的通信提供橋梁。USB的驅動程序屬于WDM(Windowsdrivermodel)類型,Windows98/2000等操作系統(tǒng)均支持該類型的驅動程序[3]。USB驅動程序使用DriverStudio中的Driverworks2.7編寫。DriverWorks提供了3個函數(shù)類:KUsbLowerDevice,KUsbInterface和KUsbPipe類,用于實現(xiàn)USB設備操作。KUsbLowerDevice類用于邏輯設備的編程,KUsbInterface類用于接口的編程,KUsbPipe類用于管道的編程。最基本的例程有設備的啟動、停止、卸載、讀寫、設備控制等例程。

在端點初始化時,定義最大傳輸字節(jié)數(shù)為4096B。而固件每次傳輸字節(jié)數(shù)最大為64B,因此傳輸4096B的數(shù)據(jù)需要將數(shù)據(jù)分成32包分包發(fā)送,主機接收數(shù)據(jù)拼包的過程由驅動程序自動完成。

3.4、應用程序設計

用戶應用服務程序直接面向用戶,是控制數(shù)據(jù)采集軟件的最上層,不僅提供與用戶交互的界面,還能通過發(fā)送各種控制命令來控制采集模塊的工作。在Windows中,應用程序實現(xiàn)與WDM的通信過程是:應用程序先用CreateFile函數(shù)打開設備,然后用DeviceIOControl與WDM進行通信,包括從WDM中讀數(shù)據(jù)和寫數(shù)據(jù)給WDM兩種情況,也可以用ReadFile從WDM中讀數(shù)據(jù)或用WriteFile寫數(shù)據(jù)給WDM。當應用程序退出時,用CloseHandle關閉設備。表2列出了幾種常用的分發(fā)例程及其所對應的Win32函數(shù)。

表2常用的分發(fā)例程

 

 

采集卡控制的軟件流程圖如圖5所示。首先需要打開設備,如果設備沒有被找到,則會顯示錯誤信息;如果設備能夠被正確識別,則需要繼續(xù)設置采樣頻率。正確設置采樣頻率后就可以單擊開始接收數(shù)據(jù)按鈕接收數(shù)據(jù)了。發(fā)送區(qū)會不停顯示出已發(fā)送的命令串,在接收區(qū)則會不停顯示出接收到的數(shù)據(jù)包編號。如果需要停止數(shù)據(jù)采集,只需單擊停止數(shù)據(jù)采集按鈕即可。

 

 

圖5 應用軟件流程圖

程序在實現(xiàn)數(shù)據(jù)可視化的過程中,使用了AcTIveX控件。AcTIveX與具體的編程語言無關,利用AcTIveX控件可以較好地實現(xiàn)可視化的外觀效果,從而逼真、形象地顯示工業(yè)應用中的各種儀器、儀表設備的外觀。本應用中利用了LabVIEW中一個名為NTGraph的AcTIveX控件,實現(xiàn)了數(shù)據(jù)的可視化輸出。實際測試時使用了頻率為1kHz的正弦波信號,實測截圖如圖6所示。

 

 

圖6 實測波形

4、結束語

該數(shù)據(jù)模塊經(jīng)過實際測試,效果良好,整個系統(tǒng)工作正常,最高采樣頻率為300kHz,達到了預期設計的數(shù)據(jù)采集控制與數(shù)據(jù)傳輸?shù)哪康?,與虛擬儀器的結合必將帶來廣闊的應用前景。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉