趙 靜,馬尚昌(成都信息工程大學(xué) 中國氣象局大氣探測重點(diǎn)實驗室,四川 成都 610225)
基于CY7C68013的USB2.0通信接口的設(shè)計
趙 靜,馬尚昌
(成都信息工程大學(xué) 中國氣象局大氣探測重點(diǎn)實驗室,四川 成都 610225)
介紹了一種利用USB通信協(xié)議的方法實現(xiàn)下位機(jī)與上位機(jī)之間的通信傳輸。該方法以滿足符合標(biāo)準(zhǔn)的USB2.0協(xié)議為基礎(chǔ),以EZ-USB FX2為設(shè)計的基礎(chǔ)構(gòu)架,以Cypress公司推出最具性價比的一種內(nèi)嵌增強(qiáng)51單片機(jī)的芯片CY7C68013為核心,來構(gòu)建下位機(jī)與上位機(jī)的數(shù)據(jù)傳輸通道。給出了系統(tǒng)的硬件設(shè)計方案、固件驅(qū)動程序以及計算機(jī)端的應(yīng)用程序設(shè)計方法及流程。通過USB數(shù)據(jù)通信表明,USB2.0高速接口的帶寬能夠達(dá)到480 Mb/s的通信速率,能夠充分滿足普通接口數(shù)據(jù)傳輸所需速率,有效提高了傳輸效率,并且能將接收到的數(shù)據(jù)保存在計算機(jī)系統(tǒng)中,以備使用。因此,USB2.0通信接口的設(shè)計在數(shù)據(jù)傳輸?shù)膶嶋H運(yùn)用中有值得探索的價值。
數(shù)據(jù)傳輸;USB2.0;高速接口;相互通信;驅(qū)動程序
隨著多媒體技術(shù)的發(fā)展,對外設(shè)與主機(jī)之間的數(shù)據(jù)傳輸率有了更高的要求,且傳統(tǒng)的計算機(jī)與外設(shè)通過串行、并行或 PCI總線傳輸,要占用計算機(jī)系統(tǒng)資源,擴(kuò)展性較差,而且傳輸速率和通信距離有限,已無法滿足計算機(jī)外設(shè)發(fā)展需求[1],對于傳統(tǒng)的 RS232串口通信來說也很難滿足與上位機(jī)之間所需要的 10 Mb/s以上的通信速率,因此,USB總線技術(shù)應(yīng)運(yùn)而生。目前,國內(nèi)外主要采用 USB1.1和 USB2.0這兩種規(guī)范,USB1.1主要用于低速傳輸要求的場合,支持 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ù)傳輸過程中不需要 CPU的干涉,使得傳輸速率明顯提高,從而充分利用 USB2.0的傳輸寬帶;(2)由軟件設(shè)置讀寫控制,提高傳輸穩(wěn)定性。因此,本文把GPIF接口功能的優(yōu)勢綜合利用在設(shè)計中并合理配置,使數(shù)據(jù)能夠快速下載并上傳到計算機(jī)上保存及顯示。
1.1 系統(tǒng)總體設(shè)計框圖
系統(tǒng)的總體設(shè)計由電源電平轉(zhuǎn)換電路、串行EEPROM電路、主芯片最小系統(tǒng)電路、引出口電路和PCUSB接口5部分組成,連接框圖如圖1所示。
圖1 系統(tǒng)連接框圖
該USB高速接口模塊是作為與上位機(jī)通信傳輸?shù)囊粋€重要橋梁,所以PC-USB接口必不可少,用USB線連接完成該電路與計算機(jī)的傳輸總線,采用 CY7C68013芯片的GPIF接口模式來完成控制信號的發(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)來存放PID/VID程序,引出口電路將芯片主要管腳引出,使得與其他外設(shè)連接提供方便。
1.2 主芯片最小系統(tǒng)
采用的 CY7C68013A芯片,較 100和 128引腳封裝,其56引腳封裝的缺少部分管腳功能,雖然不能在線仿真,但可進(jìn)行簡單調(diào)試,通過廠商的請求可以完成。具體設(shè)計如圖2所示。
其最小系統(tǒng)中包含24 MHz晶振振蕩電路,晶振兩邊的電容大小范圍可取 22 pF~30 pF和復(fù)位電路,復(fù)位電路 1 kΩ/0.1μF的RC電路,系統(tǒng)能夠正常上電復(fù)位。SCL是漏極開路輸出,SDA引腳是漏極遲滯輸入,在與EEPROM的SCL和SDA連接時,必須外接1.5 kΩ~10 kΩ的上拉電阻。PB0-PB7、PD0-PD7均為雙向I/O口引腳,也是復(fù)用引腳,可分別作為GPIF數(shù)據(jù)總線的低8位和高8位。CLKOUT引腳時鐘輸出可為12/24/48 MHz,作為其他外設(shè)的時鐘。端點(diǎn)2配置為寫設(shè)備地址,端點(diǎn)6配置為讀設(shè)備地址,每個端點(diǎn)都設(shè)置為 4個緩沖區(qū)[4]。IFCLK為接口時鐘,作為同步時鐘數(shù)據(jù)的輸入輸出。
1.3 硬件部分工作過程
數(shù)據(jù)傳輸通信的主要控制芯片為CY7C68013,主要完成信號處理和單片機(jī)控制功能。系統(tǒng)的數(shù)據(jù)傳輸模塊通過USB連接到計算機(jī),按下復(fù)位鍵后上電復(fù)位,功能設(shè)備將被識別并枚舉[1]。在設(shè)計中將程序下載到串行E2PROM中,主控芯片首先檢測FX2的啟動模式,若檢測到E2PROM存在且首字節(jié)是0xC2,則按C2加載。下載固件,根據(jù)USB描述符配置信息上電復(fù)位完成重枚舉[5]。再轉(zhuǎn)移到片內(nèi)8.5 KB的RAM存放數(shù)據(jù)和程序進(jìn)行軟配置,配置特定端點(diǎn)緩沖區(qū)來進(jìn)行數(shù)據(jù)的高速傳輸與讀取。其中采用GPIF可編程接口方式利用FX2的GPIF方式構(gòu)建USB數(shù)據(jù)傳輸通道,由軟件編程輸出讀寫控制波形讀取 FIFO標(biāo)識,控制 FIFO的選通,可對外部通用總線接口進(jìn)行訪問。
圖2 主芯片最小系統(tǒng)
2.1 固件程序設(shè)計
固件程序是指用于控制硬件系統(tǒng)、完成芯片的初始化的代碼,存儲在USB接口芯片或微控器中,所以 FX2要先下載固件再使用,處理各種設(shè)備的請求,完善對芯片的配置,對主機(jī)與外部設(shè)備間的數(shù)據(jù)傳輸作出相應(yīng)處理,達(dá)到主機(jī)與外設(shè)通信的目的。Cypress公司為了降低用戶對固件編程的難度,提供了一套配套的固件程序開發(fā)框架,可直接在 Keil C51環(huán)境中進(jìn)行編譯,并可在固件庫里調(diào)用一些函數(shù)、常量或數(shù)據(jù)結(jié)構(gòu)來修改自己的程序。
固件框架的源文件包括由 Keil提供的 8051頭文件,庫函數(shù)聲明以及變量、宏和數(shù)據(jù)類型定義,F(xiàn)X2寄存器頭文件,固件框架源文件,用戶可修改的鉤子函數(shù),用戶可修改的USB描述符列表,EZ-USB庫文件和中斷跳轉(zhuǎn)目標(biāo)文件[6]。在上電復(fù)位程序起始時,固件程序首先會自動初始化所有的內(nèi)部變量,接著調(diào)用初始化函數(shù)TD_Init(),固件就會把USB接口設(shè)置為未配置狀態(tài)并開啟中斷使能,循環(huán)延時間隔1 s后開始設(shè)備重枚舉直到端點(diǎn)0接收到Setup包為止退出循環(huán)。只要檢測到了Setup包,固件構(gòu)架就會啟動與PC主機(jī)合作的分配器,執(zhí)行任務(wù)調(diào)度。固件程序框架如圖3所示。
圖3 固件程序框架
2.2 應(yīng)用程序設(shè)計
應(yīng)用程序編寫最主要的問題是實現(xiàn)上位機(jī)向外部設(shè)備發(fā)送指定命令數(shù)據(jù)包,設(shè)備能夠接收到上位機(jī)傳遞的指定數(shù)量的數(shù)據(jù)以及在通過執(zhí)行命令后能夠向其返送數(shù)據(jù),達(dá)到上位機(jī)與設(shè)備能夠相互通信的效果。主機(jī)應(yīng)用程序通過驅(qū)動程序來完成對設(shè)備的控制和通信,采用具有友好界面的VC++6.0軟件編寫測試系統(tǒng)的應(yīng)用程序,充分利用VC++的MFC框架的豐富資源,在與設(shè)備通信時首先通過 Win32函數(shù) CreateFile()來取得訪問設(shè)備驅(qū)動程序的句柄[7]。得到句柄后向設(shè)備提交相應(yīng)的IOCTL控制碼,進(jìn)行讀寫和控制操作完成相應(yīng)操作后,通過Win32函數(shù) DeviceIoControl()關(guān)閉設(shè)備結(jié)束一次數(shù)據(jù)傳輸操作。在用戶編寫的TD_Poll()函數(shù)中,檢測到有命令數(shù)據(jù)包傳送,單片機(jī)將讀取EP2端點(diǎn)的數(shù)據(jù),直到EP2端點(diǎn)的數(shù)據(jù)為空,獲得上位機(jī)發(fā)送來的命令數(shù)據(jù)包。根據(jù)命令字的定義來執(zhí)行相應(yīng)操作,并向命令EP6端點(diǎn)寫數(shù)據(jù)發(fā)送給主機(jī)。
在系統(tǒng)測試中,單片機(jī)與上位機(jī)的通信由用戶自己編譯的執(zhí)行軟件BulkLoop.exe來體現(xiàn)。
由軟件編程向單片機(jī)發(fā)送數(shù)據(jù),由控制按鈕點(diǎn)擊實現(xiàn)特定指令發(fā)送,在沒有獲取設(shè)備信息時顯示的是運(yùn)用軟件界面信息,如圖 4(a)所示,單片機(jī)在接收到數(shù)據(jù)處理后接口電路中LED燈亮暗顯示,同時獲取設(shè)備信息。單片機(jī)通過模擬按鍵向上位機(jī)發(fā)送特定數(shù)據(jù),上位機(jī)接收數(shù)據(jù),顯示的是設(shè)備信息,如圖 4(b)所示。
圖4 結(jié)果顯示
利用 Cypress公司提供的 USB2.0高速接口芯片CY7C68013A芯片,完成了硬件設(shè)計與軟件程序的設(shè)計,使之達(dá)到了單片機(jī)與上位機(jī)通信的效果。在以后各個領(lǐng)域上的數(shù)據(jù)傳輸通信存在著必不可少的使用價值。
芯片所具有的可編程特性大大提高了系統(tǒng)工作的準(zhǔn)確性與可靠性,數(shù)據(jù)穩(wěn)定性高,不易丟失,便于數(shù)據(jù)的傳輸和處理。再加上USB接口設(shè)備具有熱插拔和即插即用的特性,使模塊更具有較高的實用價值,是值得推廣的優(yōu)良設(shè)計。
[1]劉吉名,裴東興.基于CY7C68013的USB2_0數(shù)據(jù)傳輸模塊設(shè)計[J].電子測量實驗室,2008,31(3):94-96.
[2]張晶.基于 USB2.0接口的數(shù)字圖像通信模塊設(shè)計[D].南京:南京理工大學(xué),2008.
[3]李英偉,王成儒,練秋生,等.USB2.0原理與工程開發(fā)(第二版)[M].北京:國防工業(yè)出版社,2007.
[4]趙林,孟令軍,于磊,等.基于 CY7C68013A的 USB2.0高速接口設(shè)計[J].電子技術(shù)應(yīng)用,2014,40(1):131-133.
[5]陳玉輝,鐘洪聲,李廷軍.基于 CY7C68013a的 USB2.0接口設(shè)計[J].大眾科技,2010,134(10):23-24.
[6]趙志勇.USB2.0通信接口設(shè)計[J].兵工自動化,2005,24(3):56-57.
[7]胡文靜,陳松.基于 EZ-USB芯片 CY7C68013的驅(qū)動程序設(shè)計[Z].岳陽:華東師范大學(xué),2005.
The design of USB2.0 communication interface based on CY7C68013
Zhao Jing,Ma Shangchang
(The Key Laboratory of China Meteorological Administration,Chengdu University of Information Technology,Chengdu 610225,China)
This paper Introduces a method of using USB communication protocol to realize the data transmission between the lower computer and upper computer.The method is based on meeting the standard USB2.0 protocol,and the design of architecture is based on FX2 EZ-USB,taking the one of the most competitive chip CY7C68013 as the core which embedded enhanced 51mCU chip and provided by Cypress Company,to construct a lower computer and upper computer data transmission channel.Furthermore,this design gives the system hardware design,firmware to the driver and computer applying program designing method and process.The USB data communication indicates that USB2.0 high speed interface bandwidth is enough to achieve the communication rate of 480Mb/s,effectively improving the transmission efficiency.Also the computer can accept data and save ready for using.Therefore,the design of USB communication interface is worth exploring the value in the practical application of the data transmission.
data transmission;USB2.0;high speed interface;intercommunication;drivers
TP334.7
A
1674-7720(2015)22-0061-03
趙靜,馬尚昌.基于CY7C68013的USB2.0通信接口的設(shè)計[J].微型機(jī)與應(yīng)用,2015,34(22):61-63.
2015-07-20)
趙靜(1991-),通信作者,女,碩士研究生,主要研究方向:氣象探測技術(shù)。E-mail:931660828@qq.com。
馬尚昌(1971-),男,教授,主要研究方向:地面氣象觀測儀器、信息獲取與處理。