亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于USB總線接口的控制系統(tǒng)設計

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

        朱 靜,錢 敏,楊翠軍

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

        0 引言

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

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

        1 USB協(xié)議及PD12簡介

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

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

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

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

        2 硬件系統(tǒng)設計框圖及介紹

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

        圖2 系統(tǒng)的組成框

        3 固件設計

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

        固件軟件系統(tǒng)結(jié)構(gòu)模塊[4]如圖3所示。

        圖3 系統(tǒng)固件的結(jié)構(gòu)

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

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

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

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

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

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

        4 USB設備驅(qū)動程序設計

        由于Windows中沒有現(xiàn)成的驅(qū)動程序支持設備的使用,因此必須編寫與 PD12數(shù)據(jù)通信相匹配的功能層設備驅(qū)動程序。

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

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

        圖4 WDM型的USB驅(qū)動程序架構(gòu)

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

        5 USB設備應用程序設計

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

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

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

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

        圖5 應用程序簡單界面

        6 結(jié)語

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

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

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

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

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

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

        [6] 武安河. Windows2000/XP WDM設備驅(qū)動程序開發(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機驅(qū)動程序
        基于PC機與單片機的多機通信技術及抗干擾方法
        基于三菱FXPLC的感應淬火機床與PC機的串行通信實現(xiàn)
        VC.NET下實現(xiàn)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
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        人妻少妇中文字幕久久| 亚洲 暴爽 AV人人爽日日碰| 日本高清不卡一区二区三区| 久久蜜桃资源一区二区| 欧美性猛交xxxx三人| 日本大片免费观看完整视频| 国产精品毛片99久久久久| 亚洲一区二区精品在线| 天天夜碰日日摸日日澡性色av| av无码免费永久在线观看| 美女超薄透明丝袜美腿| 日韩有码在线免费视频| 中文字幕人乱码中文字幕| 无码熟妇人妻av在线影片| 亚洲精品美女自拍偷拍| 女同亚洲一区二区三区精品久久| 国产av天堂亚洲国产av天堂| 午夜丰满少妇性开放视频| 波多野结衣一区二区三区免费视频| 国产一区二区熟女精品免费| 国产区精品一区二区不卡中文| 少妇内射高潮福利炮| 欧美人与动牲交片免费| 亚洲av产在线精品亚洲第三站| 亚洲av成人噜噜无码网站| 久久国产成人精品国产成人亚洲| 网红极品女神精品视频在线| 国产精品对白一区二区三区| 亚洲熟女一区二区三区| 国产综合自拍| 综合中文字幕亚洲一区二区三区| 给你免费播放的视频| 精品国精品无码自拍自在线| 国产视频嗯啊啊啊| 亚洲国产综合人成综合网站| 少妇粉嫩小泬喷水视频www| 高清国产日韩欧美| 人妻少妇粉嫩av专区一| 国产精品久久久久久av| 爽爽午夜影视窝窝看片| 91自国产精品中文字幕|