《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
在线亚洲观看| 亚洲高清成人| 国精品一区二区三区| 欧美日韩免费在线| 欧美大片一区| 久久综合色影院| 久久久久九九视频| 亚洲免费视频一区二区| 亚洲无限av看| 亚洲天堂视频在线观看| 一区二区三区欧美在线观看| 亚洲最新视频在线播放| 日韩亚洲在线| 99精品久久免费看蜜臀剧情介绍| 亚洲级视频在线观看免费1级| 亚洲国产日韩欧美综合久久| 亚洲福利视频一区| 亚洲国产二区| 亚洲欧洲美洲综合色网| 亚洲人成网站精品片在线观看| 亚洲国产精品一区二区第四页av| 亚洲国产成人tv| 亚洲国产精品成人综合| 亚洲激情欧美激情| 亚洲精品综合久久中文字幕| 亚洲精品在线三区| av不卡在线| 亚洲一区中文字幕在线观看| 亚洲欧美日韩爽爽影院| 性欧美超级视频| 久久精品视频播放| 久久综合狠狠综合久久激情| 欧美成人午夜免费视在线看片 | 欧美日韩国产精品一区二区亚洲| 欧美精品性视频| 欧美午夜三级| 国产伦一区二区三区色一情| 国际精品欧美精品| 亚洲国语精品自产拍在线观看| 99re66热这里只有精品4| 亚洲一区二区三区视频播放| 欧美一区二区三区电影在线观看| 亚洲电影免费在线| 99国产精品国产精品久久| 亚洲午夜免费视频| 久久精品女人| 欧美激情在线观看| 国产精品亚洲欧美| 一区二区三区在线不卡| 亚洲精品国产精品久久清纯直播 | 亚洲一区二区三区欧美| 久久成人精品视频| 日韩一区二区精品视频| 性欧美18~19sex高清播放| 噜噜爱69成人精品| 欧美午夜电影在线观看| 国产一区在线免费观看| 亚洲精品一区二区三区在线观看 | 国内久久婷婷综合| 亚洲美女视频| 久久av免费一区| 中文日韩电影网站| 久久精品一区蜜桃臀影院| 欧美精品在线一区二区| 国产欧美亚洲精品| 亚洲精品在线一区二区| 欧美在线啊v一区| 在线天堂一区av电影| 久久久www成人免费毛片麻豆| 欧美极品欧美精品欧美视频| 国产日韩欧美一区二区三区在线观看| 亚洲国产视频a| 欧美一区二区三区在线视频| 99re6这里只有精品视频在线观看| 亚洲欧美制服中文字幕| 欧美韩国日本一区| 国产午夜精品一区二区三区欧美| 亚洲精品裸体| 久久精品视频免费观看| 亚洲你懂的在线视频| 可以看av的网站久久看| 国产精品乱人伦中文| 亚洲精品国产无天堂网2021| 欧美一区在线直播| 亚洲欧美久久| 欧美精品亚洲精品| 激情六月婷婷久久| 亚洲欧美精品在线观看| 在线亚洲欧美| 欧美搞黄网站| 好男人免费精品视频| 在线综合视频| 一区二区三区成人| 欧美承认网站| 精品va天堂亚洲国产| 午夜在线观看免费一区| 亚洲欧美日韩国产精品| 欧美韩国日本一区| 在线日韩av永久免费观看| 午夜天堂精品久久久久| 性感少妇一区| 欧美视频在线观看一区| 亚洲人成网站在线观看播放| 亚洲国产精品美女| 久久综合狠狠综合久久综青草| 国产欧美日韩综合| 亚洲永久免费观看| 亚洲综合99| 欧美日韩影院| 99人久久精品视频最新地址| 亚洲免费av片| 欧美激情第9页| 91久久国产综合久久| 亚洲三级免费| 欧美二区在线| 亚洲国产精品va在线看黑人| 亚洲国产精品传媒在线观看| 久久久噜噜噜久久中文字幕色伊伊| 国产欧美精品xxxx另类| 亚洲欧美日韩国产综合精品二区 | 欧美一区二区三区啪啪| 国产精品狼人久久影院观看方式| 一本综合久久| 亚洲一区二区视频| 国产精品啊啊啊| 中国成人黄色视屏| 午夜精品久久久久久久99黑人| 国产精品久久久久久久久免费桃花 | 欧美日韩123| 亚洲精品在线视频| 亚洲午夜精品国产| 国产精品二区二区三区| 亚洲午夜在线视频| 欧美一区成人| 国产亚洲免费的视频看| 久久国产精品久久久久久电车| 久久亚洲欧洲| 1024成人网色www| 日韩视频在线一区二区三区| 欧美日韩国产电影| 在线亚洲欧美视频| 性做久久久久久久免费看| 国产手机视频精品| 亚洲国产精品一区二区三区| 欧美久久久久| 在线视频中文亚洲| 欧美在线观看天堂一区二区三区| 国产午夜精品久久久久久久| 亚洲黄页视频免费观看| 欧美日韩国产黄| 亚洲字幕一区二区| 久久久久久综合网天天| 亚洲激情电影在线| 亚洲视频一区| 国产日韩欧美综合| 亚洲欧洲日韩女同| 欧美日韩系列| 午夜日韩在线观看| 欧美大秀在线观看| 一区二区三区视频观看| 久久精品国产免费观看| 亚洲国产精品久久91精品| 在线视频欧美日韩| 国产亚洲激情视频在线| 亚洲精品无人区| 国产精品激情av在线播放| 欧美一区激情| 欧美日韩国产综合新一区| 亚洲欧美精品在线| 欧美国产专区| 亚洲欧美偷拍卡通变态| 欧美成人午夜视频| 亚洲欧美日韩国产中文在线| 欧美激情免费观看| 亚洲综合电影一区二区三区| 免费欧美日韩| 亚洲一区在线免费观看| 欧美~级网站不卡| 亚洲一区二区三区精品动漫| 免费观看在线综合色| 亚洲一区网站| 欧美不卡福利| 午夜日韩电影| 欧美日韩亚洲免费| 亚洲第一在线综合在线| 国产精品久久久久久五月尺| 亚洲激情社区| 国产人成一区二区三区影院| 日韩五码在线| 国产综合色在线视频区| 亚洲一区二区在线看| 在线精品视频在线观看高清| 性色av一区二区三区在线观看| 亚洲三级观看| 玖玖国产精品视频| 亚洲欧美网站| 国产精品久久久91| 中文一区二区在线观看| 在线欧美日韩精品| 久久久久www|