<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于單片機的嵌入式系統網(wǎng)絡(luò )設計方案

基于單片機的嵌入式系統網(wǎng)絡(luò )設計方案

作者: 時(shí)間:2013-01-22 來(lái)源:網(wǎng)絡(luò ) 收藏

系統主應用程序的實(shí)現

  系統初始化后,進(jìn)入主程序循環(huán)的兩部分:一是對接收到的以太網(wǎng)數據幀進(jìn)行解包,供應用程序使用,一是對發(fā)送的數據進(jìn)行封裝并發(fā)送,使采用TCP/IP協(xié)議的以太網(wǎng)內的所有計算機都能收到此數據幀。圖2是系統的主應用程序的流程圖。

系統的主應用程序的流程圖

  圖2 系統的主應用程序的流程圖

  實(shí)現TCP/IP協(xié)議的難點(diǎn)

  51的程序空間、可用的內存RAM、運算速度、指令集等原因,在UNIX或Windows上實(shí)現的TCP/IP協(xié)議的源代碼并不能夠直接移植到8位的上。在51單片機上編寫(xiě)代碼會(huì )受許多限制,特別是實(shí)現TCP/IP協(xié)議這樣關(guān)系復雜的程序,我們必須根據實(shí)際情況盡可能挖掘51單片機的性能。綜合來(lái)說(shuō),單片機實(shí)現與UNIX實(shí)現TCP/IP有如下區別:

 ?。?)操作系統:Windows或UNIX都是多任務(wù)操作系統,這使得代碼編寫(xiě)簡(jiǎn)單化,在單片機只能是單任務(wù)系統,代碼結構為順序執行+硬件中斷的方式,無(wú)法并發(fā)執行。

 ?。?)內存分配:Windows或UNIX的內存分配是動(dòng)態(tài)的。而一般單片機只有外接的一塊32K字節的RAM,并同時(shí)被各個(gè)協(xié)議使用。一個(gè)最大的以太網(wǎng)數據包有1.5K字節,分配一包的緩沖區就要1.5K字節。為此,我們分配一個(gè)256×6=1536個(gè)字節的固定的RAM來(lái)存放收到的以太網(wǎng)數據包。收到一包就處理一包。

 ?。?)指針:在PC里所有程序都必須先放在RAM里才能運行,所以它的指針都指向RAM.而單片機的結構和PC的結構有很大差別,指針類(lèi)型很多,各指針運算的速度也不一樣,特別是“一般指針”運算很慢,還會(huì )占用很多程序空間。UNIX實(shí)現TCP/IP的源代碼中,用得最多的就是指針,而在單片機里一般要求少用指針,或使用特定類(lèi)型的指針。對使用UNIX的源代碼需要作很多的改動(dòng)。

 ?。?)參數傳遞:在UNIX實(shí)現的TCP/IP源代碼中,一般有很多的參數傳遞,而在單片機里允許傳遞的參數是有限的(因為受到內部RAM的限制),同時(shí)參數傳遞的過(guò)程要浪費程序代碼空間,也降低單片機執行速度。所以在單片機的實(shí)現里,一般不要做太多的參數傳遞,而多使用公共的全局變量來(lái)實(shí)現調用的過(guò)程。

 ?。?)硬件接口:在UNIX或Windows里,對網(wǎng)卡驅動(dòng)無(wú)一例外都是采用中斷方式,因為PC的處理速度快,一次中斷的處理時(shí)間也很短,不會(huì )影響系統內的其它中斷。而在單片機的應用中,大部分的方案都是查詢(xún)式的。PC的NE2000的網(wǎng)卡,一般都是用16位DMA的方式,而在單片機里卻只能用8位DMA方式。這也使UNIX對網(wǎng)卡驅動(dòng)的代碼不能直接移植。

  結語(yǔ)

  本文設計的嵌入式網(wǎng)絡(luò )接入方案,采用廉價(jià)的8位51單片機實(shí)現了簡(jiǎn)化TCP協(xié)議和UDP協(xié)議,并支持主動(dòng)和被動(dòng)連接、跨越網(wǎng)關(guān),實(shí)現互聯(lián)網(wǎng)接入,在被控設備與上位控制機之間提供了一條透明的傳輸通道,用戶(hù)不需對原有串口設備或其他數字設備做任何修改,就可享受到網(wǎng)絡(luò )的好處。目前,本文的系統已被成功使用在網(wǎng)絡(luò )化的數據采集器中。

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



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>