黃浦網(wǎng)絡(luò)接口公司
發(fā)布時(shí)間:2023-05-28 01:32:03黃浦網(wǎng)絡(luò)接口公司
摘要:介紹了一種基于AX88796B的網(wǎng)絡(luò)接口設(shè)計(jì)。詳細(xì)介紹了該網(wǎng)絡(luò)芯片的硬件結(jié)構(gòu)和功能特性。創(chuàng)新完成了AX88796B與DSP處理器TMS320C 6722連接的硬件設(shè)計(jì)和軟件驅(qū)動(dòng)設(shè)計(jì)。涉及的關(guān)鍵技術(shù)主要有AX88796B的本地總線(xiàn)連接、物理層網(wǎng)絡(luò)驅(qū)動(dòng)的設(shè)計(jì)、網(wǎng)絡(luò)報(bào)文的發(fā)送、網(wǎng)絡(luò)報(bào)文的接收,以及協(xié)議層軟件的開(kāi)發(fā)。系統(tǒng)完成后與其他網(wǎng)絡(luò)設(shè)備連接,經(jīng)測(cè)試,網(wǎng)絡(luò)通信穩(wěn)定可靠,在100 Mb/s的速度,負(fù)荷超過(guò)90%的情況下,沒(méi)有丟包和錯(cuò)包出現(xiàn),可以滿(mǎn)足大數(shù)據(jù)量、高速通信的要求。1前言美國(guó)TI公司的TMS320C6722是一款主要面向嵌入式應(yīng)用的高性能32位DSP,它數(shù)據(jù)運(yùn)算處理能力可達(dá)2 000 MIPS和1 500 FLOPS,具有豐富的片上資源,目前已經(jīng)被廣泛應(yīng)用在各種數(shù)字應(yīng)用中。AX88796B是由臺(tái)灣ASIX公司推出的一款與NE2000兼容的快速以太網(wǎng)控制器,其內(nèi)部集成10/100M自適應(yīng)的介質(zhì)訪(fǎng)問(wèn)層MAC和物理層收發(fā)器PHY以及8K×16b的SRAM,SK支持8位、16位的通用CPU總線(xiàn)類(lèi)型,執(zhí)行基于IEEE802.3/IE-EE80.3u局域網(wǎng)標(biāo)準(zhǔn)的以太網(wǎng)控制功能,并且提供發(fā)送隊(duì)列功能來(lái)增強(qiáng)標(biāo)準(zhǔn)NE2000的發(fā)送性能。該控制器采用64LQFP封裝,僅占用9 mm×9mm的印制板面積,分析其性能可以滿(mǎn)足系統(tǒng)需要。2 系統(tǒng)硬件設(shè)計(jì)(1)AX88796B的硬件結(jié)構(gòu)。AX88796B芯片內(nèi)部集成了8/16位CPU接口、串行E2PROM接口、8 K×16 b的SRAM、包緩存管理、MAC、PHY、以及電源和時(shí)鐘等部件。DSP通過(guò)讀寫(xiě)NE2000寄存器來(lái)控制AX88796B的工作狀態(tài),通過(guò)DMA方式與AX88796B的內(nèi)部緩存SRAM進(jìn)行數(shù)據(jù)交換。芯片自動(dòng)在SRAM與MAC核之間進(jìn)行數(shù)據(jù)發(fā)送接收,再經(jīng)由內(nèi)部的PHY層發(fā)送至RJ45接口。串行 E2PROM接口可以用來(lái)連接串行EEPROM,用于存儲(chǔ)MAC地址,供AX88796B每次初始化時(shí)讀取。AX88796B芯片的內(nèi)部結(jié)構(gòu)如圖1所示。(2)系統(tǒng)硬件連接。主控制單元TMS320C6722B與網(wǎng)絡(luò)芯片AX88796B的連接方式如圖2所示。TMS320C6722B內(nèi)部為32 b的總線(xiàn)結(jié)構(gòu),對(duì)外擴(kuò)展EMIF為16 b的寬度,采用異步總線(xiàn)方式可以直接與網(wǎng)絡(luò)芯片無(wú)縫連接。片選的連接,用EM_CS2連接到網(wǎng)絡(luò)的CS,使AX88796B工作在186_l-ike模式,在配置引腳EECK接上拉電阻。本設(shè)計(jì)沒(méi)有連接EEPROM,所有對(duì)AX88796B的配置均由TMS320C6722B在初始化時(shí)寫(xiě)入。3 系統(tǒng)的軟件設(shè)計(jì)AX88796B的網(wǎng)絡(luò)驅(qū)動(dòng)程序是TMS320C6722和AX88796B硬件的接口,因此編寫(xiě)網(wǎng)絡(luò)驅(qū)動(dòng)程序模塊應(yīng)滿(mǎn)足的主要功能有:AX88796B的初始化、報(bào)文的接收、報(bào)文的發(fā)送;(1)初始化。在AX88796B的初始化過(guò)程中除了完成對(duì)相關(guān)寄存器的定義與賦值外,還要完成對(duì)接收緩沖環(huán)的構(gòu)造。對(duì)TMS320C6722B,要完成對(duì)應(yīng)EMIF的設(shè)置和中斷的初始化。與網(wǎng)卡有關(guān)的初始化如下:(2)報(bào)文的接收。判斷AX88796B是否接收到新的數(shù)據(jù)包有2種方式:輪循和中斷。單片機(jī)用輪循方式較多。由于TMS320C6722在此還要進(jìn)行其他處理,為了提高DSP性能和實(shí)時(shí)性要求,這里采用中斷方式。當(dāng)網(wǎng)卡接收到新數(shù)據(jù)包時(shí)進(jìn)入中斷,首先判斷cpr是否等于bnry,若相等,則表示接收緩沖區(qū)已被存滿(mǎn),則停止接收數(shù)據(jù)包,而不會(huì)覆蓋舊的數(shù)據(jù);若不等,則將接收緩沖區(qū)中待讀取的數(shù)據(jù)包的起始地址寫(xiě)入rsar[0,1]寄存器,數(shù)據(jù)包的開(kāi)始4字節(jié)寫(xiě)入rbcr[O,1]寄存器,并啟動(dòng)遠(yuǎn)端DMA讀命令,通過(guò)讀取4個(gè)信息字節(jié)得到待讀取數(shù)據(jù)包的長(zhǎng)度、接收狀態(tài)和下一個(gè)將被讀的頁(yè)的指針信息。然后通過(guò)遠(yuǎn)端DMA讀命令,將數(shù)據(jù)包從網(wǎng)卡sram中讀入TMS320C6722內(nèi)存中,并更新讀頁(yè)指針寄存器bnr-y,DSP每從網(wǎng)卡內(nèi)存中讀走一頁(yè)數(shù)據(jù),bnry便加一,這需要通過(guò)程序?qū)崿F(xiàn)。網(wǎng)卡通過(guò)cpr將接收到的數(shù)據(jù)包寫(xiě)入接收緩沖區(qū),每寫(xiě)完一頁(yè),cpr將自動(dòng)加一,當(dāng)加到最后的空頁(yè)(這里是 pstop=0x80)時(shí),cpr將自動(dòng)恢復(fù)為接收緩沖區(qū)的首頁(yè)(pstart=Ox4c)。網(wǎng)卡接收關(guān)鍵性代碼如下:(3)報(bào)文的發(fā)送。報(bào)文的發(fā)送過(guò)程就是調(diào)用寫(xiě)網(wǎng)卡函數(shù),將報(bào)文發(fā)送到網(wǎng)卡的內(nèi)存中去。然后將AX88796B的控制寄存器(CR)的發(fā)送位 TXP(transmit packet)位置1,即將報(bào)文發(fā)送。dsp通過(guò)遠(yuǎn)端dma通道將網(wǎng)卡發(fā)送緩沖區(qū)的起始地址和要發(fā)送的字節(jié)數(shù)分別寫(xiě)入rsar[O,1]和 rbcr[0,1],然后啟動(dòng)遠(yuǎn)端dma寫(xiě)命令即可將數(shù)據(jù)包寫(xiě)入網(wǎng)卡內(nèi)存,此后將字節(jié)數(shù)寫(xiě)入tber[O,1]寄存器,啟動(dòng)發(fā)送命令就可將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)上。網(wǎng)卡發(fā)送的關(guān)鍵代碼如下:4 結(jié)語(yǔ):在如上所述的底層硬件和軟件設(shè)計(jì)基礎(chǔ)上,完成了UDP和TCP/IP協(xié)議棧的軟件,系統(tǒng)主要使用這2個(gè)協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。長(zhǎng)期的系統(tǒng)在線(xiàn)驗(yàn)證證明,在TMS320C6722上擴(kuò)展的網(wǎng)絡(luò)接口AX88796B,傳輸可靠,性能穩(wěn)定,在100 Mb/s的速度,負(fù)荷超過(guò)90%的情況下,沒(méi)有丟包和錯(cuò)包出現(xiàn)。可見(jiàn),對(duì)這種只有異步總線(xiàn),又需要網(wǎng)絡(luò)大數(shù)據(jù)量傳輸?shù)膽?yīng)用,該設(shè)計(jì)是可行的。
黃浦網(wǎng)絡(luò)接口公司
使用以網(wǎng)際協(xié)議(Internet Protocol)為通訊基礎(chǔ)的插座稱(chēng)為網(wǎng)絡(luò)插座(Internet socket)。其作用是實(shí)現(xiàn)導(dǎo)線(xiàn)的電氣連續(xù)性。常用的RJ45非屏蔽模塊高2cm、寬2cm、厚3cm,塑體抗高壓、阻燃,可卡接到任何M系列模式化面板、支架或表面安裝盒中,并可在標(biāo)準(zhǔn)面板上以90°(垂直)或45°斜角安裝,特殊的工藝設(shè)計(jì)至少提供750次重復(fù)插拔。模塊使用了T568-A和T568-B布線(xiàn)通用標(biāo)簽。這種模塊是綜合布線(xiàn)系統(tǒng)中應(yīng)用最多的一種模塊,無(wú)論從三類(lèi)、五類(lèi)、還是超五類(lèi)和六類(lèi),它的外形都保持了相當(dāng)?shù)囊恢?。按屏蔽性能分為非屏蔽模塊和屏蔽模塊。當(dāng)安裝屏蔽電纜系統(tǒng)時(shí),整個(gè)鏈路都必須屏蔽,包括電纜和連接件,都需要用屏蔽的信息模塊。根據(jù)模塊端接時(shí)是否需要打線(xiàn)來(lái)分,信息模塊有打線(xiàn)式與免打線(xiàn)式信息模塊。打線(xiàn)式信息模塊需用專(zhuān)用的打線(xiàn)工具將雙絞線(xiàn)導(dǎo)線(xiàn)壓入信息模塊的接線(xiàn)槽內(nèi)。免打線(xiàn)工具設(shè)計(jì)也是模塊的人性化設(shè)計(jì)的一個(gè)體現(xiàn),這種模塊端接時(shí)無(wú)需用專(zhuān)用刀具。
黃浦網(wǎng)絡(luò)接口公司
1)第一類(lèi):主要用于語(yǔ)音傳輸(第一類(lèi)標(biāo)準(zhǔn)主要用于80年代早期的電話(huà)電纜),與數(shù)據(jù)傳輸不同。2)第2類(lèi):1MHZ傳輸頻率,用于語(yǔ)音傳輸和數(shù)據(jù)傳輸,最大傳輸速率為4Mbps,在使用4MBPS規(guī)范令牌傳輸協(xié)議的舊令牌網(wǎng)絡(luò)中是常見(jiàn)的。3)第3類(lèi):指目前在ANSI和EIA/TIA568標(biāo)準(zhǔn)中規(guī)定的電纜。電纜的傳輸頻率為16MHz。它以10MbPs的最大傳輸速率用于語(yǔ)音傳輸和數(shù)據(jù)傳輸。主要用于10BASE-T。4)4種線(xiàn)路:用于語(yǔ)音傳輸?shù)?0MHz傳輸頻率和16Mbps數(shù)據(jù)傳輸?shù)淖畲髠鬏斔俾剩饕糜诨诹钆频腖AN和10BASE-T/100BASE-T。5)五種導(dǎo)線(xiàn):這些電纜增加了繞組的密度,并涂有傳輸速率為100MHz的高質(zhì)量絕緣材料。它們用于語(yǔ)音傳輸和數(shù)據(jù)傳輸,最大傳輸速率為1000Mbps,主要用于100BASE-T和10BASE-T網(wǎng)絡(luò)。這是最常用的以太電纜6)超五線(xiàn):超五線(xiàn)具有低衰減、少串?dāng)_、高衰減串?dāng)_比(ACR)和信噪比(SNR)、小延遲誤差,以及大大改善的性能。超過(guò)5線(xiàn)主要用于千兆以太網(wǎng)(1000 MbPS)。7)六種電纜:這種電纜的傳輸頻率是1MHz至250MHz,六種電纜系統(tǒng)在200MHz綜合衰減串?dāng)_比(PS-ACR)下應(yīng)該有更大的余量,它提供的帶寬是五種電纜的兩倍。6種電纜的傳輸性能遠(yuǎn)高于5種標(biāo)準(zhǔn),最適合傳輸速率高于1Gbps的應(yīng)用。6類(lèi)與5類(lèi)之間的一個(gè)重要區(qū)別在于改善了串?dāng)_和回波損耗的性能,這對(duì)于新一代全雙工高速網(wǎng)絡(luò)應(yīng)用非常重要。在六個(gè)標(biāo)準(zhǔn)中,取消了基本鏈路模型,路由標(biāo)準(zhǔn)采用星型拓?fù)浣Y(jié)構(gòu)。所需的路由距離為:永久鏈路長(zhǎng)度不能超過(guò)90m,信道長(zhǎng)度不能超過(guò)100m。如今,我們通常使用超過(guò)五種電纜,這不是普通的,而是只有傳輸距離和速度。
黃浦網(wǎng)絡(luò)接口公司
一些朋友會(huì)問(wèn),關(guān)于六類(lèi)網(wǎng)線(xiàn)可以運(yùn)行1000M,想購(gòu)買(mǎi)1000M交換機(jī)作為主網(wǎng),在一棟樓里,不超過(guò)100M,用六類(lèi)網(wǎng)線(xiàn)設(shè)計(jì)的通用數(shù)據(jù)是500M的意思,還沒(méi)有明白它的意思嗎?上面提到的1000米和500米指的是帶寬,M是兆位,而不是米。6條線(xiàn)是千兆位網(wǎng)絡(luò)的配置。6類(lèi)網(wǎng)線(xiàn)、6類(lèi)網(wǎng)線(xiàn)能跑1000米嗎?1000M網(wǎng)絡(luò),要求物理頻率100MHz超五類(lèi)0.5線(xiàn)徑 OFC無(wú)氧銅線(xiàn),最大頻率155MHz六類(lèi)0.57線(xiàn)徑 OFC無(wú)氧銅線(xiàn),最大頻率250MHz看起來(lái)超五類(lèi)和六類(lèi)跑千兆似乎沒(méi)什么區(qū)別。所以說(shuō)六類(lèi)網(wǎng)線(xiàn)跑千兆是可以的。1000M交換機(jī)全稱(chēng)為1000Mbps網(wǎng)絡(luò),指的是傳輸速率,并非指帶寬,帶寬單位為MHz.CAT6的標(biāo)準(zhǔn)帶寬為250MHz,四對(duì)雙向傳輸輕松達(dá)到1000Mbps.此類(lèi)是為千兆網(wǎng)量身定作的。使用CAT5E也是沒(méi)有錯(cuò)的。但是,一定要選擇像Enri-Link Enrique Intelligence這樣的大品牌,以確保它真正滿(mǎn)足千兆網(wǎng)絡(luò)的要求,因?yàn)樵贑AT 5E方面,這需要高水平的制造要求。
黃浦網(wǎng)絡(luò)接口公司
昨天我介紹了路由器、交換機(jī)、貓。今天我要和大家談?wù)勅绾沃谱鱎J45電腦水晶頭和每只腳的功能。我們通常有8行,白色橙色,橙色,白色,綠色,藍(lán)色,白色,藍(lán)色,綠色,白色棕色和棕色。網(wǎng)線(xiàn)水晶頭接法有兩種;568A;白綠-綠-白橙-藍(lán)-白藍(lán)-橙-白棕-棕。568B;白橙-橙-白綠-藍(lán)-白藍(lán)-綠-白棕-棕。網(wǎng)絡(luò)的兩端以不同的方式連接。兩端使用相同的連接。568A或568B可以稱(chēng)為直線(xiàn)連接。它通常用于將計(jì)算機(jī)連接到路由器、交換機(jī)、集線(xiàn)器等。在網(wǎng)絡(luò)的兩端使用不同的連接。在一端使用568A,另一端使用568B。這就是所謂的交叉連接方法。用于開(kāi)關(guān)、計(jì)算機(jī)、計(jì)算機(jī)直接連接等。下面我來(lái)說(shuō)說(shuō)水晶頭各腳的作用;1 傳輸數(shù)據(jù)正極TX+2 傳輸數(shù)據(jù)負(fù)極TX-3 接受數(shù)據(jù)正極RX+4 當(dāng)1236出現(xiàn)故障自動(dòng)進(jìn)入使用狀態(tài)5 當(dāng)1236出現(xiàn)故障自動(dòng)進(jìn)入使用狀態(tài)6 接受數(shù)據(jù)負(fù)極RX-7 當(dāng)1236出現(xiàn)故障自動(dòng)進(jìn)入使用狀態(tài)8 當(dāng)1236出現(xiàn)故障自動(dòng)進(jìn)入使用狀態(tài)從上面可以看出真正用到數(shù)據(jù)傳輸?shù)闹挥? 2 3 6,其中4 5 7 8基本上處于待機(jī)狀態(tài),這也是前段時(shí)間有人問(wèn)我的水晶頭不是8行,為什么有的只用4行?實(shí)際上,真正的數(shù)據(jù)傳輸只有12336,四線(xiàn)連接只要連接到1236就等于連到網(wǎng)絡(luò)沒(méi)有錯(cuò)誤!下面介紹一下網(wǎng)線(xiàn)水晶頭的接法:準(zhǔn)備材料;水晶頭 網(wǎng)線(xiàn)卡口鉗 網(wǎng)線(xiàn)測(cè)試儀(沒(méi)有也無(wú)所謂)沒(méi)辦法沒(méi)銀子我自己就用的這種下面是8根線(xiàn)路由器連接電腦接法這是常見(jiàn)的路由器與計(jì)算機(jī)的連接;以水晶頭金手指為前端,卡口為后端,連接按568B;白色橙-橙-白-綠-藍(lán)-白-藍(lán)-白-綠-白-棕-棕,有條件的連接可以用導(dǎo)線(xiàn)測(cè)試儀測(cè)試,只要1至8即可。明明證明連接正確,如果是四根電線(xiàn)只要1236個(gè)燈也正確無(wú)誤。連接到電腦路由器,可以上網(wǎng)!下面是四根線(xiàn),路由器連接電腦線(xiàn)連接方法,記住順序1236別插錯(cuò)了!以上就是電腦水晶頭的介紹,大家知道他的功能了嗎?
黃浦網(wǎng)絡(luò)接口公司
摘要:設(shè)計(jì)了以ENC28J60 為核心的以太網(wǎng)接口實(shí)現(xiàn)方案,描述了該系統(tǒng)硬件架構(gòu)的設(shè)計(jì)方法。在簡(jiǎn)要介紹了以太網(wǎng)控制器ENC28J60 的結(jié)構(gòu)、功能、外圍電路的基礎(chǔ)上, 對(duì)ENC28J60 與Atmega16 的SPI 通訊進(jìn)行了闡述。此方案不僅成本低, 而且可以實(shí)現(xiàn)500Kbps 以上的傳輸速率,滿(mǎn)足了嵌入式系統(tǒng)的Internet 控制要求。1 引言隨著Internet 的出現(xiàn)和以太網(wǎng)的迅速發(fā)展, 基于以太網(wǎng)的設(shè)備控制越來(lái)越多。目前市場(chǎng)上大部分以太網(wǎng)控制器采用的封裝均超過(guò)80 引腳, 如RTL8019AS、DM9008、CS8900A 等。這些器件不僅結(jié)構(gòu)復(fù)雜, 面積龐大, 且系統(tǒng)開(kāi)銷(xiāo)較大。近來(lái), Microchip推出全球首枚28 引腳獨(dú)立以太網(wǎng)控制器ENC28J60, 可為嵌入式系統(tǒng)提供低引腳數(shù)、低成本、精簡(jiǎn)的遠(yuǎn)程通訊解決方案。2 ENC28J60 網(wǎng)絡(luò)接口體系結(jié)構(gòu)ENC28J60 是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(Serial PeripheralInterface, SPI)的獨(dú)立以太網(wǎng)控制器。它符合IEEE 802.3 的全部規(guī)范, 采用了一系列包過(guò)濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。它還提供了一個(gè)內(nèi)部DMA 模塊, 以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP 校驗(yàn)和計(jì)算。與主控制器的通信通過(guò)兩個(gè)中斷引腳(INT和WOL)和SPI 腳(SO、SI、SCK、CS)實(shí)現(xiàn), 數(shù)據(jù)傳輸速率高達(dá)10Mb/s.兩個(gè)專(zhuān)用的引腳(LEDA、LEDB)用于連接LED, 進(jìn)行網(wǎng)絡(luò)活動(dòng)狀態(tài)指示。圖1 所示為ENC28J60 的典型應(yīng)用電路。ENC28J60 由7 個(gè)主要功能模塊組成:SPI 接口, 充當(dāng)主控制器和ENC28J60 之間通信通道; 控制寄存器, 用于控制和監(jiān)視ENC28J60; 雙端口RAM緩沖器, 用于接收和發(fā)送數(shù)據(jù)包; 判優(yōu)器,當(dāng)DMA、發(fā)送和接收模塊發(fā)出請(qǐng)求時(shí)對(duì)RAM緩沖器的訪(fǎng)問(wèn)進(jìn)行控制; 總線(xiàn)接口, 對(duì)通過(guò)SPI 接收的數(shù)據(jù)和命令進(jìn)行解析;MAC 模塊:實(shí)現(xiàn)符合IEEE 802.3 標(biāo)準(zhǔn)的MAC 邏輯; PHY 模塊, 對(duì)雙絞線(xiàn)上的模擬數(shù)據(jù)進(jìn)行編碼和譯碼。ENC28J60 還包括其他支持模塊, 諸如振蕩器、片內(nèi)穩(wěn)壓器、電平變換器(提供可以接受5V 電壓的I/O 引腳)和系統(tǒng)控制邏輯。根據(jù)以上說(shuō)明, ENC28J60 應(yīng)用于嵌入式網(wǎng)絡(luò)接口是非常合適的, 有廣闊的應(yīng)用發(fā)展前景。3 ENC28J60 在嵌入式網(wǎng)絡(luò)接口的應(yīng)用3.1 硬件電路設(shè)計(jì)利用ENC28J60 可以構(gòu)成不同功能的網(wǎng)絡(luò)終端節(jié)點(diǎn), 如網(wǎng)絡(luò)服務(wù)器、帶Internet 功能的設(shè)備、遠(yuǎn)程監(jiān)控(數(shù)據(jù)采集, 診斷)設(shè)備等。圖2 所示為基于ENC28J60 的嵌入式網(wǎng)絡(luò)接口的硬件電路原理圖。電路中有:2 個(gè)LED 狀態(tài)指示燈主要用來(lái)顯示網(wǎng)絡(luò)連接狀態(tài), 包括PHY 是否沖突、連接是否建立、是否接收數(shù)據(jù)、連接速度、雙工模式等; 必需的偏置電阻R3(2kΩ, 精度為1%);高速局域網(wǎng)電磁隔離模塊(即RJ45 以太網(wǎng)接口), 應(yīng)用中,ENC28J60 的物理端口與隔離變壓器HR901170A 連接時(shí)必須符合IEEE802.3 對(duì)物理層規(guī)范的要求, 如RJ45 的插孔與隔離變壓器的間隔應(yīng)盡量小, 輸出和輸入差分信號(hào)對(duì)的走線(xiàn)要有很好的隔離。電路中的主控制器采用Atmel 公司的ATmega16 單片機(jī),它具有先進(jìn)的RISC(精簡(jiǎn)指令集計(jì)算機(jī))結(jié)構(gòu)、16 kB 可編程Flash 存儲(chǔ)器、512 B 的EEPROM和1 kB 片內(nèi)SRAM, 具有豐富的外設(shè)接口, 其SPI 接口允許ATmega16 與外設(shè)進(jìn)行高速的同步數(shù)據(jù)傳輸。本設(shè)計(jì)中ATmega16 SPI 配置為主機(jī)模式,ENC28J60 為從設(shè)備。ATmega16 的SPI 工作模式由CPOL、CPHA 設(shè)置, 根據(jù)ENC28J60 的SPI 讀寫(xiě)時(shí)序, ATmega16 的SPI工作模式應(yīng)設(shè)置為模式0.ATmega16 通過(guò)將ENC28J60 的CS引腳置低實(shí)現(xiàn)與其的同步。SPI 時(shí)鐘由寫(xiě)入到SPI 發(fā)送緩沖寄存器的數(shù)據(jù)啟動(dòng), SPI MOSI(PB5)引腳上的數(shù)據(jù)發(fā)送秩序由寄存器SPCR 的DORD 位控制, 置位時(shí)數(shù)據(jù)的LSB(最低位)首先發(fā)送, 否則數(shù)據(jù)的MSB(最高位)首先發(fā)送。我們選擇先發(fā)送MSB,同時(shí)接收到的數(shù)據(jù)傳送到接收緩沖寄存器, CPU 進(jìn)行右對(duì)齊從接收緩沖器中讀取接收到的數(shù)據(jù)。應(yīng)該注意, 當(dāng)需要從ENC28J60 中讀取多個(gè)數(shù)據(jù)時(shí), 即使ENC28J60 并不需要ATmega16 串行輸出的數(shù)據(jù), 每讀取一個(gè)數(shù)據(jù)前都要向SPI 發(fā)送緩沖器寫(xiě)一個(gè)數(shù)據(jù)以啟動(dòng)SPI 接口時(shí)鐘。由于SPI 系統(tǒng)的發(fā)送方向只有1 個(gè)緩沖器, 而在接收方向有2 個(gè)緩沖器, 所以在發(fā)送時(shí)一定要等到移位過(guò)程全部結(jié)束后, 才能對(duì)SPI 數(shù)據(jù)寄存器執(zhí)行寫(xiě)操作; 而在接收數(shù)據(jù)時(shí), 需要在下一個(gè)字節(jié)移位過(guò)程結(jié)束之前通過(guò)訪(fǎng)問(wèn)SPI 數(shù)據(jù)寄存器讀取當(dāng)前接收到的數(shù)據(jù), 否則第1 個(gè)數(shù)據(jù)丟失。