當前位置:首頁 > 單片機 > 單片機
[導讀]1 前言USB(Universal Serial Bus,通用串行總線)作為PC史上最成功的接口之一,它不僅成為PC的標準接口,而且發(fā)展成為消費類電子、移動設備的標準接口。它具有安裝方便、高速、靈活、低成本、易擴展,支持

1           前言

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

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

2           芯片特點

2.1          C8051F020微控制器[1]

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

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

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

2.2          USB控制器USBN9604[2]

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

1)        外部24MHZ晶振,因為芯片內(nèi)部有倍頻電路,因而內(nèi)部可得到48MH時鐘。

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

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

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

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

3           USB接口的擴展

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

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

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

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

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

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

圖1 C8051F020單片機和USBN9604接口電路示意圖

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

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

所以通過上面步驟我們設置EMIF的相關特殊寄存器為以下值:

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

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

在設置EMIF之后,我們讀取USBN9604的寄存器就像讀取普通外部數(shù)據(jù)存儲器一樣。我們可以這樣編寫對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           設備固件(firmware)設計

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

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

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

5           結(jié)論

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

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉