當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀] CY7C68013和FPGA的數(shù)據(jù)通信中,采用基本的Ports接口模式,利用自動指針方法,通過數(shù)字示波器的觀察,完成1KB的傳送,大約需要750μs。

引言

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

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

1 設(shè)計要求

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

2 USB 數(shù)據(jù)多路傳輸硬件

2.1 EZ-USB FX2 CY7C68013

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

2.2 FPGA芯片EP1C6Q240C8

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

3 通信協(xié)議的制定

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

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

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

WR(IOB2):利用WR的上升沿通過IOA端口向A/D轉(zhuǎn)換器發(fā)送由主機(jī)傳送來的數(shù)據(jù)。

4 軟件的實現(xiàn)

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

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


5 總結(jié)

    CY7C68013FPGA數(shù)據(jù)通信中,采用基本的Ports接口模式,利用自動指針方法,通過數(shù)字示波器的觀察,完成1KB的傳送,大約需要750μs。與另外兩種模式相比,雖然數(shù)據(jù)傳輸?shù)乃俣容^低,但作為一種數(shù)據(jù)傳輸模式,尤其對

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(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 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(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ā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

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

北京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ù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

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