當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1、CY7C68013A芯片簡介一個典型的USB應(yīng)用系統(tǒng)由USB設(shè)備、USB主機和USB電纜組成,USB主機一般指具有USB接口的計算機,連接到主機USB端口的外部設(shè)備一般稱為USB設(shè)備。Cypress

1、CY7C68013A芯片簡介

一個典型的USB應(yīng)用系統(tǒng)由USB設(shè)備、USB主機和USB電纜組成,USB主機一般指具有USB接口的計算機,連接到主機USB端口的外部設(shè)備一般稱為USB設(shè)備。

Cypress的EZ-USB FX2系列芯片是世界上第一款集成了USB2.0協(xié)議的微處理器,EZ-USB FX2LP系列是其低功耗版本,使用比較多的是CY7 C68013A。

FX2LP芯片的內(nèi)部主要包括高性能微處理器內(nèi)核、USB2.0收發(fā)器、智能引擎(SIE)、增強8051內(nèi)核、16K的RAM,4K的FIFO、IO接口、數(shù)據(jù)總線、地址總線和通用可編程接口等。EZ-USB FX2LP的CPU采用的是增強型8051內(nèi)核,指令集和標(biāo)準的8051完全兼容,因此非常便于熟悉51單片機的用戶使用。

根據(jù)內(nèi)部資源和引腳數(shù)量的不同,CY7C68013A芯片一共提供了三種不同的封裝。本文以CYTC68013A-56pin為例進行說明,該封裝提供了PA、PB、PD共3個8位并行I/O端口。

2、開發(fā)環(huán)境的搭建

USB接口設(shè)備的開發(fā)比較復(fù)雜,需要涉及USB固件程序、USB驅(qū)動程序、上位機程序開發(fā)和電路板設(shè)計等諸多方面。

2.1 固件開發(fā)環(huán)境

USB功能設(shè)備的硬件功能主要由硬件上的微處理器來實現(xiàn),微處理器是由芯片上的固件程序控制的。由于FX2LP的CPU采取了8051內(nèi)核,因此,固件開發(fā)環(huán)境仍然可以使用51系列單片機的常用開發(fā)軟件--Keil μVision。

2.2 Cypress開發(fā)包

Cypress公司為EZ-USB芯片提供了一個開發(fā)包,CY3684 EZ-USB FX2LP Development Kit,里面包含了典型的固件代碼,用戶可以參考使用。另外,該開發(fā)包還提供了通用USB驅(qū)動程序、典型的硬件電路、上位機操作函數(shù)說明等。

2.3 上位機開發(fā)環(huán)境

USB功能設(shè)備需要連接到計算機上使用,因此需要上位機的程序開發(fā),一般可以使用微軟的Visual Studio來實現(xiàn)。USB設(shè)備開發(fā)的上位機程序通過USB設(shè)備的驅(qū)動程序來和USB設(shè)備進行通信。

驅(qū)動程序的開發(fā)可以使用微軟的DDK開發(fā)驅(qū)動程序,也可以使用Driver Studio軟件。針對Cypress公司的EZ-USB系列芯片,也可以直接使用Cypress的通用驅(qū)動程序,這是一種更加簡單的開發(fā)方式。

3、USB鍵盤的設(shè)計

3.1 電路設(shè)計

圖1是CY7C68013A-56pin的典型連接。電壓調(diào)整芯片將USB接口的5 V電壓轉(zhuǎn)換為芯片的工作電壓3.3 V;類似51系列單片機,時鐘振蕩電路接入晶振和兩個瓷片電容;SCL與SDL引腳接上拉電阻。

 


鍵盤設(shè)計十分簡單,CYTC68013A-56pin有PA、PB、PD三組24個IO端口,利用這些IO端口,就可設(shè)計常用的矩陣鍵盤,如圖2所示,鍵的數(shù)目可達12*12個。和51單片機實現(xiàn)的鍵盤一樣,固件程序需要對行和列進行掃描,采用輪詢或中斷的方式,對按下的鍵值進行判斷。

另外,在制作電路板的時候,注意D+和D-的走線盡量的短而且相等,晶振盡量靠近芯片。

 


3.2 USB芯片的固件程序設(shè)計

EZ-USB FX2LP芯片采用的是一種軟配置模式。也就是USB設(shè)備的各種驅(qū)動程序都保存在上位機,上電后,USB主機首先將程序下載到RAM中,然后從RAM開始執(zhí)行。在這個過程中,有兩次“枚舉”:剛加電時,USB內(nèi)核中沒有固件,將被枚舉為一個默認的USB設(shè)備;主機下載固件程序之后,在內(nèi)核中執(zhí)行固件程序,就會重新識別并枚舉這個USB設(shè)備,這個過程被稱為“重枚舉”。在第一次枚舉時,根據(jù)芯片有沒有連接E2PROM,以及E2PROM中第一個字節(jié)的值,有不同的處理方式。當(dāng)沒有外接E2PROM時,將根據(jù)驅(qū)動程序中提供的VID,PID和DID,把主機上對應(yīng)的固件程序下載到片內(nèi)的RAM中,并執(zhí)行固件代碼。

USB固件程序是USB設(shè)備功能的核心,通過兩次枚舉,固件程序被下載到CY7C68013A的芯片里(程序也可以放在外接的EEPROM芯片里),用于配置芯片工作在需要的狀態(tài)下。

固件程序使用Keil μVision來編寫??梢詤⒖糃ypress的例程。大體步驟是:

(1)初始化休眠模式、遠程喚醒等。

(2)初始化用戶設(shè)備,主要是‘TD_Init()子程序。負責(zé)整個USB設(shè)備的初始化過程。

(3)定向描述符。

(4)把所用中斷打開,并開啟8051全局中斷EA=1.由于EZ-USB設(shè)備啟動需要重列舉,因而需要通過設(shè)置和判斷USBCS寄存器的RENUM和DISCON位來模擬設(shè)備物理上的斷開和連接過程。

(5)用戶外圍設(shè)備控制功能的實現(xiàn)放在TD_Poll()子程序中,同時主循環(huán)中的SetupCommand()子程序用于接收、分析上位機的控制信號,響應(yīng)上位機請求(標(biāo)準請求和用戶自定義請求)。

3.3 USB通用驅(qū)動程序的使用

USB設(shè)備的使用需要驅(qū)動程序的支持,Cypress提供了通用的USB驅(qū)動程序。

該驅(qū)動包括兩部分:CyLoad.sys和CyUsb.sys,前者用于固件程序的下載,后者用于主機和固件程序的通信。這兩個驅(qū)動程序提供的引導(dǎo)文件分別是CyLoad.inf和CyUSB.inf,用戶可以直接使用,也可以根據(jù)需要進行改動。

為了在CyLoad.sys的幫助下實現(xiàn)固件的自動下載,固件程序CyLoad.HEX必須轉(zhuǎn)換為適合自動下載的CyLoad.spt文件,并且與CyLoa d.sys一起放在CyLoad文件夾下,拷貝到系統(tǒng)system32目錄下。在安裝文件CyUSB.inf中設(shè)置的PID,VID必須和描述符中的一致,使得能夠自動加載對應(yīng)固件。

USB設(shè)備使用時,必須首先安裝驅(qū)動程序,注意分別安裝上面提到的下載驅(qū)動CyLoad.sys和通信驅(qū)動CyUsb.sys.安裝驅(qū)動之后,可以使用Cypress提供的主機控制函數(shù)庫CyAPI.lib開發(fā)主機程序,通過驅(qū)動程序和USB設(shè)備進行通信。

3.4 USB主機的應(yīng)用程序設(shè)計

USB主機程序可以使用Cypress提供的CyAPI.lib庫來進行編程。CyAPI.lib對應(yīng)Cypress提供的驅(qū)動程序CyUsb.sys,為其提供了簡單而且功能強大的C++編程接口,通過CyAPI.lib庫提供的函數(shù),可以對USB設(shè)備進行讀寫操作,這些函數(shù)主要是Open,Close和XferData.

本文以VC++6.0為例,描述創(chuàng)建USB設(shè)備應(yīng)用程序的步驟。[!--empirenews.page--]

(1)新建工程,并將CyAPI.h,CyAPI.lib,cyioctl.h三個文件加載到項目中。

CyAPI.h中定義了CCyUSBDevice、CCyControlEndPoint等幾個重要的類;而cyioctl.h中則定義了讀取USB設(shè)備的幾個重要的結(jié)構(gòu)和宏。

(2)在相應(yīng)的文件中(視、框架或者對話框,依具體情況),包含頭文件CyAPI.h和cyioefl.h.

然后定義USB設(shè)備全局變量和控制端點全局變量,并進行初始化:

CCyUSBDevice*USBDevice=new CCyUSBDevice();

CCyControlEndPoint*ept=USBDevice-》ControlEndPt;

(3)在程序執(zhí)行時,采用中斷方式,或者輪詢方式交換數(shù)據(jù)。以輪詢方式為例,則在幀循環(huán)中加入如下代碼:

 


首先判斷設(shè)備是否打開,然后指定操作碼,ept-》XferData()完成傳輸,實現(xiàn)從端口讀數(shù)據(jù),或者向端口寫數(shù)據(jù)。數(shù)據(jù)傳輸?shù)姆较蛴蒭pt-》DirecTIon來設(shè)置。

(4)結(jié)束程序時,關(guān)閉USBDevice.

USBDevice-》Close;

4、結(jié)論

EZ-USB FX2芯片實現(xiàn)USB系統(tǒng),軟硬件程序設(shè)計,相比較而言,簡單、方便。本文介紹了設(shè)計USB系統(tǒng)的大體步驟,給出了USB鍵盤設(shè)計的實例。

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

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

關(guān)鍵字: 阿維塔 塞力斯 華為

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

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

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

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

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

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

關(guān)鍵字: 騰訊 編碼器 CPU

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

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

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

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

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

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉