999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CY7C68013A的USB控制系統(tǒng)設(shè)計研究

2010-04-12 00:00:00趙鐵軍
現(xiàn)代電子技術(shù) 2010年13期

摘 要:隨著通信技術(shù)的發(fā)展,通用串行總線作為一種新型接口技術(shù)得到廣泛應(yīng)用,它使得計算機與外部設(shè)備的連接十分方便。首先介紹USB 2.0特點,并給出了利用CY7C68013A設(shè)計控制系統(tǒng)的總體方案,同時對系統(tǒng)固件功能和驅(qū)動程序設(shè)計做了詳細討論,并提出系統(tǒng)設(shè)計中需要注意的一些關(guān)鍵性問題。控制系統(tǒng)固件程序采用C語言編寫,上位機界面在VC++6.0環(huán)境下開發(fā)。實驗表明該系統(tǒng)運行良好。

關(guān)鍵詞:CY7C68013A; 通用串行總線; VC++6.0; 固件; 上位機

中圖分類號:TP368.1 文獻標(biāo)識碼:A

文章編號:1004-373X(2010)13-0190-04

Design of USB Control System Based on CY7C68013A

ZHAO Tie-jun

(Equipment Power Department, China Coal Beijing Coal Mining Machinery Co. Ltd., Beijing 102400, China)

Abstract: With the increasing development of the communication technology, the universal serial bus (USB) as a new interface technology that makes the connection of PCs with peripheral equipments very simple has been extensively adopted. The feature of USB2.0 is introduced firstly, and then the overall plan for designing the control system by using CY7C68013A is presented. The function of the system firmware and the design of drive program are discussed in detail. The key issues which should be taken more attention during the system design are proposed. The control system firmware is programmed with C language. The control interface on PC is developed under the VC++6.0 development environment. The experiment indicates that the whole system runs perfectly well.

Keywords: CY7C68013A; USB; VC6.0; firmware; PC

0 引 言

通用串行總線 (Universal Serial Bus,USB)作為計算機上的新型接口技術(shù),越來越受到人們的青睞。與以前的RS 232,RS 485,ISA,PCI和并行接口等接口相比,USB避免了接口體積大、接口規(guī)范不統(tǒng)一、不支持熱插拔等缺陷,具有使計算機與外部設(shè)備連接十分方便的優(yōu)點[1-2]。目前,很多設(shè)備都開始使用USB接口來實現(xiàn),如鼠標(biāo)、鍵盤、打印機等。在實際設(shè)計工作當(dāng)中,也越來越多地采用了USB技術(shù),如數(shù)據(jù)采集等[3-4]。USB的設(shè)計和應(yīng)用已經(jīng)成為現(xiàn)代電子設(shè)計中一個非常重要的部分。

1 USB 2.0特點

USB是一種高效、快速、價格低廉、體積小的新型串行通信接口,其最大的特點是支持熱插拔,可以在不重新啟動計算機的情況下直接將USB外部設(shè)備連接到計算機并開始通信。

USB具有以下主要特點[2]:

(1) 節(jié)省系統(tǒng)資源。在計算機中,系統(tǒng)為USB主控制器分配一根中斷控制線和一些輸入/輸出地址,USB再為外部設(shè)備分配惟一的地址。

(2)可以提供電源。計算機上的USB接口可以向外部設(shè)備提供一定的電力支持,其輸出電流最小值為100 mA,最大值為500 mA,輸出電壓為5 V。

(3) 良好的兼容性。USB規(guī)范已經(jīng)有USB 1.0,USB 1.1,USB 2.0,無線USB等多個版本的協(xié)議,這些協(xié)議都有很好的向下兼容性。

(4) 共享式接口。USB采用“菊花鏈”式的連接方式,同時支持多個設(shè)備的連接,一個USB主控制器最多可以連接126個外部設(shè)備。

2 CY7C68013A的主要特點

CY7C68013A是Cypress公司的EZ-USB FX2LP系列低功耗版本單片機,具有和8051兼容的CPU和指令系統(tǒng),同時包括USB接口和完整的USB 2.0協(xié)議引擎,并且提供了完善的固件及主機程序開發(fā)包。該單片機的CPU采用的是增強型8051內(nèi)核,比標(biāo)準(zhǔn)的8051的速度快,硬件資源更為豐富,功能更強大。主要具有以下特點[5-6]:

(1) 具有第二個數(shù)據(jù)指針;

(2) 具有第二個USATRT;

(3) I2C總線接口;

(4) 8個額外的中斷(INT2~INT6,WAKEUP,T2,USART1);

(5) CPU時鐘可以運行在12 MHz,24 MHz,48 MHz。

3 控制系統(tǒng)設(shè)計

基于USB的控制系統(tǒng)設(shè)計主要包含兩個方面的內(nèi)容,分別為固件程序的開發(fā)和上位機(主機)控制界面的設(shè)計。CY7C68013A芯片采用的是一種軟配置模式,即程序和數(shù)據(jù)都存放在內(nèi)部RAM中,并從RAM中開始執(zhí)行。

3.1 啟動模式的選擇

EZ-USB在沒有固件的情況下列舉為一個缺省的USB設(shè)備,并且將其固件和描述符等下載到EZ-USB后,開始執(zhí)行固件程序,此時模擬一個物理上的斷開重新連接過程[6-7]。在列舉為一個USB設(shè)備時,根據(jù)芯片有沒有連接E2PROM,以及E2PROM中第一個字節(jié)值的不同,其處理方式有很多。主要有:不連接E2PROM的缺省設(shè)備列舉、C0加載、C2加載等啟動方式。在此系統(tǒng)的設(shè)計過程中,采用第一種方式,即芯片沒有連接任何片外存儲器,USB的描述符以及VID,PID和DID等均由芯片內(nèi)置的邏輯提供,然后根據(jù)驅(qū)動程序中提供的VID,PID和DID把主機上對應(yīng)的固件程序下載到片內(nèi)的RAM中,并執(zhí)行固件代碼。該方式具有硬件連接簡單,節(jié)省器件等特點。

3.2 硬件系統(tǒng)框圖

整個系統(tǒng)的硬件框圖如圖1所示??梢钥闯鯱SB控制系統(tǒng)在整個系統(tǒng)中起到橋梁作用,用于連接上位機和外部設(shè)備。

圖1 系統(tǒng)硬件框圖

上位機發(fā)送控制指令給USB設(shè)備,信息處于下行狀態(tài),解碼后用來控制外圍設(shè)備執(zhí)行相應(yīng)功能。上位機需要從外設(shè)獲得信息(如數(shù)據(jù)采集),信息處于上行狀態(tài),由USB設(shè)備負責(zé)控制外設(shè)并將數(shù)據(jù)傳送到上位機,由上位機分析、顯示。

3.3 固件程序設(shè)計

在固件中,主要實現(xiàn)芯片外圍設(shè)備的控制,以及對USB設(shè)備的功能描述等任務(wù),同時負責(zé)與上位機通信,響應(yīng)上位機的標(biāo)準(zhǔn)請求和自定義請求。

描述符主要是讓上位機了解USB功能設(shè)備的基本配置信息和能力,如端點、接口等。在此主要使用標(biāo)準(zhǔn)描述符來說明USB設(shè)備,如設(shè)備描述符、配置描述符、接口描述符、端點描述符、設(shè)備限定描述符等。在該設(shè)備中,這些描述符的層次結(jié)構(gòu)如圖2所示。

圖2 描述符層次圖

系統(tǒng)中使用了2個配置描述符,分別為高速配置和全速配置,每個配置使用1個接口,并對應(yīng)1個接口描述符,每個接口應(yīng)用了4個端點,對應(yīng)4個端點描述符。同時端點配置為塊傳輸模式,2、4端點為OUT,6、8端點為IN,最大數(shù)據(jù)包長度為512 B,上位機通過0端點來操作、控制USB設(shè)備。設(shè)備描述符中VID=0x04B4,PID=0x1304,用于指示設(shè)備供應(yīng)商和產(chǎn)品信息,并用于上電時幫助主機加載合適的驅(qū)動程序,進而下載相應(yīng)的固件程序。固件中對標(biāo)準(zhǔn)請求的響應(yīng)部分,主要是讓上位機能夠?qū)γ枋龇M行讀取和寫操作。自定義請求響應(yīng)主要實現(xiàn)上位機發(fā)送控制命令,來使能USB功能設(shè)備、以及執(zhí)行相應(yīng)的功能的目的,如DR_SendData,DR_ ReadData。

固件設(shè)計流程圖如圖3所示。

圖3 固件設(shè)計流程圖

用戶初始化設(shè)備部分放在TD_Init()子程序中,負責(zé)整個USB設(shè)備的初始化過程。在定向描述符之后,需要把所用中斷打開,并開啟8051全局中斷EA=1。由于EZ-USB設(shè)備啟動需要重列舉,因而需要通過設(shè)置和判斷USBCS寄存器的RENUM和DISCON位來模擬設(shè)備物理上的斷開和連接過程。用戶外圍設(shè)備控制功能的實現(xiàn)放在TD_Poll()子程序中,同時主循環(huán)中的SetupCommand()子程序用于接收、分析上位機的控制信號,響應(yīng)上位機請求(標(biāo)準(zhǔn)請求和用戶自定義請求)。

3.4 上位機界面設(shè)計

為了能夠很好地控制USB設(shè)備,需要編寫上位機控制界面。界面程序在VC++6.0環(huán)境下開發(fā),該環(huán)境具有編程簡單、快捷等的特點,便于開發(fā)可視化程序[8-9]。Cypress公司為EZ-USB系列芯片提供了開發(fā)庫CyAPI.lib,使用其中的控制函數(shù)類,可以在VC++6.0環(huán)境下開發(fā)界面程序[10]。建立MFC(exe)工程后,在工程中加入CyAPI.lib,并且在主文件頭部添加EZ-USB開發(fā)環(huán)境中提供的CyAPI.h,cyioctl.h頭文件。利用庫中的控制函數(shù),如VendorID,ProductID等,可以獲取USB設(shè)備的描述信息,同時也可以編寫相關(guān)的控制功能程序。

3.5 系統(tǒng)設(shè)計中關(guān)鍵問題

(1) 一個設(shè)備只能有一個設(shè)備描述符,可以有多個配置描述符,多個接口描述符,以及多個端點描述符。

(2) 設(shè)備描述符中VID,PID要與驅(qū)動中的相一致,否則不能自動加載相應(yīng)的固件程序。

(3) 固件程序必須轉(zhuǎn)換為.spt格式,用于固件加載的驅(qū)動程序和固件程序應(yīng)放在一個文件夾。

(4) 端點0為缺省控制端點,其可設(shè)置最大數(shù)據(jù)包長度為64 B,在設(shè)備描述符中wMaxPacketSize字段描述。

(5) 傳輸模式有中斷傳輸、塊傳輸、同步傳輸、控制傳輸四類,需根據(jù)自己設(shè)計需求選擇,同時注意最大數(shù)據(jù)包長度的設(shè)置。

4 驅(qū)動程序

對于USB設(shè)備,Windows操作系統(tǒng)要想對其實現(xiàn)操作,必須借助于驅(qū)動程序來實現(xiàn)。主機和驅(qū)動程序直接通信,交換數(shù)據(jù),而驅(qū)動程序則和硬件資源進行通信,從而很好地控制USB設(shè)備。Cypress提供的開發(fā)環(huán)境中自帶了相關(guān)的驅(qū)動程序CyLoad.sys和CyUSB.sys,可以直接使用,縮短了系統(tǒng)的開發(fā)周期。其中CyLoad.sys用于主機向USB設(shè)備下載固件程序,CyUSB.sys實現(xiàn)主機和固件程序通信。為了在CyLoad.sys的幫助下實現(xiàn)固件的自動下載,固件程序CyLoad.HEX必須轉(zhuǎn)換為適合自動下載的CyLoad.spt文件,并且與CyLoad.sys一起放在CyLoad文件夾下,拷貝到系統(tǒng)system32目錄下。在安裝文件CyUSB.inf中設(shè)置的PID,VID必須和描述符中的一致,使得能夠自動加載對應(yīng)固件。

5 實 驗

實驗系統(tǒng),采用CY7C68013A-56pin作為USB設(shè)備芯片,實現(xiàn)控制LED和讀取I/O數(shù)據(jù)功能。

由于芯片采用33 V電壓供電,因此可以從主機USB口取電,經(jīng)LM317電壓調(diào)整芯片轉(zhuǎn)換為33 V,也可外接33 V電壓供電。在PD口接LED,顯示TD_Poll(void)實現(xiàn)的功能(燈亮/滅間隔300 ms),而PA口LED用于顯示判斷主機發(fā)送數(shù)據(jù)。PB口接高/低電平,用于主機讀取該口數(shù)據(jù),可以驗證主機接收數(shù)據(jù)的正確性。

初始化子程序:

void TD_Init(void)

{

BREAKPT = ~bmBPEN;

OED=0xFF;//設(shè)置PD口為輸出

}

外設(shè)功能子程序:

void TD_Poll(void)

{

IOD=0x00; //D口輸出低電平

EZUSB_Delay(300);

IOD=0xFF;// D口輸出高電平

EZUSB_Delay(300);

}

自定義請求響應(yīng)發(fā)送數(shù)據(jù)子程序:

BOOL DR_SendData(void)

{

EP0BUF[0]=0xB1;//發(fā)送數(shù)據(jù)自定義請求碼

EP0BCH=0;

EP0BCL=2;

EZUSB_Delay(100);

OEA=0xFF;//PA口為輸出

IOA=EP0BUF[1];

EP0CS |= bmHSNAK;

return(TRUE);

}

自定義請求響應(yīng)接收數(shù)據(jù)子程序:

BOOL DR_ReadData(void)

{

OEB=0x00;//PB口為輸入

EP0BUF[0]=0xB2;//接收數(shù)據(jù)自定義請求碼

EP0BUF[1]=IOB;

EP0BCH=0;

EP0BCL=2;

EP0CS |= bmHSNAK;

return(TRUE);

}

主機控制界面運行如圖4所示。

界面中的USB Information分類框中為USB描述相關(guān)信息,由主機通過標(biāo)準(zhǔn)請求獲得。Operation分類框中為主機向USB設(shè)備PA口發(fā)送數(shù)據(jù),以及從USB設(shè)備的PB讀取數(shù)據(jù)的

情況。

圖4 主機控制界面

6 結(jié) 語

采用CY7C68013A實現(xiàn)USB控制系統(tǒng),無論在固件程序編寫、主機控制界面開發(fā),以及設(shè)備驅(qū)動程序的使用等方面,都具有簡單、方便的優(yōu)點。系統(tǒng)采用設(shè)備固件存放在主機上的方法,不但簡化了硬件設(shè)計,節(jié)約元器件成本,而且也提高了設(shè)備的可靠性。同時,此法對以后固件升級或更改設(shè)備功能,也十分簡便,只需把固件修改好并放到主機相應(yīng)位置,在USB設(shè)備再次插入主機時,就可以實現(xiàn)固件自動更新。文中給出一些設(shè)計過程中需要注意的關(guān)鍵問題,對于USB控制設(shè)備的設(shè)計具有一定的指導(dǎo)作用。上述系統(tǒng)和程序經(jīng)過實際運行,工作穩(wěn)定、可靠。

參考文獻

[1]李英偉,王成儒.USB 2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社,2007.

[2]胡曉軍,張愛成.USB接口開發(fā)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.

[3]錢峰.EZ-USBFX2單片機原理編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.

[4]周立功.PDIUSBD12 USB固件編程與驅(qū)動開發(fā)[M].北京:北京航空航天大學(xué)出版社,2003.

[5]薛園園.USB應(yīng)用開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2007.

[6]Cypress. EZ-USB FX2LPTM USB microcontroller datasheet[ EB/OL] . [ 2009-05-20] . http://www.cypress.com.

[7]Cypress. EZ-USB FX2 technical reference manual[ EB/OL] . [ 2009-03-18] . http://www.cypress.com.

[8]周曉云.程序設(shè)計基礎(chǔ)——可視化及VC++實現(xiàn)[M].北京:高等教育出版社,2004.

[9]張凱.VC++程序設(shè)計[M].大連:大連理工大學(xué)出版社,2002.

[10]Cypress. Cypress CyAPI programmer′s reference[ EB/OL] . [ 2009-02-20] . http://www.cypress.com.

主站蜘蛛池模板: 有专无码视频| 亚洲精品波多野结衣| 免费jizz在线播放| 中国丰满人妻无码束缚啪啪| 国产原创自拍不卡第一页| 欧美在线综合视频| 夜夜操天天摸| 一区二区理伦视频| 日韩在线永久免费播放| 99久久国产综合精品2020| 无码国产偷倩在线播放老年人 | 国产免费怡红院视频| 精品无码一区二区三区在线视频| 久久综合国产乱子免费| 色视频国产| 国产欧美高清| 精品91视频| 一级做a爰片久久免费| aⅴ免费在线观看| 国产成人综合亚洲欧洲色就色| 免费国产好深啊好涨好硬视频| 中文无码伦av中文字幕| 日韩小视频网站hq| 中文国产成人精品久久| 欧美成人一级| 免费va国产在线观看| 欧美一级99在线观看国产| 九月婷婷亚洲综合在线| 国产精鲁鲁网在线视频| 中文字幕免费播放| 欧美一级99在线观看国产| 国产99视频精品免费观看9e| 国产午夜福利在线小视频| 日韩精品毛片人妻AV不卡| 在线观看网站国产| 无码网站免费观看| 久久久受www免费人成| 人妻一本久道久久综合久久鬼色| 久久综合伊人 六十路| 久久国产精品波多野结衣| 成人自拍视频在线观看| 亚洲国产日韩一区| 色妞永久免费视频| 国产在线自乱拍播放| 一级做a爰片久久免费| 国产精品无码影视久久久久久久| 久久中文无码精品| 九色视频在线免费观看| 欧美日韩va| 色老二精品视频在线观看| 日韩乱码免费一区二区三区| 久久久久免费看成人影片 | 亚洲天堂在线视频| 超碰免费91| 久久美女精品国产精品亚洲| 为你提供最新久久精品久久综合| 99在线观看精品视频| 日韩av电影一区二区三区四区 | 在线视频亚洲色图| 免费精品一区二区h| 欧美精品在线免费| 国产精品手机在线观看你懂的| 亚洲最新在线| 看看一级毛片| 国产欧美日韩视频怡春院| 91精品啪在线观看国产91九色| 国产丝袜91| 免费人成视网站在线不卡| 亚洲一区波多野结衣二区三区| 国产成人综合久久精品尤物| 97久久精品人人| 久久www视频| A级全黄试看30分钟小视频| 国产91丝袜在线播放动漫| 精品偷拍一区二区| 3D动漫精品啪啪一区二区下载| 欧美成在线视频| 婷婷六月综合| 亚洲男女在线| 亚洲无码不卡网| 91色在线观看| 99尹人香蕉国产免费天天拍|