欢迎来到《圣博凯斯》变频供水设备官网
精锐于专业 / 卓然于品质 -- 20年专注于供水行业,缔造至臻品质 -- 服务热线:0731-85783205 18932453205

单片机控制单片机_网页控制单片机

单片机TCP/IP是在单片机上运行的TCP/IP协议栈。 由于嵌入式网络设备越来越多,需要在嵌入式设备上实现TCP/IP协议栈,但嵌入式设备与PC不同,通常采用MCU (即单片机)而不是CPU作为核心处理器这需要在单片机上实现TCP/IP协议栈。 对于高端32位单片机,由于其性能已接近低端PC的CPU (如奔腾ii系列),与在PC上实现TCP/IP协议栈没有太大区别; 本文主要描述低端的8位(例如,51位)、16位单片机TCP/IP协议栈。

中文名称

单片机TCP/IP

外语名称

danpianjiTCP/IP

特长

程序存储区域和外部RAM区域没有什么特征

速度慢

协议栈

eCos单片机TCP/IP协议栈

协议栈

ZLIP51单片机TCP/IP协议栈

单片机TCP/IP单片机TCP/IP的特点

编辑

语音

在单片机上实现TCP/IP和在PC上实现TCP/IP是不同的。 参照《TCP/IP1单片机上的实现特点和方法》,可以看出其特征如下。

1 .速度慢:本文介绍,12M晶振的51单片机最快网络传输速度为25KB/s。 重要的是,TCP/IP需要每个传输字节的校验和计算和所需的副本。 这样就不够51单片机的处理速度了。 提高单片机TCP/IP速度的常用方法是简化协议栈。

2 .程序存储空间和外部RAM空间不大:一般单片机最大程序和数据空间为64KB。 TCP/IP协议通常需要缓存发送的数据,但最大的数据包为1500B左右,网络速度较大时内存消耗较大。 非嵌入式TCP/IP协议栈缺少64KB的程序和数据空间。

3 .单片机架构: 51单片机是8位机,如果需要完成相同的数据操作,32位PC机可能只需要10条指令,而51单片机

单片机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协议栈,可以在有操作系统的情况下运行实现了TCP、UDP、ICMP、ARP协议,ZLWeb实现了HTTP协议。 支持同时运行多TCP连接、多UDP连接,支持在uc/os-II操作系统上通过多任务发送和接收数据。 可用于51单片机TCP/IP互联网解决方案。

3. uc/ip单片机TCP/IP协议栈3360UC/IP(Mew-kip )是一种旨在对其进行控制的TCP/IP协议栈。 代码基于BSD,但与所有其他堆栈相似。 但是,非常小的覆盖功能正在减少。 目前为Linux和DOS目标构建。

4. BSD单片机TCP/IP协议栈: BSD栈历史上是其他业务栈的起点,有很多专门的TCP/IP栈,如带Wind-River VxWorks内核的这是因为BSD在BSD许可协议下提供了他们的堆栈。 这些许可证允许您以修改或未修改的形式合并代码,而无需向作者支付特许权使用费。 与GPL许可证相比,合并GPL源代码时,后者要求GPL公开源代码。

5. lwIP单片机TCP/IP协议栈: lwIP (轻量级) TCP/IP栈是TCP/IP协议栈的小型实现。 包括具有IP和ICMP的TCP和UDP传输层。 还提供了可选的BSD插座API。 为了性能,还包括qkdcg。 LwIP协议栈是为嵌入式系统设计的,适用于40KB的ROM和数百字节的RAM。 为了可移植性,用c写的。

6. uIP单片机TCP/IP协议栈: uIP是专门为8位和16单片机设计的非常小的TCP/IP协议栈。 uIP完全用c编写,可以移植到各种结构和操作系统中。 编译的堆栈可以在几千字节rom或几百字节的RAM上运行。 uIP还包括HTTP服务器作为服务内容。

7. TinyTCP单片机TCP/IP协议栈: TinyTCP栈是TCP/IP非常小的简单实现,包括FTP客户。 TinyTCP旨在烤ROM,似乎对大端结构很有用(初始目标是68000芯片)。 TinyTCP还包括用于3Com多总线卡的简单以太网驱动器。

8. WATTCP单片机TCP/I

P协议栈:WATTCP是为嵌入基于DOS的系统而设计的一个小型TCP/IP栈。它包括一个Real Mode DOS版本和另一个32位扩展环境版本。

单片机TCP/IP如何使用单片机TCP/IP协议栈

编辑

语音

用户在拿到一个单片机TCP/IP协议栈以后该如何处理呢。其中的处理分为两个部分:上层接口和下层接口。

4. 1 上层接口

用户使用单片机TCP/IP的目的实际非常明了,就是要实现数据的传送,即从PC机(或者另一个单片机)上传送过来的数据能够在本地单片机上接收,反之亦然。所以如果屏蔽底层的话,单片机TCP/IP协议栈就是一个传输数据的手段。所以最后归结到了使用send()、recv()函数即可。这就是使用单片机TCP/IP协议栈的核心所在。

但是事实上并没有这么简单,因为对于TCP需要有发起连接、接受连接、发送数据、接收数据、关闭连接等操作以配合数据的传输。TCP/IP协议栈一般为用户提供如下的接口:

1. 初始化协议栈和释放协议栈的函数接口,类似Init(), Release()之类的函数。

2. 提供类似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函数,用户调用此类函数进行发起连接、接受连接、发送数据、接收数据、关闭连接等操作。

3. 接受连接、接收数据、被动关闭的处理:由于此类操作是上位机发起的,所以TCP/IP协议栈必须提供一套机制来处理此类事件的发生。一般来说有两种方法:

a) 主动等待:例如使用BSD的recv()函数等待数据的到来。

b) 回调机制:采用类似MFC的OnReceive()函数的回调机制,也即是说在接收到数据的时候会自动调用OnReceive()函数。

那么用户如何使用以上的接口来实现远程控制、远程数据采集呢?方法很简单。

例如如果需要实现一个对LED灯的亮和灭的远程控制应用。首先PC机使用TCP/IP发送工具例如SocketDlgTest程序发送一个字节的“1”到开发板(根据开发板的IP地址发送)。开发板在OnReceive函数中发现收到的是“1”,那么就通过P1端口将灯打开;反之如果收到的是“0”则将灯熄灭。

如果是实现一个远程数据采集的应用,例如定时进行温度采集。首先PC机使用SocketDlgTest程序等待发来数据。开发板每隔一段时间采集一个数据,然后通过send()函数将数据发送给PC机(根据PC机的IP地址发送),这样PC就接收到了当前的远程温度数据。

4. 1 下层接口

下层接口是一个比较复杂的部分,实际上是TCP/IP协议栈和底层硬件的对接问题。如果用户将TCP/IP协议栈移植到自己的单片机系统上。由于硬件上存在一定的差异,就需要修改底层代码。这里需要包括:

1.网卡驱动:如果TCP/IP协议栈已经提供了网卡驱动,并且驱动和用户使用的网卡芯片一样,那么就相对容易一些。这里只需要修改网卡的基地址即可。否则需要自己动手写驱动程序。如果网卡采用RTL8019AS可以参考老古开发网的单片机与TCP/IP网络。如果网卡采用CS8900,可以参考《嵌入式 TCP/IP 协议单片机技术在网络通信中的应用》

2.TCP/IP底层接口。一般单片机TCP/IP需要底层为其提供定时中断、网卡中断处理的入口。底层需要做相应的处理。

猜你喜欢

  • modbus通讯协议功能码对应地址_modbus通讯协议功能码

    1.MODBUS功能代码概要下表列出了MODBUS支持的部分功能代码。用十进制表示。表1.1MODBUS的部分功能代码代码中文名称寄存器PLC地址位操作/字操作操作数01读取线圈的状态00001-09999位操作单个或多个02读取离散输入状态10001-19999位操作单个或多个03读保持寄存器40001-499

  • cpu与plc有什么区别?_plc与cpu有什么区别

    其实际,PLC就是一个完整bai的单片机系统du,你可以把它形像化为一zhi个功能专一的单片机开发板dao.这个单片机开发板由电源+单片机+继电器或MOS管+端子等等组成.现在的PLC,多用32位单片机,也有16位,早很多年前的PLC,还有用8位的,比如西门子曾经用的是51单片机.而梯形图烧录到PLC后内正常运行

  • 初学者怎样看懂单片机代码_单片机代码怎么读懂

    就数据存储类型而言,8051系列有片上、输出程序存储装置、片上、输出数据存储器,片上程序存储器还分为直接地址区域和间接地址类型,分别为code支持根据idata和51系列特色设定的pdata类型,通过使用不同的内存,程序的执行效率不同,与生成C51程序的ANSI-C略有不同,为SAMLL、COMPACT、lll

  • powerbus通讯协议_powerbus原理图

    通过自己的理解,将modbus工作的全过程归纳为以下几个图。希望你能更形象地从整体的角度理解整体的原理。由于篇幅有限,图中的字体很小,省略了一些程序的语句。请结合freemodbus的源代码进行确认。串行端口相应地设置有基于STM32的USART2。另外,应该有三个枚举概率,有识别和区别。1)emb事件类型、e

  • modbus通讯协议写命令_modbus通讯协议报文

    “只要想做好事,就一定会利用那个器皿”。在研究开源Modbus协议FreeMODBUS之前,介绍一种主要用于Modbus协议仿真和Modbus从设备开发的ModbusPoll软件。本文用图解说明了ModbusPoll软件对Modbus协议的仿真过程。首先,在计算机上使用“虚拟串行驱动程序”软件虚拟化两个互

  • 扬修电力:电动执行器总线控制及通讯协议总结

    在阀门执行器现场总线控制系统中,维持系统而有秩序工作的是系统通信所使用的各种现场总线协议。在国际性现场总线标准没有完全统一之前,阀门或执行器专业公司出于自身的利益,开发了各自的