Ⅰ 单片机既然已经采用TCP连接了,可以直接发送数据,为什么还要使用http post这种方式发送数据
TCP属于是传输层(有关OSI七层协议,可参考网页链接)的协议!而HTTP协议是一种应用层协议!基于TCP的一种协议。HTTP 超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范。
Ⅱ 请教高手,用单片机做的Web服务器,如何在网页上显示静态图片求参考!
楼主还不了解HTTP协议,HTML代码及其他资源都不是一次发请求的,先请求HTML,服务返回类型为text/html 然后浏览器分析HTML代码 如果存在其他资源 比如图片的话 然后再去请求图片 服务求收到请求 然后 返回图片数据 HEAD类型就是 image/jpg 或者 image/gif image/png 之类,总之,客户端请求什么 服务器返回相应类型的内容就行了
Ⅲ 单片机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位扩展环境版本。
Ⅳ 单片机做HTTP网页显示,那些数据代码怎么制作啊。
首先要有一个线路(如以太网卡,GPRS模块等),然后要有一个IP协议栈,能处理TCP/IP协议以及HTTP协议,然后才能给其它客户端发送网页,内容就可以通过填单加入了。
Ⅳ Arino 能不能发送一个 get 或 post 请求到某个 web 服务器
可以,有两种方法供参考:
方法一:使用Arino配合W5100等SPI网卡模块,通过TCP,根据http协议格式,用字符串的方式进发送
方法二困档扰:使用Arino连接TCP串口透传模块,通过串口或软串口,一样根据http协议格式,用字符串的方式进发送
另外一些个人经验供参考:
1. 在发送前最好用TCP调试助手等工具对发送的字符串进行确认一次(可以用电脑想服务器端发送,以及Arino向本机发送各测试一次)
2. 由于网卡的缓冲区(Buffer)有限,且单片机的处理速度不高,因此尽量不要访问可蠢斗能返回大量数据的WEB服务器,汪旦否则可能发生Buffer满的问题。
Ⅵ 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编程便能完成产品开发工作的的网络功能开发部分。
(6)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),就认为接收数据开始。