《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于USB接口的數據采集系統設計

基于USB接口的數據采集系統設計

2008-09-22
作者:蘭文武 付桂翠 高澤溪 高

??? 摘? 要: 以自行開發的基于USB接口的數據采集系統為例,介紹了USB接口的硬件和軟件開發過程。?

????關鍵詞: USB? 數據采集? PDIUSBD12

?

1? USB協議和芯片選擇?

??? 理解好USB協議是USB系統開發的第一步。USB協議版本包括1.0、1.1和2.0,USB OTG是對2.0版本協議的補充。雖然USB協議內容繁多且復雜,然而,對USB開發影響較大的卻只是少數部分,以下對協議版本1.1[1]中這些部分進行介紹。?

1.1 USB協議?

??? 一般,每個USB設備由一個或多個配置(Configuration)控制其行為。使用多配置原因是對操作系統的支持;一個配置由接口(Interface)組成;接口則是由管道(Pipe)組成;管道與USB設備的端點(Endpoint)對應,一個端點可以配置為輸入輸出兩個管道。在固件" title="固件">固件編程中,USB設備、配置、接口和管道都用描述符報告其屬性。?

??? 圖1為USB多層次通信模型。端點0默認配置為控制管道,用來完成所規定的設備請求(USB協議第九章)。其它端點可配置為數據管道。對開發而言,主要的大數據傳輸都是通過數據管道完成的[2]。?

?

?

??? USB傳輸類型包括批量傳輸、等時傳輸、中斷傳輸和控制傳輸,每種傳輸類型的傳輸速度" title="傳輸速度">傳輸速度、可靠性以及應用范圍都不同[3]??刂苽鬏斂煽啃允亲罡叩?但速度最慢;等時傳輸速度快,滿足實時性,但可靠性低。在具體應用中,端點傳輸類型可根據傳輸速度和可靠性選擇。?

??? 在USB通信協議中,主機取得絕對主動權利,設備只能是“聽命令行事”,通過一定的命令格式(設備請求)完成通信。USB設備請求包括標準請求、廠商請求和設備類請求。設備的枚舉是標準請求命令完成的;廠商請求是用戶定義的請求;設備類請求是特定的USB設備類發出的請求,例如海量儲存類、打印機類和HID(人機接口)類。固件編程中設備請求必須遵循一定的格式,包括請求類型、設備請求、值、索引和長度。?

1.2 USB接口芯片" title="接口芯片">接口芯片選擇?

??? USB接口芯片的類型有:?

??? (1)按傳輸速度的高低:低速(1.5Mbps)和全速(12Mbps)可選USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可選USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。?

??? (2)是否帶MCU(微控制器):一般Philips公司的都不帶MCU,Cypress公司大多都帶,例如AN2131。?

??? (3)是否帶主控器功能:不需要主機參與,主從設備間可進行數據傳輸,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。?

??? 還有專門用途USB芯片,例如閃存專用芯片IC1114。工程中用戶可根據自己的需求選擇一款性價比高的芯片。另外可用開發資源也是要考慮的重要方面,例如開發板和芯片廠商提供的網上資源,可大大降低開發的難度。?

2 基于USB接口的數據采集系統的設計?

2.1 系統簡介?

??? 該系統能夠實現16路溫度數據自動采集,系統的組成框圖如圖2所示。主要包括8個組成部分:中央處理器選用AT89C52芯片,完成各部分控制功能和USB傳輸協議;實時時鐘記錄當前測量溫度的時間;溫度傳感器和接口電路主要完成溫度采集,并讀入MCU處理;復位電路完成對MCU的上電復位和電源電壓監視;看門狗電路用來監視MCU是否工作;存儲電路主要存儲采集到的溫度數據以及采集的實時時間;電源電路主要為各部分提供要求的電源;外設與主機間的通信電路采用USB接口。?

?

?

2.2 接口芯片選擇?

??? 接口電路采用Philips公司的PDIUSBD12[4](以下簡稱為D12)芯片。主要因為D12芯片信息、開發資源豐富,具有較高的性價比。?

??? D12芯片的主要特點包括:?

??? ·符合USB1.1版本規范;?

??? ·可與任何外部微控制器/微處理器實現高速并行接口(2MB/s);?

??? ·采用GoodLink技術的連接指示器,在通信時使LED閃爍;?

??? ·主端點的雙緩沖配置增加了數據吞吐量并輕松實現實時數據傳輸;?

??? ·在批量和等時模式下均可實現1MB/s的數據傳輸率;?

??? ·完全自治的直接內存存取DMA操作。?

2.3 接口硬件設計?

??? 由D12接口組成的通信電路原理如圖3所示。關于D12的各引腳說明見參考文獻[4]。多路地址/數據總線ALE接單片機的ALE腳,這樣使用MOVX指令可以與D12接口,對D12操作就象對RAM操作一樣,此時忽略A0(命令口和數據口地址線)的輸入。因為沒有使用DMA傳輸方式,所以沒有用到DMACK_N、 EOT_N和DMREQ_N DMA引腳。INT_N是USB中斷請求腳,發出USB中斷請求;GL_N是GoodLink指示燈,在調試過程中非常有用,在通信時會不停閃爍。如果一直亮或者一直暗,表示USB接口有問題,如果D12掛起,則LED關閉。CLKOUT是D12的時鐘輸出,可以通過固件編程改變其頻率,在調試固件時,可作為參考。?

?

?

2.4 接口程序設計?

??? USB接口程序設計" title="程序設計">程序設計是USB開發的核心。USB接口程序設計包括三部分:單片機程序開發、USB設備驅動程序開發、主機應用程序" title="應用程序">應用程序開發。三者互相配合,才能完成可靠、快速的數據傳輸。?

2.4.1 單片機程序設計?

??? 單片機程序(又稱固件)采用模塊化程序設計,主要模塊包括:數據采集模塊、數據處理、監控模塊和數據通信模塊。模塊化設計的優點是可靠性高、可讀性好、升級簡單。?

??? 通信模塊固件結構如圖4所示。主循環和中斷服務程序之間的數據交換可通過事件標志和數據緩沖實現。圖3中USB中斷引腳INT_N發出中斷請求,中斷服務程序根據中斷請求類型操作,設置事件和填充數據緩沖區再傳輸給主循環;標準設備請求程序是對標準請求進行處理;用戶可以根據實際需要編寫廠商請求,例如發出啟動或停止數據采集命令。?

?

?

2.4.2 驅動程序設計?

??? 驅動開發工具有DDK和第三方開發工具。其中DDK開發難度最大,第三方開發工具有DriverStudio和Windriver等。DriverStudio難度適中,而Windriver則屬于應用層驅動開發,難度小,但效率低,并存在發布問題。?

??? DDK驅動程序開發工作包括:開發環境設置(VC編譯環境)[5]、驅動程序設計[6]、安裝文件(INF文件)設計。?

??? 驅動程序設計采用WDM(Windows Drive Mode)。WDM設備驅動程序提供了一個參考框架,大大降低了由DDK書寫驅動程序帶來的難度。?

??? D12驅動使用的例程包括:DriverEntry、AddDevice、DispatchPnp、DispatchRead、DispatchWrite和DispatchDeviceControl例程, 以下是D12的WDM驅動程序函數:?

??? DriverObject->MajorFunction[IRP_MJ_CREATE] = D12_Create;?

??? DriverObject->MajorFunction[IRP_MJ_CLOSE] = D12_Close;?

??? DriverObject->DriverUnload = D12_Unload;?

??? DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] =D12_ProcessIOCTL;?

??? DriverObject->MajorFunction[IRP_MJ_WRITE] = D12_Write;?

??? DriverObject->MajorFunction[IRP_MJ_READ] = D12_Read;?

??? DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL]=?

??? DriverObject->MajorFunction[IRP_MJ_PNP]=D12_Dispatch;?

??? DriverObject->MajorFunction[IRP_MJ_POWER]=D12_ProcessPowerIrp;?

??? DriverObject->DriverExtension->AddDevice=D12_PnPAddDevice;?

??? 驅動程序與應用程序和硬件之間通信都是IRP(I/O請求包)完成的。IRP_MJ_PNP主要是實現USB即插即用,例如設備的添加、刪除和資源的分配;IRP_MJ_POWER實現電源管理,例如設備的掛起和喚醒;IRP_MJ_CREATE(創建)、IRP_MJ_CLOSE(關閉)、IRP_MJ_DEVICE_CONTROL(設備控制)、IRP_MJ_WRITE(讀)和IRP_MJ_READ(寫)是主要完成數據通信的函數,實現管道的創建、關閉和數據讀寫。其中設備控制具有輸入輸出緩沖區,可實現讀和寫功能;AddDevice和DriverUnload實現設備管理,在設備添加和卸載時,創建和刪除設備,以及管理資源分配。

??? 驅動程序通過安裝文件(.inf文件)中PID(產品識別號)和VID(廠商識別號)識別USB設備。?

2.4.3 應用程序設計?

??? 主機應用程序的編寫使用VC編譯環境中的API函數實現。 ?

??? 應用程序的編程方法與串口編程類似。首先必須查找設備,打開設備的句柄;然后進行讀寫和控制操作;最后是關閉設備句柄。為了提高效率,可使用多線程技術實現讀寫。?

??? 應用程序通過GUID(注冊表驅動唯一識別號)查找驅動程序。?

2.5 調 試?

??? 首先是固件調試,可用仿真機完成,驅動開發工具Windriver也是很好的固件調試工具,例如測試標準請求、廠商請求和管道讀寫。其次是驅動調試,這是USB接口開發最困難的部分,調試工具可用DriverStudio中Softice工具和文獻[6]中DebugPrint跟蹤工具,監視工具Bus Hound可監視USB的實際數據傳輸情況。需要注意的是,驅動調試必須在應用程序正確調用的前提下。?

2.6 USB傳輸速度?

??? 主機每過1ms發出一個SOF(起始幀),四種USB傳輸類型都分布在1ms的幀內。所以為了提高傳輸速度,可加大端點緩沖區的大小和使用雙緩沖(有些芯片還有四緩沖),在1ms內盡量多傳輸數據;采用DMA傳輸方式,USB設備不通過微控制器直接完成數據傳輸,當然相應硬件和軟件開發的難度增加;如果單片機數據加載速度較慢,則可考慮使用高速指令的單片機;如果速度要求在1MB/s以上,則考慮采用USB2.0接口芯片。?

??? 本文以USB接口程序在16路溫度采集系統中的應用為例,介紹了USB的接口標準和程序設計。該系統經過一段時間運行,穩定可靠,目前已廣泛應用于航空電子設備的測溫系統。?

參考文獻?

1 Universal Serial Bus Specification Reversion 1.1[S]. www.usb.org,1998?

2 周立功. PDIUSBD12 USB固件編程與驅動開發[M].北京:?北京航空航天大學出版社,2003?

3 許永和. EZ-USB FX系列單片機 USB外圍設計和應用[M]. 北京:北京航空航天大學出版社,2002?

4 PHILIPS. PDIUSBD12 Product Data[DB/OL]. www.philips.com,1999?

5 Christ Cant,孫 義譯.Windows WDM設備驅動程序開發指南[M]. 北京:機械工業出版社,2000?

6 Water Only. Programming the Microsoft Windows Driver?Mode[M]. Microsoft Press,1999

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          午夜精品亚洲| 久久精品国产一区二区三| 国产精品久久久久久久久久久久久| 久久这里只精品最新地址| 亚洲黄色性网站| 欧美激情第一页xxx| 亚洲第一久久影院| 老巨人导航500精品| 伊人蜜桃色噜噜激情综合| 亚洲欧美精品伊人久久| 欧美日本韩国一区二区三区| 在线一区欧美| 一区二区三区视频观看| 91久久亚洲| 久久久久综合一区二区三区| 欧美午夜不卡影院在线观看完整版免费| 国产精品扒开腿做爽爽爽软件| 久久天堂精品| 欧美激情1区2区| 国产精品人人做人人爽| 伊人精品久久久久7777| 免费中文日韩| 国产一区二区三区不卡在线观看| 国产欧美精品| 在线观看欧美成人| 国产深夜精品福利| 国语精品中文字幕| 久久综合国产精品台湾中文娱乐网| 日韩天天综合| 欧美人与性动交α欧美精品济南到| 久久尤物视频| 久久免费99精品久久久久久| 欧美一级淫片aaaaaaa视频| 亚洲欧美中日韩| 欧美一区二区三区在线视频| 香蕉久久精品日日躁夜夜躁| 欧美有码在线视频| 亚洲综合日韩在线| 国产精品啊v在线| 亚洲国产一区二区三区a毛片| 欧美日韩亚洲系列| 欧美日韩在线亚洲一区蜜芽| 黄色亚洲网站| 亚洲日本在线观看| 欧美精品三级在线观看| 欧美大香线蕉线伊人久久国产精品| 亚洲一区二区三区三| 欧美激情视频一区二区三区不卡| 在线天堂一区av电影| 亚洲欧美日韩电影| 久久久久se| 国产精品久久久久久久久久久久| 国产日韩欧美在线一区| 亚洲激情黄色| 久久免费视频观看| 国产精品亚洲片夜色在线| 久久综合久久综合久久综合| 欧美一级片一区| 国自产拍偷拍福利精品免费一| 欧美一级视频一区二区| 欧美国产精品| 国产精品久久影院| 亚洲国产精品嫩草影院| 日韩系列欧美系列| 国产精品乱子乱xxxx| 亚洲国产老妈| 136国产福利精品导航| 国产伦精品一区二区三区高清| 亚洲欧美中文日韩在线| 欧美一区二区免费观在线| 性欧美暴力猛交69hd| 欧美午夜不卡视频| 亚洲天堂免费在线观看视频| 欧美日韩国产首页在线观看| 亚洲国产精选| 国产精品99久久久久久www| 欧美二区在线看| 久久久久久尹人网香蕉| 欧美日韩在线大尺度| 国产精品国产亚洲精品看不卡15| 美女999久久久精品视频| 亚洲一区二区在线免费观看| 国产欧美在线看| 国产精品乱码一区二三区小蝌蚪| 国产亚洲一区二区在线观看| 一本色道久久88综合日韩精品| 久久福利毛片| 亚洲精品欧美一区二区三区| 国内精品国语自产拍在线观看| 欧美一区中文字幕| 男人天堂欧美日韩| 亚洲茄子视频| 欧美日韩裸体免费视频| 亚洲主播在线观看| 免费视频一区二区三区在线观看| 亚洲精品一区二区在线| 久久久久久夜精品精品免费| 欧美在线精品一区| 国产精品久久久久久一区二区三区| 尹人成人综合网| 国产精品精品视频| 国产精品嫩草影院av蜜臀| 久久久精品国产一区二区三区| 国产精品九九| 亚洲午夜未删减在线观看| 欧美在线观看日本一区| 一本久道久久综合中文字幕| 国产亚洲人成网站在线观看| 激情av一区二区| 亚洲午夜在线观看| 午夜精品亚洲一区二区三区嫩草| 一区二区三区高清不卡| 欧美www在线| 99热在线精品观看| 韩日在线一区| 国产精品视频第一区| 国产乱码精品1区2区3区| 亚洲午夜激情| 欧美喷潮久久久xxxxx| 亚洲素人一区二区| 美日韩精品免费| 国产午夜久久久久| 国产亚洲一二三区| 国产精品嫩草影院av蜜臀| 午夜精品999| 99国产精品国产精品久久| 久久天天躁夜夜躁狠狠躁2022| 亚洲精品日日夜夜| 国产综合自拍| 亚洲国产精品一区二区尤物区| 亚洲国产成人不卡| 国产一区二区三区四区hd| 激情久久中文字幕| 亚洲午夜激情在线| 欧美人牲a欧美精品| 国产精品每日更新在线播放网址| 另类春色校园亚洲| 欧美性视频网站| 亚洲综合首页| 影视先锋久久| 快射av在线播放一区| 久久人人97超碰精品888| 国产精品毛片一区二区三区| 欧美+日本+国产+在线a∨观看| 久久精品久久综合| 久久蜜臀精品av| 亚洲精品黄网在线观看| 国产原创一区二区| 亚洲一区二区三区精品在线| 尤物九九久久国产精品的特点| 国产日韩高清一区二区三区在线| 久久五月婷婷丁香社区| 久久精品中文字幕一区二区三区| 亚洲国产精品一区二区久| 欧美日韩国产一级| 国产视频久久网| 国产精品欧美日韩| 亚洲天堂av在线免费观看| 国产日韩欧美另类| 国产午夜精品理论片a级大结局| 国产精品成人观看视频国产奇米| 老色鬼精品视频在线观看播放| 久久婷婷国产综合尤物精品| 国产一区二区三区无遮挡| 午夜精品一区二区三区四区| 国产伦精品免费视频| 亚洲一区二区视频在线| 亚洲国产一区在线| 在线观看国产一区二区| 在线观看三级视频欧美| 中文一区字幕| 欧美成人一区二免费视频软件| 国产日产亚洲精品系列| 欧美喷水视频| 卡通动漫国产精品| 欧美一区中文字幕| 欧美精品www在线观看| 在线成人av| 激情六月综合| 母乳一区在线观看| 久久精品夜夜夜夜久久| 尤物yw午夜国产精品视频| 欧美一级成年大片在线观看| 亚洲一区二区成人| 国产美女精品一区二区三区| 久久人体大胆视频| 亚洲精一区二区三区| 欧美精品 国产精品| 一区二区欧美日韩| 午夜天堂精品久久久久| 欧美日韩一区综合| 激情久久婷婷| 欧美三区免费完整视频在线观看| 国产伦精品一区二区三| 国产一区二区三区四区老人| 久久伊人精品天天| 亚洲高清一区二区三区| 亚洲国产精品国自产拍av秋霞| 久久综合伊人| 国产精品国产三级国产专播精品人| 久久久精品免费视频| 久久国产精品网站| 国产亚洲欧美日韩在线一区| 欧美亚洲自偷自偷| 在线 亚洲欧美在线综合一区| 欧美国产精品va在线观看| 久久电影一区| 国产欧美精品| 亚洲每日在线| 久久久久久久一区| 国产精品视频不卡| 欧美韩日亚洲| 在线观看一区二区精品视频| 欧美精品久久久久久久免费观看| 亚洲欧美日韩国产一区二区三区| 久久精品视频亚洲| 欧美国产欧美综合| 亚洲国产精品一区二区久| 激情久久一区| 亚洲精品资源美女情侣酒店| 日韩视频中午一区| 亚洲精品乱码久久久久久蜜桃91| 欧美伦理91| 欧美mv日韩mv亚洲| 久久手机免费观看| 欧美精品激情| 老司机免费视频久久| 午夜精品久久久久久久99水蜜桃| 欧美少妇一区| 国精品一区二区三区| 国产一区二区三区视频在线观看| 日韩网站免费观看| 久久精品99无色码中文字幕| 欧美日韩在线三级| 亚洲综合电影一区二区三区| 亚洲深夜福利视频| 国产精品亚洲第一区在线暖暖韩国| 国产欧美va欧美不卡在线| 国产精品99久久99久久久二8| 久久gogo国模裸体人体| 欧美成人一区二区三区片免费| 免费精品99久久国产综合精品| 亚洲清纯自拍| 国产伦精品一区二区三区四区免费| 伊人色综合久久天天| aa级大片欧美三级| 亚洲视频在线观看免费| 欧美视频免费看| 国产精品麻豆va在线播放| 国产一区二区三区在线观看免费视频| 欧美精品一区在线| 欧美伦理91i| 国产精品黄色| 欧美日韩精品在线播放| 亚洲一区二区欧美| 国产精品久久久久久久午夜| 欧美激情自拍| 在线播放一区| 先锋影音国产精品| 欧美日韩123| 蜜桃久久精品乱码一区二区| 亚洲一区二区少妇| 国产日韩综合| 黄网站色欧美视频| 亚洲一区二区三区四区视频| 久久亚洲精品网站| 国产精品国产亚洲精品看不卡15| 欧美日韩国产va另类| 中文在线不卡| 国产精品大片免费观看| 欧美午夜电影在线| 猛男gaygay欧美视频| 尹人成人综合网| 国产欧美一区二区三区视频| 黄色在线一区| 国语自产精品视频在线看一大j8| 在线亚洲自拍| 久久精品女人天堂| 亚洲第一福利在线观看| 欧美色图首页| 亚洲免费激情| 亚洲综合色网站| 欧美色欧美亚洲另类七区| 99精品国产在热久久| 亚洲精品日韩综合观看成人91| 国产毛片久久| 欧美精品一区二区三区久久久竹菊| 国产女主播一区二区三区| 亚洲资源av| 国产一区二区日韩精品欧美精品| 性高湖久久久久久久久| 久久久久久噜噜噜久久久精品| 国模叶桐国产精品一区| 国产欧美日韩91| 国产精品一区久久| 亚洲一区二区动漫| 亚洲视频图片小说| 国产精品美腿一区在线看| 欧美韩国日本综合| 狠狠色综合播放一区二区| 国产精品美女黄网| 欧美视频在线播放| 亚洲第一精品在线| 欧美日韩成人在线播放| 久久久噜噜噜久久狠狠50岁| 91久久国产自产拍夜夜嗨| 欧美韩日一区二区三区| 欧美影院精品一区| 国产日本精品| 国产伦精品一区二区三区视频孕妇| 欧美女同视频| 久久嫩草精品久久久精品| 一区二区三区在线观看国产| 欧美国产综合一区二区| 一区二区成人精品| 亚洲午夜av在线| 欧美精品福利在线| 99精品视频免费观看视频| 午夜亚洲视频| 午夜精品成人在线视频| 一区二区三区日韩精品视频| 欧美日韩在线观看视频| 性色一区二区三区| 久久久久9999亚洲精品| 午夜精品久久久久久99热| 日韩午夜在线观看视频| 久久精品91久久香蕉加勒比| 在线不卡a资源高清|