《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于CY7C68013的USB2.0通信接口的設(shè)計(jì)
基于CY7C68013的USB2.0通信接口的設(shè)計(jì)
2015年微型機(jī)與應(yīng)用第22期
趙 靜,馬尚昌
(成都信息工程大學(xué) 中國(guó)氣象局大氣探測(cè)重點(diǎn)實(shí)驗(yàn)室,四川 成都 610225)
摘要: 介紹了一種利用USB通信協(xié)議的方法實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的通信傳輸。該方法以滿足符合標(biāo)準(zhǔn)的USB2.0協(xié)議為基礎(chǔ),以EZ-USB FX2為設(shè)計(jì)的基礎(chǔ)構(gòu)架,以Cypress公司推出最具性價(jià)比的一種內(nèi)嵌增強(qiáng)51單片機(jī)的芯片CY7C68013為核心,來(lái)構(gòu)建下位機(jī)與上位機(jī)的數(shù)據(jù)傳輸通道。給出了系統(tǒng)的硬件設(shè)計(jì)方案、固件驅(qū)動(dòng)程序以及計(jì)算機(jī)端的應(yīng)用程序設(shè)計(jì)方法及流程。通過(guò)USB數(shù)據(jù)通信表明,USB2.0高速接口的帶寬能夠達(dá)到480 Mb/s的通信速率,能夠充分滿足普通接口數(shù)據(jù)傳輸所需速率,有效提高了傳輸效率,并且能將接收到的數(shù)據(jù)保存在計(jì)算機(jī)系統(tǒng)中,以備使用。因此,USB2.0通信接口的設(shè)計(jì)在數(shù)據(jù)傳輸?shù)膶?shí)際運(yùn)用中有值得探索的價(jià)值。
Abstract:
Key words :

  摘  要: 介紹了一種利用USB通信協(xié)議的方法實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的通信傳輸。該方法以滿足符合標(biāo)準(zhǔn)的USB2.0協(xié)議為基礎(chǔ),以EZ-USB FX2為設(shè)計(jì)的基礎(chǔ)構(gòu)架,以Cypress公司推出最具性價(jià)比的一種內(nèi)嵌增強(qiáng)51單片機(jī)的芯片CY7C68013為核心,來(lái)構(gòu)建下位機(jī)與上位機(jī)的數(shù)據(jù)傳輸通道。給出了系統(tǒng)的硬件設(shè)計(jì)方案、固件驅(qū)動(dòng)程序以及計(jì)算機(jī)端的應(yīng)用程序設(shè)計(jì)方法及流程。通過(guò)USB數(shù)據(jù)通信表明,USB2.0高速接口的帶寬能夠達(dá)到480 Mb/s的通信速率,能夠充分滿足普通接口數(shù)據(jù)傳輸所需速率,有效提高了傳輸效率,并且能將接收到的數(shù)據(jù)保存在計(jì)算機(jī)系統(tǒng)中,以備使用。因此,USB2.0通信接口的設(shè)計(jì)在數(shù)據(jù)傳輸?shù)膶?shí)際運(yùn)用中有值得探索的價(jià)值。

  關(guān)鍵詞: 數(shù)據(jù)傳輸;USB2.0;高速接口;相互通信;驅(qū)動(dòng)程序

0 引言

  隨著多媒體技術(shù)的發(fā)展,對(duì)外設(shè)與主機(jī)之間的數(shù)據(jù)傳輸率有了更高的要求,且傳統(tǒng)的計(jì)算機(jī)與外設(shè)通過(guò)串行、并行或PCI總線傳輸,要占用計(jì)算機(jī)系統(tǒng)資源,擴(kuò)展性較差,而且傳輸速率和通信距離有限,已無(wú)法滿足計(jì)算機(jī)外設(shè)發(fā)展需求[1],對(duì)于傳統(tǒng)的RS232串口通信來(lái)說(shuō)也很難滿足與上位機(jī)之間所需要的10 Mb/s以上的通信速率,因此,USB總線技術(shù)應(yīng)運(yùn)而生。目前,國(guó)內(nèi)外主要采用USB1.1和USB2.0這兩種規(guī)范,USB1.1主要用于低速傳輸要求的場(chǎng)合,支持1.5 Mb/s和12 Mb/s傳輸速率。而USB2.0規(guī)范則能提高到480 Mb/s[2],盡管如此,在某些特定的傳輸速率與外圍設(shè)備系統(tǒng)中,外設(shè)與USB接口上仍存在不可忽視的瓶頸。

  但是由Cypress公司生產(chǎn)的USB2.0控制器CY7C68013提供了一種獨(dú)特的接口方式,即通用可編程接口(GPIF)方式,不僅很容易滿足USB通信接口的傳輸要求,并且較傳統(tǒng)接口方式而言有如下兩大優(yōu)點(diǎn)[3]:(1)數(shù)據(jù)傳輸過(guò)程中不需要CPU的干涉,使得傳輸速率明顯提高,從而充分利用USB2.0的傳輸寬帶;(2)由軟件設(shè)置讀寫控制,提高傳輸穩(wěn)定性。因此,本文把GPIF接口功能的優(yōu)勢(shì)綜合利用在設(shè)計(jì)中并合理配置,使數(shù)據(jù)能夠快速下載并上傳到計(jì)算機(jī)上保存及顯示。

1 USB接口硬件電路設(shè)計(jì)

  1.1 系統(tǒng)總體設(shè)計(jì)框圖

  系統(tǒng)的總體設(shè)計(jì)由電源電平轉(zhuǎn)換電路、串行EEPROM電路、主芯片最小系統(tǒng)電路、引出口電路和PC-USB接口5部分組成,連接框圖如圖1所示。

001.jpg

  該USB高速接口模塊是作為與上位機(jī)通信傳輸?shù)囊粋€(gè)重要橋梁,所以PC-USB接口必不可少,用USB線連接完成該電路與計(jì)算機(jī)的傳輸總線,采用CY7C68013芯片的GPIF接口模式來(lái)完成控制信號(hào)的發(fā)送與數(shù)據(jù)的讀取。因此,該模塊的電源也由USB總線提供。由于USB接口提供的是5 V/500 mA的電源,而由CY7C68013A芯片資料得知工作電壓為3.3 V,即需要將5 V電壓轉(zhuǎn)換成3.3 V的電平轉(zhuǎn)換模塊。串行EEPROM采用24C64(8 KB)來(lái)存放PID/VID程序,引出口電路將芯片主要管腳引出,使得與其他外設(shè)連接提供方便。

  1.2 主芯片最小系統(tǒng)

  采用的CY7C68013A芯片,較100和128引腳封裝,其56引腳封裝的缺少部分管腳功能,雖然不能在線仿真,但可進(jìn)行簡(jiǎn)單調(diào)試,通過(guò)廠商的請(qǐng)求可以完成。具體設(shè)計(jì)如圖2所示。

002.jpg

  其最小系統(tǒng)中包含24 MHz晶振振蕩電路,晶振兩邊的電容大小范圍可取22 pF~30 pF和復(fù)位電路,復(fù)位電路1 k/0.1 F的RC電路,系統(tǒng)能夠正常上電復(fù)位。SCL是漏極開路輸出,SDA引腳是漏極遲滯輸入,在與EEPROM的SCL和SDA連接時(shí),必須外接1.5 k~10 k的上拉電阻。PB0-PB7、PD0-PD7均為雙向I/O口引腳,也是復(fù)用引腳,可分別作為GPIF數(shù)據(jù)總線的低8位和高8位。CLKOUT引腳時(shí)鐘輸出可為12/24/48 MHz,作為其他外設(shè)的時(shí)鐘。端點(diǎn)2配置為寫設(shè)備地址,端點(diǎn)6配置為讀設(shè)備地址,每個(gè)端點(diǎn)都設(shè)置為4個(gè)緩沖區(qū)[4]。IFCLK為接口時(shí)鐘,作為同步時(shí)鐘數(shù)據(jù)的輸入輸出。

  1.3 硬件部分工作過(guò)程

  數(shù)據(jù)傳輸通信的主要控制芯片為CY7C68013,主要完成信號(hào)處理和單片機(jī)控制功能。系統(tǒng)的數(shù)據(jù)傳輸模塊通過(guò)USB連接到計(jì)算機(jī),按下復(fù)位鍵后上電復(fù)位,功能設(shè)備將被識(shí)別并枚舉[1]。在設(shè)計(jì)中將程序下載到串行E2PROM中,主控芯片首先檢測(cè)FX2的啟動(dòng)模式,若檢測(cè)到E2PROM存在且首字節(jié)是0xC2,則按C2加載。下載固件,根據(jù)USB描述符配置信息上電復(fù)位完成重枚舉[5]。再轉(zhuǎn)移到片內(nèi)8.5 KB的RAM存放數(shù)據(jù)和程序進(jìn)行軟配置,配置特定端點(diǎn)緩沖區(qū)來(lái)進(jìn)行數(shù)據(jù)的高速傳輸與讀取。其中采用GPIF可編程接口方式利用FX2的GPIF方式構(gòu)建USB數(shù)據(jù)傳輸通道,由軟件編程輸出讀寫控制波形讀取FIFO標(biāo)識(shí),控制FIFO的選通,可對(duì)外部通用總線接口進(jìn)行訪問(wèn)。

2 USB接口軟件程序設(shè)計(jì)

  2.1 固件程序設(shè)計(jì)

  固件程序是指用于控制硬件系統(tǒng)、完成芯片的初始化的代碼,存儲(chǔ)在USB接口芯片或微控器中,所以FX2要先下載固件再使用,處理各種設(shè)備的請(qǐng)求,完善對(duì)芯片的配置,對(duì)主機(jī)與外部設(shè)備間的數(shù)據(jù)傳輸作出相應(yīng)處理,達(dá)到主機(jī)與外設(shè)通信的目的。Cypress公司為了降低用戶對(duì)固件編程的難度,提供了一套配套的固件程序開發(fā)框架,可直接在Keil C51環(huán)境中進(jìn)行編譯,并可在固件庫(kù)里調(diào)用一些函數(shù)、常量或數(shù)據(jù)結(jié)構(gòu)來(lái)修改自己的程序。

  固件框架的源文件包括由Keil提供的8051頭文件,庫(kù)函數(shù)聲明以及變量、宏和數(shù)據(jù)類型定義,F(xiàn)X2寄存器頭文件,固件框架源文件,用戶可修改的鉤子函數(shù),用戶可修改的USB描述符列表,EZ-USB庫(kù)文件和中斷跳轉(zhuǎn)目標(biāo)文件[6]。在上電復(fù)位程序起始時(shí),固件程序首先會(huì)自動(dòng)初始化所有的內(nèi)部變量,接著調(diào)用初始化函數(shù)TD_Init(),固件就會(huì)把USB接口設(shè)置為未配置狀態(tài)并開啟中斷使能,循環(huán)延時(shí)間隔1 s后開始設(shè)備重枚舉直到端點(diǎn)0接收到Setup包為止退出循環(huán)。只要檢測(cè)到了Setup包,固件構(gòu)架就會(huì)啟動(dòng)與PC主機(jī)合作的分配器,執(zhí)行任務(wù)調(diào)度。固件程序框架如圖3所示。

003.jpg

  2.2 應(yīng)用程序設(shè)計(jì)

  應(yīng)用程序編寫最主要的問(wèn)題是實(shí)現(xiàn)上位機(jī)向外部設(shè)備發(fā)送指定命令數(shù)據(jù)包,設(shè)備能夠接收到上位機(jī)傳遞的指定數(shù)量的數(shù)據(jù)以及在通過(guò)執(zhí)行命令后能夠向其返送數(shù)據(jù),達(dá)到上位機(jī)與設(shè)備能夠相互通信的效果。主機(jī)應(yīng)用程序通過(guò)驅(qū)動(dòng)程序來(lái)完成對(duì)設(shè)備的控制和通信,采用具有友好界面的VC++6.0軟件編寫測(cè)試系統(tǒng)的應(yīng)用程序,充分利用VC++的MFC框架的豐富資源,在與設(shè)備通信時(shí)首先通過(guò)Win32函數(shù)CreateFile()來(lái)取得訪問(wèn)設(shè)備驅(qū)動(dòng)程序的句柄[7]。得到句柄后向設(shè)備提交相應(yīng)的IOCTL控制碼,進(jìn)行讀寫和控制操作完成相應(yīng)操作后,通過(guò)Win32函數(shù)DeviceIoControl()關(guān)閉設(shè)備結(jié)束一次數(shù)據(jù)傳輸操作。在用戶編寫的TD_Poll()函數(shù)中,檢測(cè)到有命令數(shù)據(jù)包傳送,單片機(jī)將讀取EP2端點(diǎn)的數(shù)據(jù),直到EP2端點(diǎn)的數(shù)據(jù)為空,獲得上位機(jī)發(fā)送來(lái)的命令數(shù)據(jù)包。根據(jù)命令字的定義來(lái)執(zhí)行相應(yīng)操作,并向命令EP6端點(diǎn)寫數(shù)據(jù)發(fā)送給主機(jī)。

3 測(cè)試結(jié)果

  在系統(tǒng)測(cè)試中,單片機(jī)與上位機(jī)的通信由用戶自己編譯的執(zhí)行軟件BulkLoop.exe來(lái)體現(xiàn)。

004.jpg

  由軟件編程向單片機(jī)發(fā)送數(shù)據(jù),由控制按鈕點(diǎn)擊實(shí)現(xiàn)特定指令發(fā)送,在沒(méi)有獲取設(shè)備信息時(shí)顯示的是運(yùn)用軟件界面信息,如圖4(a)所示,單片機(jī)在接收到數(shù)據(jù)處理后接口電路中LED燈亮暗顯示,同時(shí)獲取設(shè)備信息。單片機(jī)通過(guò)模擬按鍵向上位機(jī)發(fā)送特定數(shù)據(jù),上位機(jī)接收數(shù)據(jù),顯示的是設(shè)備信息,如圖4(b)所示。

4 結(jié)論

  利用Cypress公司提供的USB2.0高速接口芯片CY7C68013A芯片,完成了硬件設(shè)計(jì)與軟件程序的設(shè)計(jì),使之達(dá)到了單片機(jī)與上位機(jī)通信的效果。在以后各個(gè)領(lǐng)域上的數(shù)據(jù)傳輸通信存在著必不可少的使用價(jià)值。

  芯片所具有的可編程特性大大提高了系統(tǒng)工作的準(zhǔn)確性與可靠性,數(shù)據(jù)穩(wěn)定性高,不易丟失,便于數(shù)據(jù)的傳輸和處理。再加上USB接口設(shè)備具有熱插拔和即插即用的特性,使模塊更具有較高的實(shí)用價(jià)值,是值得推廣的優(yōu)良設(shè)計(jì)。

參考文獻(xiàn)

  [1] 劉吉名,裴東興.基于CY7C68013的USB2_0數(shù)據(jù)傳輸模塊設(shè)計(jì)[J].電子測(cè)量實(shí)驗(yàn)室,2008,31(3):94-96.

  [2] 張晶.基于USB2.0接口的數(shù)字圖像通信模塊設(shè)計(jì)[D].南京:南京理工大學(xué),2008.

  [3] 李英偉,王成儒,練秋生,等.USB2.0原理與工程開發(fā)(第二版)[M].北京:國(guó)防工業(yè)出版社,2007.

  [4] 趙林,孟令軍,于磊,等.基于CY7C68013A的USB2.0高速接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(1):131-133.

  [5] 陳玉輝,鐘洪聲,李廷軍.基于CY7C68013a的USB2.0接口設(shè)計(jì)[J].大眾科技,2010,134(10):23-24.

  [6] 趙志勇.USB2.0通信接口設(shè)計(jì)[J].兵工自動(dòng)化,2005,24(3):56-57.

  [7] 胡文靜,陳松.基于EZ-USB芯片CY7C68013的驅(qū)動(dòng)程序設(shè)計(jì)[Z].岳陽(yáng):華東師范大學(xué),2005.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。