• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于USB總線接口的控制系統設計

      2012-08-10 03:40:28楊翠軍
      通信技術 2012年8期
      關鍵詞:固件PC機驅動程序

      朱 靜,錢 敏,楊翠軍

      (蘇州大學 電子信息學院微電子系,江蘇 蘇州 215006)

      0 引言

      通用串行總線是一種高效、快速、雙向和支持熱插拔的新型接口,可實現 PC機與外設的通信。同時,它使用了一種易于擴展的結構,理論上可接127個設備[1]。當前,越來越多的電子產品中都會涉及到USB接口。因此,對基于USB接口的通信系統的研究是非常必要的。目前USB3.0協議已經制定并將大行其道。

      基于USB接口設計了符合USB1.1協議的控制系統。整個系統通過 PC機的應用程序界面控制操作,USB接口負責單片機與PC機的通信??傮w設計方案為:選用 Atmel公司的 MCU芯片STC89C52RC和Philips公司的USB控制接口芯片PD12,進行系統的硬件設計和軟件編程。硬件設計主要是 PD12與單片機間的接口電路及外圍電路單元(如LCD、按鍵),軟件分為3部分:①固件,控制PD12識別USB數據流、輸入輸出等;②USB功能設備驅動程序,介于硬件和應用軟件之間,提供橋梁作用;③客戶應用程序,完成頂層軟件對底層硬件的控制。

      1 USB協議及PD12簡介

      USB是一種數據傳輸總線協議。首先,USB系統被定義為3部分: ①USB的連接;②USB的主機;③USB的設備。主機在USB通信中居于核心地位,它與USB設備的通信模型如圖1所示。主機和設備都被劃分成不同的層次[2],每個層次的實現對USB有不同的要求。

      圖1 USB通信模型之間的基本信息流

      USB數據流是協議中的重點內容。從邏輯上講,USB數據的傳輸是通過虛擬管道進行的。實際上,主機與設備的通信過程如下:設備驅動程序首先調用USB驅動接口(USB Driver Interface)發(fā)出I/O請求(IRP, I/O Request Packet);USB驅動程序收到該請求后,調用主控制器接口,將IRP轉化為USB的基本傳輸;通過主控制器將該傳輸解析成總線操作并以數據包(Packet)的形式輸出。

      USB發(fā)展經歷了1.0、1.1、2.0、3.0版本,由于本項目中數據傳輸速率要求不高,故采用符合USB1.1的PD12芯片。它是USB控制接口芯片,集成了SIE、FIFO存儲器、收發(fā)器及電壓調整器[3]。是一款帶有并行總線的USB器件,支持本地DMA傳輸。這些特點在系統實現時能節(jié)約成本,外設能實現更高級的USB功能。PD12需單片機配合才能完成USB通信,單片機利用讀寫外部存儲器方式來執(zhí)行該芯片的通信功能命令。

      2 硬件系統設計框圖及介紹

      基于 USB接口的控制系統硬件組成包括單片機、USB接口芯片及一些外圍電路元件(如數碼管、LED發(fā)光管、蜂鳴器等)。如圖2所示是系統硬件設計框圖,主要由5個部分組成:PC主機用于對后臺的控制;USB接口是主機和外設之間連接的橋梁;USB接口芯片完成數據通信功能,并讀入微控制器中處理;微控制器選用STC89C52RC芯片,完成各部分控制功能和USB傳輸協議;外圍電路元件用來檢驗系統的通信是否成功。

      圖2 系統的組成框

      3 固件設計

      固件是運行于單片機中的前臺控制程序,采用KeilC51編譯生成。為了使PD12在USB上的數據傳輸速率盡可能大,固件被設計成完全的中斷驅動模式,前后臺分開工作,并通過事件標志和 Setup包數據緩沖區(qū)來實現數據的交換[4]。通常,USB固件程序包含3部分:①初始化整個電路;②主循環(huán)部分;③中斷服務程序。

      固件軟件系統結構模塊[4]如圖3所示。

      圖3 系統固件的結構

      硬件提取層:它是固件最低層的代碼,完成對單片機I/O口和硬件接口進行操作。

      PD12命令接口:對PD12的所有功能進行訪問并操作,簡化PD12編程。

      中斷服務程序:對 PD12發(fā)出的中斷請求進行處理,從 PD12內部讀數據到存儲器,并設置事件標志,以便主循環(huán)進一步處理。

      標準請求和廠商請求:對協議中各種標準請求以及用戶添加的特殊請求進行處理。

      主循環(huán):首先初始化微控制器單元的所有端口、存儲器和中斷服務程序,然后進入循環(huán),輪詢各種狀態(tài)并進行相應的處理。

      該程序結構具有高度的可移植性以及很好的可擴展性,它按功能將復雜的過程分成多個簡單的模塊處理,采用事件標志和緩沖存儲,有效地將各個模塊聯系起來,能夠完成微控制器和 PC機之間的USB通信。

      4 USB設備驅動程序設計

      由于Windows中沒有現成的驅動程序支持設備的使用,因此必須編寫與 PD12數據通信相匹配的功能層設備驅動程序。

      設備驅動程序提供操作系統與硬件的接口,支持用戶與應用程序間的信息交換。軟件程序在Visual C++6.0的環(huán)境下完成,使用Compuware公司的 DriverStudio工具生成驅動程序框架[5],用戶對其進行修改并加入自己的功能代碼,大大縮短了開發(fā)的時間。

      采用 Windows驅動程序模型(WDM, Windows Driver Model),其架構如圖4所示。它是一種基于Windows平臺的設備驅動程序模型,采用靈活的分層處理方法,不僅可以接收來自其上層驅動程序提供的相關服務,而且可以通過發(fā)送IRP請求與其他驅動程序進行通信[6]。

      圖4 WDM型的USB驅動程序架構

      USB驅動程序的工作流程如下:首先,用戶應用程序調用Windows API函數,向驅動程序發(fā)出請求,并將相關數據打包成IRP,IO管理器捕獲IRP并進行相應處理;然后,IO管理器向USB功能設備驅動程序發(fā)送IRP包,請求功能設備驅動程序進行相應處理;最后,功能設備驅動程序處理完接收到的 IRP,設好相關環(huán)境后將其傳給更底層的驅動程序,由總線驅動程序完成對硬件的操作,并將結果返回。中間層驅動程序相當于過濾器,可不做任何事,只是向下傳遞IRP。

      5 USB設備應用程序設計

      USB設備應用程序的作用是為主機與 USB外設提供通信橋梁,實現主機對 PD12的管理與操作,為用戶提供友好的人機交互界面。它是系統與用戶的接口,不能直接去訪問USB設備,必須通過調用驅動程序來完成對外圍設備的控制和通信。

      應用程序在Visual C++6.0環(huán)境中開發(fā)實現,使用它提供的微軟基礎類(MFC, Microsoft Foundation Class)來編寫程序,MFC對Win32 API函數進行封裝,提供了大量的類庫和代碼支持[7],可實現大部分API功能,大大簡化了應用程序的編程。

      應用程序主要向硬件發(fā)送數據或命令。它與驅動程序的通信主要是通過驅動程序提供的函數來實現的,過程如下:應用程序首先調用 CreateFile函數打開 USB設備,獲得設備句柄;然后利用該句柄,應用程序調用DeviceIoControl函數與WDM驅動程序進行通信;最后在退出應用程序之前,應調用CloseHandle函數來關閉該USB設備[8]。

      圖5為PC機與USB設備進行通信的應用程序簡單界面。首次將前臺被控端與 PC機相連需安裝驅動程序,用戶基于該界面在 PC端進行各功能的操作,如在文本框中輸入字符、點擊相關按鈕等,設備端可以作出相應的反應。調試結果表明,數據在該系統中傳輸無誤,程序運行正??煽俊?/p>

      圖5 應用程序簡單界面

      6 結語

      提供了一種基于USB接口的控制系統的設計方法,通過實際的硬件實現和軟件調試,數據能夠在該系統中快速無誤地傳輸,可應用在各種電子產品中實現與PC機進行準確的數據傳輸[9]。但在硬件通信協議方面,可以選用符合 USB2.0協議的接口芯片,加快通信的速度,使圖像傳輸等高速通訊成為可能。在軟件方面,設計的方式和源代碼的實現可以采用更優(yōu)化的方法。相信隨著USB總線技術的不斷發(fā)展,它的應用領域會越來越廣闊。

      [1] 邊海龍, 賈少華. USB2.0設備的設計與開發(fā)[M]. 北京:人民郵電出版社,2004.

      [2] 胡曉軍, 張愛成. USB接口開發(fā)技術[M]. 西安:西安電子科技大學出版社,2005.

      [3] 胡凱, 龔莉萍, 陳云榕. 基于 USB2.0的數字高速采集設備設計[J]. 通信技術, 2009, 42(07):45-47.

      [4] 周立功. PDIUSBD12固件編程與驅動開發(fā)[M]. 北京:北京航空航天大學出版社,2003.

      [5] 陳亞娟. USB廣播播放控制系統設計[J]. 通信技術,2009, 42(02):292-294.

      [6] 武安河. Windows2000/XP WDM設備驅動程序開發(fā)[M].北京:電子工業(yè)出版社,2005.

      [7] 張岳新. Visual C++程序設計[M]. 蘇州:蘇州大學出版社,2002.

      [8] 鄢斌. 基于USB接口密碼模塊的可信計算平臺設計[J].信息安全與通信保密,2011(05):107-109.

      [9] 張建軍, 杜莉. 防跟蹤 USB接口加密狗的設計[J]. 信息安全與通信保密,2010(10):58-59,62.

      猜你喜歡
      固件PC機驅動程序
      基于PC機與單片機的多機通信技術及抗干擾方法
      基于三菱FXPLC的感應淬火機床與PC機的串行通信實現
      VC.NET下實現dsPIC單片機與PC機的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      基于固件的遠程身份認證
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      一種通過USB接口的可靠固件升級技術
      奧林巴斯XZ—2新固件升級
      中國攝影(2014年1期)2014-02-24 01:50:23
      驅動程序更新與推薦
      驅動程序更新與推薦
      驅動程序更新與推薦
      兴和县| 辉南县| 凌海市| 易门县| 徐水县| 颍上县| 玉环县| 渑池县| 太和县| 铁岭市| 石河子市| 嵩明县| 会宁县| 花莲市| 彭泽县| 麻城市| 溆浦县| 孝感市| 札达县| 咸阳市| 龙里县| 宁明县| 金阳县| 东兰县| 邵武市| 方正县| 青河县| 泗阳县| 忻城县| 金沙县| 灵宝市| 友谊县| 丹巴县| 顺平县| 新邵县| 湛江市| 靖宇县| 建宁县| 噶尔县| 永胜县| 武夷山市|