尿蛋白是什么原因造成的| 宰相相当于现在的什么官| 无条件是什么意思| 尿发黄什么原因| 宫腔线不清晰什么意思| 偶尔失眠是什么原因| 墨绿的什么| 车标是牛的是什么车| 血压低是什么原因| 照顾是什么意思| 什么汤清热解毒去火| 太平猴魁属于什么茶| 荔枝什么季节成熟| 阳是什么意思| 官官相护是什么意思| 举目无亲是什么生肖| 网织红细胞高说明什么| 牛角尖是什么意思| 9.25什么星座| fap什么意思| 智力是什么意思| 开车压到蛇有什么说法| 包干价是什么意思| cbp是什么意思| 什么的火车| 什么叫道德绑架| 韩愈是什么朝代的| 樱菜是什么菜| 喜鹊叫有什么兆头| 牡丹花什么季节开| a7是什么意思| 日落西山是什么生肖| 抹茶是什么意思| 尿毒症可以吃什么水果| 三条杠是什么牌子| 碳素厂是做什么的| 什么的爱| 翎字五行属什么| 胃下面是什么器官| 白眼狼是什么意思| 脱相是什么意思| 白色的鱼是什么鱼| 便秘吃什么能马上排便| 额头容易出汗是什么原因| 心脏房颤是什么意思| 乌鸡白凤丸适合什么人吃| 驻村是什么意思| 白色虫子是什么虫图片| 左眼跳什么右眼跳什么| 小熊猫长什么样| 抽油烟机买什么样的好| 女生胸疼是什么原因| 航班是什么意思| 幽门螺旋杆菌抗体阳性是什么意思| 处女男和什么星座最配| 现在的节气是什么| 二郎神叫什么名字| 女人经常喝什么汤养颜| 晚上八点到九点是什么时辰| 轮状胎盘是什么意思| 扁桃体结石有什么症状| 左眼皮一直跳是什么预兆| 1992属什么| 体检前一天晚上吃什么| 植物油是什么| 甲乙丙丁戊己庚辛壬癸代表什么| 梦见红薯是什么意思| 膈应什么意思| 顺理成章是什么意思| 砂舞是什么意思| 俱往矣是什么意思| 小马拉大车什么意思| 十一月四日是什么星座| 属虎和什么属相相冲| 什么叫阈值| 肠脂膜炎是什么病严重吗| 小结节是什么意思| 绍兴本地人喝什么黄酒| 一什么湖面| 肛门胀痛什么原因| 检查脂肪肝做什么检查| 内分泌失调是什么意思| 为什么会内分泌失调| 海苔吃多了有什么坏处| 弯弯的什么| 起床口苦是什么原因| 吹气检查胃是检查什么| tnt是什么| 卡密是什么| 青蛙是什么| 什么是飞蚊症| 珍珠是用什么做的| 抄底什么意思| 微博是什么意思| 晚上喝什么茶好| 发小是什么| 圣水是什么| 医院介入科是干什么的| 鱼能吃什么| poem是什么意思| 月经血是黑色的是什么原因| 体面什么意思| 为什么同房会出血| 过期茶叶有什么用途| 光盘是什么| 胃疼吃什么药好得最快最有效| 乏了是什么意思| 4c是什么| 护理专业出来能干什么| 牙刷什么样的刷毛最好| 皮上长小肉疙瘩是什么| 1997年属牛的是什么命| 桑黄是什么树上长出来的| 八月2号是什么星座| doge是什么意思| 上厕所出血是什么原因| 脂蛋白a高有什么危害| 胎儿什么时候入盆| 结婚35周年是什么婚| 大姨妈来了喝红糖水有什么功效| 嗳气什么意思| 韧带和筋有什么区别| 又拉肚子又呕吐是什么原因| 面筋是什么| 一什么水井| 吃什么清肝火最快| b3是什么维生素| 肾气不足吃什么药好| pgr是什么意思| 毛刺是什么意思| q12h医学上是什么意思| 慢性胃炎伴胆汁反流是什么意思| 推车是什么意思| 染色体xy代表什么| 什么叫声母什么叫韵母| 心脏肿大是什么原因| hcg阴性是什么意思| mrt是什么意思| 木薯淀粉可以用什么代替| 白色糠疹用什么药膏| 大葱和小葱有什么区别| 梦见下大雨是什么征兆| 字号是什么意思| 三伏天晒背有什么好处| 二氧化碳有什么作用| 包皮手术挂什么科| 高什么阔什么| rdw是什么意思| 引渡是什么意思| 横行霸道的意思是什么| 缝纫机油是什么油| 13年属什么生肖| 10月10号是什么星座| 2012年是什么命| 桑黄是什么东西| 头疼应该挂什么科| 下面痒吃什么消炎药| 莓茶什么人不适合喝| 唯心是什么意思| 妙三多预防什么| kv是什么单位| 肠系膜多发淋巴结是什么意思| hpv感染有什么表现| 中药什么时间喝效果最好| 好景不长是什么意思| 益生菌不能和什么一起吃| 异食癖是什么意思| 喝酒之前吃什么保护胃| 主意正是什么意思| 梦见别人生孩子预示什么| 属马的和什么属相不合| 血小板升高是什么原因| 肝功能不全是什么意思| 鼻梁高的男人说明什么| 办护照需要什么条件| 腰肌劳损是什么原因引起的| 肺结节吃什么药好| 梁五行属什么| 灭活疫苗是什么意思| 夜晚的星星像什么| 乳腺结节应该挂什么科| 小肚子大是什么原因| 小肚胀是什么原因| 从容面对是什么意思| viscose是什么面料| hr是什么单位| 口干口苦口臭吃什么药| 12月11日是什么星座| 疗养是什么意思| 眼睛飞蚊症用什么眼药水| 米酒和黄酒有什么区别| 顺丰到付是什么意思| 耳朵响是什么原因| 楚怀王和芈月什么关系| 混不吝是什么意思| 核糖体是什么| 为什么文化大革命| 蛋白粉什么时候吃最好| 偏激是什么意思| 肺结核传染途径是什么| 毛泽东什么时候死的| 插画师是做什么的| 如常是什么意思| oo什么意思| 早上流鼻血是什么原因| 横批是什么意思| 像蜈蚣一样的虫子叫什么| 左室舒张功能减退是什么意思| 炮机是什么| 黑胡桃色是什么颜色| 奶奶的妈妈应该叫什么| 肺部增殖灶是什么意思| 敛肺是什么意思| 男孩叫什么名字| 四时是什么意思| 猪脆肠是什么器官| 夏令时是什么意思| 人生只剩归途什么意思| 晚上扫地有什么说法| 96615是什么电话| 夏天容易出汗是什么原因| 左肺结节是什么意思| vans属于什么档次| 6.20什么星座| 吃什么能流产| 什么清什么楚| 人心不足蛇吞象是什么意思| 右手大拇指抖动是什么原因| 35岁属什么的| 孕妇喝什么汤| 矽肺是什么意思| 嗓子烧灼感是什么原因| 贫血严重有什么症状| 湿吻是什么意思| nos是什么单位| 尿检蛋白质弱阳性是什么意思| 逝者如斯夫是什么意思| 佝偻病是什么样子图片| 八月是什么月| 黑豆加红枣有什么功效| 贫血吃什么水果| 花斑癣用什么药膏| 检查鼻炎要做什么检查| 翻墙是什么| 结节有什么症状| 槟榔肝是由什么引起的| 反刍是什么意思| 小孩脸上有白斑是什么原因| 插入是什么感觉| 什么叫总胆红素| 药流后需要注意什么| 什么是抗阻运动| 胃镜是什么| 纤维素是什么| 宫腔粘连是什么原因引起的| 2017年属鸡的是什么命| 刚怀孕吃什么水果对胎儿好| 茉莉花茶适合什么季节喝| caring什么意思| 什么叫卒中| 秋刀鱼在中国叫什么鱼| 猫的胡须是干什么用的| 什么是贵妇脸| 父亲节送什么好| 百度

无线模块的AT指令UDP透传设计

  作者:黄玉金 杨越 薛伟 张天成 时间:2025-08-06来源:电子产品世界
百度 科技至善,公益至诚。

编者按:ESP8266是一款国产的性能稳定、价格低廉的串口与WiFi桥接器,本文对单片机与ESP8266的接口模型和用AT指令配置ESP8266的UDP透传通信进行了分析与研究,提出了该模式下单片机程序设计的一种简化结构和操作步骤,应用在多路温控RTU设计中运行稳定。

作者 / 黄玉金1,2 杨越1,2 薛伟1,2 张天成3

  1.中国地质大学(武汉)自动化学院(湖北 武汉 430074)

  2.复杂系统先进控制与智能自动化湖北省重点实验室(湖北 武汉 430074)

  3.武汉朗德电气有限公司(湖北 武汉 430223)

  *基金项目:国家自然科学基金(编号:61503350)

  黄玉金(1978-),硕士,讲师,研究方向:无损检测技术和智能仪器设计。

摘要:ESP8266是一款国产的性能稳定、价格低廉的串口与WiFi桥接器,本文对单片机与ESP8266的接口模型和用AT指令配置ESP8266的UDP透传通信进行了分析与研究,提出了该模式下单片机程序设计的一种简化结构和操作步骤,应用在多路温控RTU设计中运行稳定。

引言

  ESP8266是上海乐鑫公司设计的高度集成的 WiFi SoC,它具有低功耗、紧凑设计和高稳定性的特点。ESP8266拥有完整的且自成体系的 WiFi 网络功能,既能够独立应用(集成了32位处理器,带片上SRAM),也可以用作串口-WiFi桥接模块,配合其他主机 MCU运行。

  在独立应用时,集成的处理器通过GPIO可以和外部传感器或模块进行接口,乐鑫提供了专门软件开发方案,其一下游模块生产商安信可(AI-Thinker)提供了Windows下的GUI方式的IDE实现SDK编程[1]。这种方法需要用户对ESP8266及其编程有相当的理解,一般需要较长的学习和开发周期。

  当ESP8266用作桥接模块配合单片机(如8051兼容单片机、ARM Cortex M0、M3等)使用时,可以采用UART串口、I2C或SPI与主控单片机接口,但是用得最多的还是串口。借由一套便捷的AT指令[2],单片机可以通过工作于station模式的ESP8266模块快速、稳定地连上WiFi,也可以生成WiFi AP,供其他设备连接,甚至还可以工作于AP和station共存的模式。

  ESP8266目前在智能灯泡、插座、开关等智能电器中有广泛应用,在工业、科研设备的联网方案中也被大量采用[3]。笔者在一个多路温控记录项目中就使用这个模块设计了RTU,该RTU在室外环境中也工作稳定。

  本文主要介绍采用AT指令的UDP透传通信的编程模型设计。采用UDP透传,用户的主控单片机可以用类似有线UART的方式实现WiFi传输,可以显著地降低开发难度,节约开发时间。

1 ESP8266的AT指令集

  根据数据手册[2],ESP8266的AT指令包含4个类型,用于实现基础功能、WiFi相关和TCP/IP相关的功能的操作。

  在设置指令中,根据设置参数的时间有效性又分为当前参数设置和永久参数设置。当前参数设置在下一次复位或被更改前有效,永久设置在设置被更改之前均有效。乐鑫为模块公司提供了AT指令模式的源代码和SDK,模块公司往往会对这些指令进行删减和调整(增加私有AT指令),以适应更小的FLASH或简化应用。本文采用安信可(AI Thinker)公司修改后的指令集手册[4]进行了测试。

  ESP8266的数据通信既支持UDP方式,也支持TCP(或SSL)方式。一般认为TCP协议面向连接,提供的服务更加可靠,但是在单片机中处理TCP通信控制错误会比较麻烦,笔者在设计温控RTU时就采用了数据报方式的UDP透传通信。本文对ESP8266的UDP AT指令实现通信透传时的编程设计进行了介绍和总结。

2 ESP8266的UDP透传的分析

2.1 UDP、IP和端口

  UDP(User Datagram Protocol,用户数据包协议),是一个简单的面向数据报的传输层协议。在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。

  UDP通信被认为是不可靠的通信,这里的不可靠主要指两个方面:报文是否送达不可靠,报文送达的顺序不可靠。前者是因为协议的设计没有要求对发送的数据进行确认,后者是因为数据报可能经由不同的路由而导致到达目标的时间延迟不一致引起的。对于报文是否送达虽然在通信层没有进行实现,但是用户(程序设计人员)可以在应用层面实现反馈确认;而针对报文顺序问题,考虑到ESP8266更多的是用于低通信载荷的场所,多数情况一个数据报就可以传递当前的全部数据,一般也不会造成困扰。

  ESP8266提供WiFi方式连接以太网,WiFi在OSI网络互联模型的通信层、数据层和有线的以太网有一些不同,但是对使用UDP或是TCP的应用者而言并没有区别,只是Internet通信的一种具体形式,不会影响到ESP8266模块的使用者。

  在使用ESP8266进行无线通信的开发时,还有2个基本概念需要理解:IP地址和端口号。在UART通信中,线缆的两端分别连接不同的设备,属于1对1的通信,两个设备不需要身份设置就可以相互区别;而通过网络进行信息传输时,因为网络上有很多不同的设备,就必须对设备进行标记区别。Internet网络中,这个身份设置就是IP地址。无论是TCP还是UDP,在通信中都会涉及到目标IP地址和源IP地址,用于对不同设备进行标记。

  端口则是编程的电子工程师需要理解的另一个重要概念。端口和IP(用于标志设备)一起使用,用于标志同一个设备中不同的功能或者关注的不同的通信数据。

2.2 ESP8266的工作模式

  ESP8266可以工作于3种模式:station模式、AP模式以及station和AP共存模式。工作于AP模式的ESP8266提供与路由器类似的功能,但是最多只能连接4个station,本文不做分析。在使用ESP8266 AT指令方式的进行数据交换的场所,主要有下面2种形式:

  1)主控板通过TTL UART连接 ESP8266模块,通过UART发送AT指令控制ESP8266连接路由器(AP)工作于station模式(图1a)。这种模式下,ESP8266和主控板之间相当于无线网卡和PC之间的关系;

  2)主控板通过TTL UART连接 ESP8266模块,通过UART发送AT指令控制ESP8266AP模块工作于AP+station模式,模块生成一个AP,同时本身也作为station收发数据(图1b)。这种模式下模块可以与连接到该模块所生成的AP的其他模块或者设备通信,可用于构建小型局域网(最多连接4个设备),但是更多的场景还是用于AIR-KISS等无线方式对该模块进行配置[5]。因为这种方式在应用中可能存在多个连接,需要动态传递控制信息,不能进行透传,也不在本文讨论之列。

2.3 ESP8266使用注意事项

  ESP8266工作于AT指令操作模式时,为了减少MCU解码的时间和简化内部协议栈的设计,对AT指令的设计和使用有一些额外的要求,在开发中注意到这些要求,会显著提高开发效率:

  1) 模块的默认波特率(出厂设置)是115200bps;

  2)AT指令必须大写,而且以回车换行符"rn"结尾;

  3)长度和时间间隔成帧机制。ESP8266 判断UART传来的数据时间间隔, 若时间间隔大于20ms,则认为一帧结束;否则,一直接收数据到上限值2KB,认为一帧结束。ESP8266模块判断UART来的数据一帧结束后,通过WIFI接口将数据转发出去。成帧时间间隔为20ms,一帧上限值为2KB。

2.4 AT指令透传设计

  MCU通过串口和ESP8266连接,发送控制信息或者数据到串口,ESP8266也将控制命令的执行情况和收到的数据从串口返回。要进行透传需要发送一系列的配置指令,模块执行命令或者传递数据的时间也通常不可忽略,而且有些指令会执行失败,对程序结构的设计带来巨大挑战。

  表1对进行透传通信配置过程中可能会用到的指令的执行时间进行了统计。测试时将ESP8266恢复至出厂设置,近距离( <3米)连接了一个TPLINK WR845N的家用无线路由器。从表1可以看到,执行简单的查询模块IP的指令耗时10ms,从给ESP8266发出连接路由器指令到反馈连接成功耗时5.2s。在计算机上通过串口测试ESP8266时,人工交互式执行系列指令很方便,如果某指令未能成功执行,用户可以根据需要动态获取模块状态,调整指令输出成功配置模块正常工作,但在单片机的程序设计中如果有些指令的执行时间太长,或者某条指令执行失败,相应的程序的运行逻辑就变得很复杂。

  在对ESP8266的指令表进行研究之后,发现在对ESP8266进行透传配置后,有一条指令在保存其透传设置后可以使得模块上电之后自动连接路由器并绑定预定的远程和本地的IP和端口,再次进入透传状态。在利用这个特性之后,主控板检测到ESP8266未能正常工作时,只需复位重启模块即可。对ESP8266模块的配置可以使用PC端软件交互操作,不用在单片机上额外配置,可以显著的降低编程难度。

  要将ESP8266模块配置为上电自动进入透传模式,一般先在PC上进行测试。在将模块与USB串口桥接器(如CP2102或CH340)的TX和RX交叉连接后,保证ESP8266模块有充足的3.3V的电源供应,然后按照下面的流程进行测试和配置:

  1.测试模块是否正确连接,即发送测试指令观察是否有反馈;

  a)注意模块的通信波特率需设置正确。一般通过给模块断电并重新上电观察是否接收到模块上电时从串口输出的状态信息(是否正确显示)来判断波特率和电路是否正确连接。

  b)发送AT测试指令观察是否有反馈。有的时候模块被配置后上电自动进入透传模式,从而导致AT测试没有反应,此时可尝试发送"+++"退出透传。注意退出透传指令必须单独发出,即发送"+++"时不能同时跟随发送"rn"或其他的字符,必须发送单独成帧的"+++"。

  2.发送 AT+MODE=1 配置模块工作于透传模式;

  3.发送 AT+CWJAP="ap","pw" 配置模块连接指定的路由器AP;其中ap、pw分别指预期连接的AP的名称和密码;

  4.发送 AT+CIPMUX=0 配置模块工作于单连接状态;

  5.发送 AT+CIPSTA="192.168.x.y" 配置模块使用指定的IP;其中 "192.168.x.y" 表示预期的IP;

  6.发送 AT+SAVETRANSLINK=1,"192.168.1.8",51081,"UDP",51080 配置模块透传远端IP "192.168.1.8" 和端口51081,自身在51080端口监听;

  7.发送 AT+RST 或者断电再加电复位模块进入透传模式(图1a)。

  经过上述配置,当ESP8266进入透传状态之后,主控板通过TX发送的数据自动发送到远端IP绑定的端口,远端设备发送到本地IP和端口的数据也自动从RX传入(图1a)。

3 结论

  本文用上述方法在设计的野外运行的多通道温控系统RTU上实现了WiFi无线传输,运行稳定可靠。后又专门设计了相应的软件实现了ESP8266 UDP透传的图形化的一键配置,可显著节约ESP8266 WiFi无线设计的开发时间。

  参考文献:

  [1]曹振民,陈年生,马强,等.基于ESP8266的无线控制电路设计[J].工业控制计算机,2017,(01):68-69.

  [2] Espressif Systems (Shanghai) Pte., Ltd., ESP8266 AT Instruction Set, Ver2.1.0, 2017.

  [3]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016,(09):52-56.

  [4]深圳市安信可科技有限公司,Espressif AT指令集(安信可修改版),Ver0.21,2015.

  [5]罗光玮.无线网络环境手机快速配置智能硬件方法研究[D].华中科技大学,2015.

  本文来源于《电子产品世界》2018年第1期第34页,欢迎您写论文时引用,并注明出处。

关键词: ESP8266 AT指令 透传 编程 WiFi 201801

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
海澜之家属于什么档次 菠萝和什么不能一起吃 三个牛读什么字 人定胜什么 itp是什么
婴儿大便有泡沫是什么原因 615是什么星座 测血糖挂什么科 七个月宝宝能吃什么水果 井是什么生肖
黑瞎子是什么动物 早搏应该吃什么药 宝宝反复发烧是什么原因 导语是什么意思 手指月牙白代表什么
加盟什么品牌好 一个目一个敢念什么 乳腺癌挂什么科 2333是什么意思 人体含量最多的元素是什么
肝在五行中属什么hcv9jop2ns1r.cn 碘酊和碘伏有什么区别hcv9jop1ns1r.cn 逍遥丸适合什么人吃hcv8jop3ns7r.cn 痔疮初期症状是什么hcv9jop5ns1r.cn 冒汗是什么原因cj623037.com
什么是烟雾病hcv7jop6ns5r.cn 红细胞分布宽度偏低是什么意思hcv9jop7ns3r.cn 什么是情人hkuteam.com iwc手表是什么牌子bjcbxg.com 贫血吃什么补血效果最好hcv8jop8ns8r.cn
什么情况需要打破伤风aiwuzhiyu.com 脸上爱出汗是什么原因ff14chat.com pr是什么缩写hcv7jop6ns8r.cn 阴茎硬不起来吃什么药hcv8jop0ns7r.cn 属兔适合佩戴什么饰品hcv8jop9ns2r.cn
肠痉挛吃什么药mmeoe.com 绿豆什么人不能吃hcv9jop2ns5r.cn 大便隐血弱阳性是什么意思hcv9jop3ns6r.cn 98属什么hcv9jop3ns2r.cn 大便出血是什么原因hcv9jop4ns8r.cn
百度