《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > Ports模式下CY7C68013和FPGA的數據通信
Ports模式下CY7C68013和FPGA的數據通信
單片機及嵌入式系統應用
袁衛 趙小明 等
摘要: CY7C68013和FPGA的數據通信中,采用基本的Ports接口模式,利用自動指針方法,通過數字示波器的觀察,完成1KB的傳送,大約需要750μs。與另外兩種模式相比,雖然數據傳輸的速度較低,但作為一種數據傳輸模式,尤其對剛從單片機開發過渡到USB開發的工程人員來說,也不失為一種有效的開發方式。
Abstract:
Key words :

引言

    通用串行總線(USB)具有快速、雙向、大批量傳輸、廉價以及可實現熱插拔等優點,Cypress公司的FX2系列芯片之一CY7C68013是最早符合USB2.0標準的微控制器,集成了符合USB2.0的收發器、串行接口引擎(SIE)、增強型8051內核以及可編程的外圍接口,實現基于USB2.0的接口數據通信,CY7C68013可配置成3種不同的接口模式;Ports(端口模式)、GPIF Master(可編程接口模式)和Slave FIFO(主從模式),其中,后兩種模式利用其內部集成的可以獨立于微處理器而自動處理USB事務的硬件(USB核),數據的傳輸通過執行USB本身的協議來完成,微處理器可不參與數據傳輸,從而使數據的傳輸速率大大地提高,同時也簡化了固件代碼的編寫。后兩種方式由于克服了微處理器這個帶寬"瓶頸",因而廣泛應用于大批量的數據傳輸,如圖像、視頻等信號的采集。

   而對前一種Ports(端口模式),文獻中介紹較少,作為一種最基本的數據傳輸方式,其數據傳輸主要由固件程序完成,需要CPU的參與,因此數據傳輸速率比較低,適用于傳輸速率要求不高的場合,而且由于FX2內部集成有8051內核,對一個剛從單片機的開發過渡到USB開發的工程人員來說,也不失是一種有效的數據傳輸方式,現以一個工程開發的實例來詳細說明一下在Ports模式下如何實現數據一雙向傳輸。

1 設計要求

    主機通過USB接口以4KB/s的速率分別向兩個通道發送數據序列,并由外設的D/A轉換器完成數據的轉換,同時,由外部的兩個A/D轉換器以400KB/s的采樣率完成數據的采集,采集后的數字信號也經USB接口傳送至主機存儲,其中,USB接口芯片采用Cypress公司的CY7C68013,FPGA采用Altera公司的EP1C6Q240C8,圖1為其數據的多路傳輸系統框圖。

2 USB 數據多路傳輸硬件

2.1 EZ-USB FX2 CY7C68013

   EZ-USB FX2 CY7C68013支持USB2.0數據傳輸,其內部結構及功能在其他文獻已有詳細的介紹,現針對此芯片在本電路的作用進行簡要的說明,在設計中主要利用CY7C68013的Ports接口模式完成多路數據的傳輸,USB和FPGA之間數據和狀態的傳輸由CY7C68013的IOA接口完成,IOB接口中的IOB0-IOB2口線作為USB和FPGA之間的控制線。CY7C68013內部的EP2端口設置為512字節雙緩沖、OUT、塊傳輸,作為主機向外設發送數據的緩沖區;EP6端口設置為512字節雙緩沖,IN、塊傳輸,作為外設向數據傳送數據的緩沖區。

2.2 FPGA芯片EP1C6Q240C8

   FPGA采用Altera公司的Cyclone 芯片EP1C6Q240C8。在這里FPGA的作用有3個:其一,給兩路D/A轉通道各分配兩個128×8位的RAM區,作為從主機向外設發送數據的緩存。其二、給兩路A/D轉換通道各分配兩個512×8位的RAM區,作為從外設向主機傳送數據的緩存,由于兩路數據的傳輸和采集共用一個8位數據總線,因此,數據總線要針對不同的接收和發送來回切換,因而每個通道的兩路分別采用兩個RAM塊,起到雙緩沖作為,以防傳輸時數據"溢出"的。其三,由于數據總線要針對不同通道來回切換,控制切換的過程由狀態寄存器來完成,因此,要在FPGA內部設置一個狀態寄存器,所設置的狀態寄存器僅包含兩位,分別標識兩個通道的數據RAM的"滿"或"空"的狀態,以確定當前應該為哪一個通道發送或接收數據。

3 通信協議的制定

采用CY7C68013的Ports模式實現數據通信,與FIFO和GPIF模式不同,后兩種模式在數據傳輸方面主要由USB核完成,所需的控制信號由CY7C68013自身來提供。而對于Ports模式,控制信號沒有專用的口線,那么就必須用其他通用的I/O接口來完成,在此,采用IOB0-IOB2作為USB和FPGA之間的控制線,由于自定義的3條線是通用口線,沒有實際的意義,因此在USB和FPGA之間首先要制定兩者的通信協議,即給這3條口線賦以實際的功能。

ALE(IOB0):例如ALE的上升沿,通過IOA端口向FPGA傳送控制指令,例如,當IOA=01H時,表示系統開始工作,A/D和D/A轉換器開始啟動。當IOA=88H時,表示轉換結束,FPGA將不再接收或發送數據,當IOA=02H時,表示CY7C68013將讀取FPGA內狀態寄存器的內容,由讀取兩狀態標志位的0或1,來判斷兩個通道內的4個數據緩沖器的"滿"或"空"狀態,若D/A通道的任一個數據緩沖區為"空",則由FPGA向狀態寄存器的第一個狀態標志位內填1;否則填0;同理,若A/D通道的任一個數據緩沖區為"滿",則由FPGA向狀態寄存器的第二個狀態標志位內填1;否則填0;當IOA=03H時,表示主機將通過USB向D/A通道發送轉換數據,每次發送256個字節,前128字節為D/A轉換的1通道,后128字節為2通道,當IOA=04H時,表示主機將要接收由A/D通道傳送來的數據。

RD(IOB1):利用RD的上升沿通過IOA端口讀取D/A轉換器轉換來的數據。

WR(IOB2):利用WR的上升沿通過IOA端口向A/D轉換器發送由主機傳送來的數據。

4 軟件的實現

USB與FPGA在Ports模式下數據的傳輸,由于是由CY7C68013內部的CPU核來實現的,因此,對固件程序的編寫顯得比較重要,總的來說,固件程序的編寫有兩種方式:一是由于CY7C68013的內部集成有增強型8051內核,對熟悉8051匯編語言的用戶來說,可以直接利用會匯編語言編寫高效的固件代碼;二是Cypress公司EZ-USB FX2系列配套有現成的固件程序框架函數,用戶需要時,只需添加相應的用戶程序即可。當然,用戶程序中的數據通信的實現也就是如何完成通信協議的過程。

在此,采用后者來完成CY7C68013和FPGA的數據通信,實現數據通信功能的部分軟件代碼如下(以下代碼均可寫在框架函數void TD_Poll(void)內):


5 總結

CY7C68013和FPGA的數據通信中,采用基本的Ports接口模式,利用自動指針方法,通過數字示波器的觀察,完成1KB的傳送,大約需要750μs。與另外兩種模式相比,雖然數據傳輸的速度較低,但作為一種數據傳輸模式,尤其對剛從單片機開發過渡到USB開發的工程人員來說,也不失為一種有效的開發方式。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产精品免费一区| 欧美精选午夜久久久乱码6080| 最近中文字幕日韩精品| 欧美在线播放一区二区| 亚洲伊人一本大道中文字幕| 99视频一区二区| 亚洲激情在线观看视频免费| 亚洲国产精品黑人久久久| 在线精品视频在线观看高清| 狠狠久久综合婷婷不卡| 国内成人在线| 黄色成人片子| 在线精品观看| 亚洲高清在线精品| 亚洲第一黄色网| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品毛片大码女人| 欧美日韩中文字幕精品| 欧美日韩综合在线免费观看| 国产精品爱久久久久久久| 国产精品扒开腿做爽爽爽软件| 国产精品xvideos88| 国产精品视频网| 国产欧美va欧美va香蕉在| 国产欧美va欧美va香蕉在| 国产一区二区中文字幕免费看| 国内偷自视频区视频综合| 好吊妞**欧美| 亚洲国产精品成人综合色在线婷婷 | 在线精品亚洲| 亚洲日本va午夜在线电影| 亚洲精选大片| 一区二区三区日韩在线观看 | 亚洲在线成人精品| 性色av香蕉一区二区| 久久久中精品2020中文| 久久综合伊人77777尤物| 欧美风情在线| 欧美日韩专区| 国产女人精品视频| 在线色欧美三级视频| 亚洲精品男同| 亚洲欧美一区二区原创| 久久精品人人做人人爽电影蜜月| 亚洲精品极品| 午夜精品婷婷| 卡通动漫国产精品| 欧美视频在线一区| 国产一区二区三区网站| 亚洲国产精品一区二区第一页 | 亚洲精品网站在线播放gif| 中文久久精品| 久久精品天堂| 欧美日韩成人精品| 国产亚洲人成a一在线v站| 亚洲激情专区| 欧美一二三视频| 日韩午夜av电影| 欧美一区二区高清| 欧美精品久久久久久久| 国产女人aaa级久久久级| 91久久久精品| 午夜在线播放视频欧美| 亚洲精品一区在线| 久久福利资源站| 欧美日韩在线一区二区| 韩国一区二区在线观看| 一区二区欧美视频| 亚洲国产视频一区| 欧美一区二区三区免费看| 欧美成人免费在线视频| 国产精品资源在线观看| 亚洲人体1000| 亚洲国产欧美在线| 香蕉国产精品偷在线观看不卡| 欧美成人a∨高清免费观看| 国产精品久久午夜| 亚洲日韩欧美视频| 久久精品五月| 性娇小13――14欧美| 欧美精品 日韩| 悠悠资源网久久精品| 亚洲专区一区二区三区| 宅男噜噜噜66一区二区66| 久久综合久久综合久久综合| 国产精品视频网址| 一本色道久久综合狠狠躁篇的优点 | 国产精品日日摸夜夜摸av| 久久久久久夜| 欧美日韩免费一区二区三区视频| 六十路精品视频| 亚洲激情网址| 亚洲国产第一| 久久精品亚洲| 亚洲精品国产欧美| 日韩一区二区精品视频| 中文精品视频| 久久精品国产精品亚洲综合| 久久久免费av| 欧美精品免费在线观看| 国内揄拍国内精品少妇国语| 亚洲欧美在线x视频| 亚洲视频一区在线| 欧美一区亚洲二区| 欧美一区激情视频在线观看| 乱中年女人伦av一区二区| 国产精品夜夜嗨| 亚洲特黄一级片| 亚洲午夜久久久| 欧美日韩另类国产亚洲欧美一级| 亚洲国产成人高清精品| 亚洲国产视频a| 美日韩精品免费| 激情久久久久久| 亚洲电影中文字幕| 久久精品中文字幕一区| 国产亚洲精品福利| 亚洲欧美另类综合偷拍| 欧美在线视频观看| 国产日产高清欧美一区二区三区| 亚洲免费在线观看| 午夜久久美女| 国产嫩草一区二区三区在线观看 | 在线播放亚洲一区| 亚洲电影视频在线| 美女精品一区| 亚洲成人在线网| 日韩一级黄色大片| 欧美日韩不卡视频| 在线视频精品一区| 亚洲男人的天堂在线aⅴ视频| 国产精品xxxxx| 亚洲欧美激情视频| 久久久999精品| 伊人色综合久久天天五月婷| 亚洲国产精品999| 欧美成人自拍| 亚洲免费观看视频| 午夜一区在线| 国产一区二区福利| 最新中文字幕一区二区三区| 欧美激情亚洲一区| 一区二区欧美在线| 欧美在线播放视频| 尹人成人综合网| 9久re热视频在线精品| 欧美视频在线一区| 性做久久久久久免费观看欧美| 久久久蜜桃一区二区人| 最新高清无码专区| 亚洲综合欧美日韩| 国产在线精品一区二区夜色| 91久久精品国产91性色tv| 欧美日韩免费视频| 亚洲欧美制服另类日韩| 老鸭窝91久久精品色噜噜导演| 91久久精品www人人做人人爽| 亚洲五月六月| 国一区二区在线观看| 亚洲精品专区| 国产精品视频免费| 亚洲国产精品一区二区www在线 | 久久精品视频99| 欧美日韩午夜在线| 性8sex亚洲区入口| 欧美成人亚洲成人日韩成人| 国产精品99久久久久久久vr| 久久久99爱| 亚洲免费精彩视频| 久久久国产精品一区二区中文| 最新日韩av| 欧美资源在线观看| 亚洲国产精品小视频| 午夜免费日韩视频| 亚洲成人资源网| 香蕉视频成人在线观看| 亚洲福利电影| 欧美一区二区精品| 最新国产精品拍自在线播放| 欧美一区日本一区韩国一区| 亚洲国产另类久久精品| 欧美诱惑福利视频| 亚洲精品少妇网址| 久久夜色精品国产| 一区二区国产日产| 嫩草成人www欧美| 午夜亚洲一区| 欧美视频四区| 亚洲人精品午夜在线观看| 国产精品一区二区三区久久久| 日韩午夜黄色| 国产在线一区二区三区四区| 亚洲一区二区三区四区在线观看 | 欧美粗暴jizz性欧美20| 亚洲欧美视频一区二区三区| 欧美日韩另类国产亚洲欧美一级| 亚洲第一在线| 国产婷婷97碰碰久久人人蜜臀| 一本综合精品|