EZ-USB接口設(shè)備的軟配置技術(shù)_第1頁(yè)
EZ-USB接口設(shè)備的軟配置技術(shù)_第2頁(yè)
EZ-USB接口設(shè)備的軟配置技術(shù)_第3頁(yè)
EZ-USB接口設(shè)備的軟配置技術(shù)_第4頁(yè)
EZ-USB接口設(shè)備的軟配置技術(shù)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、EZ-USB接口設(shè)備的軟配置技術(shù)    摘要:介紹EZ-USB器件的基本特性和EZ-USB接口設(shè)備的開(kāi)發(fā)方法,結(jié)合具體設(shè)計(jì)示例重點(diǎn)討論EZ-USB接口設(shè)備的軟配置方式和固件裝載技術(shù)。     關(guān)鍵詞:EZ-USB 軟配置 固件裝載引 言EZ-USB是Cypress公司帶智能內(nèi)核的USB接口器件,集USB通信控制引擎和改進(jìn)的8051內(nèi)核于一體,具有全速度、全序列、易開(kāi)發(fā)及軟配置等特點(diǎn),是設(shè)計(jì)USB設(shè)備的首選器件。EZ-USB的串行接口引擎能自動(dòng)完成主要USB協(xié)議處理,簡(jiǎn)化了設(shè)備固件設(shè)計(jì)。但其軟配置與枚舉涉及到Windows編程

2、、Windows PnP技術(shù)以及Windows DDK工具、INF文件和注冊(cè)表的使用等問(wèn)題,因此EZ-USB接口設(shè)備的軟配置方式和固件裝載技術(shù)是開(kāi)發(fā)EZ-USB接口設(shè)備的關(guān)鍵問(wèn)題。1 EZ-USB處理器EZ-USB的串行接口引擎能自動(dòng)完成數(shù)據(jù)收發(fā)控制、位填充、數(shù)據(jù)編碼、CRC校驗(yàn)、PID包解碼等USB協(xié)議處理。EZ-USB在連接時(shí)自動(dòng)進(jìn)行枚舉,建立默認(rèn)的EZ-USB設(shè)備。首次枚舉成功后,還可以通過(guò)軟配置由8051內(nèi)核重新枚舉建立用戶(hù)定制的設(shè)備。內(nèi)置的8051處理器,相對(duì)標(biāo)準(zhǔn)的8051處理器進(jìn)行了改進(jìn)。以AN2131QC為例,主要有以下改進(jìn)方面:獨(dú)立的地址總線和數(shù)據(jù)總線,總線周期為4個(gè)時(shí)鐘,平均

3、運(yùn)行速度提高了近3倍;雙數(shù)據(jù)指針和自動(dòng)指針提高了數(shù)據(jù)交換效率;擴(kuò)展的中斷系統(tǒng)支持13個(gè)中斷源,并支持自動(dòng)中斷向量;1個(gè)I2C接口以及2個(gè)UART接口,24個(gè)可配置I/O端口;可變周期的MOVX 指令可以適合高低速存儲(chǔ)器芯片的接口;3個(gè)16位內(nèi)置定時(shí)/計(jì)數(shù)器、256字節(jié)內(nèi)部寄存器RAM;芯片內(nèi)部集成有8KB外部RAM,8051內(nèi)核要用MOVX指令訪問(wèn)此RAM區(qū)。2 EZ-USB軟配置特性    2.1 軟配置特性軟配置特性是EZ-USB最重要的特性。軟配置特性允許設(shè)備無(wú)限制的升級(jí)或再配置。EZ-USB片內(nèi)集成的外部RAM可用于裝載固件。當(dāng)設(shè)備與主機(jī)連接時(shí),固件從主機(jī)

4、裝載到這里執(zhí)行,而不是固化在ROM中。因此,裝載不同的固件設(shè)備就呈現(xiàn)出不同的特性,如設(shè)備配置、有效端點(diǎn)、工作方式、設(shè)備功能等都可以通過(guò)改變固件進(jìn)行再配置,達(dá)到軟配置目的,這就是EZ-USB的軟配置特性。    2.2 配置方式軟配置可采用兩種方式實(shí)現(xiàn):自動(dòng)配置和命令配置。自動(dòng)配置是指當(dāng)設(shè)備連接時(shí),固件由專(zhuān)門(mén)的裝載驅(qū)動(dòng)程序自動(dòng)裝載到設(shè)備。這種方式下固件要捆綁在裝載驅(qū)動(dòng)程序之中,固件與裝載驅(qū)動(dòng)程序之間一一對(duì)應(yīng),固件修改時(shí)要重新生成并重新安裝裝載驅(qū)動(dòng)程序,固件裝載后要重新枚舉,以建立定制的USB設(shè)備,如果不重新枚舉主機(jī)會(huì)找不到設(shè)備。命令配置是指在應(yīng)用程序中通過(guò)命令操作將

5、固件裝載到設(shè)備。這種方式不需要專(zhuān)用的裝載驅(qū)動(dòng)程序,可在任何時(shí)刻裝載任意固件。固件裝載后可以不用重枚舉操作,由EZ-USB內(nèi)核響應(yīng)主機(jī)請(qǐng)求,可以簡(jiǎn)化固件設(shè)計(jì)。采用命令配置方式時(shí),在應(yīng)用程序中要編寫(xiě)固件裝載代碼。固件裝載代碼主要完成下列操作:從Intel Hex格式文件中提取出有效的固件代碼;向EZ-USB請(qǐng)求復(fù)位8051內(nèi)核;向EZ-USB請(qǐng)求固件下載,固件下傳至EZ-USB的內(nèi)部RAM;向EZ-USB請(qǐng)求8051內(nèi)核脫離復(fù)位狀態(tài); 對(duì)EZ-USB外設(shè)接口和交替功能進(jìn)行設(shè)置。3 EZ-USB接口設(shè)備開(kāi)發(fā)方法USB設(shè)備開(kāi)發(fā)的一般步驟和內(nèi)容如圖1所示。其中面向設(shè)備的固件主要包括設(shè)備描述符信息、設(shè)備功

6、能代碼和通信控制功能代碼。設(shè)備描述信息描述USB設(shè)備的一般特性和配置,如設(shè)備類(lèi)別、接口配置、VID和PID等。主機(jī)在設(shè)備枚舉時(shí)要獲取USB設(shè)備的描述符,從而獲得設(shè)備的配置信息和相關(guān)驅(qū)動(dòng)信息。用戶(hù)可以通過(guò)修改固件中的描述符來(lái)改變?cè)O(shè)備的特性。設(shè)備功能代碼由設(shè)備的功能需求決定。通信控制功能代碼執(zhí)行主機(jī)請(qǐng)求分析處理和數(shù)據(jù)交換處理功能。設(shè)備驅(qū)動(dòng)程序提供用戶(hù)訪問(wèn)設(shè)備的接口。開(kāi)發(fā)系統(tǒng)提供廠家的通用設(shè)備驅(qū)動(dòng)程序。用戶(hù)也可以用相關(guān)驅(qū)動(dòng)程序開(kāi)發(fā)工具自己定制。自己定制的設(shè)備驅(qū)動(dòng)程序要求符合WDM驅(qū)動(dòng)程序規(guī)范。若采用自動(dòng)配置方式,EZ-USB開(kāi)發(fā)系統(tǒng)提供了裝載驅(qū)動(dòng)程序開(kāi)發(fā)模板,利用模板開(kāi)發(fā)較簡(jiǎn)單。采用命令配置方式則要

7、用戶(hù)在應(yīng)用程序中編寫(xiě)固件裝載代碼。驅(qū)動(dòng)程序一般通過(guò)INF文件來(lái)安裝,INF文件把設(shè)備的VID和PID綁定到設(shè)備驅(qū)動(dòng)程序上,指定存放驅(qū)動(dòng)程序的路徑,提供有關(guān)驅(qū)動(dòng)程序的注冊(cè)和顯示信息。因此,Windows檢測(cè)到EZ-USB設(shè)備連接時(shí),能根據(jù)注冊(cè)表自動(dòng)將設(shè)備驅(qū)動(dòng)程序裝入系統(tǒng)環(huán)境。4 設(shè)計(jì)舉例作者利用AN2131QC開(kāi)發(fā)了一個(gè)通用的EZ-USB接口模塊。此通用模塊的軟硬件資源全部開(kāi)放,并配置有測(cè)試驅(qū)動(dòng)程序和固件示例。使用此通用模塊如同使用一片IC芯片,對(duì)設(shè)備的描述信息和INF文件稍作修改,并添加設(shè)備功能代碼,即可構(gòu)成一臺(tái)專(zhuān)用的EZ-USB接口設(shè)備。    4.1 固件設(shè)計(jì)

8、通用EZ-USB模塊的固件包括描述符表和USB通信測(cè)試程序。描述符表是一組符合USB規(guī)范及描述設(shè)備特性的結(jié)構(gòu)化信息,賦予其中變量不同的值,設(shè)備就呈現(xiàn)出不同的特性。在設(shè)備連接時(shí),主機(jī)要請(qǐng)求設(shè)備提供描述符表,因此描述符表是固件的一部分。本通用模塊中定義了5種描述符表,表1所列是各描述符的主要參數(shù)。表1 通用EZ-USB接口模塊描述符及主要參數(shù)描述符名稱(chēng)描述符參數(shù)設(shè)備描述符版本:0x0001。包大?。?x40。VID:0x0547。PID:0x1011。配置號(hào):0x01配置描述符接口數(shù):0x01。配置值:0x01。屬性參數(shù):0x80。最大功耗:0x32(100mA)接口描述符表接口索引:0x00,交

9、替設(shè)置:0x01。端點(diǎn)數(shù):0x02端點(diǎn)描述符表0端點(diǎn)地址:0x82(端點(diǎn)2,輸入)。端點(diǎn)類(lèi)型:BULK。最大包長(zhǎng)度:0x0040端點(diǎn)描述符表1端點(diǎn)地址:0x02(端點(diǎn)2,輸出)。端點(diǎn)類(lèi)型:BULK。最大包長(zhǎng)度:0x0040此通用模塊中的固件僅用于EZ-USB通信測(cè)試、設(shè)備驅(qū)動(dòng)和固件裝載演示。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)固件設(shè)計(jì)有兩點(diǎn)值得注意。 采用ezusb.sys通用驅(qū)動(dòng)程序時(shí),主機(jī)要用查詢(xún)方式接收從設(shè)備來(lái)的數(shù)據(jù)。若主機(jī)接收不到設(shè)備上傳的數(shù)據(jù)時(shí)會(huì)長(zhǎng)時(shí)間等待,甚至?xí)罊C(jī)。在本文的設(shè)計(jì)中,解決此問(wèn)題的方法是數(shù)據(jù)上傳和下傳操作成對(duì)發(fā)生。主機(jī)每次下傳一個(gè)數(shù)據(jù)包時(shí),設(shè)備就上傳一個(gè)數(shù)據(jù)包。此時(shí)如果設(shè)備有數(shù)據(jù)上傳就將數(shù)據(jù)

10、置入上傳數(shù)據(jù)包中,否則返回一個(gè)空包。 初始化時(shí)應(yīng)清空一次相應(yīng)的端點(diǎn)緩沖區(qū),否則有時(shí)會(huì)出現(xiàn)第一次傳輸出錯(cuò)的現(xiàn)象,原因可能是復(fù)位不充分或者內(nèi)部RAM掉電延時(shí)。在實(shí)際中發(fā)現(xiàn),設(shè)備掉電相當(dāng)長(zhǎng)一段時(shí)間,EZ-USB的RAM中數(shù)據(jù)仍然保持。4.2 生成設(shè)備驅(qū)動(dòng)程序可以直接用廠家提供的通用設(shè)備驅(qū)動(dòng)程序來(lái)驅(qū)動(dòng)設(shè)備。但通用設(shè)備驅(qū)動(dòng)程序只能執(zhí)行一些標(biāo)準(zhǔn)的USB設(shè)備請(qǐng)求和數(shù)據(jù)傳輸,而且只支持查詢(xún)方式與設(shè)備通信。如果不能滿(mǎn)足用戶(hù)需要,用戶(hù)可以在模板的基礎(chǔ)上進(jìn)行擴(kuò)充,重新用WDM DDK生成驅(qū)動(dòng)程序。通用模塊中采用了通用驅(qū)動(dòng)程序Ezusb.sys。采用查詢(xún)方式,并且使上傳和下傳對(duì)應(yīng)出現(xiàn),實(shí)時(shí)性較好,能滿(mǎn)足一般設(shè)備要求。

11、    4.3 生成裝載驅(qū)動(dòng)程序采用自動(dòng)配置方式時(shí),可根據(jù)EZ-USB開(kāi)發(fā)系統(tǒng)提供的模板生成固件裝載驅(qū)動(dòng)程序。通用模塊中固件裝載采用命令配置方式。其操作流程如圖2所示,其中主要定義了以下4個(gè)函數(shù)以完成固件裝載。Read_Intel_Hex() 從Intel格式的Hex文件中讀出固件代碼到緩沖區(qū)。Hex_To_Bin() 移去Intel格式的Hex文件中格式描述部分,轉(zhuǎn)換為純固件代碼。Download_Bin() EZ-USB8051內(nèi)核復(fù)位、固件裝載到設(shè)備、8051內(nèi)核解復(fù)位并運(yùn)行固件。裝載固件前要使EZ-USB8051內(nèi)核進(jìn)入復(fù)位狀態(tài),然后裝載固件,裝載結(jié)束后使EZ-USB脫離復(fù)位狀態(tài)開(kāi)始運(yùn)行固件。三種操作共用一個(gè)函數(shù),用傳遞不同的參數(shù)進(jìn)行區(qū)別。Set_InterFaceAlt()設(shè)置EZ-USB接口號(hào)和交替功能值,建立通信管道。    4.4 安裝驅(qū)動(dòng)程序驅(qū)動(dòng)程序必須正確裝入Windows環(huán)境之后,才能起作用。編輯INF文件,使首次枚舉設(shè)備的VID和PID綁定到固件裝載驅(qū)動(dòng)程序,使重枚舉后設(shè)備的VID和PID綁定到設(shè)備驅(qū)動(dòng)程序。設(shè)置驅(qū)動(dòng)程序的路徑為 C:,設(shè)置顯示的驅(qū)動(dòng)程序字符串信息。重新啟動(dòng)系統(tǒng),按提示信息完成安裝過(guò)程。    4.5 應(yīng)用程序與設(shè)備接口通用EZ

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論