www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]情報指揮系統(tǒng)維修模擬訓練器中采用USB作為計算機與仿真單體的接口,本文從工作原理、硬件設(shè)計、固件程序、主機程序和驅(qū)動程序五個方面論述了USB接口的開發(fā)過程,并給出了基于控制傳輸?shù)腢SB系統(tǒng)設(shè)計方法。

摘要:情報指揮系統(tǒng)維修模擬訓練器中采用USB作為計算機與仿真單體的接口,本文從工作原理、硬件設(shè)計、固件程序、主機程序和驅(qū)動程序五個方面論述了USB接口的開發(fā)過程,并給出了基于控制傳輸?shù)腢SB系統(tǒng)設(shè)計方法。
關(guān)鍵詞:USB;控制傳輸;固件;驅(qū)動

1、工作原理

情報指揮系統(tǒng)維修模擬訓練器屬于分布式仿真系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。其中,各仿真節(jié)點由單體計算機和仿真單體組成,仿真網(wǎng)絡(luò)采用局域網(wǎng),主控機用于集中配置各單體參數(shù),觸摸屏用于模擬操作界面。因為USB總線具有結(jié)構(gòu)簡單、即插即用、低功耗、廣泛的軟硬件支持等優(yōu)點,傳輸速度也從USB1.1協(xié)議支持的12Mbps 發(fā)展到了USB2.0協(xié)議支持的480Mbps,另外其星型拓撲結(jié)構(gòu)能支持多達127個外設(shè)同時工作,所以本系統(tǒng)采用USB總線來實現(xiàn)單體計算機和仿真單體之間的控制和通信。

圖1 系統(tǒng)框圖

1.1          USB的枚舉與重枚舉

USB芯片具有軟特性,外設(shè)可以利用USB接口從主機下載8051程序代碼到內(nèi)部RAM運行,而不需要外部程序存儲器,方便了固件調(diào)試和升級。為支持這種軟特性,USB將端點0作為默認地址,外設(shè)初次連接主機時作為默認設(shè)備使用端點0進行自動枚舉,當固件下載到內(nèi)部RAM后,經(jīng)過重枚舉使外設(shè)具有用戶在固件中設(shè)置的功能屬性。

外設(shè)和主機連接時會自動加載驅(qū)動程序,加載什么驅(qū)動程序由USB設(shè)備描述符中的VID(2個字節(jié))和PID(2個字節(jié))決定,默認設(shè)備的VID和PID是0547和2131。當有多個外設(shè)同時工作時,需要不同的VID和PID加以區(qū)分,可利用EEPROM來存儲外設(shè)的VID和PID信息,以便加載對應(yīng)的驅(qū)動程序。

1.2          USB傳輸類型

USB定義了控制、中斷、批量和同步四種數(shù)據(jù)傳輸類型??刂苽鬏斒亲顝?fù)雜和重要的傳輸類型,也是USB枚舉階段最主要的數(shù)據(jù)交換方式。USB設(shè)備初次連到主機后就是通過控制傳輸來讀取地址信息和設(shè)備描述符的,這樣主機才能識別設(shè)備并安裝相應(yīng)的驅(qū)動程序,其它三種傳輸方式也才能夠得以使用。因此,控制傳輸是其它三種傳輸?shù)那疤岷突A(chǔ)。

中斷傳輸主要用于數(shù)據(jù)量小、速度要求不高的數(shù)據(jù)傳輸,如鼠標、鍵盤等;批量傳輸主要用于大容量數(shù)據(jù)的傳輸,比如硬盤接口、刻錄機接口等;同步傳輸多用于音頻流等需要恒定傳輸速率的數(shù)據(jù)傳輸,比如音箱、顯示器的接口等。

在維修模擬訓練器中,單體計算機和仿真單體之間傳輸?shù)闹饕强刂菩畔?,?shù)據(jù)量不大,因此主要采用控制傳輸。

2、 USB硬件電路設(shè)計

USB硬件電路的核心是USB芯片,本電路采用的是Cypress公司提供的AN2131QC,封裝形式為80引腳PQFP。其結(jié)構(gòu)框圖如圖2所示,USB收發(fā)器與USB總線的 D+和D-相連,串行接口引擎對串行數(shù)據(jù)進行編碼和譯碼,并執(zhí)行錯誤更正、位填充等操作,最后發(fā)送數(shù)據(jù)字節(jié)到端口或從端口接收數(shù)據(jù)字節(jié)。內(nèi)部微處理器是一個改進的8051內(nèi)核,使用標準的8051指令系統(tǒng),但執(zhí)行速度更快,功能更強,與標準8051相比具有以下不同:

(1)一個總線周期包含4個時鐘周期,空閑周期被消去,而標準8051則為12個時鐘周期,因此速度提高了3倍;

(2)增加了第二個數(shù)據(jù)指針;

(3)增加了第二個UART;

(4)增加了第三個16位定時器;

(5)非多路復(fù)用的16位地址總線;

(6)增加了8個中斷。

設(shè)計AN2131QC的外圍電路時,要注意以下幾個問題:

(1)AN2131QC有總線供電和外部供電兩種供電方式,主機可以向外圍USB設(shè)備提供最大500mA的電流,當USB設(shè)備耗電小于500mA時就可以使用總線供電。AN2131QC的工作電壓是+3.3V,總線提供的電壓是+5V,可以用電壓轉(zhuǎn)換芯片MAX882或AMS1117進行電壓轉(zhuǎn)換。電源引腳2、21、22、42、62都接+3.3V,并通過一個0.1uF電容接地,使電壓更加穩(wěn)定。引腳5、6、13、14、72通過 1K電阻接地。

(2)USBD+和USBD-通過24Ω電阻接到USB總線的D+和D-,可抑制噪聲干擾。

(3)Xin(19)和Xout(20)之間接12MHz晶振,并通過兩個30pF電容接地。

(4)Reset(25)引腳通過0.1uF電容接+3.3V,10K電阻接地。

(5)SDA(64)、SCL(65)、Wakeup(66)、WR(40)、RD(41)通過10K上拉電阻接+3.3V。

3、 固件程序

USB固件程序用Keil C編寫,使用Keil uVision編譯器進行編譯調(diào)試。一個USB固件主要包括以下文件:

Fw.c:固件框架源文件,main()函數(shù)就位于該文件中;

Periph.c:用戶函數(shù)定義,用戶初始化函數(shù)TD_Init()和用戶函數(shù)TD_Poll()的定義就位于該文件中;

Dscr.a51:USB描述符表,對加載驅(qū)動程序有重要意義的VID和PID信息就位于該文件的設(shè)備描述符中;

Ezusb.lib:EZ-USB固件函數(shù)庫;

USBJmpTb.OBJ:中斷向量和跳轉(zhuǎn)表。

Ezusb.h、Ezregs.h:編寫程序時必須包括的頭文件,前者包含USB函數(shù)庫的常量定義、宏定義、全局變量聲明和函數(shù)原型等,后者包含位標志定義和寄存器變量聲明。

固件程序的運行流程如圖3所示,USB上電復(fù)位后進入main()函數(shù)先初始化內(nèi)部狀態(tài)變量,然后調(diào)用用戶初始化函數(shù)TD_Init()。從該函數(shù)返回后使能中斷,然后每隔1s進行一次設(shè)備重枚舉直到端點0接受到主機的SETUP數(shù)據(jù)包。檢測到SETUP包后開始任務(wù)調(diào)度,任務(wù)調(diào)度的步驟如下:

(1)調(diào)用用戶函數(shù)SetupCommand(),判斷是否受到SETUP包;

(2)分析判斷SETUP包,如果是標準設(shè)備請求命令則執(zhí)行標準請求,如果是用戶請求命令則調(diào)用TD_Poll()進行數(shù)據(jù)處理并反饋給主機結(jié)果;

(3)判斷是否收到USB掛起信號,收到則調(diào)用TD_Suspend()。從該函數(shù)返回后再檢測是否發(fā)生USB喚醒事件,未檢測到則處理器進入掛起狀態(tài),否則調(diào)用TD_Resume(),程序繼續(xù)運行。

 需要用戶自己編寫的代碼主要包括TD_Init()、TD_Poll()。在本系統(tǒng)中,TD_Init()主要完成端點的選擇和配置,以及外圍器件的初始化。TD_Poll()將根據(jù)接收的主機命令對數(shù)據(jù)進行處理,之后將處理結(jié)果或狀態(tài)信息反饋給主機。

4、 主機程序

主機程序主要用于發(fā)送用戶命令和參數(shù),接收USB設(shè)備的運行狀態(tài)和處理結(jié)果。本系統(tǒng)的主機程序用VC++6.0編寫實現(xiàn),因為采用的是控制傳輸,用到的主要函數(shù)是CreateFile()和DeviceIoControl()。前者用于獲得設(shè)備句柄,其本質(zhì)是先由設(shè)備驅(qū)動器生成一個句柄,然后將這個句柄分配給外設(shè)。獲得設(shè)備句柄后,用DeviceIoControl()對設(shè)備進行讀寫。主要程序代碼如下:

DeviceHANDLE=CreateFile(".ezusb-0",

                          GENERIC_WRITE,

                          FILE_SHARE_WRITE,

                          NULL,

                          OPEN_EXISTING,

                          0,

                          NULL);

If (DeviceHANDLE==INVALID_HANDLE_VALUE)

MessageBox("無法創(chuàng)建設(shè)備","Information Box",MB_OK|MB_ICONINFORMATION);

else

bResult=DeviceIoControl(DeviceHANDLE,

                                    IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,

                             &myrequest,

                                    sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),

                             returndata,

                             n,

                             &nBytes,

                             NULL);

在本系統(tǒng)中,主機發(fā)送給外設(shè)最多的是VENDOR_OR_CLASS_REQUEST_CONTROL類型的請求,其結(jié)構(gòu)定義如下:

typedef  struct _VENDOR_OR_CLASS_REQUEST_CONTROL

{

   UCHAR direction;      //傳輸方向,0為主機到設(shè)備,1為設(shè)備到主機

   UCHAR requestType;   //請求類型,0為用戶,1為類

   UCHAR recepient;     //接收者類型,0為設(shè)備,1為接口,2為端點,3為其他

   UCHAR requestTypeReservedBits; 

   UCHAR request;    

   USHORT value;     

   USHORT index;     

};

其中后四個參數(shù)分別對應(yīng)于設(shè)備請求命令的bRequestType、bRequest、wValue和wIndex(具體定義參考文獻[1]),因為發(fā)送的是用戶自己的設(shè)備請求命令而非標準設(shè)備請求命令,所以bRequestType的值可設(shè)為0;且bRequest的值不能與標準設(shè)備請求命令的bRequest值相沖突;雙字節(jié)的value和index可用來傳遞主機給USB設(shè)備的參數(shù)。

5、 驅(qū)動程序

要實現(xiàn)USB設(shè)備的固件下載和重枚舉需要編寫兩個驅(qū)動程序,通用驅(qū)動(GPD)和固件裝載驅(qū)動。前者完成主機與外設(shè)的通信和控制,一般不用重新編寫,可直接采用Cypress公司提供的ezusb.sys。后者負責在外設(shè)連到主機時將正確的驅(qū)動程序裝載到AN2131QC的RAM中,完成對外設(shè)的重新設(shè)置。主機根據(jù)新的設(shè)置安裝通用驅(qū)動,重新枚舉外設(shè)為一個新的USB設(shè)備。固件裝載驅(qū)動的開發(fā)過程如下:

(1)新建一個目錄dev_io,將Cypressusbdriversezloader目錄下的文件復(fù)制到該目錄下。

(2)打開該目錄下的sources文件,將TARGETNAME=ezloader改為TARGETNAME=dev_io。

(3)利用hex2c將dev_io.hex轉(zhuǎn)換為dev_io.c: hex2c  dev_io.hex  dev_io.c

(4)將fireware.c中的fireware[]數(shù)組用dev_io.c中的fireware[]數(shù)組替換。

(5)進入C:NTDDKBIN目錄,在命令行方式下鍵入SETENV C:NTDDK回車,此時顯示設(shè)置環(huán)境完成,然后返回dev_io運行BUILD  –c,這時會在dev_iolibi386free或checked目錄下生成我們需要的固件裝載設(shè)備驅(qū)動程序,將該驅(qū)動程序復(fù)制到c:windowssystem32drivers目錄下。

(6)為了使該驅(qū)動程序正確工作,必須為它寫一個安裝信息文件,即.inf文件。它將設(shè)備的VID和PID綁定到特定的設(shè)備驅(qū)動程序上??煞抡臻_發(fā)包提供的inf文件編寫,具體步驟參見文獻[5]。

6、結(jié)束語

本文從工作原理、硬件設(shè)計、固件程序、主機程序和驅(qū)動程序五個方面系統(tǒng)論述了情報指揮系統(tǒng)維修模擬訓練器中USB接口開發(fā)的全過程,并給出了基于控制傳輸?shù)腢SB系統(tǒng)設(shè)計方法,為今后的維修模擬訓練系統(tǒng)開發(fā)提供了一種規(guī)范、快捷的接口設(shè)計方法。

本文的創(chuàng)新觀點主要有兩點:1、與傳統(tǒng)的VXI、PXI等總線相比,在情報指揮系統(tǒng)維修模擬訓練器中采用USB總線作為仿真單體和單體計算機之間的接口能簡化硬件,即插即用,使仿真單體具有便攜能力。2、USB接口支持多達127個外設(shè)的能力使系統(tǒng)具有很強的單體擴展能力,而且支持多個單體同時工作。

參考文獻

[1] 馬偉.計算機USB系統(tǒng)原理及其主/從機設(shè)計.北京:北京航空航天出版社.2002
[2] 顏榮江,俞志強,張進,陰大興.EZ-USB2100系列單片機原理、編程及應(yīng)用.北京:北京航空航天出版社.2002
[3] 王宏,王鑫,李輝,周云峰,孫書鷹. usb技術(shù)在虛擬維修訓練系統(tǒng)中的應(yīng)用.電腦開發(fā)與應(yīng)用.2004年第17卷第3期.26-29
[4] 邵高平. 通用串行總線(usb)及其開發(fā)方法.微計算機信息. 1995年第15卷第3期.10-12
[5] Cypress Semiconductor Corporation, EZLOADER Design Notes, 98.5;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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