導航:首頁 > 操作系統 > 單片機實現http

單片機實現http

發布時間:2023-01-08 17:47:21

Ⅰ 用單片機實現了一個HTTP伺服器,和電腦直連時訪問正常,但是無法通過路由器訪問到

單片機+enc28j60?這個組合丟包正常。
1. enc28j60的接收緩存有限,而且收發共享一片區域,一般來說多給接收分配一些,但如果上面的單片機處理不過來的話或者你的協議棧處理太復雜,導致沒有及時把enc28j60緩存的數據讀走處理,那必然導致enc28j60要丟包或者覆蓋。 在一對一的時候,這個現象可能不嚴重,換了路由器且接了其它設備的話,這個現象比較明顯。 只能優化你的協議棧,最好換強一些的處理器。
2. 注意你的簡化協議棧通過路由器(網關)來時,如果沒有ARP協議處理,建議包的MAC目標地址換成路由器MAC地址試試

Ⅱ 51單片機接入乙太網的幾種方案

1、MAC+PHY方案

所謂的TCP/IP協議棧是一系列網路協議的統稱,不僅包括我們熟知的TCP協議和IP協議。

還有網路層的ICMP(Internet控制報文)協議、IGMP(Internet組管理)協議、ARP(地址解析)協議,傳輸層的UDP(用戶數據包)協議,應用層的HTTP(超文本傳輸)協議、DNS(域名解析)協議、FTP(文件傳送)協議、SMTP(簡單郵件管理)協議等等。

傳統的乙太網接入方案由MCU+MAC+PHY再加入網路介面實現乙太網的物理連接,通過在主控晶元中植入TCP/IP協議代碼實現通信及上層應用。

應用這種軟體TCP/IP協議棧方式實現的比較成熟方案有ENC28J60,CS8900A,DM9000,當然也有像STM32F107這類(內部自帶MAC)+PHY等方案。

2、硬體協議棧晶元方案

由MCU+硬體協議棧晶元(內含MAC和PHY)直接加網路介面,便可方便的實現單片機聯網,所有的處理TCP/IP協議的工作都是通過這位MCU的「小秘書」——硬體協議棧晶元來完成。

乙太網晶元的內核由傳輸層的TCP、UDP、ICMP、IGMP等協議、網路層的IP、ARP、PPPoE等協議以及鏈路層的MAC構成,再加上物理層的PHY和外圍的寄存器、內存、SPI介面組成了這一整套硬體化的乙太網解決方案。

這套硬體TCP/IP協議棧代替了以往的MCU來處理這些中斷請求,即MCU只需要處理面向用戶的應用層數據即可,傳輸層、網路層、鏈路層及物理層全部由外圍WIZnet的晶元完成。

這套方案從硬體開銷和軟體開發兩個方面來簡化前面所述的五層網路模型,簡化產品開發方案。這樣一來,工程師們就不必再面對繁瑣的通信協議代碼,只需要了解簡單的寄存器功能以及Socket編程便能完成產品開發工作的的網路功能開發部分。

(2)單片機實現http擴展閱讀

乙太網協議:

一個標準的乙太網物理傳輸幀由七部分組成。

PR SD DA SA TYPE DATA FCS

同步位 分隔位 目的地址 源地址 類型欄位 數據段 幀校驗序列 7 1 6 6 2 46~1500 4

除了數據段的長度不定外,其他部分的長度固定不變。數據段為46~1500位元組。乙太網規定整個傳輸包的最大長度不能超過1514位元組(14位元組為DA、SA、TYPE),最小不能小於60位元組。

除去DA、SA、TYPE14位元組,還必須傳輸46位元組的數據,當數據段的數據不足46位元組時需填充,填充字元的個數不包括在長度欄位里;超過1500位元組時,需拆成多個幀傳送。

事實上,發送數據時,PR、SD、FCS及填充欄位這幾個數據段由乙太網控制器自動產生;而接收數據時,PR、SD被跳過,控制器一旦檢測到有效的前序欄位(即PR、SD),就認為接收數據開始。

Ⅲ 單片機既然已經採用TCP連接了,可以直接發送數據,為什麼還要使用http post這種方式發送數據

TCP屬於是傳輸層(有關OSI七層協議,可參考網頁鏈接)的協議!而HTTP協議是一種應用層協議!基於TCP的一種協議。HTTP 超文本傳送協議(Hypertext Transfer Protocol )是應用層協議,定義的是傳輸數據的內容的規范。

Ⅳ 怎麼讓單片機讀取來自http協議下傳的數據

用單片機的串口來讀數據

Ⅳ 請問單片機的嵌入式網頁是基於什麼語言的

很簡單,首先在單片機實現HTTP協議,你的網頁各頁面做成靜態的,當作數據發送給客戶端,讓客戶端顯示。調通以後把原來動態顯示的部分用單片機實現,不要再用.net了。去網上下個參考,我記得有PIC實現的一個demo,貌似名字叫「simple server」,稍微改改就行了。

Ⅵ stm32+lwip作為MCU與tcp/ip協議棧,其為一般TCP客戶端,具有斷開重連機制,並作為HTTP的服務端,求代碼!

我正好也在做這方面的東西,我們可以交流一下,我這邊需要做的是TCP客戶端和TCP伺服器,無這邊伺服器搭建目前運行狀況良好,但是客戶端始終不行,請問你有沒有客戶端的相關常式,我這邊的常式也可以分享給你的說,大家相互借鑒,共同進步。

周末加了一天班,終於把問題解決了,總結一個血的教訓給你,就是:你在調試單片機客戶端的時候,作為伺服器的電腦防火牆一定要關掉啊,我就是因為這樣,白忙了兩天。

你要實現客戶端斷開不影響HTTP伺服器的運行,就需要建立兩個不同的TCP_SERVER_pcb和TCP_CLI ENT_pcb結構體,分別用於客戶端和伺服器的TCP/IP協議棧控制。並且需要兩個不同的發送和接收緩存,不然是不行的。

你留下你的郵箱,我把我的常式發給你一份,然後你可以在此基礎上修改為HTTP伺服器

Ⅶ 單片機TCP/IP的已有的單片機TCP/IP協議棧

由於TCP協議棧的程序流程較為復雜,因為程序中需要處理對方發送過來的數據、發起的連接,而我方並不知道對方會何時進行什麼樣的操作,這就使得協議處理起來較為復雜。另外一個原因是單片機TCP/IP協議棧的穩定性是以非常重要的問題,一個穩定的協議棧需要在實際應用中經過長時間的測試,所以編寫一個穩定的單片機TCP/IP協議棧更加困難。為此另外一種選擇就是使用現有的TCP/IP協議棧。
1. eCos單片機TCP/IP協議棧:eCos TCP/IP棧是涉及與eCos操作系統/內核一起運行的。eCos(和TCP/IP棧)由大量處理其結構支持。eCos TCP/IP棧當前發布了一個測試版,作為一個單獨的模塊。
2. ZLIP 51單片機TCP/IP協議棧:ZLIP是專門為51單片機設計的嵌入式TCP/IP協議棧,可以在有操作系統和沒有操作系統情況下運行,具有代碼量適中、運行速度快、用戶介面簡單、兼容BSD socket介面的特點。實現了TCP、UDP、ICMP、ARP協議,ZLWeb實現了HTTP協議。支持多TCP連接、多UDP連接同時運行,支持在uc/os-II操作系統下多任務運行數據收發。可以用於51單片機TCP/IP上網解決方案。
3. uc/ip 單片機TCP/IP協議棧:uC/IP(mew-kip)是為為控制其設計的一個TCP/IP協議棧。代碼基於BSD(很像所有其它棧)但對非常小的覆蓋范圍功能有所減少。它當前為Linux和DOS目標而建。
4. BSD 單片機TCP/IP協議棧:BSD棧歷史上是其他商業棧的開始點,大多數專業TCP/IP棧(如帶Wind-River VxWorks內核的)是BSD棧派生的。這是因為BSD在BSD許可協議下提供了他們的棧,它們的許用證使你能以修改或未修改的形式結合它們的代碼而無須向創建者付版稅。與GPL許用證相比,如果你結合GPL源代碼,後者要求你的GPL中公開你的源代碼。
5. lwIP 單片機TCP/IP協議棧:lwIP(輕型)TCP/IP棧是TCP/IP協議棧的一個小型實現。它包括帶IP和ICMP的TCP和UDP傳輸層。還提供一個可選的BSD套結籽API。為了性能,還包括一個零拷貝API。LwIP協議棧是為嵌入式系統設計的並能適合40KB的ROM和幾百位元組的RAM。為了可移植性它用C編寫。
6. uIP 單片機TCP/IP協議棧:uIP是專門為8位和16單片機設計的一個非常小的TCP/IP協議棧。uIP完全用C編寫,以此可以移植到各種不同的結構和操作系統上。一個編譯的棧可以有幾KB ROM或幾百位元組RAM中運行。uIP還包括一個HTTP伺服器作為服務內容。
7. TinyTCP 單片機TCP/IP協議棧:TinyTCP棧是TCP/IP的一個非常小的簡單的實現,它包括一個FTP客戶。TinyTCP是為燒入ROM設計的並且現在開始對大端結構似乎是有用的(初始目標是68000晶元)。TinyTCP也包括一個簡單的乙太網驅動器用於3Com多匯流排卡。
8. WATTCP 單片機TCP/IP協議棧:WATTCP是為嵌入基於DOS的系統而設計的一個小型TCP/IP棧。它包括一個Real Mode DOS版本和另一個32位擴展環境版本。

Ⅷ 51單片機實現TCP/IP

51 + 嵌入式乙太網晶元.OK 了

到這里有你想要的:
http://www.bocon.com.cn/index.php?option=com_content&task=view&id=317&Itemid=670&gclid=CP70rIKr2aECFQMXewodwVLpHA

但價格有點貴.

普通51做不了 TCP/IP, 在下面找一款大 RAM(1K以上) 的搞定
http://www.mcu-memory.com/

不用寫 TCP/IP協議棧,只要會配置晶元就行了.主要工作集中到應用的開發.

如果你的時間多,或者資金不多的情況下,就用回你一開始說的方法.這時你只能還得要花一大半時間在移植協議棧方面(當然網上有移植好的,但還要時間消化).協議棧就用uIP 或 LwIP

Ⅸ 單片機做HTTP網頁顯示,那些數據代碼怎麼製作啊。

首先要有一個線路(如乙太網卡,GPRS模塊等),然後要有一個IP協議棧,能處理TCP/IP協議以及HTTP協議,然後才能給其它客戶端發送網頁,內容就可以通過填單加入了。

Ⅹ 什麼是單片機單片機可以做什麼

單片機可以實現工業控制。
單片機是一種集成在電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機系統。
實現功能如下
:通過輸入程序可以完成,機器人行走,可以通過溫度感測器,讀取溫度,然後通過液晶顯示出來,當然這一切都需要程序控制,程序就是我們通常說的軟體,而單片機是硬體的核心,通過軟體和硬體的配合,就可以實現自己的想法。工程師通過開發這個,可以生產處多種多樣的產品:汽車儀表,全自動洗衣機,機器人,甚至各種智能玩具等。

閱讀全文

與單片機實現http相關的資料

熱點內容
連漲啟動源碼 瀏覽:161
小奔運動app網路異常怎麼回事 瀏覽:447
php開啟壓縮 瀏覽:303
伺服器主機如何設置啟動 瀏覽:282
linux配置網路命令 瀏覽:774
一張照片怎麼製作視頻app 瀏覽:908
pythonweb和php 瀏覽:976
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:910
setfacl命令 瀏覽:172
linux子系統中斷 瀏覽:342
linux查看進程ps 瀏覽:224
知識庫系統php 瀏覽:623
小波變換壓縮圖像python 瀏覽:151
阿里巴巴程序員怎麼月入百萬 瀏覽:173
如何使用國外伺服器 瀏覽:188
燃燈者pdf 瀏覽:468
編譯器用數學嗎 瀏覽:7
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:736