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

正文內(nèi)容

畢業(yè)設(shè)計(論文)-嵌入式web服務(wù)器的設(shè)計與實現(xiàn)-預(yù)覽頁

2025-07-04 01:24 上一頁面

下一頁面
 

【正文】 ................................ 22 Web服務(wù)器的實現(xiàn) .................................................................................. 23 謝辭 ............................................................................................................................... 27 參考文獻(xiàn) ........................................................................................................................ 28 無錫科技職業(yè)學(xué)院我們可以用微控制器加以太網(wǎng)接口芯片,取代 PC機進(jìn)行現(xiàn)場控制,組成嵌入式Web 服務(wù)器 系統(tǒng)。由于 HTML 語言的標(biāo)準(zhǔn)統(tǒng)一性,只要在嵌入式設(shè)備中有一個微型服務(wù)器 , 就可以使用任意一種 Web瀏覽器接收和發(fā)送信息。所以如何設(shè)計這種特別的 Web服務(wù)器,如何在嵌入式設(shè)備中安裝 Web 服 務(wù)器,就成了嵌入式 Web服務(wù)器的發(fā)展和研究方向。由于其先進(jìn)的指令集以及單周期指令執(zhí)行時間, ATmega128 的數(shù)據(jù)吞吐率高達(dá) 1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 LAN91C111 主要特點 : ( Auto_Negotiation): 10/100M,全雙工 /半雙工收發(fā)方式 8KB的 FIFO RAM 無錫科技職業(yè)學(xué)院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(論文) 7 圖 硬件系統(tǒng)平臺結(jié)構(gòu)圖 ATmega128 的指令執(zhí)行是基于流水線技術(shù)的,使得一條指令可以在一個時鐘周期內(nèi)執(zhí)行完成,當(dāng)外接晶振達(dá)到 16MHZ 時,該 CPU 的執(zhí)行速度理論可以達(dá)到16MIPS 的性能。網(wǎng)絡(luò)控制器和顯示控制器是本系統(tǒng)的兩個重要的組成部分,它們都是通過 PC104 總線和 CPU 相連接的。 網(wǎng)絡(luò)模塊 網(wǎng)絡(luò)接口模塊是本系統(tǒng) 硬件 設(shè)計的核心部分,也是最難的部分。在本系統(tǒng)中 LAN91C111 使用 8位異步總線接口與 ATmega128 相連,極大地提高了系統(tǒng)的吞吐量。 本系統(tǒng)采用 LAN91C111 作為網(wǎng)絡(luò)接口,研究其內(nèi)部的工作機制是編寫驅(qū)動程序的基礎(chǔ)。不論當(dāng)前頁是哪一頁,改變 BSR的值就可以切換 BANK,利用 16個字節(jié)地址空間映射到 I/O口就能實現(xiàn)對整個芯片的操作。接收數(shù)據(jù)時, LAN91C111 首先將數(shù)據(jù)包復(fù)制一份并 送到解擾頻器后,再送到 4B5B 解碼器解碼,而 EPH 模塊根據(jù)數(shù)據(jù)包的目標(biāo)地址是否為本網(wǎng)卡的 MAC 地址或廣播地址 、 多播地址來決定數(shù)據(jù)包的取舍。 緩存中的數(shù)據(jù)幀格式 無錫科技職業(yè)學(xué)院控制字節(jié)格式如圖 所示。 CRC 為 0 表示不加 CRC 校驗。當(dāng)檢測到包結(jié)束, status word 被寫到接收包的最前面, byte count 寫到 第 2個字。當(dāng)處理結(jié)束 后 , CPU 向處理器發(fā) 送 命令釋放使用的存儲空間和 packet number。 /OS II 簡介 μC /OS II 是一個完整的、可移植、可固化、可裁剪的占先式實時多任務(wù)內(nèi)核。實際上, μC/OS II已經(jīng)通過了非常嚴(yán)格的 測試,并且得到了美國航空管 理局( Federal Aviation Administration)的認(rèn)證,可以用在飛行器上。 ,并且能產(chǎn)生定時中斷 (通常在 10 至 100Hz 之間 )。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(論文) 11 uC/OS II 移植的相關(guān)工作 uC/OS II 的移植工作主要涉及與處理器相關(guān)的以下內(nèi)容: 與編譯器相關(guān)的數(shù)據(jù)類型聲明 ()不同的處理器有不同的字長 .所以必須定義一系列數(shù)據(jù)類型以確保移植的正確性。 編寫與任務(wù)切換相關(guān)的函數(shù) (), uC/OS II 的移植要求用戶編寫四個與處理器相關(guān)的匯編語言函數(shù): OSStartHighRdy()、 OSCtxSw()、OSIntCtxSw()、 OSTickISR()。在 OSStartHighRdy( )啟動之前,必須調(diào) OSTaskSwHook( )函數(shù),通過檢查變量 OSRuning來確定 OSTaskSwHook( )函數(shù)被調(diào)用的對象。 無錫科技職業(yè)學(xué)院為了讓更高優(yōu)先級的任務(wù)能立即運行,所以需要在中斷中進(jìn)行任務(wù)切換。 OSIntCtxSw( )需要調(diào)整堆棧指針,去掉堆棧中一些不需要的內(nèi)容,以使堆棧中只包含任務(wù)的運行環(huán)境。 如果用戶的編譯器支持插入?yún)R編語言代碼,可將所有與處理器相關(guān)的代碼放到 文件中, 該文件便不再需要。由于 PIC 的 USART 中只有 2 個字無錫科技職業(yè)學(xué)院 無錫科技職業(yè)學(xué)院下面分幾部份分別說明相應(yīng)文件的實現(xiàn)原理和過程。這應(yīng)該與用戶實現(xiàn) 181。比如在 Skyeye( C33209)上對應(yīng) gcc 編譯器的定義: define PACK_STRUCT_FIELD(x) x __attribute__((packed)) define PACK_STRUCT_STRUCT __attribute__((packed)) define PACK_STRUCT_BEGIN define PACK_STRUCT_END sys_arch操作系統(tǒng)相關(guān)部份 sys_arch.[ch]中的內(nèi)容是與 OS 相關(guān)的一些結(jié)構(gòu)和函數(shù),主要可以分為四個部份: (1) sys_sem_t 信號量 LwIP 中需要使用信號量通信,所以在 sys_arch 中應(yīng)實現(xiàn)信號量結(jié)構(gòu)體和無錫科技職業(yè)學(xué)院 (2) sys_mbox_t 消息 LwIP 使用消息隊列來緩沖、傳遞數(shù)據(jù)報文,因此要在 sys_arch 中實現(xiàn)消息隊列結(jié)構(gòu) sys_mbox_t,以及相應(yīng)的操作函數(shù): sys_mbox_new() //創(chuàng)建一個消息隊列 sys_mbox_free() //釋放一個消息隊列 sys_mbox_post() //向消息隊列發(fā) 送消息 sys_arch_mbox_fetch() //從消息隊列中獲取消息 181。為了實現(xiàn)對消息的管理,定義了以下結(jié)構(gòu): typedef struct { OS_EVENT* pQ。C/OSII 中的內(nèi)存管理模塊實現(xiàn)對消息的創(chuàng)建、使用、刪除回收,兩部分綜合起來形成了 LwIP 的消息隊列功能。如果一個線程對應(yīng)的 sys_timeout 為空( NULL),說明該線程對連接做永久的等待。但 LwIP也可以多線程運行,以提高效率,降低編程復(fù)雜度。它已經(jīng)提供了創(chuàng)建新任務(wù)的系統(tǒng) API 調(diào)用 OSTaskCreate,因此只要把 OSTaskCreate 封裝一下,就可以實現(xiàn) sys_thread_new。 //16 位數(shù)據(jù)高低字節(jié)交換 u16_t ntohs(u16_t n)。 //返回字符串長度 int strncmp(const char *str1, const char *str2, int len)。 //內(nèi)存中指定長度的數(shù)據(jù)塊清零 在我的系統(tǒng)中使用的網(wǎng)絡(luò)芯片為 RealTek 的 8019as 芯片,這是 ISA 10BASE- T的以太網(wǎng)芯片,與 Ne2k 兼容。 在 LwIP 中可以有多個網(wǎng)絡(luò)接口,每個網(wǎng)絡(luò)接口都對應(yīng)了一個 struct if,這個 ne2kif 包含了相應(yīng)網(wǎng)絡(luò)接口的屬性、收發(fā)函數(shù)。驅(qū)動程序可以到 LwIP 的網(wǎng)站下載。 HTTP 請求中都需要 TCP 連接。 B/S訪問模式是 WEB Server 和 Browser 之間的直接訪問。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(論文) 19 HTTP 協(xié)議實現(xiàn) HTTP 協(xié)議是一種請求 /響應(yīng)協(xié)議。瀏覽器向該地址請求建立 TCP 連接 。 根據(jù) HTTP 協(xié)議規(guī)定,如果客戶端沒有發(fā)出請求,則服務(wù)器不會自動發(fā)送頁面。請求方法決定了對請求 URI 所指定的資源進(jìn)行操作的方式, GET 方法讀取 URL 指定的資源,一般用來向服務(wù)器傳輸少量且透明的數(shù)據(jù),數(shù)據(jù)總量被限制在 255 個字符以內(nèi),而 POST 方法可傳輸大量數(shù)據(jù),與 HTML 的表單特性相配合以實現(xiàn)遠(yuǎn)程動態(tài)交互控制。該請求通常被用來測試超文本鏈接的正確性、可訪問性和最近的修改。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(論文) 20 contentlength 字段中指出 body 的長度。 中定義的一些其他方法,例如用于返回用戶控制信息、客戶端更新、刪除服務(wù)器端文件或者用于客戶端探察請求路徑等用途都不做處理。封裝應(yīng)答 HTTP 數(shù)據(jù)報文時,先從 EEPROM頭部讀取固定的 HTTP 報文頭部數(shù)據(jù),然后裝入報文的實體部分。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設(shè)計(論文) 21 候再讀出來發(fā)送出去。本系統(tǒng)所定義的文件系統(tǒng)格式如下: define ROM_FILENEME_LEN 20 /* 定義文件名的最大長度 ,包含擴展名 */ typedef struct { unsigned long len。 /* 存儲文件名的字符數(shù)組 ,包含擴展名 */ }EEPROM_FILENAME。本系統(tǒng)實現(xiàn)一個簡單的 Web頁面顯示功能,將該頁面的代碼定義好后寫到 EEPROM的固定起始地址。C/OSII 操作系統(tǒng)下,創(chuàng)建服務(wù)主函數(shù)偵聽連接,主函數(shù)在接受客戶連接時通過調(diào)用子函數(shù)來處理 HTTP 事務(wù)。 圖 嵌入式 Web 服務(wù)器 HTTP 連接的工作流程 1. 解析請求數(shù)據(jù)報文 當(dāng)客戶端瀏覽器訪問嵌入式 Web 服務(wù)器時,首先向服務(wù)器發(fā)出請求,服務(wù)器收到請求后,對請求數(shù)據(jù)報文進(jìn)行解析。 2. 封裝應(yīng)答數(shù)據(jù)報文 嵌入式 Web 服務(wù)器中的 EEPROM 中存儲了靜態(tài)的 HTML 頁面,應(yīng)答時將它取出放到應(yīng)答報文的實體中。本設(shè)計是這樣處理的:首先從 EEPROM 中讀取封裝好的 HTTP 報文的頭部,然后再從 EEPROM 中讀出 HTML頁面的數(shù)據(jù),并將讀出來的數(shù)據(jù)寫入到 HTTP 報文的實體部分。在文件 中包含網(wǎng)絡(luò)連接類型、狀態(tài)、和數(shù)據(jù)緩沖區(qū)結(jié)構(gòu)體和網(wǎng)絡(luò)連接結(jié)構(gòu)體的聲明,還有 Socket API 函數(shù)的聲明,它們的形式如下: define NETCONN_TCP 0x01 /*連接類型為 TCP 連接 */ enum conn_state { /*網(wǎng)絡(luò)連接狀態(tài) */ NETCONN_NONE, NETCONN_WRITE, NETCONN_ACCEPT, NETCONN_RECV, NETCONN_CONNECT, NETCONN_CLOSE }。 INT16U fromport。 struct tcp_pcb *tcp。 sys_sem_t sem。 INT8S conn_delete (struct conn *conn)。 struct conn * conn_accept (struct conn *conn)。 INT8S conn_close (struct conn *conn)。 int len。len)。amp。amp。amp。amp。amp。amp。 /* 發(fā)送 WEB頁面 . */ conn_write(conn, HTML_PAGE, sizeof(HTML_PAGE))。 /* 綁定該連接到本地任一地址的 80 端口 */ conn_bind(conn, NULL, 80)。 /* 對該連接進(jìn)行處理 . */ process_connection(newconn)。如果能找到這個文件,則將它 HTTP 應(yīng)答報文的實體部分返回給客戶端瀏覽器。三年的大 專生活教我學(xué)會了冷靜、堅忍不拔,使我能在人生的坐標(biāo)上找尋適合自己的位置并不斷修整自我,更讓我深刻認(rèn)識到人要用心地去做每一件事,認(rèn)真、踏實地面對人生的每一步
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1