freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于atmega128_嵌入式網(wǎng)絡(luò)接口的設(shè)計(jì)-資料下載頁(yè)

2025-02-04 10:58本頁(yè)面

【導(dǎo)讀】等功能,其發(fā)展前景十分廣闊。接入方式進(jìn)行研究和實(shí)現(xiàn),最終使該系統(tǒng)能穩(wěn)定高效地進(jìn)行網(wǎng)絡(luò)通信。的重點(diǎn)是嵌入式LwIP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)分析ARP、IP、ICMP和TCP/IP. 本文的主要工作:

  

【正文】 操作 ,并且可以滿足 LwIP通信的要求 ,所以只需要在下面函數(shù)中封裝相應(yīng) μC/OS II關(guān)于信號(hào)量的操作函數(shù)就可以了 。 struct sys_sem_t //定義信號(hào)量結(jié)構(gòu) sys_sem_new( ) //創(chuàng)建一個(gè)信號(hào)量結(jié)構(gòu) sys_sem_free( ) //釋放一個(gè)信號(hào) 量結(jié)構(gòu) sys_sem_signal( ) //發(fā)送信號(hào)量 sys_arch_sem_wait( ) //請(qǐng)求信號(hào)量 下面給出它們與 μC/OS II 對(duì)應(yīng)的結(jié)構(gòu)體和函數(shù) : struct sys_sem_t → OS_EVENT sys_sem_new( ) → OSSemCreate( ) sys_sem_free( ) → OSSemDel( ) sys_sem_signal( ) → OSSemPost( ) sys_arch_sem_wait( ) → OSSemPend( ) ARM微 處理器 引導(dǎo)程序 LwIP協(xié)議棧 應(yīng)用程序 μC/OS II操作系統(tǒng) 網(wǎng)絡(luò)驅(qū)動(dòng) LAN91C111 LwIP消息的實(shí)現(xiàn) LwIP使用消息隊(duì)列來(lái)緩沖 ,傳遞數(shù)據(jù)報(bào)文 。 μC/OS II實(shí)現(xiàn)了消息隊(duì)列結(jié)構(gòu)OSQ及其操作 ,但是 μC/OS II沒(méi)有對(duì)消息隊(duì)列中的消息進(jìn)行管理 ,因此不能象信號(hào)量那樣直接使用 ,而需要在 μC/OS II基礎(chǔ)上重新實(shí)現(xiàn) 。 定義的結(jié)構(gòu)如下 : typedef struct{ OS_EVENT * pQ。 void * pvQEntries[MAX_QUEUE_ENTRIES]。 }sys_mbox_t。 上面的結(jié)構(gòu)中 ,包含了 OS_EVENT類(lèi)型的隊(duì)列指針 pQ和隊(duì)列內(nèi)的消息pvQEntries兩部分 。 可見(jiàn) ,對(duì)對(duì)列本身的管理利用 μC/OS II自己的 OSQ操作完成 ,無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 22 使用 μC/OS II的內(nèi)存管理模塊實(shí)現(xiàn)對(duì)消息的創(chuàng)建 ,使用 ,刪除和回收 。 這樣實(shí)現(xiàn)了 LwIP的消息隊(duì)列功能 。 相應(yīng)的處理函數(shù)如下 : sys_mbox_new( ) //創(chuàng)建一個(gè)消息隊(duì)列 sys_mbox_free( ) //釋放一個(gè)消息隊(duì)列 sys_mbox_post( ) //向消息隊(duì)列發(fā)送消息 sys_arch_mbox_fetch( ) //從消息隊(duì)列中讀取消息 定時(shí)器函數(shù) sys_arch_timeouts( ) LwIP的每個(gè)線程都有自己的超時(shí)等待屬性 ,為每一個(gè)線程都分配了一個(gè)超時(shí)等待的數(shù)據(jù)結(jié)構(gòu) sys_timeout,并把這個(gè)數(shù)據(jù)結(jié)構(gòu)存放于鏈表 sys_timeouts中 。 通過(guò) μC/OS II 的任務(wù)查詢機(jī)制來(lái)獲得一個(gè)指向當(dāng)前線程使用的 sys_timeouts結(jié)構(gòu)的指針 。 如若某一個(gè) sys_timeout結(jié)構(gòu)為空 ,說(shuō)明對(duì)應(yīng)的線程作永久的等待 。 超時(shí)等待的數(shù)據(jù)結(jié)構(gòu) sys_timeout包括 ,指向鏈表中下個(gè) sys_timeout結(jié)構(gòu)的指針 ,線程超時(shí)等待的長(zhǎng)度和定時(shí)時(shí)間到后用以處理的函數(shù)等內(nèi)容 。 而 sys_timeouts結(jié)構(gòu)只包含指向 sys_timeout結(jié)構(gòu)的指針 。 這兩個(gè)數(shù)據(jù)結(jié)構(gòu)都已經(jīng)在 LwIP源代碼的 ,我們要做的是 ,實(shí)現(xiàn)找到當(dāng)前線程使用的 sys_timeouts結(jié)構(gòu)指針的函數(shù) sys_arch_timeouts( )。 定義的結(jié)構(gòu)和函數(shù)如下 : struct sys_timeout { struct sys_timeout *next。 u32_t time。 sys_timeout_handler h。 void *arg。 }。 struct sys_timeouts { struct sys_timeout *next。 }。 struct sys_timeouts *sys_arch_timeouts( ) 創(chuàng)建新線程函數(shù) sys_thread_new( ) 在 μC/OS II 中 ,沒(méi)有線程 (thread)的概念 ,只有任務(wù) (task)的概念 ,創(chuàng)建一個(gè)新的線程就是創(chuàng)建一個(gè)新的任務(wù) 。 又由于 ,在 μC/OS II中已經(jīng)提供了創(chuàng)建新任無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 23 務(wù)的函數(shù) OSTaskCreste( ),因此把函數(shù) OSTaskCreste( )進(jìn)行封裝 ,就可以實(shí)現(xiàn)創(chuàng)建新線程函數(shù) sys_thread_new( )。 但由于 LwIP中的線程沒(méi)有 μC/OS II中優(yōu)先級(jí)的概念 ,實(shí)現(xiàn)時(shí)需要有用戶事先為 LwIP中創(chuàng)建的線程分配好優(yōu)先級(jí) 。 函數(shù)如下 : sys_thread_t sys_thread_new(void(*thread)(void *arg), void *arg, int prio) 其中 thread是新線程的入口地址 ,arg是傳遞給新線程的參數(shù) ,prio是由 LwIP指定的新線程的優(yōu)先級(jí) 。 4. 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序 在 ISO參 考模型中 ,數(shù)據(jù)鏈路層的邏輯鏈路控制子層的部分工作有網(wǎng)絡(luò)接口芯片驅(qū)動(dòng)程序完成的 ,其他部分則集成在網(wǎng)絡(luò)接口芯片中由硬件實(shí)現(xiàn) 。 本文所用開(kāi)發(fā)板上的網(wǎng)絡(luò)接口芯片為 LAN91C111,它是 8/16位 ISA總線的網(wǎng)卡 ,遵循 。 在 LwIP中每個(gè)網(wǎng)絡(luò)接口都對(duì)應(yīng)一個(gè)數(shù)據(jù)結(jié)構(gòu) struct if,如下 : struct if { struct if *next。 struct ip_addr ip_addr。 struct ip_addr mask。 struct ip_addr gw。 err_t (* input)(struct pbuf *p, struct if *inp)。 err_t (* output)(struct if *if, struct pbuf *p,struct ip_addr *ipaddr)。 ...... }。 在該數(shù)據(jù)結(jié)構(gòu)中定義了指向下個(gè)網(wǎng)絡(luò)接口的指針 ,IP地址 ,網(wǎng)絡(luò)掩碼 ,網(wǎng)關(guān)以及用于 實(shí)現(xiàn)以太網(wǎng)接收 ,發(fā)送數(shù)據(jù)包的函數(shù)等內(nèi)容 。 對(duì)于網(wǎng)絡(luò)接口芯片的驅(qū)動(dòng)程序 ,用戶可以根據(jù)自己的網(wǎng)絡(luò)設(shè)備參照 LwIP的網(wǎng)絡(luò)驅(qū)動(dòng)模板 ,/src/if/ 。 5. 結(jié)束語(yǔ) 由于 μC/OS II操作系統(tǒng)本身缺少 TCP/IP協(xié)議棧 ,LwIP移植到 μC/OS II操作系統(tǒng)實(shí)現(xiàn)了嵌入式系統(tǒng)上的 TCP/IP協(xié)議棧 ,完成了嵌入式系統(tǒng)基本的網(wǎng)絡(luò)通信功能 。 從宿主機(jī)和開(kāi)發(fā)板的網(wǎng)絡(luò)通信測(cè)試結(jié)果來(lái)看 ,移植取得了實(shí)效 。 無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 24 嵌入式 LwIP 協(xié)議棧的測(cè)試 測(cè)試環(huán)境 (1) 硬件配置 PC機(jī)配置為奔騰 4 2. 6G處理器, 512M內(nèi)存, 100M RTL8139網(wǎng)卡。下位機(jī)配置為 ATmega128微處理器,擴(kuò)展 32K內(nèi)存, 100M LAN91C111網(wǎng)卡 。 PC機(jī)與下位機(jī)之間使用使用雙絞線和 100M交換機(jī)連接,每一根雙絞線長(zhǎng)度為 10米。測(cè)試設(shè)備的連接圖如 圖 。 圖 PC 機(jī)和下位機(jī)的連接圖 (2) 軟件配置 PC機(jī)上運(yùn)行 Windows 2021操作系統(tǒng), IP地址為 ;下位機(jī)運(yùn)行μC/OS II嵌入式操作系統(tǒng)和 LwIP協(xié)議棧, IP地址為 。根據(jù)測(cè)試的不同需求,在 PC機(jī)和下位機(jī)上編寫(xiě)測(cè)試程序,完成相應(yīng)的測(cè)試操作。 測(cè)試內(nèi)容和方法 針對(duì)本 系統(tǒng) LwIP 協(xié)議棧所實(shí)現(xiàn)的幾個(gè)協(xié)議 ARP 協(xié)議、 IP 協(xié)議、 ICMP 協(xié)議和TCP 協(xié)議,對(duì)網(wǎng)絡(luò)的連通性進(jìn)行測(cè)試,在此基礎(chǔ)上設(shè)計(jì)測(cè)試程序?qū)?TCP 協(xié)議進(jìn)行測(cè)試,并分析網(wǎng)絡(luò)通信性能。 測(cè)試網(wǎng)絡(luò)的連通性就是對(duì) IP 協(xié)議、 ARP 協(xié)議和 ICMP 協(xié)議進(jìn)行測(cè)試,沒(méi)有設(shè)計(jì)專用的測(cè)試程序,只是使用 ping 命令測(cè)試。因?yàn)槿绻苁盏?ping 應(yīng)答,說(shuō)明以下三點(diǎn): (1) ARP 協(xié)議己能正?;卮鸨緳C(jī)物理地址。 (2) IP 協(xié)議也能解析出這是一個(gè)回顯請(qǐng)求報(bào)文,并交給 ICMP 處理。 (3) ICMP 正確處理了該報(bào)文,并發(fā)回了回顯應(yīng)答報(bào)文。 PC機(jī) 下位機(jī) 100M交換機(jī) RTL8139 LAN91C111 無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 25 以上三 點(diǎn)已能夠證明 ARP 協(xié)議 , IP 協(xié)議和 ICMP 協(xié)議都已工作正常。 對(duì) TCP 協(xié)議的測(cè)試需要在 PC 機(jī)上編寫(xiě)相應(yīng)的測(cè)試程序。在該系統(tǒng)測(cè)試過(guò)程中, PC 機(jī)上使用 編寫(xiě)的測(cè)試程序 ,包括 TCP 發(fā)送和接收方式。在下位機(jī)上編寫(xiě)相應(yīng)的程序,使系統(tǒng)處于 TCP 偵聽(tīng)狀態(tài),等待接收數(shù)據(jù)報(bào)。當(dāng)下位機(jī)接收完全部數(shù)據(jù)后,再將它發(fā)送回 PC 機(jī),來(lái)回重復(fù) 10000 次。為了測(cè)試 TCP協(xié)議的工作性能,將 LwIP 協(xié)議棧也移植到該系統(tǒng)上運(yùn)行同樣的測(cè)試程序,并比較兩種模式下該系統(tǒng)的網(wǎng)絡(luò)通信速率。 測(cè)試過(guò)程和結(jié)果 (1) 網(wǎng) 絡(luò)連通性測(cè)試 在 PC 機(jī)的命令行中輸入 ping ,測(cè)試結(jié)果為 PC 機(jī)收到應(yīng)答數(shù)據(jù),包括報(bào)文的字節(jié)數(shù)、響應(yīng)時(shí)間等信息。 PC 機(jī)發(fā)出的 ping 消息其實(shí)就是 ICMP協(xié)議的回顯消息。首先消息能夠送到下位機(jī)網(wǎng)卡,說(shuō)明 ARP協(xié)議已經(jīng)把網(wǎng)卡物理地址答復(fù)給 PC 機(jī)。所以從 PC 機(jī)上發(fā)出的消息能正確地到達(dá)目的網(wǎng)卡,網(wǎng)卡驅(qū)動(dòng)程序收到后上傳給 IP層, IP 分析處理后交給 ICMP 協(xié)議處理, ICMP 協(xié)議判斷出是回顯消息后填入應(yīng)答內(nèi)容再交給 IP 層,最后又由網(wǎng)卡驅(qū)動(dòng)程序?qū)⒃摂?shù)據(jù)報(bào)發(fā)出。此時(shí) PC 就收到從下位機(jī)發(fā)回的回顯應(yīng)答。 PC 機(jī)能收到 Ping 應(yīng)答說(shuō)明 ARP協(xié)議、 IP 協(xié)議和 ICMP 協(xié)議已正常工作。 (2) TCP 協(xié)議測(cè)試 PC 機(jī)測(cè)試 test 程序首先打開(kāi) 2021 端口,向下位機(jī)進(jìn)行連接,此時(shí)下位機(jī)正處于監(jiān)聽(tīng)狀態(tài),監(jiān)聽(tīng)端口為 3000。當(dāng) PC 機(jī)和下位機(jī)連接建立成功后, PC 機(jī)開(kāi)始發(fā)送 1k 字節(jié)數(shù)據(jù),然后監(jiān)聽(tīng) 2021 端口。下位機(jī)收到 1k字節(jié)的數(shù)據(jù)后,再通過(guò) 3000 端口將它發(fā)回到 PC 機(jī),如此反復(fù)收發(fā) 10000 次。 test 程序的監(jiān)聽(tīng)超時(shí)設(shè)為 l00ms,若超時(shí)則丟包數(shù)加 l。測(cè)試結(jié)果為 PC 機(jī)完成整個(gè)測(cè)試過(guò)程耗時(shí) 72秒,丟包為 0。由此可知, TCP 協(xié)議已 正常運(yùn)行,此次測(cè)試的網(wǎng)絡(luò)通信速率約為280KByte/s。 為了驗(yàn)證 LwIP 協(xié)議棧在本系統(tǒng)上的工作性能,將 LwIP 協(xié)議棧移植到基于μC/OS II 嵌入式操作系統(tǒng)的 ATmega128 上,并運(yùn)行同樣的測(cè)試程序。測(cè)試結(jié)果為: PC 機(jī)完成整個(gè)測(cè)試過(guò)程耗時(shí) 83 秒,丟包為 0,可以得出該環(huán)境下網(wǎng)絡(luò)通信無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 26 速率為 240KByte/s。 由上面的測(cè)試結(jié)果可以看出 ARP協(xié)議、 IP協(xié)議、 ICMP協(xié)議和 TCP協(xié)議均已正常工作,因此對(duì)本系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的 LwIP協(xié)議棧還是比較成功的,符合了 8位微處理器 ATmega128的使用要求,其網(wǎng)絡(luò)接口 的可靠性較好和數(shù)據(jù)通信速率較高。而且它的通信速率比基于 LwIP協(xié)議棧實(shí)現(xiàn)的網(wǎng)絡(luò)接口通信速率有很大提升,完全達(dá)到嵌入式網(wǎng)絡(luò) 應(yīng)用 的 要求 。 無(wú)錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(jì)(論文) 27 第 五 章 結(jié)論和未來(lái)工作 在本篇文章中,設(shè)計(jì)了以 ATmega128和 LAN91C111為核心的嵌入式硬件工作平臺(tái) , 在該平臺(tái)上成功移植了 μC/OS II嵌入式操作系統(tǒng) ,并實(shí)現(xiàn) 了在 ATmega128上應(yīng)用的 LwIP協(xié)議棧的實(shí)現(xiàn)方案 。針對(duì)嵌入式系統(tǒng)的實(shí)際情況,裁剪每個(gè)協(xié)議中不必要的功能,實(shí)現(xiàn) LwIP協(xié)議棧中的每個(gè)協(xié)議。最后對(duì) LwIP協(xié)議棧 的網(wǎng)絡(luò)連通性和數(shù)據(jù)通信速率進(jìn)行測(cè)試,從測(cè)試結(jié)果來(lái)看,該系統(tǒng)已能正常地接入以太網(wǎng),并能獲得較高的網(wǎng)絡(luò)通信速率。在此基礎(chǔ)上實(shí)現(xiàn)了嵌入式 Web服務(wù)器 , 使得客戶端瀏覽器可以方便高效地接入嵌入式 Web服務(wù)器 。 總體來(lái)說(shuō),本文所設(shè)計(jì)的基于ATmega128的嵌入式 Inter接入方式是比較成功的,很好地解決了低端 8位微處理器接入 Inter的難題,這必將會(huì)使低端微處理器在工業(yè)控制、智能家電等領(lǐng)域取得更廣泛的應(yīng)用。 另外由于研究水平和研究時(shí)間的限制,本課題還有許多有待完善及值得繼續(xù)探討的理論和應(yīng)用問(wèn)題,例如 : (1) 該網(wǎng)絡(luò)系統(tǒng)的雖然通過(guò)了試驗(yàn)階段的初步測(cè)試,但是還不能正式在工業(yè)控制和其它領(lǐng)域?qū)嶋H使用,還需進(jìn)行性能上的改進(jìn)和進(jìn)一步的測(cè)試。 (2) 由于使用的 CPU是 AVR公司的 8位單片機(jī) ATmega128,主頻最高只有 16MHZ。雖然現(xiàn)在基本上能滿足一些中小型項(xiàng)目上的應(yīng)用,但隨著時(shí)代的發(fā)展將會(huì)有越來(lái)越多的網(wǎng)絡(luò)數(shù)據(jù)通信要求,必將要尋求更快的 CPU代替 ATmega128,如 ARM9它的主頻可以達(dá)到 300MHZ,完全
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1