新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在嵌入FPGA的IP核8051上實現(xiàn)TCP/IP的設(shè)計

在嵌入FPGA的IP核8051上實現(xiàn)TCP/IP的設(shè)計

——
作者:羅侄敬 時間:2007-06-19 來源:電子元器件應(yīng)用 收藏
引言

隨著芯片規(guī)模的越來越大、資源的越來越豐富, 芯片的設(shè)計復(fù)雜度也大大增加。事實上, 在芯片設(shè)計完成后, 有時還需要根據(jù)情況改變一些控制, 這在使用過程中會經(jīng)常遇到。這時候如果再對芯片設(shè)計進(jìn)行改變將是很不可取的, 因為需要設(shè)計人員參與這種改變, 這無論是對設(shè)計者還是用戶都是不能接受的。于是就有必要讓這種可以改變的簡單控制在芯片設(shè)計時就存在, 而且同時還應(yīng)該使這種改變相對容易, 比較通用, 并且與芯片的其它設(shè)計部分盡量不相關(guān)。為了滿足上述的要求, 在FPGA中嵌入一個IP核是比較理想的選擇, 而這個即通用又控制簡單的IP核最好選擇8051微處理器。

在FPGA中植入8051后, 還可在上面實現(xiàn)簡單的TCP/IP協(xié)議, 以支持遠(yuǎn)程訪問或進(jìn)行遠(yuǎn)程調(diào)試, 這只是在嵌入FPGA的8051上的一個應(yīng)用。為了保證用戶能夠?qū)?051實現(xiàn)不同的控制操作,設(shè)計時也可以采用一個外部flash對8051進(jìn)行加載, 這樣, 用戶只需要將編譯好的匯編語言代碼加到flash就可以控制8051的工作, 而此時用戶完全不需要對FPGA進(jìn)行操作就能實現(xiàn)簡單的控制,而這需要的僅僅只是keil的編譯環(huán)

境。

1 IP核8051的FPGA實現(xiàn)

現(xiàn)在有許多免費(fèi)的8051核可以利用, 這些核都可通過硬件描述語言來實現(xiàn), 并且基本上都可綜合, 也就是直接拿來就能用, 需要的只是根據(jù)自身的具體需求做一些簡單修改即可。總的說來, IP核8051的移植是比較簡單的。

本系統(tǒng)的設(shè)計與實現(xiàn)可以采用oregano system的mc8051內(nèi)核, 并且加入定時計數(shù)的和串口模塊, 8051單片機(jī)的設(shè)計結(jié)構(gòu)框圖如圖1所示。

8051單片機(jī)的設(shè)計結(jié)構(gòu)框圖

在8051核的FPGA設(shè)計中, 完全可以實現(xiàn)包括計時/計數(shù)、中斷、串口、數(shù)據(jù)及程序存儲器、特殊寄存器、布爾處理的位處理機(jī)等的所有功能, 而且兼容所有指令, 只是在具體的移植過程中做一些改變而已。

這種方法對程序存儲器不再做內(nèi)外之分, 因為FPGA內(nèi)部存儲容量已經(jīng)能夠滿足要求, 同時將程序存儲器的容量擴(kuò)大了一倍 (變?yōu)?KB), 以滿足大程序的容量需求; 為了讓8051更為強(qiáng)大且更具有通用性, 可將數(shù)據(jù)存儲器RAM的容量擴(kuò)大一倍, 變?yōu)?56字節(jié)??梢钥闯? 在設(shè)計過程中將8051的功能也進(jìn)行了加強(qiáng), 但是并不影響對它的控制, 僅僅是在硬件上對存儲器的容量進(jìn)行了擴(kuò)大, 而這種擴(kuò)大只是改變了地址線的寬度, 完全不影響111條指令的正確執(zhí)行。對用戶來說這只是可以使用的內(nèi)部RAM增加了, 控制并沒有任何改變。當(dāng)然, 在資源比較緊張, 而且程序容量比較小時, 也可以將存儲器的容量改小, 這種改變也相當(dāng)方便, 只需要改變地址線的寬度就能達(dá)到目的。由此可見, 設(shè)計時完全可以根據(jù)需要改變IP核的設(shè)計, 而不局限于8051。

雖然整個8051IP核能正確執(zhí)行所有指令, 并能實現(xiàn)串口、計時器及中斷控制, 且整個IP的核工作時鐘也在20 MHz以上, 但是, 由于這時候的所有指令周期并不與真實的8051完全一致, IP核中有的指令需要比真正的8051多執(zhí)行幾個周期才能完成, 這就使得分析IP核的工作時鐘復(fù)雜起來了, 因為相對于真正的8051不能有一個精確的工作時鐘對比。但是經(jīng)過分析仍然可以認(rèn)為, IP核應(yīng)該可以工作在15 MHz左右, 也就是比真實的8051快了15倍左右。這對于芯片整體來說, 其速度可能相對較低, 但是由于這部分與芯片其它部分的邏輯相關(guān)性極小, 所以并不會影響芯片的整體性能, 而對于一些簡單控制來說, 這個速度還是能夠滿足要求的。

2 UIP協(xié)議棧

2.1 UIP簡介

在FPGA中實現(xiàn)TCP/IP協(xié)議的主要目的是為了滿足設(shè)計人員對芯片的遠(yuǎn)程調(diào)試。而滿足這種要求實際上并不需要很強(qiáng)大和快速的傳輸功能。功能過于強(qiáng)大將會占用過多的資源, 而且實際上, 很多功能并沒有實際作用; 同時也不需要很快的傳輸速度。畢竟對于一個芯片的設(shè)計來說,無論是設(shè)計文檔或是設(shè)計程序, 容量都是非常有限的。綜合考慮, 則應(yīng)選擇一個實現(xiàn)簡單、占用資源少, 但能夠比較穩(wěn)定地進(jìn)行數(shù)據(jù)傳輸?shù)膮f(xié)議, 為此, 本文選擇了相對簡單的UIP協(xié)議棧,而放棄了功能比較強(qiáng)大的LWIP協(xié)議棧。選擇UIP還有一個好處, 就是這個協(xié)議棧是專門針對單片機(jī)等微控制器設(shè)計的TCP/IP協(xié)議棧, 它能夠利用嵌入的IP核8051來實現(xiàn)TCP/IP協(xié)議, 而不再需要額外的邏輯單元。

UIP的特點是代碼量和數(shù)據(jù)量都比較小, 因而可以為存儲器比較緊張的地方提供合適的實現(xiàn)方案, 包括TCP/IP所需的最小實現(xiàn)方案和只包含TCP、IP、ICMP (ping) 以及簡單的UDP協(xié)議, 其具體的實現(xiàn)方法如圖2所示, 圖2中, 帶“

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉