《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于CY7C68013A的FPGA配置和通信接口設計
基于CY7C68013A的FPGA配置和通信接口設計
來源:電子技術應用2013年第2期
劉志華1,郭付才1,彭新偉2,陳吉東3
1.解放軍理工大學 氣象海洋學院 探測與裝備工程系,江蘇 南京211101; 2.南京軍區氣象水文中心,江蘇 南京210016; 3.南京楊辰科技有限公司,江蘇 南京210022
摘要: 為了同時實現計算機對FPGA進行在線配置和高速數據傳輸,提出了一種基于CY7C68013A芯片的USB2.0接口設計方案。介紹了以CY7C68013A芯片為核心的系統硬件電路設計和軟件編程,詳細分析了CY7C68013A固件程序設計方法。CY7C68013A芯片在配置FPGA時受芯片內部CPU控制,配置速度為6 Mb/s,而在數據傳輸時采用從屬FIFO模式以實現高速數據通信。該方案可以廣泛應用到軟件無線電項目開發中。
中圖分類號: TN914
文獻標識碼: A
文章編號: 0258-7998(2013)02-0018-04
Design of the FPGA′s configuration and communication interface based on CY7C68013A
Liu Zhihua1,Guo Fucai1,Peng Xinwei2,Chen Jidong3
1.Department of Atmospheric Sounding and Equipment Engineering, Institute of Meteorology and Oceanography, PLA University of Science and Technology, Nanjing 211101,China; 2.Meteorological and Hydrological Center of Military Area Command of Nanjing, Nanjing 210016,China; 3.Nanjing Yangchen S&T Co., Ltd., Nanjing 210022,China
Abstract: In order to realize that the computer can configurate FPGA online and high speed data transmission, this paper puts forward an USB2.0 interface design method based on CY7C68013A chip. The paper introduces the system hardware circuit design and software programming, and detailed analysis of the CY7C68013A′s firmware program design method. At the time of configurating FPGA,the CY7C68013A chip is controlled by the internal CPU and the configuration speed is 6 Mb/s; whereas during date transmission, in order to improve the transmission speed, the CY7C68013A is configured slave FIFO mode. This scheme can be widely applied to the software radio project development.
Key words : CY7C68013A;USB interface design;FPGA;software radio

    通用串行總線(USB)因具有傳輸速度快、支持熱插拔、易于擴展以及即插即用等優點,已經成為計算機與外部設備進行數據交換的常用接口。USB控制器是一種集成了USB總線協議的微控制器,利用USB控制器,用戶可以在不深入了解USB協議的情況下設計完整的USB接口,這也促進了USB接口的廣泛應用[1]。

    目前,軟件無線電技術越來越成熟,FPGA的應用也更加廣泛。一塊配備了USB接口的FPGA數據處理模塊可以應用到各種高速數據采集、處理和傳輸場合。而在項目研發過程中,隨時都需要對FPGA進行編程調試。基于此,本文研究和設計了一種可以同時實現對FPGA進行配置和數據通信的USB接口。
1 系統總體設計
    系統總體框圖如圖1所示,系統主要包括以USB控制器為控制核心的USB接口設備、PC機上的應用軟件和驅動程序以及相關的固件程序[2]。系統工作原理如下:ISE軟件生成的FPGA配置文件由下載軟件下載到USB接口設備中,由CY7C68013A控制器實現對FPGA芯片的被動配置;FPGA配置成功后由CY7C68013A芯片返回配置成功信息;計算機收到配置成功信息后就可以關閉下載軟件、打開接收軟件,正常接收FPGA向計算機發送的通信數據。

2 系統硬件設計
2.1 CY7C68013A器件

    系統中的USB控制器選擇CYPRESS公司EZ-USB FX2LP系列的CY7C68013A單片機,它主要包括USB2.0收發器、智能串行接口引擎(SIE)、增強型8051微處理器、16 KB的RAM、4 KB的FIFO存儲器、地址和數據總線、I/O口、I2C控制器和通用可編程接口(GPIF)。
    CY7C68013A的串行接口引擎負責完成獨立串行數據的編解碼、差錯控制、位填充等與USB協議有關的功能,簡化了固件程序的開發;通用可編程接口支持所有通用的總線標準,可與外部ASIC、DSP等直接連接。CY7C68013A芯片內部包含3個固定的、64 B端點緩沖區,分別是EP0、EP1IN和EP1OUT。其中,EP0是默認的控制傳輸端點,EP1IN和EP1OUT支持快傳輸、中斷傳輸和同步傳輸,它們只能由8051內核的固件訪問;另外還有4 KB的可配置端點緩沖區,分別是EP2、EP4、EP6和EP8,它們是大容量寬帶的數據傳輸端點,無需8051固件干涉便可與外圍電路完成高速數據傳輸。這4個端點具有非常靈活的配置方式,可以適應多種場合下的寬帶要求。
2.2 硬件電路
    系統硬件電路如圖2所示。CY7C68013A控制器工作在從屬FIFO模式,I2C總線上連接一片EEPROM芯片(24LC64)。CY7C68013A的固件程序由EEPROM燒寫器燒寫到24LC64中,上電后自動加載到內部RAM中。FD是雙向的數據傳輸總線。FLAGA、FLAFB、FLAGC是FIFO標志管腳,指示FIFO的空滿程度,保證數據的有效存取。FIFO_ADR[1:0]用于選擇與FD連接的4個端點緩沖區。SLRD和SLWR分別作為FIFO的讀寫選通信號,SLOE用于使能數據總線FD的輸出。PKTEND是CY7C68013A向PC發送數據的控制端。IFCLK是48 MHz的接口時鐘,由芯片內部產生,控制FPGA配置數據的的讀取。PE0與FPGA的PROG引腳相連,是FPGA初始化控制引腳;PE1與FPGA的RDWR引腳相連,是FPGA配置數據的讀寫選擇端;PE2與FPGA的DONE引腳相連,是FPGA配置成功指示信號。FPGA的配置模式管腳M[2:0]=011,將FPGA設置成從機串行模式[3-4]。

3 系統軟件設計
3.1 CY7C68013A固件程序設計

    CY7C68013A的固件程序是指在芯片內部RAM運行的程序代碼,它是USB接口設計的核心部分。CY7C68013A的固件程序有兩種加載方式:一種是在線下載方式,這種方式是將固件存儲在計算機中,在計算機上編寫一個能自動下載以及設備從枚舉功能的固件下載驅動程序,當CY7C68013A連接上計算機后由驅動程序下載固件;另一種方式是將固件程序存儲到片外的EEPROM芯片中,上電后自動將固件加載到內部RAM中。由于第二種方式有擴展性好、操作簡單等優點,本文采用的是第二種方式。為了簡化固件編程,CYPRESS公司提供了固件編程框架,用戶只需在此框架下添加USB描述表、收發數據的通信代碼和相關的控制代碼就可以完成固件編程[1,5]。固件框架文件如表1所示。

    用戶在編寫固件程序時,只需對bulkllop.c和dscr.51兩個文件根據具體設計需求修改相應的代碼。固件框架內主要使用的函數如下:
    TD_Init()函數:主要完成CY7C68013A的初始化,它只會在USB啟動后調用一次。函數里添加的初始化代碼包括CPU時鐘頻率設定、USB工作模式選擇、I/O口配置、端點選擇及傳輸方向設置、FIFO的配置等。
    TD_Poll()函數:是用戶調度程序,在設備運行時被重復調用,編寫需要反復執行的代碼。其主要功能是對各個端點的狀態進行查詢,實現端點間數據的交互。
    TD_suspend()函數:在設備進入掛起狀態前調用,在其中加入適當的代碼,配置設備的工作狀態,可使設備處于低功耗狀態并返回真值。改動TD_Suspend的程序代碼,使其返回為假,可使CY7C68013A不進入掛起狀態。
    DR_VendorCmnd()函數:是自定義命令代碼的書寫處。fw.c固件會自動調用函數里的代碼。
    ISR_Ep0in() interrupt 0~ISR_Ep8inout() interrupt 0函數:是當使用端點中斷傳輸時的中斷代碼書寫處。
    CY7C68013A的固件編程框架流程如圖3所示。

    針對本文提出的采用CY7C68013A芯片設計USB接口,以實現對FPGA的配置和通信功能,其相關的設置如表2所示。
    在TD_Init()中對端點的設置如下:
    (1)EP2:用于傳輸FPGA的配置數據(XXX.bit文件)。一次傳輸數據的大小與CY7C68013A配置成USB1.1還是USB2.0有關。當配置成USB1.1時,必須保證一次只傳送64 B,不能超過該值;當配置成USB2.0時,一次最多可以傳送512 B,也可以只傳送64 B。在void ISR_Ep2in-
out(void) interrupt 0 中,將得到的數據對FPGA進行配置。使用AUTO PTR可以節約時間,配置速率為6 Mb/s左右。
    (2)EP4:用于傳送控制參數,其設置方法與EP2相同。在void ISR_Ep4inout(void) interrupt 0中,將從應用軟件傳來的控制命令(包含對FPGA的配置命令)傳給FPGA。
    (3)EP6:用于采集數據。將其設置成SlaveFIFO模式,AUTOIN有效,IFCLK實現同步,16 bit數據寬度。在void ISR_Ep6inout(void) interrupt 0 中,將FIFO中的數據發往USB。AUTOIN=1,在數據傳輸中,自動完成傳輸,不需要單片機的參與。
    (4)EP8:用于傳送狀態數據。由于用了雙緩沖,在得到狀態數據時,要多讀2次才能得到當前的狀態信息。在void ISR_Ep8inout(void) interrupt 0 中,將從FPGA得到的狀態數據發往USB。
    此外,在中斷程序中,要添加中斷標志清除的語句,但在EP6的中斷中,由于設置了AUTOIN=1,則不需要。
3.2 設備驅動程序
    設備驅動程序是用戶訪問設備的接口。EZ-USB 開發系統提供了裝載驅動程序開發模板,利用模板開發設備驅動比較簡單。CYPRESS公司針對CY7C68013A提供了全新的驅動程序CYUSB.SYS。安裝驅動之前,必須先根據VID/PID正確編輯CYUSB.INF文件,在文件中添加自己的PID/VID代碼和設備描述;連接設備時,將根據硬件上的PID/VID查找INF文件中對應的驅動,如果找不到,則在設備管理器中將顯示“68013 EEPROM MISSING”的字樣。安裝驅動時,找到修改好的CYUSB.INF文件,驅動即可被正確安裝,此時設備可以正常使用了[6]。
3.3 主機應用程序
    主機應用程序包括對FPGA配置程序用的下載軟件和通信用的數據接收軟件。下載軟件用VC6.0進行開發, 它將ISE軟件開發的FPGA配置文件(.bit文件)通過CY7C68013A芯片下載到FPGA中實現對FPGA的配置,并返回配置狀態信息[7]。下面是下載軟件與CY7C68013A芯片的通信過程與格式:
    (1)下載軟件對CY7C68013A芯片控制的命令發往pipeNum=1,結構為:
    struct tagUSBCardControl {
    BYTE Control_Flag;   //控制命令標記,為常數:0x81
    BYTE FPGA_PROG;  //FPGA的PROG管腳,進行配置
//時,應用軟件先給出一個0,再給出一個1,
//然后往EP2寫入配置數據,數據發送完成后,
//可以檢查狀態信息,判斷FPGA是否配置成功
    BYTE Use[64-2];   //控制命令,FPGA的I/O地址從
//0x8002~0x803F;若是USB2.0,則Use[512-2]
//對應的FPGA的I/O地址為0x8002~0x81FF
    };
    (2)從pipeNum=3得到CY7C68013A芯片的狀態信息,格式是:
    truct tagUSBCardStatus {
    BYTE FPGA_STATUS;//FPGA工作正常標記,為0x81
    BYTE IOE;   //芯片IOE管腳的值,用于VC程序中
//判斷FPGA是否配置成功
    BYTE Use[64-2];   //狀態信息,FPGA的I/O地址從
//0x8202~0x823F。USB2.0則為512也一樣
    };
    數據接收軟件可以根據實際需要進行編寫,本設計采用通用的USB調試助手軟件接收FPGA發送的二進制信息。
4 系統功能測試

 


    主要測試系統實現對FPGA的配置和數據通信兩方面的功能。通過下載軟件的FPGA配置界面,將XC2VP4.bit配置文件下載到FPGA中。FPGA配置程序的主要功能除了完成相關的初始化配置之外,還向USB口交替發送16 bit高電平“1”和低電平“0”。配置成功后會返回“FPGA配置成功”信息。此時關閉下載軟件,打開USB數據接收軟件,接收數據如圖4所示,表明實驗成功。

    本文介紹了一種利用CYPRESS公司的USB控制器CY7C68013A芯片設計USB2.0接口的設計方案,并進行了實驗驗證。由于方案同時可對FPGA進行配置和數據通信,因此它可以為開發人員實時調試FPGA帶來方便,同時也方便系統在后期的更新換代。
參考文獻
[1] 錢峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.
[2] 王曉麗,龍兵,李力.基于FPGA的USB數字I/O設備設計[J].電子測量技術,2011,34(10):57-59.
[3] 劉森,趙明生.通過USB接口實現FPGA的SelectMap配置[J].微計算機信息,2009,25(4-2):1-2,269.
[4] 張俊濤,王豫瑩.基于FPGA和USB2.0的高速數據采集系統[J].儀表技術與傳感器,2011(10):46-48.
[5] 馬俊濤,李振宇.SlaveFIFO模式下CY7C68013和FPGA的數據通信[J].中國傳媒大學學報(自然科學版),2009,16(2):38-44.
[6] Airhand.EZ-USB 68013A開發指南[EB/OL].[2009-03-13].http://forum.eepw.com.cn/thread/148408/1.
[7] 葛亮.Visual C++從入門到實踐[M].北京:清華大學出版社,2009.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线看片| 国产精品xvideos88| 亚洲一区二区三区精品动漫| 国产亚洲欧美一区二区三区| 久久久久久999| 欧美资源在线观看| 欧美一区二区三区视频在线观看| 亚洲性线免费观看视频成熟| 野花国产精品入口| 99riav国产精品| 99国产精品国产精品久久| 亚洲国产综合91精品麻豆| 亚洲电影免费观看高清完整版在线观看 | 99re6这里只有精品| 亚洲激情自拍| 亚洲精品久久久蜜桃| 亚洲人成网站精品片在线观看| 亚洲精品国偷自产在线99热| 亚洲日本久久| 99视频精品全部免费在线| 一本色道久久综合亚洲精品高清 | 国产日韩一级二级三级| 国产日韩欧美视频在线| 国产一区二区高清| 一区二区三区在线视频观看| 精品99视频| 91久久香蕉国产日韩欧美9色| 亚洲精品久久久久久久久久久久久 | 香蕉免费一区二区三区在线观看 | 黄色成人小视频| 亚洲国产高清一区| 亚洲乱亚洲高清| 亚洲午夜激情网站| 欧美在线视频一区| 91久久久国产精品| 亚洲视频精品在线| 午夜视频久久久久久| 久久国产精品亚洲va麻豆| 美女网站久久| 欧美网站在线观看| 国产精品综合不卡av| 伊人久久久大香线蕉综合直播| 亚洲风情在线资源站| 亚洲剧情一区二区| 亚洲性人人天天夜夜摸| 久久国产精品72免费观看| 亚洲人成网站777色婷婷| 亚洲一级黄色片| 久久爱另类一区二区小说| 久久综合导航| 欧美日韩视频不卡| 国产日韩欧美一区二区| 亚洲国产va精品久久久不卡综合| 99精品欧美一区二区三区 | 亚洲电影免费观看高清| 一区二区三区 在线观看视频| 亚洲欧美日韩区| 老司机久久99久久精品播放免费 | 亚洲美女啪啪| 欧美一二三视频| 日韩视频在线观看一区二区| 欧美亚洲视频在线看网址| 久久亚洲图片| 欧美视频日韩视频| 黄色一区二区在线| 一本色道久久综合亚洲二区三区| 欧美一区二区视频网站| 一区二区三区欧美| 久久综合国产精品台湾中文娱乐网| 欧美日韩精品一区二区天天拍小说| 国产日产精品一区二区三区四区的观看方式 | 亚洲高清色综合| 亚洲视频中文字幕| 亚洲欧洲日本国产| 欧美一区二区三区精品 | 激情欧美亚洲| 亚洲欧美日韩专区| 一本色道久久精品| 毛片av中文字幕一区二区| 国产精品三上| 99re热精品| 亚洲清纯自拍| 久久久噜噜噜| 国产精品一区二区三区乱码| 亚洲欧洲精品一区二区三区不卡 | 狠狠操狠狠色综合网| 亚洲一区二区三区久久| 一本久道久久综合婷婷鲸鱼| 六月丁香综合| 国产伦精品一区二区三区在线观看| 最新中文字幕一区二区三区| 亚洲第一在线综合在线| 欧美一区二区三区婷婷月色| 欧美日韩爆操| 亚洲国产精品高清久久久| 亚洲电影av| 久久都是精品| 国产精品揄拍500视频| 一本色道**综合亚洲精品蜜桃冫| 亚洲卡通欧美制服中文| 蜜臀久久久99精品久久久久久| 国产一级一区二区| 午夜亚洲精品| 久久aⅴ国产紧身牛仔裤| 国产精品视频xxxx| 一本综合精品| 亚洲一区精彩视频| 欧美日韩精品免费观看视一区二区| 亚洲成人在线网| 亚洲国产精品久久精品怡红院 | 欧美午夜激情视频| 亚洲美女av电影| av成人老司机| 欧美日韩精品免费观看视一区二区| 亚洲国产高清一区| 亚洲精品中文字幕女同| 欧美激情网友自拍| 亚洲激情小视频| 99国产麻豆精品| 欧美另类在线播放| 亚洲精品中文字幕有码专区| 宅男噜噜噜66国产日韩在线观看| 欧美巨乳在线| 99精品99| 午夜宅男久久久| 国产日韩一区二区三区| 欧美一区二区三区视频在线 | 国产精品一区久久| 香港久久久电影| 久久久久在线| 1769国产精品| 亚洲最黄网站| 欧美视频免费看| 亚洲综合精品自拍| 久久九九精品99国产精品| 好看的日韩av电影| 亚洲麻豆av| 国产精品v欧美精品v日韩精品 | 久久国产婷婷国产香蕉| 麻豆亚洲精品| 亚洲人成在线观看一区二区| 亚洲午夜久久久久久久久电影院| 国产精品国产自产拍高清av| 亚洲综合电影| 免费观看成人| 99这里只有久久精品视频| 午夜久久99| 欧美区在线播放| 伊人久久大香线| 日韩视频不卡中文| 国产精品久久久久久妇女6080| 亚洲欧美成人在线| 久久综合婷婷| 亚洲精品欧美在线| 欧美亚洲三级| 永久域名在线精品| 一区二区三区欧美激情| 国产精品一区二区你懂得| 亚洲第一精品影视| 欧美日韩999| 午夜伦理片一区| 欧美99久久| 亚洲一区二区黄色| 免费看的黄色欧美网站| 日韩午夜激情av| 久久久www| 亚洲卡通欧美制服中文| 欧美在线免费视屏| 亚洲韩国一区二区三区| 午夜精品久久久久久久99樱桃| 狠狠爱综合网| 亚洲免费视频观看| 亚洲国产精品va在线看黑人| 亚洲香蕉视频| 影音先锋成人资源站| 亚洲综合视频1区| 亚洲高清视频在线| 欧美在线免费视屏| 亚洲欧洲日韩在线| 久久精品国产第一区二区三区最新章节| 亚洲激情第一页| 久久爱www| 99这里有精品| 蜜桃精品一区二区三区| 亚洲你懂的在线视频| 欧美精品激情在线观看| 欧美中文字幕第一页| 欧美日一区二区三区在线观看国产免| 久久成人资源| 国产精品一区二区三区观看| 夜夜躁日日躁狠狠久久88av| 国产资源精品在线观看| 亚洲欧美激情一区二区| 亚洲全部视频| 老司机午夜精品视频| 午夜精品久久久久久久男人的天堂 | 欧美激情自拍| 亚洲高清影视| 国产欧美一区二区视频| 一区二区三区欧美亚洲|