![FPGA嵌入式項(xiàng)目開(kāi)發(fā)(第5篇 通信開(kāi)發(fā)實(shí)例)_第1頁(yè)](http://file4.renrendoc.com/view10/M01/1C/2A/wKhkGWWAn4SAQrOjAABjbZKwCz4397.jpg)
![FPGA嵌入式項(xiàng)目開(kāi)發(fā)(第5篇 通信開(kāi)發(fā)實(shí)例)_第2頁(yè)](http://file4.renrendoc.com/view10/M01/1C/2A/wKhkGWWAn4SAQrOjAABjbZKwCz43972.jpg)
![FPGA嵌入式項(xiàng)目開(kāi)發(fā)(第5篇 通信開(kāi)發(fā)實(shí)例)_第3頁(yè)](http://file4.renrendoc.com/view10/M01/1C/2A/wKhkGWWAn4SAQrOjAABjbZKwCz43973.jpg)
![FPGA嵌入式項(xiàng)目開(kāi)發(fā)(第5篇 通信開(kāi)發(fā)實(shí)例)_第4頁(yè)](http://file4.renrendoc.com/view10/M01/1C/2A/wKhkGWWAn4SAQrOjAABjbZKwCz43974.jpg)
![FPGA嵌入式項(xiàng)目開(kāi)發(fā)(第5篇 通信開(kāi)發(fā)實(shí)例)_第5頁(yè)](http://file4.renrendoc.com/view10/M01/1C/2A/wKhkGWWAn4SAQrOjAABjbZKwCz43975.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
FPGA嵌入式項(xiàng)目開(kāi)發(fā)(\h第5篇通信開(kāi)發(fā)實(shí)例)目錄TOC\h\h第5篇通信開(kāi)發(fā)實(shí)例\h第14章以太網(wǎng)通信系統(tǒng)設(shè)計(jì)\h14.1以太網(wǎng)系統(tǒng)概述\h14.1.1以太網(wǎng)協(xié)議與MAC802.3幀格式\h14.1.2網(wǎng)絡(luò)傳輸介質(zhì)\h14.1.3以太網(wǎng)物理層芯片與MAC層芯片接口\h14.2以太網(wǎng)控制器DM9000A簡(jiǎn)述\h14.2.1以太網(wǎng)控制器DM9000A引腳功能\h14.2.2以太網(wǎng)控制器DM9000A應(yīng)用\h14.2.3以太網(wǎng)控制器DM9000A寄存器功能\h14.3以太網(wǎng)硬件接口電路設(shè)計(jì)\h14.3.1自動(dòng)極性切換器電路\h14.3.2以太網(wǎng)接口電路\h14.4以太網(wǎng)硬件系統(tǒng)設(shè)計(jì)\h14.4.1創(chuàng)建QuartusII工程項(xiàng)目\h14.4.2創(chuàng)建SOPC系統(tǒng)\h14.4.3生成NiosII系統(tǒng)\h14.4.4創(chuàng)建頂層模塊并添加PLL模塊\h14.5軟件設(shè)計(jì)與程序代碼\h14.5.1創(chuàng)建NiosII\h14.5.2程序代碼設(shè)計(jì)與修改\h14.6實(shí)例總結(jié)\h第15章USB2.0接口數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)\h15.1USB2.0芯片CY7C68013概述\h15.1.1I2C總線與控制器\h15.1.2USB啟動(dòng)方式和枚舉\h15.1.3中斷系統(tǒng)\h15.1.4復(fù)位和喚醒\h15.1.5程序/數(shù)據(jù)RAM\h15.1.6寄存器地址\h15.1.7端點(diǎn)\h15.1.8外部FIFO接口\h15.1.9可編程通用接口(GPIF)\h15.2CY7C68013與FPGA硬件接口電路\h15.2.1CY7C68013芯片引腳功能介紹\h15.2.2CY7C68013與FPGA硬件接口電路原理\h15.3從模式(slave)FIFO傳輸概述\h15.3.1硬件連接\h15.3.2SlaveFIFO的常用傳輸方式\h15.4USB系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)\h15.4.1USB設(shè)備固件設(shè)計(jì)\h15.4.2USB設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)\h15.4.3USB設(shè)備應(yīng)用程序(API)設(shè)計(jì)\h15.5USB接口數(shù)據(jù)通信應(yīng)用設(shè)計(jì)\h15.5.1同步讀寫(xiě)FIFO實(shí)例設(shè)計(jì)\h15.5.2USBIN/OUT實(shí)例設(shè)計(jì)\h15.6實(shí)例總結(jié)\h第16章IrDA紅外收發(fā)器應(yīng)用\h16.1IrDA紅外數(shù)據(jù)通信概述\h16.1.1IrDA分類(lèi)\h16.1.2IrDA基本通信協(xié)議層規(guī)范\h16.1.3IrDA標(biāo)準(zhǔn)的協(xié)議棧\h16.1.4IrDA編解碼概述\h16.2IrDA與FPGA硬件接口電路設(shè)計(jì)\h16.2.1HSDL3201紅外收發(fā)器概述\h16.2.2IrDA與FPGA硬件接口電路\h16.33/16編解碼軟件設(shè)計(jì)\h16.3.1頂層程序文件\h16.3.23/16編解碼程序\h16.3.3UART頂層邏輯程序\h16.3.4UART接收邏輯程序\h16.3.5UART發(fā)送邏輯程序\h16.4IrDA原理圖連線\h16.5實(shí)例總結(jié)\h第17章GPS通信系統(tǒng)設(shè)計(jì)\h17.1GPS通信系統(tǒng)概述\h17.1.1GPS系統(tǒng)工作原理\h17.1.2GPS模塊輸出信號(hào)分析\h17.1.3GPS模塊電路原理圖\h17.2硬件系統(tǒng)設(shè)計(jì)\h17.2.1創(chuàng)建QuartusII工程項(xiàng)目\h17.2.2創(chuàng)建SOPC系統(tǒng)\h17.2.3生成NiosII系統(tǒng)\h17.2.4創(chuàng)建頂層原理圖模塊\h17.3軟件設(shè)計(jì)與程序代碼\h17.3.1創(chuàng)建NiosII工程\h17.3.2程序代碼設(shè)計(jì)與修改\h17.4實(shí)例總結(jié)第14章以太網(wǎng)通信系統(tǒng)設(shè)計(jì)隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)用戶(hù)的快速增長(zhǎng),在使用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、智能儀器儀表、及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備也逐步實(shí)現(xiàn)網(wǎng)絡(luò)化。目前,以太網(wǎng)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),經(jīng)過(guò)20多年的發(fā)展,它已經(jīng)成為當(dāng)今Internet中底層鏈接不可缺少的部分。同時(shí)基于以太網(wǎng)的新技術(shù)和各種中高端聯(lián)網(wǎng)設(shè)備的不斷出現(xiàn),以太網(wǎng)已經(jīng)成為最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。在電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,將FPGA與專(zhuān)用的以太網(wǎng)控制器相結(jié)合,便可設(shè)計(jì)出應(yīng)用于通信,庫(kù)存管理(自動(dòng)售賣(mài)機(jī)及酒店客房?jī)?nèi)的迷你吧),遠(yuǎn)程診斷/警報(bào)系統(tǒng)(家電、生產(chǎn)機(jī)械、POS終端、電源及服務(wù)器/網(wǎng)絡(luò)),保安(物業(yè)監(jiān)控、消防和安全系統(tǒng)、保安小鍵盤(pán)、門(mén)禁及指紋識(shí)別系統(tǒng))及遙感/傳動(dòng)器(工業(yè)控制及自動(dòng)化、燈光控制、工業(yè)現(xiàn)場(chǎng)控制與檢測(cè)領(lǐng)域)等網(wǎng)絡(luò)控制器。14.1以太網(wǎng)系統(tǒng)概述以太網(wǎng)是LAN的主要聯(lián)網(wǎng)技術(shù),可實(shí)現(xiàn)局域網(wǎng)內(nèi)的嵌入式器件與互聯(lián)網(wǎng)的連接。嵌入式系統(tǒng)有了以太網(wǎng)連接功能,主控單元便可通過(guò)網(wǎng)絡(luò)連接傳輸數(shù)據(jù),并可通過(guò)遙控方式進(jìn)行控制。以太網(wǎng)因其架構(gòu)、性能、互操作性、可擴(kuò)展性及開(kāi)發(fā)簡(jiǎn)便,已成為嵌入式應(yīng)用的標(biāo)準(zhǔn)通信技術(shù)。14.1.1以太網(wǎng)協(xié)議與MAC802.3幀格式IEEE(InstituteofElectricalandElectronicsEngineers,美國(guó)電氣和電子工程師協(xié)會(huì))802.3協(xié)議是最常用的以太網(wǎng)協(xié)議,嵌入式系統(tǒng)經(jīng)常使用該標(biāo)準(zhǔn),下面對(duì)其進(jìn)行介紹。IEEE802.3以太網(wǎng)物理傳輸幀結(jié)構(gòu)的格式如表14-1所列,包括的字段有前導(dǎo)碼(Preamble,PR)、幀起始定界符(StartFrameDelimiter,SFD)、目的地址(DestinationAddress,DA)、源地址(SourceAddress,SA)、類(lèi)型字段(Type)、發(fā)送的數(shù)據(jù)(Data)和幀校驗(yàn)序列(FrameCheckSequence,F(xiàn)CS)等。這些字段中除了地址字段和數(shù)據(jù)字段長(zhǎng)度可變之外,其余字段的長(zhǎng)度都是固定的。表14-1IEEE802.3協(xié)議以太網(wǎng)物理幀結(jié)構(gòu)注:字段的長(zhǎng)度以字節(jié)為單位?!馪R:前導(dǎo)碼。同步位,用于收發(fā)雙方的時(shí)鐘同步,同時(shí)也指明傳輸?shù)乃俾剩?0Mbps和100Mbps的時(shí)鐘頻率不一樣,所以100Mbps網(wǎng)卡可以兼容10Mbps網(wǎng)卡),是由56位(8個(gè)字節(jié))長(zhǎng)度的二進(jìn)制數(shù)101010101010…組成。●SFD:幀起始定界符(部分文獻(xiàn)也稱(chēng)之為分隔位),表示下面跟著的是真正的數(shù)據(jù)而不是同步時(shí)鐘,為8位長(zhǎng)度的10101011,和同步位不同的是最后2位是11而不是10?!馜A:目的地址,以太網(wǎng)的地址為48位(6個(gè)字節(jié))二進(jìn)制地址,表明該幀傳輸給哪個(gè)網(wǎng)卡。如果為FFFFFFFFFFFF,則是廣播地址,廣播地址的數(shù)據(jù)可以被任意網(wǎng)卡接收到?!馭A:源地址,48位,表明該幀的數(shù)據(jù)是哪個(gè)網(wǎng)卡發(fā)的,即發(fā)送端的網(wǎng)卡地址,同樣是6個(gè)字節(jié)?!馮ype:類(lèi)型字段,表明該幀的數(shù)據(jù)是什么類(lèi)型的數(shù)據(jù)。不同協(xié)議的類(lèi)型字段是不同的,如:0800H表示數(shù)據(jù)為IP包;0806H表示數(shù)據(jù)為ARP包;814CH表示數(shù)據(jù)為SNMP包;8137H表示數(shù)據(jù)為IPX/SPX包;小于0600H的值是用于IEEE802的,表示數(shù)據(jù)包的長(zhǎng)度?!馜ata:數(shù)據(jù)段,該段數(shù)據(jù)不能夠超過(guò)1500B。因?yàn)橐蕴W(wǎng)協(xié)議規(guī)定整個(gè)傳輸包的最大長(zhǎng)度不能夠超過(guò)1514B(其中14B為DA、SA、Type)?!馪AD:填充位。由于以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能夠小于60B,除去(DA、SA、Type的14B),還必須傳輸46B的數(shù)據(jù),當(dāng)數(shù)據(jù)段不足46B時(shí)后面補(bǔ)0(通常是補(bǔ)0,也可以是其他值)。●FCS:32位數(shù)據(jù)校驗(yàn)位。32位的CRC校驗(yàn),該校驗(yàn)由網(wǎng)卡自動(dòng)計(jì)算,自動(dòng)生成,自動(dòng)校驗(yàn),自動(dòng)在數(shù)據(jù)段后面填入,而不需要軟件管理。通常,PR、SD、PAD、FCS這4個(gè)數(shù)據(jù)段都是網(wǎng)卡(包括物理層和MAC層的處理)自動(dòng)產(chǎn)生的,剩下的DA、SA、Type、Data這4個(gè)段的內(nèi)容是上層軟件控制的。以太網(wǎng)的數(shù)據(jù)傳輸具有如下特點(diǎn):●所有數(shù)據(jù)位的傳輸都是由低位開(kāi)始,傳輸?shù)奈涣魇怯寐鼜厮固鼐幋a?!褚蕴W(wǎng)是基于沖突檢測(cè)的總線復(fù)用方法,它是由硬件自動(dòng)執(zhí)行的?!褚蕴W(wǎng)傳輸?shù)臄?shù)據(jù)段的長(zhǎng)度,DA+SA+Type+Data+PAD最小為60B,最大為1514B。通常以太網(wǎng)設(shè)備可以接收3種地址的數(shù)據(jù),一個(gè)是廣播地址,一個(gè)是多播地址(或者叫組播地址,在嵌入式系統(tǒng)中很少用到),一個(gè)是它自己的地址。但有時(shí),用于網(wǎng)絡(luò)分析和監(jiān)控,網(wǎng)絡(luò)設(shè)備也可以設(shè)置為接收任何數(shù)據(jù)包。任何兩個(gè)網(wǎng)絡(luò)設(shè)備的物理地址都是不一樣的,MAC地址是世界上唯一的,由專(zhuān)門(mén)機(jī)構(gòu)分配。同一廠家使用不同的地址段,同一廠家的任何兩個(gè)網(wǎng)絡(luò)設(shè)備的MAC地址也是唯一的。并可根據(jù)設(shè)備的MAC地址段(網(wǎng)卡地址的前3個(gè)字節(jié))可以知道設(shè)備的生產(chǎn)廠家。14.1.2網(wǎng)絡(luò)傳輸介質(zhì)網(wǎng)絡(luò)傳輸介質(zhì)是指在通信網(wǎng)絡(luò)中發(fā)送方和接收方傳輸信息的載體,常用的傳輸介質(zhì)分為有線傳輸介質(zhì)和無(wú)線傳輸介質(zhì)兩大類(lèi)。有線傳輸介質(zhì)是指在兩個(gè)通信網(wǎng)絡(luò)設(shè)備之間實(shí)現(xiàn)的物理連接部分,它能將信號(hào)從一方傳輸?shù)搅硪环?。以太網(wǎng)比較常用的傳輸介質(zhì)主要包括同軸電纜、雙絞線、光纖3種。雙絞線和同軸電纜傳輸電信號(hào),光纖傳輸光信號(hào)。有線傳輸介質(zhì)性能比較如表14-2所列。表14-2網(wǎng)絡(luò)傳輸介質(zhì)性能比較1.雙絞線(Twisted-Pair)雙絞線是最常用的傳輸介質(zhì),雙絞線芯一般是銅質(zhì)的,具有良好的傳導(dǎo)率,既可以用于傳輸模擬信號(hào),也可以用于傳輸數(shù)字信號(hào)。雙絞線分為屏蔽雙絞線(ShieldedTwistedPair,STP)和非屏蔽雙絞線(Unshield-edTwistedPair,UTP)。非屏蔽雙絞線用線纜外皮層作為屏蔽層,適用于網(wǎng)絡(luò)流量不大的場(chǎng)合中。屏蔽雙絞線是用鋁箔將雙絞線屏蔽起來(lái),對(duì)電磁干擾(ElectromagneticInterference,EMI)具有較強(qiáng)的抵抗能力,適用于網(wǎng)絡(luò)流量較大的高速網(wǎng)絡(luò)協(xié)議應(yīng)用。屏蔽雙絞線結(jié)構(gòu)示意圖如圖14-1所示。圖14-1屏蔽雙絞線結(jié)構(gòu)示意圖電子工業(yè)協(xié)會(huì)(EIA)為無(wú)屏蔽雙絞線訂立了標(biāo)準(zhǔn),雙絞線根據(jù)性能可分為3類(lèi)、5類(lèi)、6類(lèi)和7類(lèi)。3類(lèi)無(wú)屏蔽雙絞線能夠承載的頻率帶寬是16MHz,現(xiàn)在常用的為5類(lèi)無(wú)屏蔽雙絞線,其頻率帶寬為100MHz,能夠可靠地運(yùn)行4MB、ICME和16MB的網(wǎng)絡(luò)系統(tǒng)。6類(lèi)、7類(lèi)雙絞線分別可工作于200MHz和600MHz的頻率帶寬之上,且采用特殊設(shè)計(jì)的RJ45插座。當(dāng)運(yùn)行100M以上的以太網(wǎng)時(shí),也可以使用屏蔽雙絞線以提高網(wǎng)絡(luò)在高速傳輸時(shí)的抗干擾特性?,F(xiàn)行雙絞線電纜中一般包含4個(gè)雙絞線對(duì),表14-3所列的是EIA/TIAT568A/B標(biāo)準(zhǔn)線序。計(jì)算機(jī)網(wǎng)絡(luò)使用1-2、36兩組線對(duì)分別來(lái)發(fā)送和接收數(shù)據(jù)。表14-3EIA/TIAT568A/B標(biāo)準(zhǔn)線序2.同軸電纜(Coaxial)同軸電纜是由一對(duì)導(dǎo)體組成的。但它們是按“同軸”形式構(gòu)成線對(duì)。同軸電纜以單根銅導(dǎo)線為內(nèi)芯,外裹一層絕緣材料,外覆密集網(wǎng)狀導(dǎo)體,最外面是一層保護(hù)性塑料。金屬屏蔽層能將磁場(chǎng)反射回中心導(dǎo)體,同時(shí)也使中心導(dǎo)體免受外界干擾,故同軸電纜比雙絞線具有更高的帶寬和更好的噪聲抑制特性。同軸電纜結(jié)構(gòu)如圖14-2所示。最里層是內(nèi)芯,向外依次是絕緣材料層、屏蔽層、塑料外皮,內(nèi)芯和屏蔽層構(gòu)成一對(duì)導(dǎo)體。圖14-2同軸電纜結(jié)構(gòu)示意圖廣泛使用的同軸電纜有兩種:一種為50Ω(指沿電纜導(dǎo)體各點(diǎn)的電磁電壓對(duì)電流之比)同軸電纜,用于數(shù)字信號(hào)的傳輸,即基帶同軸電纜;另一種為75Ω同軸電纜,用于寬帶模擬信號(hào)的傳輸,即寬帶同軸電纜。3.光纖光纖是光導(dǎo)纖維(FiberOptic)的簡(jiǎn)稱(chēng)。光導(dǎo)纖維是軟而細(xì)的、利用內(nèi)部全反射原理來(lái)傳導(dǎo)光束的傳輸介質(zhì)。它由能傳導(dǎo)光波的超細(xì)石英玻璃纖維外加保護(hù)層構(gòu)成,多條光纖組成一束,就可構(gòu)成一條光纜。光纖結(jié)構(gòu)示意圖如圖14-3所示。光纖有單模和多模之分,單模(即Mode,入射角)光纖多用于通信業(yè);多模光纖多用于網(wǎng)絡(luò)布線系統(tǒng)。圖14-3光纖結(jié)構(gòu)示意圖光纖為圓柱狀,由3個(gè)同心部分組成:纖芯、包層和護(hù)套,每一路光纖包括兩根,一根接收,一根發(fā)送。用光纖作為網(wǎng)絡(luò)介質(zhì)的LAN技術(shù)主要是光纖分布式數(shù)據(jù)接口(Fiber-opticDataDistributedInterface,F(xiàn)DDI)。與同軸電纜比較,光纖可提供極寬的頻帶且功率損耗小、傳輸距離長(zhǎng)(2千米以上)、傳輸率高(可達(dá)數(shù)千Mbps)、抗干擾性強(qiáng)(不會(huì)受到電子監(jiān)聽(tīng)),是構(gòu)建安全性網(wǎng)絡(luò)的理想選擇。14.1.3以太網(wǎng)物理層芯片與MAC層芯片接口以太網(wǎng)的PHY和MAC之間的接口標(biāo)準(zhǔn)主要有MII、RMII、SMII、SS-SMII、GMII和TBI等,其中最常用的接口是MII、RMII、SMII,下面將對(duì)這3種接口依次簡(jiǎn)要介紹。1.介質(zhì)無(wú)關(guān)接口(MII)介質(zhì)無(wú)關(guān)接口(MediumIndependentInterface,MII)是一個(gè)18針的信號(hào)接口。數(shù)據(jù)通過(guò)MII的速率是每個(gè)時(shí)鐘周期為一個(gè)半位元組(4位),這樣發(fā)送接收時(shí)鐘為100Mbps數(shù)據(jù)率的1/4,而MII接口支持10/100Mbps自適應(yīng)數(shù)據(jù)傳輸,因此時(shí)鐘為2.5MHz(10Mbps時(shí))或25MHz(100Mbps時(shí))。MII接口包括一個(gè)數(shù)據(jù)接口,以及一個(gè)MAC和PHY之間的管理接口。數(shù)據(jù)接口包括分別用于發(fā)送器和接收器的兩條獨(dú)立信道。每條信道都有自己的數(shù)據(jù)、時(shí)鐘和控制信號(hào)。管理接口是個(gè)雙信號(hào)接口:一個(gè)是時(shí)鐘信號(hào)(MDC),另一個(gè)是數(shù)據(jù)信號(hào)(MDIO)。信號(hào)引腳示意圖如圖14-4所示,其接口主要信號(hào)引腳說(shuō)明如下:圖14-4介質(zhì)無(wú)關(guān)接口示意圖●MII_TX_CLK:為傳輸發(fā)送數(shù)據(jù)而提供連續(xù)的時(shí)鐘信號(hào),對(duì)于10Mbps的數(shù)據(jù)傳輸,此時(shí)鐘為2.5MHz,對(duì)于100Mbps的數(shù)據(jù)傳輸,此時(shí)鐘為25MHz?!馦II_RX_CLK:為傳輸接收數(shù)據(jù)而提供連續(xù)的時(shí)鐘信號(hào),對(duì)于10Mbps的數(shù)據(jù)傳輸,此時(shí)鐘為2.5MHz,對(duì)于100Mbps的數(shù)據(jù)傳輸,此時(shí)鐘為25MHz。●MII_TX_EN:傳輸使能信號(hào),表示MAC正在輸出要求MII接口傳輸?shù)臄?shù)據(jù)。此使能信號(hào)必須與數(shù)據(jù)前導(dǎo)符的起始位同步(MII_TX_CLK)出現(xiàn),并且必須一直保持到所有需要傳輸?shù)奈欢紓鬏斖戤厼橹??!馦II_TXD[3:0]:由MAC子層控制,每次同步地傳輸4位數(shù)據(jù),數(shù)據(jù)在MII_TX_EN信號(hào)有效時(shí)有效。MII_TXD[0]是數(shù)據(jù)的最低位,MII_TXD[3]是最高位。當(dāng)MII_TX_EN信號(hào)無(wú)效時(shí),傳輸?shù)臄?shù)據(jù)對(duì)于PHY無(wú)效?!馦II_CRS:載波偵聽(tīng)信號(hào),由PHY控制,當(dāng)發(fā)送或接收的介質(zhì)非空閑時(shí),使能此信號(hào)。當(dāng)傳送和接收的介質(zhì)都空閑時(shí),PHY會(huì)撤消此信號(hào)。PHY必須保證MII_CS信號(hào)在發(fā)生沖突的整個(gè)時(shí)間段內(nèi)都保持有效。不需要此信號(hào)與發(fā)送/接收的時(shí)鐘同步。在全雙工模式下,此信號(hào)的狀態(tài)對(duì)于MAC子層無(wú)意義。●MII_COL:沖突檢測(cè)信號(hào),由PHY控制,當(dāng)檢測(cè)到介質(zhì)發(fā)生沖突時(shí),使能此信號(hào),并且在整個(gè)沖突的持續(xù)時(shí)間內(nèi),保持此信號(hào)有效。此信號(hào)不需要和發(fā)送/接收的時(shí)鐘同步。在全雙工模式下,此信號(hào)的狀態(tài)對(duì)于MAC子層無(wú)意義?!馦II_RXD[3:0]:由PHY控制,每次同步地發(fā)送4位需要接收的數(shù)據(jù),數(shù)據(jù)在MII_RX_DV信號(hào)有效時(shí)有效。MII_RXD[0]是數(shù)據(jù)的最低位,MII_RXD[3]是最高位。當(dāng)MII_RX_EN無(wú)效,而MII_RX_ER有效時(shí),PHY會(huì)傳送一組特殊的MII_RXD[3:0]數(shù)據(jù),來(lái)告知一些特殊的信息?!馦II_RX_DV:接收數(shù)據(jù)使能信號(hào),由PHY控制,當(dāng)PHY準(zhǔn)備好卸載和解碼數(shù)據(jù)供MII接收時(shí),使能該信號(hào)。此信號(hào)必須和卸載好的幀數(shù)據(jù)的首位同步(MII_RX_CLK)出現(xiàn),并在數(shù)據(jù)完全傳輸完畢之前,都保持有效。在傳送最后4位數(shù)據(jù)后的第一個(gè)時(shí)鐘之前,此信號(hào)必須變?yōu)闊o(wú)效狀態(tài)。為了正確的接收一個(gè)幀,MII_RX_DV信號(hào)必須在整個(gè)幀傳輸期間內(nèi)都保持有效,有效電平不能晚于數(shù)據(jù)線上的SFD位?!馦II_RX_ER:接收出錯(cuò)信號(hào),保持一個(gè)或多個(gè)時(shí)鐘周期(MII_RX_CLK)的有效狀態(tài),指示MAC子層在幀內(nèi)檢測(cè)到了錯(cuò)誤。●MDC:管理接口配置時(shí)鐘,為數(shù)據(jù)的傳輸提供時(shí)鐘?!馦DIO:管理接口數(shù)據(jù)的輸入/輸出線,在MDC時(shí)鐘信號(hào)的驅(qū)動(dòng)下,向PHY設(shè)備傳遞狀態(tài)信息。2.精簡(jiǎn)介質(zhì)無(wú)關(guān)接口(RMII)RMII(ReducedMediaIndependantInterface)是精簡(jiǎn)的MII接口。在10/100Mbps通信時(shí),精簡(jiǎn)介質(zhì)無(wú)關(guān)接口規(guī)范減少了以太網(wǎng)控制器和外部PHY(或以太網(wǎng)設(shè)備)之間的引腳數(shù)。在數(shù)據(jù)的收發(fā)上RMII接口比MII接口少了一倍的信號(hào)線,且它一般要求是50MHz的總線時(shí)鐘。RMII接口信號(hào)引腳示意如圖14-5所示。圖14-5精簡(jiǎn)介質(zhì)無(wú)關(guān)接口引腳示意圖3.串行介質(zhì)無(wú)關(guān)接口(SMII)串行介質(zhì)無(wú)關(guān)接口(SerialMediaIndependentInterface,SMII)是由思科提出的一種接口標(biāo)準(zhǔn),它有比RMII接口更少的信號(hào)線數(shù)目。SRMII接口總線進(jìn)一步減少為4根,其中1根時(shí)鐘REFCLK,1根發(fā)送數(shù)據(jù)TXD,1根接收數(shù)據(jù)RXD和1根同步信號(hào)SYNC。其接口時(shí)鐘為125MHz,管理接口則與MII一樣。串行介質(zhì)無(wú)關(guān)接口允許應(yīng)用程序通過(guò)時(shí)鐘和數(shù)據(jù)兩根線來(lái)訪問(wèn)任何PHY寄存器。這個(gè)接口可以支持多達(dá)32個(gè)PHY。串行介質(zhì)無(wú)關(guān)接口與外部PHY連接示意圖如圖14-6所示。圖14-6串行介質(zhì)無(wú)關(guān)接口引腳示意圖14.2以太網(wǎng)控制器DM9000A簡(jiǎn)述本例采用FPGA直接控制DM9000A進(jìn)行以太網(wǎng)數(shù)據(jù)收發(fā),實(shí)現(xiàn)了最高速率可達(dá)100Mbps的網(wǎng)絡(luò)傳輸系統(tǒng)設(shè)計(jì)。DM9000A芯片是一款完全集成通用處理器接口以及符合低成本的單芯片快速以太網(wǎng)MAC(介質(zhì)訪問(wèn)層)控制器,內(nèi)部集成一個(gè)10/100M自適應(yīng)的PHY(物理層)和16KB的SRAM,支持8位、16位接口訪問(wèn)內(nèi)部存儲(chǔ)器以支持不同的處理器。DM9000A還提供了介質(zhì)無(wú)關(guān)的接口(MII),來(lái)連接所有提供支持介質(zhì)無(wú)關(guān)接口功能的家用電話線網(wǎng)絡(luò)設(shè)備或其他收發(fā)器。以太網(wǎng)控制器DM9000A的PHY完全支持10Base-T標(biāo)準(zhǔn)中的3類(lèi)、4類(lèi)、5類(lèi)無(wú)屏蔽雙絞線和100Base-TX標(biāo)準(zhǔn)5類(lèi)屏蔽雙絞線,并完全符合IEEE802.3u規(guī)格。它的自動(dòng)協(xié)調(diào)功能將自動(dòng)完成配置以最大限度地適合其線路帶寬,同時(shí)支持IEEE802.3x全雙工流量控制。以太網(wǎng)控制器DM9000A的內(nèi)部模塊結(jié)構(gòu)框圖如圖14-7所示。圖14-7DM9000A功能框圖以太網(wǎng)控制器DM9000A的主要功能特點(diǎn)如下?!裰С痔幚砥髯x寫(xiě)內(nèi)部存儲(chǔ)器的數(shù)據(jù)操作命令,以字節(jié)/字/雙字的長(zhǎng)度進(jìn)行;●集成10/100M自動(dòng)極性轉(zhuǎn)換收發(fā)器;●支持介質(zhì)無(wú)關(guān)接口;●支持100M光纖接口;●半雙工流量控制時(shí)支持反壓模式;●IEEE802.3x流量控制的全雙工模式;●支持喚醒幀,鏈路狀態(tài)改變和遠(yuǎn)程的喚醒;●支持IP/TCP/UDP校驗(yàn)和生成和檢查;●支持自動(dòng)加載EEPROM里面生產(chǎn)商ID和產(chǎn)品ID;●兼容3.3V和5.0V輸入輸出電壓。14.2.1以太網(wǎng)控制器DM9000A引腳功能本小節(jié)主要介紹以太網(wǎng)控制器DM9000A、網(wǎng)絡(luò)設(shè)備以及微控制器之間所涉及的獨(dú)立信號(hào)引腳功能。以太網(wǎng)控制器DM9000A與微控制器連接的硬件接口示意圖如圖14-8所示。圖14-8DM9000A與微處理器硬件接口1.以太網(wǎng)控制器DM9000A與處理器接口引腳功能描述DM9000A與微處理器硬件連接接口引腳功能描述如表14-4所列。表14-4DM9000A與微處理器硬件接口引腳功能描述續(xù)表14-42.EEPROM接口引腳功能描述以太網(wǎng)控制器DM9000A與EEPROM接口引腳功能描述如表14-5所列。表14-5EEPROM接口引腳功能描述3.時(shí)鐘引腳功能描述以太網(wǎng)控制器DM9000A時(shí)鐘引腳功能描述如表14-6所列。表14-6時(shí)鐘引腳功能描述4.LED引腳功能描述以太網(wǎng)控制器DM9000A芯片的LED引腳功能描述如表14-7所列。表14-7LED引腳功能描述5.10/100M物理層與光纖接口功能描述以太網(wǎng)控制器DM9000A芯片的10/100M物理層與光纖接口引腳功能描述如表14-8所列。表14-810/100M物理層與光纖接口引腳功能描述14.2.2以太網(wǎng)控制器DM9000A應(yīng)用本節(jié)主要對(duì)以太網(wǎng)控制器DM9000A應(yīng)用進(jìn)行簡(jiǎn)要介紹。1.通用處理器接口工作時(shí)序簡(jiǎn)述DM9000A的通用處理器接口讀操作時(shí)序如圖14-9所示。DM9000A的通用處理器接口寫(xiě)操作時(shí)序如圖14-10所示。圖14-9通用處理器接口讀操作時(shí)序圖圖14-10通用處理器接口寫(xiě)操作時(shí)序圖2.自動(dòng)極性轉(zhuǎn)換電路應(yīng)用DM9000A在10Base-T/100Base-TX標(biāo)準(zhǔn)下應(yīng)用時(shí),其自動(dòng)極性轉(zhuǎn)換的硬件電路連接示意圖如圖14-11所示。圖14-11自動(dòng)極性轉(zhuǎn)換變壓器應(yīng)用示意圖3.8位/16位數(shù)據(jù)總線寬度設(shè)置以太網(wǎng)控制器DM9000A數(shù)據(jù)總線寬度有兩種操作模式,即8位和16位。這兩種操作模式由引腳21(EECS)信號(hào)電平設(shè)置,如表14-9所列。表14-98位/16位數(shù)據(jù)總線寬度設(shè)置注意:1表示10kΩ電阻上拉,0表示浮空。DM9000A數(shù)據(jù)總線寬度的操作模式可通過(guò)寄存器ISR(地址FEH)位[7]測(cè)試,其位功能定義如表14-10所列。表14-10寄存器ISR(地址FEH)位[7]值域定義4.命令類(lèi)型在以太網(wǎng)控制器DM9000A中,只有兩個(gè)寄存器可以被直接訪問(wèn),它們分別命名為索引端口和數(shù)據(jù)端口。這兩個(gè)端口的區(qū)別主要在于CMD引腳的指令周期:當(dāng)CMD引腳在指令周期時(shí)置低電平,訪問(wèn)索引端口;當(dāng)CMD引腳在指令周期時(shí)置高電平時(shí),訪問(wèn)數(shù)據(jù)端口。以太網(wǎng)控制器DM9000A所有的控制和狀態(tài)寄存器都是通過(guò)索引/數(shù)據(jù)端口間接訪問(wèn)的,訪問(wèn)控制和狀態(tài)寄存器的命令序列分為如下兩個(gè)步驟:●向索引端口寫(xiě)寄存器地址;●通過(guò)數(shù)據(jù)端口讀/寫(xiě)它們返回的數(shù)據(jù)。14.2.3以太網(wǎng)控制器DM9000A寄存器功能以太網(wǎng)控制器DM9000A寄存器主要包括控制和狀態(tài)寄存器組與PHY寄存器。1.控制和狀態(tài)寄存器功能概述DM9000A包含一系列可被訪問(wèn)的控制和狀態(tài)寄存器,這些寄存器是字節(jié)對(duì)齊的,它們?cè)谟布蜍浖?fù)位時(shí)被設(shè)置成初始值。注意:●默認(rèn)狀態(tài)。P:上電復(fù)位默認(rèn)值。S:軟件復(fù)位默認(rèn)值。E:從EEPROM加載默認(rèn)值。默認(rèn)狀態(tài)設(shè)置值定義如下。1:位設(shè)置邏輯1。0:位設(shè)置邏輯0。X:位無(wú)默認(rèn)值?!裨L問(wèn)類(lèi)型。RO:只讀。RW:讀/寫(xiě)。R/C:讀和清除。RW/C1:讀和寫(xiě),寫(xiě)1清除。WO:只寫(xiě)。(1)網(wǎng)絡(luò)控制寄存器(NetworkControlRegister,00H)。網(wǎng)絡(luò)控制寄存器位功能定義如表14-11所列。表14-11網(wǎng)絡(luò)控制寄存器位功能定義(2)網(wǎng)絡(luò)狀態(tài)寄存器(NetworkStatusRegister,01H)。網(wǎng)絡(luò)狀態(tài)寄存器位功能定義如表14-12所列。表14-12網(wǎng)絡(luò)狀態(tài)寄存器位功能定義續(xù)表14-12(3)發(fā)送控制寄存器(TXControlRegister,02H)。發(fā)送控制寄存器位功能定義如表14-13所列。表14-13發(fā)送控制寄存器位功能定義注釋?zhuān)篔abber是一個(gè)有CRC錯(cuò)誤的長(zhǎng)幀(大于1518B而小于6000B)或是數(shù)據(jù)包重組錯(cuò)誤。(4)數(shù)據(jù)包索引1~2的發(fā)送狀態(tài)寄存器1~2(TXStatusRegister1~2,03H~04H)。數(shù)據(jù)包索引1~2的發(fā)送狀態(tài)寄存器1~2位功能定義如表14-14所列。表14-14數(shù)據(jù)包索引1~2的發(fā)送狀態(tài)寄存器1~2位功能定義(5)接收控制寄存器(RXControlRegister,05H)。接收控制寄存器位功能定義如表14-15所列。表14-15接收控制寄存器位功能定義(6)接收狀態(tài)寄存器(RXStatusRegister,06H)。接收狀態(tài)寄存器位功能定義如表14-16所列。表14-16接收狀態(tài)寄存器位功能定義續(xù)表14-16(7)接收溢出計(jì)數(shù)寄存器(ReceiveOverflowCounterRegister,07H)。接收溢出計(jì)數(shù)寄存器位功能定義如表14-17所列。表14-17接收溢出計(jì)數(shù)寄存器位功能定義(8)反壓閥值寄存器(BackPressureThresholdRegister,08H)。反壓閥值寄存器位功能定義如表14-18所列。表14-18反壓閥值寄存器位功能定義續(xù)表14-18(9)流控閥值寄存器(FlowControlThresholdRegister,09H)。流控閥值寄存器位功能定義如表14-19所列。表14-19流控閥值寄存器位功能定義(10)接收/發(fā)送溢出控制寄存器(RX/TXFlowControlRegister,0AH)。接收/發(fā)送溢出控制寄存器位功能定義如表14-20所列。表14-20接收/發(fā)送溢出控制寄存器位功能定義(11)EEPROM和PHY控制寄存器(EEPROM&PHYControlRegister,0BH)。EEPROM和PHY控制寄存器位功能定義如表14-21所列。表14-21EEPROM和PHY控制寄存器位功能定義(12)EEPROM和PHY地址寄存器(EEPROM&PHYAddressRegister,0CH)。EEPROM和PHY地址寄存器位功能定義如表14-22所列。表14-22EEPROM和PHY地址寄存器位功能定義(13)EEPROM和PHY數(shù)據(jù)寄存器(0DH~0EH)。EEPROM和PHY數(shù)據(jù)寄存器位功能定義如表14-23所列。表14-23EEPROM和PHY數(shù)據(jù)寄存器位功能定義(14)8位模式喚醒控制寄存器(WakeUpControlRegister,0FH)。喚醒控制寄存器位功能定義如表14-24所列。表14-24喚醒控制寄存器位功能定義(15)物理地址寄存器(PhysicalAddressRegister,10H~15H)。物理地址寄存器位功能定義如表14-25所列。表14-25物理地址寄存器位功能定義續(xù)表14-25(16)組播地址寄存器(MulticastAddressRegister,16H~1DH)。組播地址寄存器位功能定義如表14-26所列。表14-26組播地址寄存器位功能定義(17)通用端口控制寄存器(GeneralPurposeControlRegister,1EH)。通用端口控制寄存器位功能定義如表14-27所列。表14-27通用端口控制寄存器位功能定義(18)通用端口寄存器(GeneralPurposeRegister,1FH)。通用端口寄存器位功能定義如表14-28所列。表14-28通用端口寄存器位功能定義(19)發(fā)送SRAM讀指針寄存器(22H~23H)。發(fā)送SRAM讀指針寄存器位功能定義如表14-29所列。表14-29發(fā)送SRAM讀指針寄存器位功能定義(20)接收SRAM寫(xiě)指針寄存器(24H~25H)。接收SRAM寫(xiě)指針寄存器位功能定義如表14-30所列。表14-30接收SRAM寫(xiě)指針寄存器位功能定義(21)傳送控制寄存器2(TransmitControlRegister2,2DH)。傳送控制寄存器2位功能定義如表14-31所列。表14-31傳輸控制寄存器2位功能定義續(xù)表14-31(22)特殊模式控制寄存器(SpecialModeControlRegister,2FH)。特殊模式控制寄存器位功能定義如表14-32所列。表14-32特殊模式控制寄存器位功能定義(23)介質(zhì)無(wú)關(guān)接口物理層地址寄存器(MIIPHYAddressRegister,33H)。介質(zhì)無(wú)關(guān)接口物理層地址寄存器位功能定義如表14-33所列。表14-33介質(zhì)無(wú)關(guān)接口物理層地址寄存器位功能定義(24)LED引腳控制寄存器(LEDPinControlRegister,34H)。LED引腳控制寄存器位功能定義如表14-34所列。表14-34LED引腳控制寄存器位功能定義(25)處理器總線控制寄存器(ProcessorBusControlRegister,38H)。處理器總線控制寄存器位功能定義如表14-35所列。表14-35處理器總線控制寄存器位功能定義(26)中斷引腳控制寄存器(INTPinControlRegister,39H)。中斷引腳控制寄存器位功能定義如表14-36所列。表14-36中斷引腳控制寄存器位功能定義(27)系統(tǒng)時(shí)鐘開(kāi)啟控制寄存器(SystemClockTurnONControlRegister,50H)。系統(tǒng)時(shí)鐘開(kāi)啟控制寄存器位功能定義如表14-37所列。表14-37系統(tǒng)時(shí)鐘開(kāi)啟控制寄存器位功能定義(28)無(wú)地址遞增的預(yù)取存儲(chǔ)器數(shù)據(jù)讀命令寄存器(F0H)。無(wú)地址遞增的預(yù)取存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義如表14-38所列。表14-38無(wú)地址遞增的預(yù)取存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義(29)無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器(F1H)。無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義如表14-39所列。表14-39無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義(30)地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器(F2H)。地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義如表14-40所列。表14-40地址遞增的存儲(chǔ)器數(shù)據(jù)讀命令寄存器位功能定義(31)存儲(chǔ)器數(shù)據(jù)讀地址寄存器(F4H~F5H)。存儲(chǔ)器數(shù)據(jù)讀地址寄存器位功能定義如表14-41所列。表14-41存儲(chǔ)器數(shù)據(jù)讀地址寄存器位功能定義(32)無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器(F6H)。無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器位功能定義如表14-42所列。表14-42無(wú)地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器位功能定義(33)地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器(F8H)。地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器位功能定義如表14-43所列。表14-43地址遞增的存儲(chǔ)器數(shù)據(jù)寫(xiě)命令寄存器位功能定義(34)存儲(chǔ)器數(shù)據(jù)寫(xiě)地址寄存器(FAH~FBH)。存儲(chǔ)器數(shù)據(jù)寫(xiě)地址寄存器位功能定義如表14-44所列。表14-44存儲(chǔ)器數(shù)據(jù)寫(xiě)地址寄存器位功能定義(35)發(fā)送數(shù)據(jù)包長(zhǎng)度寄存器(FCH~FDH)。發(fā)送數(shù)據(jù)包長(zhǎng)度寄存器位功能定義如表14-45所列。表14-45發(fā)送數(shù)據(jù)包長(zhǎng)度寄存器位功能定義(36)中斷狀態(tài)寄存器(FEH)。中斷狀態(tài)寄存器位功能定義如表14-46所列。表14-46中斷狀態(tài)寄存器位功能定義續(xù)表14-46(37)中斷屏蔽寄存器(FFH)。中斷屏蔽寄存器位功能定義如表14-47所列。表14-47中斷屏蔽寄存器位功能定義2.物理層寄存器功能概述在DM9000A中,還有一些物理層寄存器,也稱(chēng)之為介質(zhì)無(wú)關(guān)接口(MII)寄存器,需要我們?nèi)ピL問(wèn)。這些寄存器是字對(duì)齊的,即16位寬。下面列出2個(gè)常用的PHY寄存器。注意:●默認(rèn)狀態(tài)設(shè)置值定義1:位設(shè)置邏輯1。0:位設(shè)置邏輯0。X:位無(wú)默認(rèn)值?!裨L問(wèn)類(lèi)型RO:只讀。RW:讀/寫(xiě)?!駥傩許C:自清位。P:永久值設(shè)定。LL:低鎖存。LH:高鎖存。(1)基本模式控制寄存器(BasicModeControlRegister)-00。物理層基本模式控制寄存器位功能定義如表14-48所列。表14-48基本模式控制寄存器位功能定義(2)基本模式狀態(tài)寄存器(BasicModeStatusRegister)-01。物理層基本模式狀態(tài)寄存器位功能定義如表14-49所列。表14-49基本模式狀態(tài)寄存器位功能定義14.3以太網(wǎng)硬件接口電路設(shè)計(jì)DM9000A的外部總線符合ISA標(biāo)準(zhǔn),可通過(guò)ISA標(biāo)準(zhǔn)總線實(shí)現(xiàn)與FPGA的無(wú)縫連接。本實(shí)例的FPGA芯片采用CycloneIIEP2C35,有關(guān)DM9000A與EP2C35外圍硬件電路原理如下所述。14.3.1自動(dòng)極性切換器電路PH163539是臺(tái)灣卓智公司PH16系列的網(wǎng)絡(luò)變壓器,PH163539主要用于信號(hào)電平耦合。其一,可以增強(qiáng)信號(hào),使其傳輸距離更遠(yuǎn);其二,使芯片端與外部隔離,抗干擾能力大大增強(qiáng),而且對(duì)芯片增加了很大的保護(hù)作用(如雷擊);其三,當(dāng)接到不同電平(如有的PHY芯片是2.5V,有的PHY芯片是3.3V)的網(wǎng)口時(shí),不會(huì)對(duì)彼此設(shè)備造成影響。由于DM9000的收發(fā)信號(hào)達(dá)到50Mbps,對(duì)網(wǎng)絡(luò)變壓器硬件的要求較高,為了滿足高頻信號(hào)的需要,PH163539的設(shè)計(jì)非常特別,采用內(nèi)部大面積留空,底層全開(kāi)放的散熱方式,避免高頻信號(hào)帶來(lái)的強(qiáng)干擾。DM9000與PH163539組合的自動(dòng)極性切換器硬件部分電路原理如圖14-12所示。圖14-12自動(dòng)極性轉(zhuǎn)換器硬件電路原理圖14.3.2以太網(wǎng)接口電路本實(shí)例的以太網(wǎng)控制器DM9000A采用16位數(shù)據(jù)總線寬度,以太網(wǎng)控制器DM9000A與FPGA的硬件接口電路原理圖如圖14-13所示。DM9000A時(shí)鐘頻率采用25MHz。圖14-13DM9000A硬件電路原理圖14.4以太網(wǎng)硬件系統(tǒng)設(shè)計(jì)本實(shí)例的以太網(wǎng)通信系統(tǒng)設(shè)計(jì)基于CycloneII系列EP2C35芯片,需要一塊FPGA開(kāi)發(fā)板。本實(shí)例的以太網(wǎng)通信系統(tǒng)結(jié)構(gòu)圖如圖14-14所示。圖14-14以太網(wǎng)通信系統(tǒng)結(jié)構(gòu)圖以太網(wǎng)通信系統(tǒng)設(shè)計(jì)的硬件部分主要流程如下。14.4.1創(chuàng)建QuartusII工程項(xiàng)目打開(kāi)QuartusII開(kāi)發(fā)環(huán)境,創(chuàng)建新工程并設(shè)置相關(guān)的信息,本實(shí)例的工程項(xiàng)目名為“EP2C35_NET”,如圖14-15所示。圖14-15創(chuàng)建新工程項(xiàng)目對(duì)話框單擊“Finish”按鈕,完成工程項(xiàng)目創(chuàng)建。如果在QuartusII的“ProjectNavigator”中顯示的FPGA芯片與實(shí)際應(yīng)用有差異,則可選擇“Assignments”→“Device”命令,在彈出的窗體中進(jìn)行相應(yīng)設(shè)置。14.4.2創(chuàng)建SOPC系統(tǒng)在QuartusII開(kāi)發(fā)環(huán)境下,點(diǎn)擊“Tools”→“SOPCBuilder”,即可打開(kāi)系統(tǒng)開(kāi)發(fā)環(huán)境集成的SOPC開(kāi)發(fā)工具SOPCBuilder。在彈出的對(duì)話框中輸入SOPC系統(tǒng)模塊名稱(chēng),將“TargetHDL”設(shè)置為“VerilogHDL”,本實(shí)例的SOPC系統(tǒng)模塊名稱(chēng)為“netsys”,如圖14-16所示。接下來(lái)準(zhǔn)備進(jìn)行系統(tǒng)IP組件的添加。圖14-16創(chuàng)建SOPC新工程項(xiàng)目對(duì)話框(1)NiosIICPU型號(hào)。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“NiosIIProcessor”,添加CPU模塊,在“CoreNiosII”欄選擇“NiosII/s”,其他配置均選擇默認(rèn)設(shè)置即可,如圖14-17所示。圖14-17添加NiosCPU模塊(2)JTAG_UART。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“InterfaceProtocols”→“Serial”→“JTAG_UART”,添加JTAG_UART模塊,其他選項(xiàng)均選擇默認(rèn)設(shè)置,如圖14-18所示。圖14-18添加JTAG_UART模塊(3)On-ChipMemory。On-ChipMemory是NiosII處理器片上的RAM,用于存儲(chǔ)臨時(shí)變量和中間數(shù)據(jù)結(jié)果。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“MemoriesandMemoryControl”→“OnChip”→“On-ChipMemory(RAMorROM)”,添加RAM模塊,其他選項(xiàng)視用戶(hù)具體需求設(shè)置,如圖14-19所示。圖14-19添加On-ChipMemory模塊(4)SDRAM控制器。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“MemoriesandMemoryControl”→“SDRAM”→“SDRAMController”,添加RAM模塊,其他選項(xiàng)視用戶(hù)具體需求設(shè)置,如圖14-20所示。圖14-20添加SDRAM控制器模塊(5)Avalon-MMTristateBridge。由于Flash的數(shù)據(jù)總線是三態(tài)的,所以NiosIICPU與Flash進(jìn)行連接時(shí)需要添加Avalon總線三態(tài)橋。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“BridgesandAdapters”→“MemoryMapped”→“Avalon-MMTristateBridge”,添加Avalon三態(tài)橋,并在提示對(duì)話框中選中“Reg-istered”完成設(shè)置,如圖14-21所示。圖14-21添加Avalon三態(tài)橋(6)Cfi-Flash。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“MemoriesandMemoryControl”→“Flash”→“FlashMemoryInterface(CFI)”,添加Flash模塊,其他選項(xiàng)視用戶(hù)具體需求設(shè)置,如圖14-22所示。圖14-22添加FLAH控制器模塊(7)EPCSSerialFlashController。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“MemoriesandMemoryControl”→“Flash”→“EPCSSerialFlashController”,添加EPCSSerialFlashController模塊,其他選項(xiàng)按默認(rèn)設(shè)置,如圖14-23所示。圖14-23添加EPCS控制器模塊(8)UART。UART在嵌入式系統(tǒng)中經(jīng)常用到,本實(shí)例添加UART串口可實(shí)現(xiàn)外部設(shè)備與NiosII系統(tǒng)的調(diào)試與數(shù)據(jù)連接。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“InterfaceProtocols”→“Serial”→“UART”,添加UART模塊,相關(guān)串口參數(shù)根據(jù)使用要求設(shè)置,如圖14-24所示。圖14-24添加UART模塊(9)IntervalTimer。SOPCBuilder提供的IntervalTimer控制器主要用于完成NiosII處理器的定時(shí)中斷控制。選擇左側(cè)的“Peripherals”→“MicrocontrollerPeripherals”→“IntervalTimer”,添加IntervalTimer定時(shí)器模塊,相關(guān)參數(shù)根據(jù)使用要求設(shè)置,如圖14-25所示。圖14-25添加IntervalTimer模塊(10)PIO。SOPCBuilder提供的PIO控制器主要用于完成NiosII處理器并行輸入輸出信號(hào)的傳輸。選擇左側(cè)的“Peripherals”→“MicrocontrollerPeripherals”→“PIO(ParallelI/O)”,添加PIO控制器模塊,單擊“Finish”完成設(shè)置,如圖14-26所示。圖14-26添加PIO輸入輸出端口(11)DM9000A以太網(wǎng)控制器。DM9000A以太網(wǎng)控制器需要自行設(shè)計(jì)模塊與配置組件,用戶(hù)需要從菜單欄“File”→“NewComponent”然后再在相關(guān)對(duì)話框菜單中打開(kāi)對(duì)話匯入模塊文件,并完成以太網(wǎng)控制信號(hào)與Avalon總線信號(hào)對(duì)應(yīng)配置。其組件如圖14-27所示。DM9000A以太網(wǎng)控制器IP組件的程序代碼如下。圖14-27添加DM9000A控制器
moduleDM9000A_IF(//主機(jī)端
iDATA,
oDATA,
iCMD,
iRD_N,
iWR_N,
iCS_N,
iRST_N,
iCLK,
iOSC_50,
oINT,
//DM9000ASide
ENET_DATA,
ENET_CMD,
ENET_RD_N,
ENET_WR_N,
ENET_CS_N,
ENET_RST_N,
ENET_INT,
ENET_CLK);
//主機(jī)端信號(hào)
input[15:0]iDATA;
inputiCMD;
inputiRD_N;
inputiWR_N;
inputiCS_N;
inputiRST_N;
inputiCLK;
inputiOSC_50;
output[15:0]oDATA;
outputoINT;
//DM9000A設(shè)備端信號(hào)
inout[15:0]ENET_DATA;
outputENET_CMD;
outputENET_RD_N;
outputENET_WR_N;
outputENET_CS_N;
outputENET_RST_N;
outputENET_CLK;
inputENET_INT;
reg[15:0]TMP_DATA;
regENET_CMD;
regENET_RD_N;
regENET_WR_N;
regENET_CS_N;
regENET_CLK;
reg[15:0]oDATA;
regoINT;
assignENET_DATA=ENET_WR_N?16'hzzzz:TMP_DATA;
always@(posedgeiCLKornegedgeiRST_N)
begin
if(!iRST_N)
begin
TMP_DATA<=0;
ENET_CMD<=0;
ENET_RD_N<=1;
ENET_WR_N<=1;
ENET_CS_N<=1;
oDATA<=0;
oINT<=0;
end
else
begin
oDATA<=ENET_DATA;
oINT<=ENET_INT;
TMP_DATA<=iDATA;
ENET_CMD<=iCMD;
ENET_CS_N<=iCS_N;
ENET_RD_N<=iRD_N;
ENET_WR_N<=iWR_N;
end
end
always@(posedgeiOSC_50)
ENET_CLK<=~ENET_CLK;
assignENET_RST_N=iRST_N;
endmodule
DM9000A寄存器初始化與配置以及程序注釋請(qǐng)參考光盤(pán)文件。(12)LCD。選擇SOPCBuilder開(kāi)發(fā)環(huán)境左側(cè)的“Peripherals”→“Display”→“CharacterLCD”,添加LCD控制器模塊,完成設(shè)置,如圖14-28所示。圖14-28添加LCD控制器將Cfi_Flash控制器與Avalon-MM三態(tài)橋建立連接。至此,本實(shí)例中所需要的CPU及IP模塊均添加完畢,如圖14-29所示。圖14-29構(gòu)建完成的SOPC系統(tǒng)14.4.3生成NiosII系統(tǒng)在SOPCBuilder開(kāi)發(fā)環(huán)境中,分別選擇菜單欄的“System”→“Auto-AssignBaseAddress”和“System”→“Auto-AssignIRQs”,分別進(jìn)行自動(dòng)分配各組件模塊的基地址和中斷標(biāo)志位操作。雙擊“NiosIIProcessor”后在“ParameterSettings”菜單下配置“ResetVector”為“epcs_controller0”(用戶(hù)也可以設(shè)置成Cfi_flash0),設(shè)置“ExceptionVector”為“sdram0”,完成設(shè)置,如圖14-30所示。圖14-30NiosIICPU設(shè)置配置完成后,選擇“SystemGeneration”選項(xiàng)卡,單擊下方的“Generate”,啟動(dòng)系統(tǒng)生成。14.4.4創(chuàng)建頂層模塊并添加PLL模塊打開(kāi)QuartusII開(kāi)發(fā)環(huán)境,選擇主菜單“File”→“New”命令,創(chuàng)建一個(gè)BlockDiagram/SchematicFile文件作為頂層文件,并保存。本實(shí)例使用SDRAM芯片作為存儲(chǔ)介質(zhì),需要使用片內(nèi)鎖相環(huán)PLL來(lái)完成SDRAM控制器與SDRAM芯片之間的時(shí)鐘相位調(diào)整。使用PLL時(shí),可以通過(guò)兩種方式實(shí)現(xiàn)時(shí)鐘鎖相環(huán),第一種是添加ALTPLL宏模塊,這種方法是在QuartusII開(kāi)發(fā)環(huán)境中添加,另外一種是添加PLLIP核,在SOPCBuilder開(kāi)發(fā)工具中完成。1.創(chuàng)建PLL模塊PLL模塊具體創(chuàng)建的方法和步驟如下。(1)選擇QuartusII開(kāi)發(fā)環(huán)境,選擇主菜單“Tools”→“MegaWizardPlug-InManager”命令,彈出添加宏模塊對(duì)話框,選擇“Createanewcustommagafuctionvariation”選項(xiàng),單擊“Next”,進(jìn)入下一配置,如圖14-31所示。圖14-31宏模塊添加對(duì)話框(2)在宏模塊左側(cè)欄中選擇“I/O”→“ALTPLL”,完成對(duì)應(yīng)FPGA芯片型號(hào)信息、生成代碼格式、文件名及保存路徑配置后。單擊“Next”,進(jìn)入下一配置,如圖14-32所示。圖14-32ALTPLL宏模塊配置(3)在配置頁(yè)面中設(shè)置參考時(shí)鐘頻率為“50MHz”,如圖14-33所示。圖14-33參考時(shí)鐘設(shè)置然后設(shè)置相關(guān)參數(shù)如圖14-34(a)所示。QuartusII中提供的ALTPLL宏模塊最多可輸出3個(gè)鎖相環(huán)時(shí)鐘,分別為c0,c1,c2,如果用戶(hù)在自己的工程中需要用到多個(gè)PLL輸出,參考圖14-34(b)所示。設(shè)置后單擊“Finish”即可生成鎖相環(huán)模塊。圖14-34PLL參數(shù)設(shè)置(4)接下來(lái),在QuartusII工程項(xiàng)目?jī)?nèi)對(duì)PLL模塊進(jìn)行例化。加PLL模塊添加到頂層文件。2.添加集成NiosII系統(tǒng)至QuartusII工程在頂層文件中添加前述步驟創(chuàng)建的SOPC處理器模塊,再添加相應(yīng)的輸入輸出模塊引腳,各模塊的連接如圖14-35所示。圖14-35頂層文件各個(gè)模塊連接圖連線完成后,用戶(hù)選擇運(yùn)行pinset.tcl文件為FPGA分配引腳,同時(shí)也可以通過(guò)菜單選擇圖形化視窗來(lái)分配引腳。保存整個(gè)工程項(xiàng)目文件后,即可通過(guò)主菜單工具或者工具欄中的編譯按鈕執(zhí)行編譯,生成程序下載文件。至此,硬件設(shè)計(jì)部分完成。14.5軟件設(shè)計(jì)與程序代碼本節(jié)對(duì)NiosII系統(tǒng)軟件設(shè)計(jì)進(jìn)行講述,其主要設(shè)計(jì)流程如下。14.5.1創(chuàng)建NiosII啟動(dòng)NiosIIIDE開(kāi)發(fā)環(huán)境,選擇主菜單“File”→“New”→“Project”命令,創(chuàng)建NiosII工程項(xiàng)目,并進(jìn)行相關(guān)選項(xiàng)配置,如圖14-36所示。圖14-36NiosIDE工程設(shè)定14.5.2程序代碼設(shè)計(jì)與修改新NiosII工程建立后,單擊“Finish”生成工程,添加并修改代碼。本系統(tǒng)的軟件代碼與程序注釋如下。(1)主程序。主程序主要包括對(duì)DM9000A的調(diào)用、數(shù)據(jù)收發(fā)以及LCD顯示等,程序代碼如下。
#include"basic_io.h"
#include"LCD.h"
#include"DM9000A.C"
unsignedintaaa,rx_len,i,packet_num;
unsignedcharRXT[68];
voidethernet_interrupts()//DM9000A中斷設(shè)置
{
packet_num++;
aaa=ReceivePacket(RXT,&rx_len);
if(!aaa)
{
printf("\n\nReceivePacketLength=%d",rx_len);
for(i=0;i<rx_len;i++)
{
if(i%8==0)
printf("\n");
printf("0x%2X,",RXT[i]);
}
}
}
intmain(void)
{
//發(fā)送包
unsignedcharTXT[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0x60,0x6E,0x11,0x02,0x0F,
0x08,0x00,0x11,0x22,0x33,0x44,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x55,0x66,0x77,0x88,0x99,0xAA,
0x00,0x00,0x00,0x20};
LCD_Test();//LCD顯示
DM9000_init();//DM9000A控制器初始化
alt_irq_register(DM9000A_IRQ,NULL,(void*)ethernet_interrupts);
packet_num=0;
while(1)
{
TransmitPacket(TXT,0x40);//傳送網(wǎng)絡(luò)包
msleep(500);
}
return0;
}
(2)LCD顯示程序。LCD顯示程序代碼如下。
#include<unistd.h>
#include<string.h>
#include<io.h>
#include"system.h"
#include"LCD.h"
//----------------------------------------------------------
voidLCD_Init()//LCD初始化函數(shù)
{
lcd_write_cmd(LCD_16207_0_BASE,0x38);
usleep(2000);
lcd_write_cmd(LCD_16207_0_BASE,0x0C);
usleep(2000);
lcd_write_cmd(LCD_16207_0_BASE,0x01);
usleep(2000);
lcd_write_cmd(LCD_16207_0_BASE,0x06);
usleep(2000);
lcd_write_cmd(LCD_16207_0_BASE,0x80);
usleep(2000);
}
//----------------------------------------------------------
voidLCD_Show_Text(char*Text)//字符串寫(xiě)入LCD函數(shù)
{
inti;
for(i=0;i<strlen(Text);i++)
{
lcd_write_data(LCD_16207_0_BASE,Text[i]);
usleep(2000);
}
}
//----------------------------------------------------------
voidLCD_Line2()//LCD轉(zhuǎn)向第二行顯示函數(shù)
{
lcd_write_cmd(LCD_16207_0_BASE,0xC0);
usleep(2000);
}
//----------------------------------------------------------
voidLCD_Test()//LCD顯示主函數(shù)
{
charText1[16]="AlteraEP2C35Board";
charText2[16]="EthernetTesting";
//初始化LCD
LCD_Init();
//LCD第一行顯示TEXT1
LCD_Show_Text(Text1);
//轉(zhuǎn)向第二行顯示
LCD_Line2();
//LCD第二行顯示TEXT2
LCD_Show_Text(Text2);
}
在NiosIIIDE環(huán)境中完成所有程序代碼設(shè)計(jì)與編譯參數(shù)配置后,即可執(zhí)行編譯和下載。驗(yàn)證系統(tǒng)運(yùn)行效果。14.6實(shí)例總結(jié)本章為實(shí)現(xiàn)高速數(shù)據(jù)的實(shí)時(shí)遠(yuǎn)程網(wǎng)絡(luò)數(shù)據(jù)傳輸,提出了采用FPGA直接控制DM9000A進(jìn)行以太網(wǎng)數(shù)據(jù)收發(fā)的設(shè)計(jì)思路,實(shí)現(xiàn)了一種低成本、低功耗、高速率的網(wǎng)絡(luò)傳輸功能,最高傳輸速率可達(dá)100Mbps。在實(shí)際應(yīng)用中,讀者可以本實(shí)例為基礎(chǔ),進(jìn)行功能修改,以達(dá)到設(shè)計(jì)目標(biāo)。第15章USB2.0接口數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)USB是一種通用串行總線,具有熱插拔、使用方便、成本低等優(yōu)點(diǎn)。其中USB1.0能夠提供12Mbps的全速速率或1.5Mbps的低速速率,而USB2.0則可以支持高達(dá)480Mbps的高速傳輸速率。USB2.0可應(yīng)用于基于FPGA的高速數(shù)據(jù)通信和傳輸系統(tǒng)的設(shè)計(jì)。本章將基于USB2.0芯片CY7C68013,介紹一種能實(shí)現(xiàn)FPGA與計(jì)算機(jī)接口互連的高速數(shù)據(jù)通信系統(tǒng)的設(shè)計(jì)應(yīng)用。15.1USB2.0芯片CY7C68013概述CY7C68013芯片屬于Cypress半導(dǎo)體公司的EZ-USBFX2系列,是世界上第一款集成USB2.0的微處理器。它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。FX2獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到每秒56MB,即USB2.0允許的最大帶寬。在FX2中,智能串行接口引擎可以硬件處理USB1.1和USB2.0協(xié)議,從而減少了開(kāi)發(fā)時(shí)間和成本,并確保了USB的兼容性。通用可編程接口(GeneralProgrammableInterface,GPIF)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線)能夠?yàn)锳TA、UTOPIA、EPP、PCMCIA等接口以及大部分的DSP處理器提供簡(jiǎn)單有效的無(wú)縫連接。USB2.0芯片CY7C68013的主要特性如下。●單片集成USB2.0收發(fā)器、SIE和增強(qiáng)型8051微處理器?!褴浖\(yùn)行:8051程序從內(nèi)部RAM開(kāi)始運(yùn)行,可以借助下列幾種方式進(jìn)行程序裝載。—通過(guò)USB接口下載;—從EEPROM下載;—外部?jī)?chǔ)存器設(shè)備(僅對(duì)128腳封裝芯片配置)?!?個(gè)可編程的批量(BULK)/中斷(INTERRUPT)/同步(ISOCHRONOUS)端點(diǎn)。—可選雙、三和四緩沖。●8位或16位外部數(shù)據(jù)接口?!裢ㄓ每删幊探涌??!试S直接連接到并行接口(8位或16位);—通過(guò)可編程的波形描述符和配置寄存器來(lái)定義波形;—支持多個(gè)就緒(Ready)和控制(Control)輸出?!窦?051標(biāo)準(zhǔn)內(nèi)核,且具有下列增強(qiáng)特性?!哌_(dá)48MHz的時(shí)鐘速率;—每指令占4個(gè)時(shí)鐘周期;—2個(gè)UARTS;—3個(gè)定時(shí)器/計(jì)數(shù)器;—擴(kuò)展的中斷系統(tǒng);—2個(gè)數(shù)據(jù)指針。●通過(guò)枚舉支持總線供電應(yīng)用?!?.3V操作電壓?!耢`巧的智能串行接口引擎。●USB向量中斷。●控制傳輸?shù)脑O(shè)置(SETUP)和數(shù)據(jù)(DATA)部分使用獨(dú)立的數(shù)據(jù)緩沖區(qū)?!窦傻腎2C兼容控制器,運(yùn)行速率100kHz或400kHz?!?051的時(shí)鐘頻率為48MHz,24MHz,或12MHz。●4個(gè)集成的FIFO。—較低的系統(tǒng)開(kāi)銷(xiāo)組合FIFO;—自動(dòng)轉(zhuǎn)換到16位總線;—支持主或從操作;—FIFO可以使用外部提供的時(shí)鐘或異步選通;—容易與ASIC和DSP等芯片接口無(wú)縫連接?!駥?duì)FIFO和GPIF接口的自動(dòng)向量中斷?!穸噙_(dá)40個(gè)通用輸入輸出接口?!?種封裝可選——128腳TQFP,100腳TQFP,56腳QFN和56腳SSOP。USB2.0芯片CY7C68013的內(nèi)部功能結(jié)構(gòu)框圖如圖15-1所示。圖15-1CY7C68013功能框圖15.1.1I2C總線與控制器本小節(jié)主要介紹FX2I2C總線與I2C總線控制器。1.I2C總線FX2支持I2C總線,且僅作為主設(shè)備在100/400kHz下工作。SCL和SDA引腳是開(kāi)漏輸出和磁滯輸入。即使相關(guān)引腳沒(méi)有連接至I2C總線兼容設(shè)備,這些信號(hào)也必須上拉到3.3V。I2C總線用于連接EEPROM存儲(chǔ)設(shè)備,系統(tǒng)上電后,內(nèi)部邏輯會(huì)檢查I2C總線上的EEPROM中的第一個(gè)字節(jié),并做相應(yīng)確認(rèn)(具體內(nèi)容參見(jiàn)小節(jié)15.1.2介紹)。注意:I2C兼容總線的SCL和SDA引腳,即使EEPROM沒(méi)有連接也必須上拉,否則偵測(cè)模式不能正常工作。2.I2C總線控制器FX2有一個(gè)I2C總線端口,并由兩個(gè)內(nèi)部控制部件驅(qū)動(dòng),其中一個(gè)用于控制啟動(dòng)時(shí)自動(dòng)加載VID/PID/DID和配置信息,另一個(gè)在8051運(yùn)行時(shí)控制外部I2C設(shè)備。I2C總線端口只能在主模式操作。(1)I2C總線端口引腳。I2C總線引腳SCL和SDA必須有2.2kΩ的外部上拉電阻,外部EEPROM設(shè)備地址引腳必須適當(dāng)配置。相關(guān)EEPROM器件引腳與設(shè)備地址配置如表15-1所列。表15-1EEPROM器件引腳與設(shè)備地址線配置續(xù)表15-1注:[1]這種EEPROM沒(méi)有地址線。(2)I2C總線接口訪問(wèn)。8051可以使用I2CTL和I2DAT寄存器控制外設(shè)連接到I2C總線。FX2僅支持I2C總線接口主控制模式,因此它絕不能是I2C接口從設(shè)備。15.1.2USB啟動(dòng)方式和枚舉在系統(tǒng)上電序列期間,內(nèi)部邏輯驗(yàn)證I2C兼容端口連接的EEPROM的第一個(gè)字節(jié)是否0xC0或0xC2,如果找到,內(nèi)部邏輯使用存儲(chǔ)在EEPROM中的VID/PID/DID值代替內(nèi)部存儲(chǔ)的值(第一個(gè)字節(jié)為0xC0時(shí)),或者啟動(dòng)加載EEPROM的內(nèi)容到內(nèi)部RAM(第一個(gè)字節(jié)為0xC2時(shí))。如果沒(méi)有檢測(cè)到EEPROM,F(xiàn)X2使用內(nèi)部存儲(chǔ)的描述符進(jìn)行枚舉。FX2默認(rèn)的ID值是VID/PID/DID(0x04B4,0x8613,0xxxyy),如表15-2所列。表15-2FX2默認(rèn)ID值當(dāng)首次插入U(xiǎn)SB時(shí),F(xiàn)X2通過(guò)USB電纜會(huì)自動(dòng)枚舉設(shè)備且下載固件和USB描述符表;接下來(lái),F(xiàn)X2再次枚舉,這次主要通過(guò)下載的信息來(lái)定義設(shè)備。這兩個(gè)步驟叫作重枚舉,當(dāng)設(shè)備插入時(shí)它們就立即執(zhí)行。USB控制和狀態(tài)(USBCS)寄存器中的兩個(gè)控制位DISCON和RENUM控制再枚舉進(jìn)程。固件設(shè)置DISCON為“1”模擬USB斷開(kāi),清除DISCON為“0”模擬再連接。再次連接之前,固件設(shè)置或清除RENUM位用于指示固件或默認(rèn)的USB設(shè)備是否通過(guò)端點(diǎn)0處理設(shè)備請(qǐng)求。如果RENUM=0,默認(rèn)USB設(shè)備將處理設(shè)備請(qǐng)求;如果RENUM=1,固件將處理設(shè)備請(qǐng)求。15.1.3中斷系統(tǒng)FX2的中斷結(jié)構(gòu)是在一個(gè)標(biāo)準(zhǔn)8051單片機(jī)的基礎(chǔ)上增強(qiáng)和擴(kuò)展了部分中斷資源。1.INT2中斷請(qǐng)求FX2為INT2和INT4實(shí)現(xiàn)了一些自動(dòng)向量的特征,分別有27個(gè)INT2(USB)向量和14個(gè)INT4(FIFO/GPIF)向量。其中27個(gè)USB請(qǐng)求共享USB中斷,14個(gè)FIFO/GPIF源共享INT4。更詳細(xì)的信息請(qǐng)看官方規(guī)格書(shū)FX2TRM。2.USB中斷的自動(dòng)向量USB主中斷被27個(gè)中斷源共享。為了節(jié)省代碼和處理時(shí)間通常需要單獨(dú)標(biāo)識(shí)USB中斷源,F(xiàn)X2提供了一個(gè)第二級(jí)中斷向量,叫做自動(dòng)向量。當(dāng)一個(gè)USB中斷被確認(rèn)后,F(xiàn)X2將程序計(jì)數(shù)器推入堆棧,然后跳轉(zhuǎn)到地址0x0043,它期望在這里發(fā)現(xiàn)一條跳轉(zhuǎn)指令到USB中斷服務(wù)例程。FX2跳轉(zhuǎn)指令編碼如表15-3所列。表15-3INT2USB中斷續(xù)表15-3如果自動(dòng)向量被使能(INTSETUP寄存器的AV2EN=1),F(xiàn)X2替換它的INT2VEC字節(jié)。因此,如果跳轉(zhuǎn)表地址的高字節(jié)被預(yù)裝在0x0044位置,則自動(dòng)插入在0x0045的INT2VEC字節(jié)將引導(dǎo)跳轉(zhuǎn)到這一頁(yè)中的27個(gè)地址中正確的地址。3.FIFO/GPIF中斷(INT4)同27個(gè)獨(dú)立的USB中斷源共享USB主中斷一樣,14個(gè)獨(dú)立的FIFO/GPIF中斷源共享FIFO/GPIF中斷。同樣也可以使用自動(dòng)向量。表15-4列出了14個(gè)FIFO/GPIF中斷源的優(yōu)先級(jí)和INT4向量值。表15-4獨(dú)立的FIFO/GPIF中斷續(xù)表15-4如果自動(dòng)向量被使能(INTSETUP寄存器的AV4EN=1),F(xiàn)X2替換它的INT4VEC字節(jié)。因此,如果跳轉(zhuǎn)表地址的高字節(jié)被預(yù)裝在0x0054位置,則自動(dòng)插入在0x0055的INT4VEC字節(jié)將引導(dǎo)跳轉(zhuǎn)到這一頁(yè)中的14個(gè)地址中正確的地址。當(dāng)中斷服務(wù)請(qǐng)求發(fā)生時(shí),F(xiàn)X2將程序計(jì)數(shù)器推入堆棧,然后跳轉(zhuǎn)到地址0x0053,它期望在這里發(fā)現(xiàn)一條跳轉(zhuǎn)指令到中斷服務(wù)例程。15.1.4復(fù)位和喚醒RESET#引腳輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省邯鄲市八年級(jí)生物下冊(cè) 22.1生物的分類(lèi)說(shuō)課稿 (新版)北師大版
- 美術(shù)課聽(tīng)評(píng)課記錄教研組
- 三年級(jí)家長(zhǎng)會(huì)數(shù)學(xué)教師發(fā)言稿4篇
- 第 9課 正確認(rèn)識(shí)廣告:《無(wú)處不在的廣告》 (說(shuō)課稿)-部編版道德與法治四年級(jí)上冊(cè)
- 蘇科版數(shù)學(xué)九年級(jí)下冊(cè)《“兩邊成比例且?jiàn)A角相等”》聽(tīng)評(píng)課記錄
- 2025年度市政工程勞務(wù)用工綜合服務(wù)協(xié)議
- 2025年度城市綠化護(hù)欄板采購(gòu)與維護(hù)合同范本
- 2025年度體育教練員團(tuán)隊(duì)協(xié)作管理合同
- 華師大版數(shù)學(xué)七年級(jí)下冊(cè)《幾何類(lèi)應(yīng)用問(wèn)題》聽(tīng)評(píng)課記錄
- 消防設(shè)施智能化老舊小區(qū)改造新方向
- 三位數(shù)除以?xún)晌粩?shù)過(guò)關(guān)練習(xí)口算題大全附答案
- 紅樓夢(mèng)服飾文化
- 湖北省2024年村干部定向考試真題
- 2024年沙石材料運(yùn)輸合同
- 浙江省中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 老年人能力評(píng)估標(biāo)準(zhǔn)解讀-講義課件
- 醫(yī)保物價(jià)管理培訓(xùn)
- 《共情的力量》課件
- 2022年中國(guó)電信維護(hù)崗位認(rèn)證動(dòng)力專(zhuān)業(yè)考試題庫(kù)大全-上(單選、多選題)
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級(jí)第一學(xué)期)體育《小足球(18課時(shí))》大單元教學(xué)計(jì)劃
評(píng)論
0/150
提交評(píng)論