基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用_第1頁(yè)
基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用_第2頁(yè)
基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用_第3頁(yè)
基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用_第4頁(yè)
基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于CY7C646xx的通用串行總線接口-設(shè)計(jì)應(yīng)用基于CY7C646xx的通用串行總線接口

趙闖,張劍云(解放軍電子工程學(xué)院,安徽合肥230037)

1USB簡(jiǎn)介

UBS(UniversalSerialBus)是一種標(biāo)準(zhǔn)的計(jì)算機(jī)與外設(shè)的連接接口,1995年問(wèn)世,并由Compaq,DigitalEquipmentCorp.(現(xiàn)屬Compaq),IBM,Intel,Microsoft,NEC及NorthernTelecom七家計(jì)算機(jī)與通信工業(yè)領(lǐng)域的公司組成的聯(lián)盟定義和推廣。1996年,該聯(lián)盟公布了USB1.1規(guī)范。其后,隨著USB的完善和應(yīng)用的需求,促進(jìn)了高速USB2.0規(guī)范在1999年發(fā)布。目前已經(jīng)成為外設(shè)的流行接口選擇。

USB具有諸多特性和特點(diǎn)。USB統(tǒng)一了各種接口設(shè)備的連接頭,如通信接口、打印機(jī)接口、顯示器接口、音響輸入/輸出設(shè)備、存儲(chǔ)設(shè)備等都采用相同的USB接口規(guī)范;USB即插即用,能自動(dòng)檢測(cè)與配置系統(tǒng)的資源;USB完全支持熱插拔,在開(kāi)機(jī)的狀態(tài)下,可以插入和拔離USB設(shè)備;USB接口規(guī)范1.1所支持的傳輸速度可達(dá)12Mb/s(USBl.1),USB2.0規(guī)范支持的傳輸速度達(dá)到480Mb/s;USB支持斗種不同傳輸速度和不同傳輸質(zhì)量的數(shù)據(jù)傳輸方式,即批量傳輸方式、中斷傳輸方式、控制傳輸方式和同步傳輸方式,能夠滿足不同設(shè)備的不同需求;USB連接設(shè)備多可達(dá)127個(gè);USB采用單一專用的接口型號(hào),所有的USB設(shè)備的接口型號(hào)完全統(tǒng)一,并且使用USB集線器來(lái)增加擴(kuò)充的連接端口白的數(shù)目等。

2CY7C646xx系列

CY7C646xx系列是Cypress公司開(kāi)發(fā)的全速的USB接口系列中的一種,該系列針對(duì)USB外圍設(shè)備設(shè)計(jì),除了具有典型的USB特性之外,還具有三個(gè)關(guān)鍵特性:

1)該系列提供軟的應(yīng)用方案,即基于片內(nèi)RAM,支持即時(shí)動(dòng)態(tài)固件(Firmware)功能,允許無(wú)限制的擴(kuò)充和更新;

2)該系列能夠達(dá)到USBl.1協(xié)議的傳輸速度要求,向用戶提供足夠的端口、緩沖區(qū)和傳輸速度;

3)該系列對(duì)USB的底層協(xié)議實(shí)現(xiàn)高度硬件集成,簡(jiǎn)化了硬件固件代碼的編程,加速了USB通信的掌握過(guò)程,更易于開(kāi)發(fā),其內(nèi)部結(jié)構(gòu)框圖如圖1所示。

該系列通過(guò)USB總線(包括+5V、地、D+、D-)和計(jì)算機(jī)相連;轉(zhuǎn)發(fā)器固化到芯片內(nèi)部;串行接口引擎(亦稱USB核)具有完整的USB設(shè)備功能,完夠響應(yīng)主機(jī)對(duì)設(shè)備的標(biāo)準(zhǔn)請(qǐng)求,具有3種USB配置,每種配置1個(gè)或16個(gè)端點(diǎn)。完全支持4種標(biāo)準(zhǔn)的USB數(shù)據(jù)傳輸類型(控制傳輸、批量傳輸、中斷傳輸和同步傳輸);芯片內(nèi)部的程序數(shù)據(jù)隨機(jī)存儲(chǔ)器(RAM)具有8KB的容量;芯片內(nèi)嵌入增強(qiáng)的8051微處理器。具有所有的8051資源,即5個(gè)I/O口,2個(gè)通用異步轉(zhuǎn)發(fā)器(UART),3個(gè)計(jì)數(shù)器/定時(shí)器,擴(kuò)展的中斷系統(tǒng)等;芯片利用從屬FIFO或者通用可編程接口(CPIF)和外部邏輯(諸如DSP等)進(jìn)行數(shù)據(jù)傳輸。

3USB接口系統(tǒng)的結(jié)構(gòu)

USB接口的結(jié)構(gòu)如圖2所示。計(jì)算機(jī)采用Windows操作系統(tǒng),用戶程序通過(guò)設(shè)備驅(qū)動(dòng)程序訪問(wèn)目標(biāo)板。在目標(biāo)板端上,CY7C646xx把TMS320VC33型數(shù)字信號(hào)處垣器和計(jì)算機(jī)通過(guò)USB總線建立通信鏈路,用CPLD進(jìn)行目標(biāo)板的控制。TMS320VC33通過(guò)CY7C646xx內(nèi)置的從屬FIFO和CY7C646xx進(jìn)行數(shù)據(jù)交換。

在本方案中,CY7C646xx采用無(wú)EEPROM的列舉方式,即當(dāng)目標(biāo)板插入U(xiǎn)SB端口時(shí),操作系統(tǒng)進(jìn)行USB常規(guī)描述符請(qǐng)求,CY7C646xx將內(nèi)置的PID、VID和DID回復(fù)主機(jī)請(qǐng)求;主機(jī)動(dòng)態(tài)加載固件驅(qū)動(dòng)程序,由該驅(qū)動(dòng)程序?qū)?051程序代碼和數(shù)據(jù)至CYTC646xx內(nèi)的RAM中,實(shí)現(xiàn)軟開(kāi)發(fā)目的;該驅(qū)動(dòng)程序重置啟動(dòng)8051,重新列舉設(shè)備,至RAM中的程序回復(fù)主機(jī)的USB描述符請(qǐng)求,主機(jī)加載數(shù)據(jù)通信驅(qū)動(dòng)程序,完成USB設(shè)備的安裝。應(yīng)用程序通過(guò)數(shù)據(jù)通信驅(qū)動(dòng)程序和CY7C646xx建立通信,完成數(shù)據(jù)傳輸。

4驅(qū)動(dòng)程序的編寫(xiě)

USB設(shè)備驅(qū)動(dòng)程序采用一種新的驅(qū)動(dòng)模型--WDM(windowsdrivermodel)。WDM通過(guò)提供一種靈活的方式來(lái)簡(jiǎn)化驅(qū)動(dòng)程序的開(kāi)發(fā),在實(shí)現(xiàn)對(duì)新硬件支持的基礎(chǔ)上減少并降低所必須開(kāi)發(fā)的驅(qū)動(dòng)程序的數(shù)量和復(fù)雜性。可以應(yīng)用Cypress公司提供編寫(xiě)CY7C646xx系列驅(qū)動(dòng)程序框架源代碼進(jìn)行相應(yīng)的修改和添加,生成所需要的驅(qū)動(dòng)程序。4.1固件驅(qū)動(dòng)程序

利用代碼轉(zhuǎn)換工具h(yuǎn)ex2c.exe,將生成的8051固件代碼(hex文件)轉(zhuǎn)換為C文件;將C文件中的相應(yīng)代碼拷貝到所提供的源代碼程序之一的firmware.c相應(yīng)部分;利用WindowsDDK工具將各個(gè)源文件編譯成.sys文件。

修改相應(yīng)的INF文件,將%USB\VID_0547PID_1004.DeviceDesc%=EZUSBDev.Dev,USB\VID_PID_'中的VID及PID修改為相應(yīng)的預(yù)設(shè)USB設(shè)備的相應(yīng)VID和PID,在本應(yīng)用中,VID.為0547,PID為2235;緊接在此語(yǔ)句之后應(yīng)加入相同的語(yǔ)句,PID和VID應(yīng)為所的固件代碼所能提供的PID和VID,保證外設(shè)第二次列舉后能根據(jù)此PID和VID找到相應(yīng)的支持主機(jī)和電路通信的驅(qū)動(dòng)程序。

4.2支持主機(jī)和電路通信的驅(qū)動(dòng)程序

由Cypress公司提供的GPD(GeneralPurposeDriver)模板供用戶修改使用。它提供一個(gè)上層的程序代碼來(lái)實(shí)現(xiàn)底層的驅(qū)動(dòng)程序的編寫(xiě),能夠完成USB設(shè)備的標(biāo)準(zhǔn)請(qǐng)求及Cypress公司的該系列電路所特定的請(qǐng)求和數(shù)據(jù)的傳輸。該GPD所提供的接口函數(shù)具有通用性,包括打開(kāi)、關(guān)閉設(shè)備及USB的I/O操作等。本應(yīng)用主要采用上述兩類接口程序,在沒(méi)有改變所提供的EZUSB.SYS的驅(qū)動(dòng)程序的情況下,實(shí)現(xiàn)主機(jī)和外設(shè)的數(shù)據(jù)通信。

5固件程序的編寫(xiě)

固件程序指的是需要到CY7C646xx內(nèi)RAM中的8051程序代碼和數(shù)據(jù)。需要完成的功能包括初始化CY7C646xx內(nèi)部的所有用到的寄存器使之與外部電路相配合;對(duì)主機(jī)的USB標(biāo)準(zhǔn)請(qǐng)求的響應(yīng);CY7C646xx的電子仿真實(shí)際脫離與重新連接至USB接口的實(shí)現(xiàn);設(shè)備休眠狀態(tài)的啟動(dòng)和終止;完成讀取OUT端點(diǎn)和轉(zhuǎn)發(fā)至內(nèi)部從屬寫(xiě)FIFO及讀取內(nèi)部從屬讀FIFO的數(shù)據(jù)和轉(zhuǎn)發(fā)至IN端點(diǎn)等功能。

該應(yīng)用采用Keil51編譯環(huán)境,用C語(yǔ)言完成固件源代碼的編寫(xiě)。采用標(biāo)準(zhǔn)的結(jié)構(gòu)框架,修改或者添加自己的代碼,完成所需要的任務(wù)。

需要注意,如果開(kāi)發(fā)者沒(méi)有使用片外接存儲(chǔ)器,需將Keil51編譯環(huán)境的L51Location選項(xiàng)中的Code(指令碼部分)始于0x0080,而且xdata(數(shù)據(jù)部分)始于0xl000,以保證在同一個(gè)RAM中指令代碼和數(shù)據(jù)不混迭。

6計(jì)算機(jī)端應(yīng)用程序的編寫(xiě)

應(yīng)用程序與設(shè)備進(jìn)行通信的通用函數(shù)包括打開(kāi)關(guān)閉設(shè)備、傳輸數(shù)據(jù)等:

6.1打開(kāi)和關(guān)閉設(shè)備

該應(yīng)用程序基于Ezusb.sys驅(qū)動(dòng)程序,利用VisualC++針對(duì)該電路進(jìn)行操作,完成數(shù)據(jù)的傳輸。

打開(kāi)設(shè)備:HANDLEhDevice=CreateFile(DeviceName,GENERIC_WRITEIGENERIC_READ,F(xiàn)ILE_SHARE_WRITE︱FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);

程序打開(kāi)設(shè)備DeviceName''的方式為通用讀寫(xiě)方式,文件共享讀寫(xiě)。

關(guān)閉設(shè)備:CloseHandle(hDevice)。

6.2數(shù)據(jù)傳輸

其代碼為BOOLbResult=DeviceloControl(hDevice,direction,Control,sizeofxxxx_TRANSFER_CONTROL),buffer,length,(unsignedlong*)nBytes,NULL),其中,hDevice為設(shè)備句柄;direction為數(shù)據(jù)傳輸?shù)姆较?;Control為4種USB數(shù)據(jù)傳輸?shù)姆绞竭x擇;size(xxxx_TRANSFER_CONTROL)為數(shù)據(jù)格式所需存儲(chǔ)空間的大??;buffer為所傳輸數(shù)據(jù)的緩沖區(qū)地址指針;nBytes為傳輸完成后實(shí)際傳輸?shù)臄?shù)據(jù)個(gè)數(shù):數(shù)據(jù)傳輸格式為USB設(shè)備的統(tǒng)一規(guī)范,可參照WindowsDDK中的相應(yīng)文件。

6.3數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議

每個(gè)數(shù)據(jù)包由包頭和數(shù)據(jù)或者只由包頭組成,的數(shù)據(jù)長(zhǎng)度為64字節(jié),由于本應(yīng)用所采用的該系列的80引腳的CY7C64603沒(méi)有數(shù)據(jù)空對(duì)外標(biāo)志,所以,外部電路讀寫(xiě)邏輯每次瀆寫(xiě)64字節(jié)。傳輸?shù)淖止?jié)不足64時(shí)由固件補(bǔ)零:·數(shù)據(jù)包格式如圖3所示。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論