自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
基于C8051F020單片機(jī)系統(tǒng)的USB擴(kuò)展
基于C8051F020單片機(jī)系統(tǒng)的USB擴(kuò)展
 更新時(shí)間:2009-6-10 18:05:40  點(diǎn)擊數(shù):0
【字體: 字體顏色
1    前言

    USB(Universal Serial Bus,通用串行總線)作為PC史上最成功的接口之一,它不僅成為PC的標(biāo)準(zhǔn)接口,而且發(fā)展成為消費(fèi)類電子、移動(dòng)設(shè)備的標(biāo)準(zhǔn)接口。它具有安裝方便、高速、靈活、低成本、易擴(kuò)展,支持熱插拔等優(yōu)點(diǎn),已經(jīng)逐漸成為現(xiàn)代數(shù)字設(shè)備進(jìn)行數(shù)據(jù)傳輸主要接口標(biāo)準(zhǔn)。

    C8051F020是高集成的單片機(jī)系統(tǒng),它集成了模/數(shù)控制器,外部存儲(chǔ)器,和串行通訊接口,但是沒(méi)有集成USB控制器;USBN9604是遵循USB1.1標(biāo)準(zhǔn)的USB端點(diǎn)控制器,如果把兩者集合到一起,把C8051F020的高速數(shù)據(jù)采集和USB的接口的優(yōu)點(diǎn)集合起來(lái),將大大提高數(shù)據(jù)采集系統(tǒng)的性能和數(shù)據(jù)傳輸效率。

2    芯片特點(diǎn)

2.1    C8051F020微控制器[1]

    C8051F020系列器件使用Silicon Labs的專利CIP-51微控制器內(nèi)核。CIP-51與MCS-51TM

    指令集完全兼容,可以使用標(biāo)準(zhǔn)803x/805x的匯編器和編譯器進(jìn)行軟件開(kāi)發(fā)。CIP-51 內(nèi)核具有標(biāo)準(zhǔn)8052的所有外設(shè)部件,包括5個(gè)16 位的計(jì)數(shù)器/定時(shí)器、兩個(gè)全雙工UART、256 字節(jié)內(nèi)部RAM、128 字節(jié)特殊功能寄存器(SFR)地址空間及8/4個(gè)字節(jié)寬的I/O 端口。

    C8051F020系列MCU對(duì)CIP-51內(nèi)核和外設(shè)有幾項(xiàng)關(guān)鍵性的改進(jìn),提高了整體性能,更易于在最終應(yīng)用中使用。

2.2    USB控制器USBN9604[2]

    USBN9604 是National Semiconductor公司設(shè)計(jì)生產(chǎn)的一款較新型的專用USB通信控制芯片,它支持12Mbps全速傳輸,4種傳輸方式和總線供電方式,可滿足 USB1.0和1.1協(xié)議。它具有8位并行接口,可支持DMA、MICRWIRE/PLUS接口,能適應(yīng)大多數(shù)設(shè)備規(guī)范的設(shè)計(jì),可以廣泛應(yīng)用于很多外圍設(shè)備。芯片提供了3種訪問(wèn)外部數(shù)據(jù)的方式:非復(fù)用并行方式、復(fù)用并行方式和MICRWIRE方式。其主要特點(diǎn)如下:

1)  外部24MHZ晶振,因?yàn)樾酒瑑?nèi)部有倍頻電路,因而內(nèi)部可得到48MH時(shí)鐘。

2)  可編程時(shí)鐘發(fā)生器能產(chǎn)生不同頻率的時(shí)鐘,可以作為外部器件(如CPU)提供的時(shí)鐘信號(hào)。

3)  帶有串行引擎接口(SEI),包含物理層接口和介質(zhì)訪問(wèn)控制層協(xié)議,支持USB1.0和USB1.1協(xié)議。

4)  帶有7個(gè)端點(diǎn)的USB功能控制器,每個(gè)端點(diǎn)對(duì)應(yīng)一個(gè)FIFO。其中端點(diǎn)0是雙向控制端點(diǎn),另有3個(gè)發(fā)送端點(diǎn)和3個(gè)接收端點(diǎn)。除端點(diǎn)0外其余端點(diǎn)緩存區(qū)都是64字節(jié)。

    USBN9604 內(nèi)部有64個(gè)映射到內(nèi)存的寄存器,主要有主控制寄存器(MCTL)、時(shí)鐘配置寄存器(CCONF)、主事件寄存器(MAEV)、ALT事件寄存器 (ALTEV)、接收事件寄存器(RXEV)和發(fā)送事件寄存器 (TXEV)以及各端點(diǎn)的控制寄存器和收發(fā)數(shù)據(jù)及狀態(tài)寄存器等。固件的大部分功能就是完成對(duì)此寄存器組的讀寫,實(shí)現(xiàn)對(duì)接口的配置、接口狀態(tài)的轉(zhuǎn)換以及數(shù)據(jù)在外設(shè)和計(jì)算機(jī)之間的傳輸?shù)取?/p>

3    USB接口的擴(kuò)展

    C8051F020專門提供了豐富的I/O端口,它可以提供8個(gè)8位的數(shù)字接口,其中P0、P1、P2、P3為低端口,它既可以按位尋址,也可以按字節(jié)尋址,C8051F020豐富的數(shù)字資源(UART、 SMBUS、SPI、PCA、定時(shí)器)均要通過(guò)交叉開(kāi)關(guān)配置到4個(gè)低端口才能使用。P4、P5、P6、P7為高端口,它只能按字節(jié)尋址,C8051F020雖工作電壓為2.7-3.6V,但其I/O端口均與TTL電平兼容。對(duì)于外部擴(kuò)展存儲(chǔ)器和存儲(chǔ)器映射的I/O設(shè)備可采用總線復(fù)用模式和非復(fù)用模式擴(kuò)展。

    USBN9604與微控制器的并行連接有兩種方式:即非復(fù)用方式和復(fù)用方式。它們可通過(guò)設(shè)置引腳MODE0、 MODE1來(lái)選擇。當(dāng)MODE0和MODE1連接低電平時(shí)USBN9604采用非復(fù)用模式;當(dāng)MODE0接高電平,MODE1接低電平時(shí)采用復(fù)用方式。在非復(fù)用方式時(shí),可用控制引腳CS、RD、WR、地址引腳A0和雙向數(shù)據(jù)線D[7:0]實(shí)現(xiàn)相應(yīng)的地址讀寫。而在復(fù)用方式時(shí),則使用控制引腳CS、RD、 WR、地址鎖存信號(hào)ALE和雙向數(shù)線D[7:0]實(shí)現(xiàn)其地址讀寫。

    本設(shè)計(jì)采用總線復(fù)用方式進(jìn)行數(shù)據(jù)交換。圖1所示是C8051F020單片機(jī)和USBN9604的接口電路,該電路由一片C8051F020單片機(jī)、USB控制芯片USBN9604、時(shí)鐘振蕩電路以及相應(yīng)的外圍電路組成。其中 USBN96O4通過(guò)外部中斷INT與單片機(jī)進(jìn)行通信。

    圖1為低端口復(fù)用總線擴(kuò)展實(shí)例。數(shù)據(jù)總線和低8位地址總線共享相同的端口引腳:AD[7:0],地址鎖存信號(hào)ALE連接到USBN9604的A0引腳,用于控制USBN9604內(nèi)部地址鎖存寄存器,保持低8位地址。通過(guò)交叉開(kāi)關(guān)的特殊寄存器將數(shù)據(jù)總線和數(shù)據(jù)總線定義到相應(yīng)的端口。當(dāng)我們?cè)谶x用總線復(fù)用模式,用低端口作為擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器總線時(shí)需要做以下工作:

1)  用外部存儲(chǔ)器接口(EMIF)設(shè)置寄存器EMIOCF選擇端口:EMIOCF.5置0,將P3、P2、P1、P0選用外部擴(kuò)展總線。

2)  選擇復(fù)用方式:將EMIOCF.4置0,定義復(fù)用方式。定義P3.7-P3.0為數(shù)據(jù)總線D7-D0和低8位復(fù)用地址總線A7-A0,P2.7-P2.0 定義為高8位地址總線A15-A8,P0.7定義為寫控制(WR),P0.6定義為讀控制(RD),P0.5定義為ALE。

圖1 C8051F020單片機(jī)和USBN9604接口電路示意圖

3)  選擇存儲(chǔ)器模式:用EMIOCF.3-2,選擇EMIF的工作模式,當(dāng)EMIOCF.3-2為01時(shí)外部存儲(chǔ)器接口工作在不帶塊選擇的分片方式,在這種模式下尋址低于4K 邊界的地址時(shí)訪問(wèn)片內(nèi)存儲(chǔ)器,尋址高于4K 邊界的地址時(shí)訪問(wèn)片外存儲(chǔ)器,也就是說(shuō)該設(shè)備的寄存器地址范圍是0X1000-0X10FF。

4)  設(shè)置外設(shè)接口時(shí)序:外設(shè)讀寫時(shí)序通過(guò)EM0TC特殊寄存器設(shè)置,EM0TC.7-6設(shè)置EMIF地址建立時(shí)間,EM0TC.5-2設(shè)置EMIF的WR和RD脈沖寬度,EM0TC.1-0設(shè)置EMIF地址保持時(shí)間。

所以通過(guò)上面步驟我們?cè)O(shè)置EMIF的相關(guān)特殊寄存器為以下值:

EMI0CF  = 0x07;    //使用低端口,復(fù)用方式以不帶片選方式工作

EMI0TC  =0x21;    //地址建立時(shí)間為0,RD/WR持續(xù)時(shí)間為9個(gè)系統(tǒng)時(shí)鐘周期,地址保持時(shí)間為1個(gè)系統(tǒng)周期。

    在設(shè)置EMIF之后,我們讀取USBN9604的寄存器就像讀取普通外部數(shù)據(jù)存儲(chǔ)器一樣。我們可以這樣編寫對(duì)USBN9604讀取的函數(shù):

#define USBN9604 (byte xdata *)(0x1000)

extern void write_usb(byte adr,byte dta)

{

  *(USBN9604 +adr)= dta;

}

 

byte read_usb(byte adr)

{

  return  *(USBN9604+adr);

}

4    設(shè)備固件(firmware)設(shè)計(jì)

    USB 接口的程序包括三個(gè)基本的部分:①初始化,這部分程序用來(lái)對(duì)單片機(jī)C8051F020、USB控制芯片USBN9604和所有外圍電路進(jìn)行初始化;②主循環(huán),發(fā)送USB請(qǐng)求、處理USB總線事件和用戶事件處理;③中斷服務(wù)程序,對(duì)USBN9604產(chǎn)生的中斷進(jìn)行處理。

     初始化程序中對(duì) USBN9604的初始化包括:①進(jìn)行軟件復(fù)位,它不影響時(shí)鐘輸出,相當(dāng)于一個(gè)硬件復(fù)位;②設(shè)置中斷方式,確定中斷輸出是高電平有效還是低電平有效;③設(shè)置缺省地址,這是由于USB規(guī)范規(guī)定設(shè)備在總線為其分配地址之間要以0作為缺省地址;④設(shè)置中斷屏蔽,在USBN9604中各個(gè)端點(diǎn)的發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和發(fā)送NAK握手包等事件可能產(chǎn)生中斷;設(shè)置中斷屏蔽這個(gè)步驟確定了哪一個(gè)端點(diǎn)的哪一種事件能夠產(chǎn)生中斷。

    設(shè)備固件是設(shè)備運(yùn)行的核心,其主要功能是控制芯片USB9604接受并處理USB驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài)、請(qǐng)求設(shè)備設(shè)置、請(qǐng)求或設(shè)置設(shè)備接口等供10種 USB1.1標(biāo)準(zhǔn)請(qǐng)求)。描述符包括設(shè)備描述符和配置描述符,USB規(guī)范給出了它們的格式,想要計(jì)算機(jī)正確識(shí)別設(shè)備并安裝驅(qū)動(dòng)程序,這些描述符必須根據(jù)具體設(shè)備的情況填寫。如果這些設(shè)置正確,這時(shí)該已經(jīng)成為一個(gè)USB設(shè)備,能夠被計(jì)算機(jī)正確識(shí)別。由于Windows XP自帶了多種USB驅(qū)動(dòng)程序,所以現(xiàn)在一般不用開(kāi)發(fā)USB驅(qū)動(dòng)程序,用其自帶的USB驅(qū)動(dòng)程序即可正確和PC進(jìn)行通訊,用戶只需開(kāi)發(fā)應(yīng)用軟件即可。

5    結(jié)論

    基于USB外設(shè)的應(yīng)用目前在國(guó)內(nèi)處于高速發(fā)展階段,利用USB進(jìn)行數(shù)據(jù)采集和工業(yè)控制已得到成功應(yīng)用,雖然隨著USB協(xié)議2.0,特別是無(wú)線USB協(xié)議的推出,USB總線發(fā)生了巨大的變化,但是基于USB1.1協(xié)議的數(shù)據(jù)采集系統(tǒng)在工業(yè)應(yīng)用中仍占主導(dǎo)地位。該方案經(jīng)實(shí)驗(yàn)證明正確有效,能夠應(yīng)用于多種數(shù)據(jù)采集系統(tǒng),具有重要的應(yīng)用價(jià)值。

  • 上一篇: 新型MCU實(shí)現(xiàn)帶DRM的單芯片數(shù)字音頻解碼器
  • 下一篇: 基于單片機(jī)的電子導(dǎo)游系統(tǒng)設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1