精华内容
下载资源
问答
  • EC20和esp32 串口wifi透传
    2022-01-10 21:00:06

    方案
    EC20和ESP32通过串口SLIP接收传输WIFI数据
    数据流
    EC20上层应用-> EC20通过slip串口发送数据->ESP32接收到数据->传输到ESP32 TCP层 ->传输到ESP32的IP层(通过IP地址的不同选择netif接口转发数据)
    注意
    EC20和ESP32在wifi这里对外是当作一体的,所以EC20设置的IP地址可以是ESP32获取到的wifi地址,slip需要设置一个netif,wifi有一个netif,在IP层通过src地址和dest 地址选择相应的netif进行转发

    SLIP
    • 定义
    ①IP数据包以END(0xc0)的特殊字符结束,而有些数据报的开始处也传一个END字符以防止数据报到来之前的线路噪声当做数据报内容。
    ②若IP报文中某个字符为END,那么就连续传输两个字节oxdb和oxdc来取代(oxdb这个特殊字符被称作SLIP的ESC字符)。
    ③若IP报文中某个字符为ESC,那么就连续传输两个字节oxdb和oxdd来取代。
    • 缺陷
    ①数据帧中没有类型字段,这代表若一条串行线路上使用SLIP进行传输数据报,那么其不能使用其他协议。
    ②每一段必须知道对方的IP地址且无法把本段的IP地址通知给另一端。
    ③SLIP没有在数据帧中加入检验和,若SLIP传输的报文发生错误,只能通过上层协议来发现其错误。
    • MAC 层协议,三种实现方式
    1. For NO_SYS==0, an RX thread can be used which blocks on sio_read() until data is received.
    2. In your main loop, call slipif_poll() to check for new RX bytes, completed packets are fed into netif->input().
    3. Call slipif_received_bytes from your serial RX ISR and slipif_process_rxqueue() from your main loop. ISR level decodes packets and puts completed packets on a queue which is fed into the stack from the main loop (needs SYS_LIGHTWEIGHT_PROT for pbuf_alloc to work on ISR level!).
    • 注意
    选择的是第一种,第三种因为没法在中断中调用slipif_received_byte,开始选择第三种的时候一直在丢包。

    EC20需要设置
    • 波特率配置为3Mbps,只能通过EC20串口的接口去配置 (也可以通过stty -F /dev/ttyHS0 ispeed 3000000 ospeed 3000000 cs8)
    • slattach /dev/ttyHS0 -p slip -m -F &
    • ifconfig sl0 192.168.1.xx pointopoint 192.168.1.yy up (第一个IP是设置EC20的IP(ESP32 WIFI GOT IP获取到的IP),第二个IP是ESP32 slip设置的ip)
    • route add default gw 192.168.1.yy
    • 设置DNS vi /etc/resolv.conf
    nameserver 8.8.8.8
    注意
    开始调试的时候可以使用115200 bps 设置方法:slattach /dev/ttyHS0 -p slip -s 115200 -m -F &
    • linux ubuntu 1804上配置slip协议和ESP32进行调试
    1.slattach -s 115200 -p slip /dev/ttyHS0 -m &
    2.ifconfig sl0 192.168.6.x pointopoint 3.192.168.6.y up
    3.route add default gw 192.168.6.2y
    3.ping 192.168.6.y
    • 调试
    可以ping 局域网ip,网关,外网ip,运行http程序

    SLIP 需要设置
    • 配置slip ip地址,网关,掩码
    LWIP

    数据流
    上行: slipif_loop_thread–>slipif_rxbyte_input–>slipif_rxbyte(slip 接收数据并解决)–>netif->input–>tcpip_input()–>tcpip_inpkt–>tcpip_thread–>ip4_input–>ip4_forward(根据src地址判断从WIFI接口输出)–>netif->output–>low_level_output–>esp_wifi_internal_tx
    下行: wlanif_input–>netif->input–>-->tcpip_input()–>tcpip_inpkt–>tcpip_thread–>ip4_input–>ip4_forward(根据dst地址判断从slip接口输出)–>netif->output–>slipif_output_v4–>slipif_output
    注意: 通过netif_add设置数据给TCP层的接口,在slipif_init的配置slip输出函数,wlanif_init配置wifi输出函数

    IP &TCP校验
    • IP校验
    1、 把校验和字段置为0;
    2、 对IP头部中的每16bit进行二进制求和;
    3、 如果和的高16bit不为0,则将和的高16bit和低16bit反复相加,直到和的高16bit为0,从而获得一个16bit的值; 4、 将该16bit的值取反,存入校验和字段。
    • TCP校验
    tcp校验需要将ip伪首部、tcp报头、tcp数据分为16位的字,然后进行累加(如果总长度为奇数个字节,则在最后增添一个位都为0的字节 ),最后对累加的和进行按位取反即可。
    Ip伪首部包括源ip地址(4字节)、目的ip地址(4字节)、协议号(两字节)、tcp包长(2字节) ,共14字节。

    抓包工具
    • wireshark
    可以抓本机ip的报文,抓别的ip的报文(需要专门的网卡)
    注意:
    wireshark中IP头部没有进行校验判断,TCP协议中也没有进行数据的校验判断
    • omnipeak
    抓包数据比较详细,需要有专门的无线网卡
    • 路由器抓包 可以使用h3c路由器抓包 网址192.168.1.1

    更多相关内容
  • SimpleWiFi串口WiFi模块一键配置功能 概述 目前,在嵌入式领域,智能家居、智能工业、智能公交等等控制中,WiFi已经成为了一种普遍被采用的技术。 在智能工业控制,或者智能家居的主控系统中。单片机,成为了...

                                      SimpleWiFi串口WiFi模块一键配置功能

    概述

               目前,在嵌入式领域,智能家居、智能工业、智能公交等等控制中,WiFi已经成为了一种普遍被采用的技术。

             在智能工业控制,或者智能家居的主控系统中。单片机,成为了中控系统的控制中心。而,如果采用WiFi这种无线技术的话,大家普遍采取的方法是采用现有市面上的串口WiFi模块,或者串口转WiFi模块,也有称为UART WiFi模块的。SimpleWiFi串口WiFi模块即是一种支持一键配置的串口WiFi模块。

             但,WiFi这种无线网络是需要配置才能够实用的。也就是说,如果使用WiFi网络,必须将网络的基本的信息。保存到串口WiFi模块,或者保存到串口转WiFi模块中。因为WiFi需要保存的参数是比较专业的。比如:SSID、加密类型等等,甚至还有要求使用BSSID绑定的功能。这些,专业的术语对于我们普通的家庭用户来讲,过于专业。尤其是随着智能家居的普及更是显得尤为突出。因为,对于大部分用户,还是仅仅会输入密码。其他的操作的话,就显得繁琐了。SimpleWiFI模块提供的这种一键配置的功能,可以使用户简单的完成上述操作。

    原理

              我们现简单介绍一下一键配置的基本原理:我们知道WiFi产品买到家里以后。产品对您家里面的无线网络的设置是一无所知的。比如,您家路由在几信道、什么加密模式、加密密码、甚至连叫什么名字都不知道。但,还要实现连接到家里面的无线网络,因此需要一种简单的方法。来得知家里路由器的一些信息。我们称这种无线的配置方法叫做一键配置。一键配置,其基本的工作原理是,模块在出厂值的时候,配置为类似蹭网卡的一种工作模式,串口WiFi模块在这种工作模式下,能够监听到环境中的所有的WiFi的数据传输。比如:我们可以让SimpleWiFi模块工作在监听模式下,那么此时模块就可以监听到空间中的所有的WiFi通讯。SimpleWiFi模块会根据监听到的WiFi通讯的帧,分析出无线路由器当前的工作信道、加密类型等必要的信息。然后,模块将这些必要的信息保存下来。这样就实现了一键配置的功能。

              用户,在使用一键配置的方法的时候,只需要在智能手机,或者智能终端上面,输入密码这一项即可。其它的所有的参数都是一键配置软件和SimpleWiFi模块之间进行协商的过程。这样,大大减少了用户的配置过程,以及避免了用户接触专业术语的机会。仅仅告诉客户,我们的智能家居的产品,只需要您输入您家路由器的密码,然后,点击一个按键。这就是现在市面上所见到的被称之为串口WiFi一键配置的方法原理。

    特性

         一键配置,虽然看着简单实用。但是,也有其弊端。一键配置我们可以总结出下面几个特性:

              1、配置方法简单易用。不需要接触专业的术语。

              2、配置方法是可加密,不用担心路由器密码泄露。

              3、比传统的软AP的配置方法,需要更长的配置时间,这个应该算是一种弊端。

              4、一键配置可能会出现配置失败,由于模块工作在类似蹭网卡的一种模式,因此有可能失败。

    实现

          具体的实现过程是这样的:

               首先:SimpleWiFi模块必须支持一种类似于蹭网卡的工作模式,这种模式下,串口WiFi模块可以将环境中的所有的WiFi通讯的过程进行监听。SimpleWiFi模块可以进入WiFi监听模式,此模式下模块可以进行WiFi数据的监听工作。

              然后:智能手机或者智能的WiFi终端,将必要的信息发送到空中。这些必要的信息有以下这些:SSID(无线路由器名称)、加密类型、加密密钥等。

               最后,SimpleWiFi模块在空中分析到自己所需要的信息后,就可以进行保存。

    应用

             我们可以看下面的这张示意图:

     

              我们相信随着智能家居的逐渐普及,这种一键配置的方法会被广泛的采用的。因为,我们的客户肯定是五花八门的。有可能是年长的长辈、有可能是未成年的儿童,他们想使用这种智能家居的产品的话。我相信肯定会用到这种一键串口WiFi的配置方法的。

     

     

    展开全文
  • SimpleWiFi串口转WiFi模块,支持3个UART接口。可以同时与多个后台服务器和手机保持长连接。同时,与多个后台服务器进行实时透传数据。
  • 串口3串口转WiFi透传模块简介 我们知道在现在物联网时代,串口设备通过WiFi联网上传数据已经有很多的场景需求。但是,现在市面上的大部分串口转WiFi模块都仅仅支持一个串口的数据透传应用。 如果串口转WiFi...

                                             多串口3串口转WiFi透传模块简介

           我们知道在现在物联网时代,串口设备通过WiFi联网上传数据已经有很多的场景需求。但是,现在市面上的大部分串口转WiFi模块都仅仅支持一个串口的数据透传应用。

           如果串口转WiFi模块仅仅有一个串口资源进行透传,那么它的应用场景是如下的:

       

            在单串口串口转WiFi应用场景中,串口设备只能与一台电脑或者服务器进行通讯。这样在很多应用场景,尤其是那些即需要与后台服务器通讯吗,同时,还需要局域网通讯的场景来讲。单串口转WiFi模块就显得不足了。

           SimpleWiFi串口转WiFi透传模块S2W-M02同时支持3个UART接口。也就是说SimpleWiFi模块可以同一时刻同时与3个后台服务器保持长连接。那么,这样一个串口转WiFi模块就可以,同时与后台服务器和局域网的电脑、局域网手机,同时通讯了。就不需要分时切换。反应速度已经成本就大大降低了。

           SimpleWiFi串口转WiFi模块应用场景如下:

       

     

            由上图所示的应用架构可以看出。如果使用SimpleWiFi串口转WiFi模块,那么串口设备可以同时与几个服务器,或者手机进行透传数据。根本不需要切换连接。3个服务器都可以保持长连接通讯。大大降低了切换的时间成本。硬件成本也大大降低了。

          

    展开全文
  • 本文详细描述了,串口转WiFi透传模块加电后的联网过程。并配合着commview抓包工具进行分析。本文以SimpleWiFi的S2W-M02为例说明联网过程。
  • ①将MS_Uart2Wifi模块连接到目标设备上可实现串口转wifi透传功能。 ②长按MS_Uart2Wifi模块上的配置按键三秒,MS_Uart2Wifi模块进入配置模式,配置指示灯常亮后,用户通过手机APP输入要wifi模块将要连接的路由器名称...
  • Linux下网络串口透传功能的实现,c语言程序,在使用前请阅读readme.txt
  • 本文从UART串口WIFI模组的”透传“概念的本质入手,解释了”透传“的实际机理,点出了UART串口透传,其目的是为了避免低波特率接口下的低效通信,但同时恰恰是其通信不可靠、不灵活、也不利于大块数据传输的根源...

    前言

    本文从UART串口型WIFI模组的”透传“概念的本质入手,解释了”透传“的实际机理,点出了UART串口型模组的“透传”,其目的是为了避免低波特率的UART接口的低效通信,但同时“透传”恰恰又是其“通信可靠性不高、通信不灵活-做服务器无法支持多客户端、也不利于大块数据传输"等局限性的根源

    何谓“透传”

    ”透传“是一些UART串口型WIFI模组等部件上常见的概念。单片机等主机通过串口向模组发送的任何数据,都会被模组直接转化无线TCPIP协议包的数据内容,直接发送出去,而不必重新包装;而通过WIFI/TCPIP所接受到的数据内容,也直接通过串口发送给主机,而不必再进行协议的解析。看起来好像串口的数据完全直接对接TCPIP协议的payload数据域,所以称之为“透传”。在透传方式下,不再能使用任何查询或控制指令,一切与主机UART接口所交互的,都被当成是“有效载荷”的“数据”。

    UART串口型WIFI为何一般都要支持所谓的“透传”

    UART串口型WIFI模组需要支持所谓的透传的目的,是为了确保串口通信的效率,这对于本身波特率较低的UART串口型WIFI模组来说,显得尤其重要。我们对照一下非透传方式下的UART串口的串口通信,就比较容易理解了(其实,UART串口型WIFI模组的通信,不仅仅包括所谓的“透传”模式进行通信,也包括非透传模式进行通信)。

    比如,假设我们希望通过串口发送一个数据,通过非透传模式,则可能需要如下方式通过串口发送字节串:

        AT+CIPSEND=<link>, <len>, <data>\r\n

    可以看到,我们的实际目的只是发送其中的<data>部分,但是每次发送前,都需要额外地向串口额外传送一大串字符串 ”AT+CIPSEND=<link>, <len>“。对于串口这类慢速的设备来说,这种字符串的写入,是比较浪费和低效的。

    设想一下,假设我们只需要多次发送5个字节,对应的AT命令可能是

        AT+CIPSEND=0,5,12345\r\n

    可以看到,总共需要向串口传送22个字节(包含\r\n),但从串口通信的角度来看,效率就降低到了串口通信速度的 5/22!这对于本身波特率不高的UART串口通信来说,这一点对于有效吞吐速度的负面影响越发显得相当严重。如果我们每次都需要多次发送数据,固定字节串“AT+CIPSEND=0,5,”都需要被重复发送,这种低效率的浪费,将导致UART串口型WIFI模组的有效吞吐速率,在本身因为UART波特率受限而不快的基础上,再打一个很大的折扣。

    既然每次发送的“AT+CIPSEND=0,5,"都是重复一样的,那为何不能采取一种策略,就是只要向串口输入一次,以后由模组自动”加上“或”理解“成带有这些重复的固定串,这样,以后只需要输入数据部分,之前的固定串部分不用重复输入,于是就可以大大节省慢速串口的浪费而提高效率了。

    这就是所谓的透传的含义,即,只需要输入一次那些固定字节串(对应的是我们”进入串口透传“模式之前做执行的AT指令),以后再写入串口的数据,就自动都当成解析<data>了,从而确保了通信的高效。因此,“透传”是慢速的UART串口型WIFI模组,确保速度不会因为低效而进一步降低的一个手段

    UART串口型WIFI采用“透传”方式的弊端局限性 -- 导致通信的可靠性降低和功能受限

    从上面的分析可以发现,一旦进入透传模式,以后所有串口交互的数据,都会自动转化为TCPIP协议包的”数据“域,也就意味着,所有的控制查询等”指令“将不再有效。因此,当我们在做”透传“时,如果想执行某些查询(比如查询当前的网络连接状态、或者通信的成功与否)或控制(比如选择另外某个客户端上进行发送),就必须先退出透传模式,进入非透传模式,来执行这些查询或控制。这也就是我们所知道的,透传模式和非透传模式的切换。

    即,透传方式下的数据通信和非透传方式查询控制,不能同时并存,这导致了在收发数据的同时,无法通过查询或控制状态,来确保通信的可靠性,并影响通信包的长度,最终限制可靠通信的速度。比如,正在透传通信的过程中,如果出现网络中断或者阻塞,就无法通过相关的指令(只有在非透传模式下才可以执行的命令)查询得到,而必须先中止当前的传输来查询得到。这对于网络通信来说,会大大降低或限制其通信的可靠性、对长包的兼容性、以及有效的通信速度。这也是为何UART串口型WIFI模组很难做到较高速度下的可靠通信。

    又有,当透传模式下的WIFI模组作为TCP服务器来使用时,就无法支持多个客户端通信了,因为TCP服务器一般需要区分所接收到的数据,来自哪个客户端,以及切换指定向哪个客户端发送数据,这些,都需要在数据通信的同时,进行必要的查询和控制,这是透传模式下,所无法实现的。

    对于这个问题的处理,采用ESP8266芯片的串口型WIFI模组,在透传模式下,基本上都直接禁止了对TCP服务器的支持,以避免逻辑混乱;而采用TI CC3200方案的某些知名厂家的串口型WIFI模组,则采用不加区分的客户端方式,也就是说,做TCP服务器时,实际只支持一个客户端。

    总结之,UART串口型WIFI模组进行串口透传具备以下局限性:

       1、通信可靠性受限,因为无法及时获取当前的通信状态,并进行相应的处理

       2、通信包的长度和速度受限,因为可靠性降低了,单个包的长度和速度就无法太快

       3、通信的功能受限,例如透传模式下,无法支持多客户端

    因此,UART串口型WIFI模组做透传,一般多用在非多客户端、对速度、包长、可靠性要求不高的IoT控制场合,可靠性通过上层应用层的握手和重发发包来进行补偿

     

    USB、SDIO、SPI等接口的高速WIFI模组为何一般不推荐用“透传”?

    通过上面对UART串口型WIFI模组的透传分析,很容易就知道了这个问题的答案:

    (1) USB/SDIO/SPI等接口本身的波特率速率,一般都远远高于UART,所以,不存在UART串口本身因为速率太慢成为瓶颈而需要确保效率的问题。这些接口的WIFI模组的短板,一般不在于这些主机接口的波特率,而往往在于现有WIFI 射频技术本身在环境下的实际吞吐局限,或者模组本身内部的处理效率,所以,在主机接口这里进行类似UART那样的效率提升优化的相对价值不大。

    (2)不采用透传方式,还可以规避因为透传而导致的上述局限,从而可以自由地一边进行长数据通信的高速进行,一边又可以自由地进行查询控制确保通信的可靠性和灵活性。

    (3)USB、SDIO、SPI接口的高速型WIFI模组可以自由的进行长包发送和同时支持多个链接以及多个客户端。

    所以,在这些接口类型的模组上,询问是否支持”透传“,类比询问驾驶飞机是否支持手动挂档。在手动挡汽车上,可能需要挂档换挡以及踩离合等严格的顺序或配合流程,但对于飞机驾驶,则不存在这类话题。

     

    展开全文
  • MQTT+串口(usart)透传

    2020-03-31 11:14:33
    采用mqtt技术+wifi串口透传 wifi芯片为HF-LPD100,联网部分徐对照串口AT指令操作。 代码环境为正点原子战舰开发板,亲测可用。
  • 3串口串口串口以及2串口转WiFi多跳通讯实现三 ——网关发现协议 串口转WiFi在工业控制领域广泛的应用,工业控制领域通常距离比较远环境比较复杂。所以就有超远距离通讯的需求,通常我们使用多跳的方式实现WiFi...
  • SimpleWiFi串口透传WiFi联网过程协议详解
  • WIFI双向透传; 通过串口自动上传(更新)Arduino程序无需再人工干预。
  • 基于安信可的WIFI模块,使用的是SDK编程,创建WIFI热点,一旦手机连上该热点,就可以通过TCP和模块进行通讯,把手机的数据传递给串口;模块串口收到的数据也直接透传给手机
  • 之前有个项目,要求无人机与地面站直接的通信由之前的数改为wifi,搜了一圈,很多都属于手工调试,而且包含复杂的界面。然而实际上需求要求稳定,具有自动化。因此为了满足这个需求只能是自己开发一个软件。 在...
  • esp8266 wifi透传模块固件 esp8266 wifi透传模块固件 esp8266 wifi透传模块固件 esp8266 wifi透传模块固件
  • ESP8266串口转wifi/wifi转串口模块

    千次阅读 2020-07-13 20:43:13
    ESP8266串口转wifi透传模块(MS_Uart2Wifi) 简介 模块功能 模块使用步骤 效果展示 使用ESP8266开发板进行试验 简介   最近几天做了一个串口转wifi模块,平常我们使用单片机往往用串口通信或者通过串口在pc上显示...
  • RMS7688A WiFi模块可应用于家庭自动化的桥接中心。...RMS7688A物联网智能网关工控串口数据透传WiFi模块支持两种运作模式:IoT gateway 模式与 IoT device 模式. 在 IoT gateway 模式中,可透过 PCIe 界面连接至
  • 功能:解析串口数据(此程序中以回车符作为解析对象,如需要解析其他字符可以自行参考修改),并将解析后的串口数据通过Wi-Fi透传。 测试过程:使用PC端串口助手软件,通过串口分别按照115200至1382400波特率(实际...
  • 四博智联DT-6_TTL-WiFi+透传产品使用手册.pdf 四博智联DT-6_TTL-WiFi+透传产品使用手册.pdf 四博智联DT-6_TTL-WiFi+透传产品使用手册.pdf
  • 本文描述了在嵌入式WiFi模块中常常使用的一键配置的原理。市面上能见到的串口嵌入式WiFi的一键配置都是基于这个原理,只是大同小异而已。
  • DT-06无线WiFi串口透传模块TTL转WiFi兼容蓝牙HC-06
  • 本文将描述WiFi终端成功联网后,WiFi模块与无线路由器之间的秘钥协商过程。详细介绍了WPA/WPA2的密钥协商过程。
  • 并且该系列串口转WiFi模块可以实现2串口、双串口、3串口和多串口WiFi无线通讯,各个通讯相互完全独立,可以同时支持多个串口设备进行数据通讯。能够实现多跳路由器算法。上述算法已经大量的应用到了现场,能够实现...
  • 串口转WiFi在工业控制领域广泛的应用,通常我们使用多跳的方式实现WiFi远距离传输。,我们可以在A与C之间增加一个模块B,这样,B充但中继的作用。以下以simpleWiFi的S2W-M02以及S2W-M03中所实现的多跳机制进行描述。...
  • 我们知道串口模块都是透传模式进行通讯的,所以需要我们事先把参数设置到模块中,模块才能自动的连接无线路由器和服务器进行通讯。本文我们将介绍串口wifi模块的几种参数配置方法。
  • WG219是一款基于ESP8266芯片的低功耗小(深度睡眠模式电流18uA)尺寸UART-WiFi透传模块,符合802.11b/g/n无线模块标准,专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网...
  • 以下内容是使用MARS-WIFI-MQTT串口透传工具对TLINK平台中的MQTT协议进行的测试,请用户使用自己的帐号创建设备进行测试。 模块手册在下面连接中找: 链接:https://pan.baidu.com/s/1V9hYdzxtpKGdeks7H8AW1g 提取码...
  • ESP32 WIFI透传固件

    千次阅读 2017-09-29 18:04:38
    这个固件采用一键配网ESPTOUCH,透传用到的串口是UART2,开机自动回连以前的WiFi。波特率设置为115200,串口接收的字符以\r\n为结束标志位。  笔者暂时没有看到乐鑫提供关于ESP32API的详细文档,相对于ESP8266来说...
  • esp8266模块作为串口wifi进行数据透传功能的设定方法 (1)给esp8266模块烧录官方AT固件,固件可在官方网站上下载,下图为烧录工具的界面 (2)借助ESP8266调试工具V2.0(或者通过向模块发送AT指令)进行...
  • 通过如下设置,实现了esp8266作为串口wifi进行数据透传的功能,即此时wifi模块只负责消息的接收和发送,不对消息进行任何的处理,具体的说:此时的wifi把来自上位机(此处为手机)的数据通过串口传给下位机(如...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,037
精华内容 814
关键字:

串口转wifi透传