新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 一種基于CY7C68013的納米粒度

一種基于CY7C68013的納米粒度

作者: 時(shí)間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

USB 2.0特點(diǎn)

本文引用地址:http://m.butianyuan.cn/article/201610/308762.htm

USB全稱是Universal Serial Bus,中文簡稱通用串行總線,是應(yīng)用在計(jì)算機(jī)上的一種新型的接口技術(shù)。USB 最早于 1994 年底由Intel、IBM、Compad、DEC、NEC、Microsoft、Northern Telecom等7家公司聯(lián)合提出。其目的就是為了通過取代現(xiàn)有計(jì)算機(jī)接口,解決當(dāng)前外部設(shè)備通信中存在的各種問題,同時(shí)通過簡化計(jì)算機(jī)與外圍設(shè)備的連接,從而更大程度上實(shí)現(xiàn)對計(jì)算機(jī)的擴(kuò)展。

在USB產(chǎn)生之前,計(jì)算機(jī)接口技術(shù)已經(jīng)有一定程度的發(fā)展,已經(jīng)出現(xiàn)了一系列的通信接口,如RS 232、RS 485、ISA、PCI和并行接口等接口,這些老式的接口存在種類繁多、體積大、規(guī)范不統(tǒng)一、不支持熱插拔等缺陷,使用不方便,不適合現(xiàn)今接口通信技術(shù)的發(fā)展需求。因此,越來越多的設(shè)備都開始使用USB接口來實(shí)現(xiàn),如鼠標(biāo)、USB鍵盤、MP3、數(shù)碼相機(jī)、打印機(jī)、印刷機(jī)等。在實(shí)際設(shè)計(jì)工作當(dāng)中,也越來越多地采用了USB技術(shù),如數(shù)據(jù)采集、圖像采集等。

USB接口芯片CY7C68013A

在實(shí)際電路中,我們使用的USB接口芯片是CY7C68013A,實(shí)現(xiàn)FPGA和PC機(jī)的通信。CY7C68013A是賽普拉斯公司的EZ-USB FX2LP系列芯片。這個(gè)系列的芯片是世界上第一個(gè)集成USB 2.0協(xié)議的微處理器,同時(shí)向下兼容USB 1.1。此兼容USB通信協(xié)議的處理器既可以作為普通處理器一樣對設(shè)備進(jìn)行控制,又可以實(shí)現(xiàn)與上位機(jī)的通信,這樣設(shè)計(jì)的好處可以簡化硬件電路,降低成本。該芯片包括1個(gè)增強(qiáng)型8051、串行引擎(SIE)、16KB的RAM、4KB的FIFO、多組標(biāo)準(zhǔn)I/O口、數(shù)據(jù)總線、地址總線、1個(gè)USB 2.0 收發(fā)器及1個(gè)通用可編程接口。

EZ-USB FX2LP枚舉和重枚舉

每個(gè)USB設(shè)備都有自己獨(dú)有的VID與PID,不同的ID可用來區(qū)分不同的USB設(shè)備,這樣能夠避免不同USB產(chǎn)品造成混亂。USB芯片都有默認(rèn)的VID、PID,但實(shí)際使用中我們需要定義自己的VID與PID,它們一般存儲在外接的EEPROM中,這個(gè)步驟是USB產(chǎn)品開發(fā)所必須經(jīng)歷的階段。

CY7C68013A芯片工作時(shí)程序與數(shù)據(jù)都是放在片內(nèi)的RAM中的,當(dāng)芯片上電后,固件程序與數(shù)據(jù)會自動下載到RAM中,當(dāng)芯片掉電后,RAM 中的所有程序和數(shù)據(jù)都會消失。當(dāng)芯片剛剛上電時(shí),USB設(shè)備被按照缺省的設(shè)備進(jìn)行配置,默認(rèn)的固件代碼被加載到芯片的RAM中,這個(gè)自動配置USB設(shè)備的過程被稱為“枚舉”。

對EZ-USB來說,枚舉過程就是USB上電復(fù)位到加載固件前這段過程,此時(shí)USB設(shè)備地址號為默認(rèn)的0號,枚舉完成后,驅(qū)動為cypress...eeprom...missing。然后加載固件,進(jìn)行重枚舉,重枚舉完成后,顯示驅(qū)動為cypress...ez-usb...example或其他自定義設(shè)備。

固件系統(tǒng)框圖

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

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

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

本設(shè)計(jì)采用FPGA同步控制和SlaveFIFO接口模式。圖2為USB與FPGA模塊的硬件設(shè)計(jì)框圖。

圖2 USB芯片與FPGA接口連接框圖

USB芯片工作在Slave FIFO時(shí),F(xiàn)PGA模塊和USB模塊直接接口,通過并行數(shù)據(jù)線和控制線實(shí)現(xiàn)數(shù)據(jù)交互。本設(shè)計(jì)采用27根信號線,分別是16根數(shù)據(jù)線 DATA[15:0],3根標(biāo)志狀態(tài)線FLAGA、FLAGB和FLAGC,還有7根控制線IFCLK、USB_FIFOADR[1:0]、USB_SLCS、USB_SLOE、USB_SLWR和USB_SLRD。FPGA 模塊控制整個(gè)數(shù)據(jù)流。FPGA模塊在向USB模塊控制發(fā)送數(shù)據(jù)的時(shí)候,通過控制線FIFOADR[1:0]選擇輸出到USB模塊內(nèi) FIFO的地址線。圖3為FPGA模塊同步向USB寫數(shù)據(jù)時(shí)序圖。

圖3 FPGA模塊同步向USB寫數(shù)據(jù)時(shí)序圖

驅(qū)動程序

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

上位機(jī)界面設(shè)計(jì)

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

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

界面中的CheckoutEquipment分類框中為USB描述相關(guān)信息,由主機(jī)通過標(biāo)準(zhǔn)請求獲得。上位機(jī)向FPGA發(fā)送命令后,通過接收按鍵,上位機(jī)可以接收到FPGA內(nèi)部的數(shù)據(jù),并在編輯框中顯示出來。

圖4 數(shù)據(jù)接收界面



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉