王曉鵬
摘要:傳統(tǒng)的以太網(wǎng)解決方案,一般采用CPU連接物理層接口芯片,需要編寫(xiě)以太網(wǎng)通信協(xié)議,對(duì)后續(xù)系統(tǒng)的開(kāi)發(fā)和維護(hù)均提出較高要求;本系統(tǒng)采用SPOC技術(shù),解決了上述缺點(diǎn)。方案中采用Altera 公司的Cyclone Ⅱ系列芯片EP2C20F484C6,添加Nios Ⅱ嵌入式處理器軟核作為控制CPU,利用帶有TCP/IP 協(xié)議棧W5100 來(lái)實(shí)現(xiàn)以太網(wǎng)接口;采用SPI串行總線接口方式,接口程序相對(duì)簡(jiǎn)單。
關(guān)鍵詞:FPGA SOPC NiosⅡ W5100
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2015)12-0000-00
1 概述
SOPC是一種特殊的嵌入式系統(tǒng),具有靈活設(shè)計(jì)、可裁剪、可升級(jí),具備軟硬件在系統(tǒng)上可編程的能力,Nios II 是一個(gè)用戶可配置的通用的32位RISC嵌入式處理器,該處理器以軟核的形式實(shí)現(xiàn),Nios II 的開(kāi)發(fā)包括硬件開(kāi)發(fā)和軟件開(kāi)發(fā)兩部分[1]。
2 基本結(jié)構(gòu)
以太網(wǎng)是當(dāng)今現(xiàn)有的局域網(wǎng)中所采用的最通用的通信協(xié)議標(biāo)準(zhǔn),由于采用了很多新技術(shù)和獨(dú)特的設(shè)計(jì),與一般的通信總線相比,具有突出的速度性、擴(kuò)展性和靈活性。由于采用FPGA集成Nios II片上系統(tǒng)控制W5100驅(qū)動(dòng)芯片,可以完全淘汰單片機(jī),節(jié)省印制板空間, 其主要結(jié)構(gòu)如下圖1所示[2]:
圖1 W5100芯片內(nèi)部結(jié)構(gòu)圖
W5100集TCP /IP 協(xié)議棧、以太網(wǎng)MAC 和PHY 為一體,支持ICP、UDP、IPV4、ICMP、ARP、IGMP 和PPPOE 等網(wǎng)絡(luò)協(xié)議[2];內(nèi)置16 KByte 發(fā)送/接收數(shù)據(jù)緩沖區(qū),可快速進(jìn)行數(shù)據(jù)交換;W5100還支持自動(dòng)識(shí)別數(shù)據(jù)通信,采用全雙工或半雙工的傳輸模式,并兼容100 M 以太網(wǎng)絡(luò)。
3 硬件設(shè)計(jì)
本設(shè)計(jì)方案由于數(shù)據(jù)量不大,速度較小,未達(dá)到設(shè)定標(biāo)準(zhǔn)值,所以采用SPI接口。而SPI的通信原理非常簡(jiǎn)單,SPI主要采用主從方式工作,該種通信模式通常有一個(gè)主設(shè)備和多個(gè)從設(shè)備,一共需要4根線,實(shí)際上3根就可以,3根通信線主要用于單向傳輸時(shí)鐘,也就是半雙工方式,而且所有SPI設(shè)備是共有的,它們分別是主入從出MISO、主出從入MOSI、時(shí)鐘SK、片選CS[3]:
MISO------主設(shè)備通信數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;
MOSI------主設(shè)備通信數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;
SCK-------時(shí)鐘采集信號(hào),由主設(shè)備產(chǎn)生;
CS--------從設(shè)備產(chǎn)生使能信號(hào),由主設(shè)備控制;
其中片選CS控制W5100芯片能否被選中,預(yù)先規(guī)定的使能信號(hào)為片選信號(hào)時(shí)對(duì)該芯片的操作才會(huì)有效,這樣我們可以在同一個(gè)總線上連接多個(gè)SPI設(shè)備。串行接口模式需要4個(gè)引腳來(lái)進(jìn)行數(shù)據(jù)間的通信,分別是:SCLK、/SS、MOSI。W5100的SPI_EN引腳選擇SPI操作。
4 軟件設(shè)計(jì)
本設(shè)計(jì)方案采用Quartus II軟件來(lái)完成Nios II 的系統(tǒng)綜合、硬件優(yōu)化與適配、編程下載和硬件系統(tǒng)測(cè)試。應(yīng)用SOPC Builder軟件來(lái)實(shí)現(xiàn)Nios II 系統(tǒng)的配置、生成;而Nios II IDE則用于軟件開(kāi)發(fā)、調(diào)試及運(yùn)行。本設(shè)計(jì)采用SOPC創(chuàng)建了一個(gè)32位Nios II軟核,添加了三個(gè)模塊分別是CPU模塊、EPCS模塊、SPI以太網(wǎng)驅(qū)動(dòng)模塊。
創(chuàng)建SPI模塊過(guò)程為:點(diǎn)擊進(jìn)入SOPC BUILDER軟件,如圖2所示,點(diǎn)擊左圖中紅圈處(SPI),點(diǎn)擊后設(shè)置主從模式,我們選擇主模控制方式(Master),從設(shè)備個(gè)數(shù)選擇1, SPI時(shí)鐘速率選擇10M,數(shù)據(jù)的位數(shù)選擇8;接著設(shè)置移位的方向,也就是說(shuō)串行數(shù)據(jù)過(guò)來(lái)時(shí)是最高位先來(lái)還是最低位先來(lái),我們選擇MSB first,這樣SPI核就設(shè)置好了[4]。
圖2
Nios II IDE則用于軟件開(kāi)發(fā)、調(diào)試及運(yùn)行。編寫(xiě)W5100驅(qū)動(dòng)程序并進(jìn)行初始化后,W5100就能正常工作了。W5100初始化過(guò)程包括基本設(shè)置和網(wǎng)絡(luò)信息校正,基本設(shè)置主要是對(duì)模式寄存器、中斷屏蔽寄存器、重發(fā)時(shí)間寄存器、重發(fā)計(jì)數(shù)寄存器四個(gè)寄存器進(jìn)行設(shè)置。網(wǎng)絡(luò)信息校正主要是對(duì)網(wǎng)關(guān)地址寄存器、 本機(jī)物理地址寄存器、子網(wǎng)掩碼寄存器和本機(jī)IP地址寄存器四個(gè)寄存器進(jìn)行地址校正。
5結(jié)語(yǔ)
本設(shè)計(jì)方案已在實(shí)驗(yàn)室實(shí)現(xiàn)了硬件電路的搭建,并且已經(jīng)調(diào)試通過(guò);由于W5100芯片內(nèi)部自帶協(xié)議,使得驅(qū)動(dòng)程序非常容易實(shí)現(xiàn),用網(wǎng)口調(diào)試助手調(diào)試后,可以看到收發(fā)數(shù)據(jù)是一致的,F(xiàn)PGA SOPC硬件電路升級(jí)簡(jiǎn)單又可剪裁,進(jìn)一步驗(yàn)證了本設(shè)計(jì)方案的有效性和可行性。
參考文獻(xiàn)
[1]儲(chǔ)娜姆.基于SOPC嵌入式TCP/IP網(wǎng)絡(luò)關(guān)鍵技術(shù)研究[J],2006.
[2]W5100數(shù)據(jù)手冊(cè)[M].Version.1.1.6.2009-03.
[3]翁木云.FPGA設(shè)計(jì)及應(yīng)用[M].西安電子科技大學(xué)出版社,2002.
[4]張旭東.基于.PCI.接口的多通道高速數(shù)據(jù)采集系統(tǒng)[J],2000.
數(shù)字技術(shù)與應(yīng)用2015年12期