一种嵌入式设备、通信方法及介质
文献发布时间:2024-01-17 01:27:33
技术领域
本发明涉及嵌入式设备技术领域,尤其涉及一种嵌入式设备、通信方法及介质。
背景技术
嵌入式设备移植网络协议栈后能够实现网口通信,通过网线与电脑端连接,运行于电脑端的网口通信工具与嵌入式设备进行数据交互,以UDP通信为例,其实现过程需要“绑定”电脑端的IP地址才能通信。为了容易实现连接,通常在嵌入式设备进行网口通信初始化时直接设定要连接设备的IP地址。在连接时需修改电脑IP地址,以使电脑IP地址与嵌入式设备设置一致,这些操作给使用人员造成不便。
发明内容
鉴于此,本发明公开了一种嵌入式设备、通信方法及介质,用以解决现有嵌入式设备对电脑进行通信需要人为更改电脑IP地址的问题。
本发明为实现上述的目标,采用的技术方案是:
本发明第一方面公开了一种嵌入式设备,嵌入式设备设有网络协议栈,网络协议栈包括ARP协议模块,嵌入式设备还包括IP自适应模块,其中:
ARP协议模块,用于接收电子设备发送的广播数据包,从广播数据包中解析出电子设备的IP地址;
IP自适应模块,用于根据电子设备的IP地址设定嵌入式设备的IP地址,使重新设定的嵌入式设备的IP地址与电子设备的IP地址处于同一网段。
进一步可选地,IP自适应模块还用于:
在根据电子设备的IP地址设定嵌入式设备的IP地址之前,判断电子设备的IP地址是否与嵌入式设备的IP地址同处一个网段;
若判断结果为否,再执行根据电子设备的IP地址设定嵌入式设备的IP地址的步骤。
进一步可选地,IP自适应模块还用于:
若判断所述电子设备的IP地址与所述嵌入式设备的IP地址同处一个网段,则绑定电子设备的IP地址。
进一步可选地,IP自适应模块还用于:
在绑定电子设备的IP地址之前,判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;
若不一致,再执行绑定电子设备的IP地址的步骤。
进一步可选地,ARP协议模块,还用于:
从ARP广播包中解析出电子设备的MAC地址;
将电子设备的IP地址和MAC地址添加到ARP缓存表;
嵌入式设备还包括通信模块,通信模块用于:
根据电子设备的IP地址从ARP缓存表中查找对应的MAC地址,根据MAC地址与电子设备进行网口通信。
本发明第二方面公开了一种嵌入式设备的通信方法,方法包括:
接收电子设备发送的广播数据包,从广播数据包中解析出电子设备的IP地址;
根据电子设备的IP地址设定嵌入式设备的IP地址,使重新设定的嵌入式设备的IP地址与电子设备的IP地址处于同一网段。
进一步可选地,在根据电子设备的IP地址设定嵌入式设备的IP地址之前,方法还包括:
判断电子设备的IP地址是否与嵌入式设备的IP地址同处一个网段;
若判断结果为否,再执行根据电子设备的IP地址设定嵌入式设备的IP地址的步骤。
进一步可选地,若判断所述电子设备的IP地址与所述嵌入式设备的IP地址同处一个网段,则绑定电子设备的IP地址。
进一步可选地,在绑定电子设备的IP地址之前,方法还包括:
判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;
若不一致,再执行绑定电子设备的IP地址的步骤。
进一步可选地,方法还包括:
从ARP广播包中解析出电子设备的MAC地址;
将电子设备的IP地址和MAC地址添加到ARP缓存表;
根据电子设备的IP地址从ARP缓存表中查找对应的MAC地址,根据MAC地址与电子设备进行网口通信。
本发明第三方面公开了一种计算机可读存储介质,其上存储有程序指令,当程序指令被一个或多个处理器执行时,一个或多个处理器用于实现根据第二方面中任一项所提供的方法。
有益效果:本发明能够基于ARP协议实现嵌入式设备与电子设备IP地址自适应的网口通信,省去了网口通信时电脑端的IP修改操作,大大方便了网口通信实现。
附图说明
通过参照附图详细描述其示例实施例,本发明公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一种实施例的网络协议栈的分层示意图。
图2示出了根据本发明一种实施例的嵌入式设备与电子设备的连接示意图。
图3示出了根据本发明一种实施例的嵌入式设备的通信方法的流程示意图之一。
图4示出了根据本发明一种实施例的嵌入式设备的通信方法的流程示意图之二。
图5示出了根据本发明一种实施例的嵌入式设备的通信方法的流程示意图之三。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
为解决现有嵌入式设备对电脑进行通信需要人为更改电脑IP地址的问题。本实施例第一方面公开了一种嵌入式设备,嵌入式设备设有网络协议栈,网络协议栈包括ARP协议模块,嵌入式设备还包括IP自适应模块,其中:
ARP协议模块,用于接收电子设备发送的广播数据包,从广播数据包中解析出电子设备的IP地址;
IP自适应模块,用于:根据电子设备的IP地址设定嵌入式设备的IP地址,使重新设定的嵌入式设备的IP地址与电子设备的IP地址处于同一网段。
嵌入式设备移植网络协议栈后可与电子设备实现网口通信。轻量化的网络协议栈可以用少量的资源实现一个较为完整的TCP/IP协议栈,包括ARP通信及UDP通信,其特别适合嵌入式设备网口通信功能的实现。本实施例中嵌入式设备所移植的网络协议栈优选轻量化的网络协议栈,如LWIP、SNP协议栈等。以LWIP为例,其可以用少量的资源实现一个较为完整的TCP/IP协议栈,该协议栈中不同协议所完成的功能是不一样的,某些协议的实现要依赖于其它协议,根据这种关系,可以将协议栈分层,如图1所示,低层协议为相邻的上层协议提供服务,是上层协议得以实现的基础。其中,物理层主要定义物理传输介质,链路层为MAC层,网络层主要包括IP协议、ICMP协议和ARP协议,运输层主要包括TCP和UDP协议,应用层主要为DNS、HTTP、FTP协议。本实施例涉及的ARP协议模块即上述网络层中的ARP协议。
其中电子设备主要为智能终端如电脑、手机等。下文以电脑为例进行说明。
嵌入式设备移植LWIP协议栈后实现网口通信,通过网线与电脑端连接,运行于电脑端的网口通信工具与嵌入式设备进行数据交互,如图2所示。以UDP通信为例,嵌入式设备需要“绑定”电脑IP地址才能实现网口通信。通常为了简单,在嵌入式设备网口初始化阶段直接设定要连接设备的IP地址,在连接时需修改电脑IP地址与嵌入式设备设置一致,这些操作给使用人员带来不变。本实施例基于ARP实现嵌入式设备与电脑IP地址自适应的网口通信。
具体地,在嵌入式设备上电后,MCU进行LWIP协议栈初始化;MCU调用ARP协议判断是否收到(ARP)广播数据包;若否,则继续轮询接收ARP广播;若是,则解析电脑IP地址;MCU根据电脑的IP地址重新确立嵌入式设备自身IP地址,保证两者在同一网段,只有处于同一网段内的两台设备才能直接通信。如电脑IP地址是172.16.88.88,嵌入式设备解析出电脑IP地址后可以将自身IP更改为172.16.88.xx从而保证两者在同一个网段。本实施例的嵌入式设备基于网络协议栈中ARP协议实现嵌入式设备与电子设备IP地址自适应的网口通信,省去了网口通信时电脑端的IP修改操作,大大方便了网口通信实现。
进一步,IP自适应模块还用于:在根据电子设备的IP地址设定嵌入式设备的IP地址之前,判断电子设备的IP地址是否与嵌入式设备的IP地址同处一个网段;若判断结果为否,再执行根据电子设备的IP地址设定嵌入式设备的IP地址的步骤;若判断结果为是,则绑定电子设备的IP地址。
本实施例在解析出电子设备的IP地址,根据电子设备的IP地址重新确立嵌入式设备自身IP地址之前,优选判断电子设备的IP地址是否与嵌入式设备自身IP地址同处一个网段,在两者不在同一网段时,在进行上述重新确立IP地址的操作,这样可以避免不必要的修改,优化IP自适应的网口通信实现方式。其中,绑定电子设备的IP地址主要是将电子设备的IP地址与嵌入式设备自身的IP地址进行关联设置。
进一步,IP自适应模块还用于:在绑定电子设备的IP地址之前,判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;若不一致,再执行绑定电子设备的IP地址的步骤。
本实施例在嵌入式设备绑定电子设备的IP地址之前,优选判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;若不一致,再执行绑定电子设备的IP地址的步骤,若一致,则无需重复绑定,进一步优化IP自适应的网口通信实现方式。
进一步,ARP协议模块,还用于:
从ARP广播包中解析出电子设备的MAC地址;
将电子设备的IP地址和MAC地址添加到ARP缓存表;
嵌入式设备还包括通信模块,通信模块用于:
根据电子设备的IP地址从ARP缓存表中查找对应的MAC地址,根据MAC地址与电子设备进行网口通信。
地址解析协议(Address Resolution Protocol,ARP)是通过解析IP地址得到数据链路层地址的,网口通信传输的是“帧”,帧里面包含目标主机MAC地址,两个设备进行通信,必须要知道对方主机的MAC地址,则需要ARP进行地址解析,所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。为了实现IP地址与网卡MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念,每台设备在其内存中具有一个ARP缓存表(ARPtable),这张表包含IP地址到MAC地址的映射关系,表中记录了
比如电脑向嵌入式设备发送一个数据包,电脑会先从已有的ARP缓存表中寻找该设备IP地址对应的物理地址,然后直接将数据写入以太网数据帧中让网卡进行发送即可,若没有该IP地址,电脑会先在局域网上广播一个ARP请求(目标MAC地址为FF-FF-FF-FF-FF-FF),广播的ARP请求发出后,嵌入式设备会接收到这个请求,并从收到的数据帧中解析出电脑主机的IP地址,此时嵌入式设备根据电脑IP确立自身的IP地址,确保两者在同一个网段,然后“绑定”电脑的IP地址并建立UDP通信,电脑此时向嵌入式设备IP地址发送UDP通信下的连接指令即可实现两者的数据交互,具体实现流程如图3所示。
本实施例第二方面公开了一种嵌入式设备的通信方法,如图4所示,方法包括S1~S2,其中:
S1,接收电子设备发送的广播数据包,从广播数据包中解析出电子设备的IP地址;
S2,根据电子设备的IP地址设定嵌入式设备的IP地址,使重新设定的嵌入式设备的IP地址与电子设备的IP地址处于同一网段。
本实施例涉及的嵌入式设备基于网络协议栈中ARP协议实现嵌入式设备与电子设备IP地址自适应的网口通信,省去了网口通信时电脑端的IP修改操作,大大方便了网口通信实现。
进一步,在S2中根据电子设备的IP地址设定嵌入式设备的IP地址之前,方法还包括A1~A2,其中:
A1,判断电子设备的IP地址是否与嵌入式设备的IP地址同处一个网段;
若判断结果为否,再执行S2;若判断结果为是,则执行A2;
A2,绑定电子设备的IP地址。
本实施例在解析出电子设备的IP地址,根据电子设备的IP地址重新确立嵌入式设备自身IP地址之前,优选判断电子设备的IP地址是否与嵌入式设备自身IP地址同处一个网段,在两者不在同一网段时,在进行上述重新确立IP地址的操作,这样可以避免不必要的修改,优化IP自适应的网口通信实现方式。
进一步,在执行步骤A2之前,方法还包括步骤B1,
B1,判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;
若不一致,再执行步骤A2。
本实施例在嵌入式设备绑定电子设备的IP地址之前,优选判断电子设备的IP地址是否与嵌入式设备当前绑定的IP地址一致;若不一致,再执行绑定电子设备的IP地址的步骤,若一致,则无需重复绑定,进一步优化IP自适应的网口通信实现方式。
进一步,方法还包括S3~S5,其中:
S3,从ARP广播包中解析出电子设备的MAC地址;
S4,将电子设备的IP地址和MAC地址添加到ARP缓存表;
S5,根据电子设备的IP地址从ARP缓存表中查找对应的MAC地址,根据MAC地址与电子设备进行网口通信。
下面结合图3,对本实施例所提供的方法进一步说明。如图3所示,该方法包括:
(1)嵌入式设备上电,MCU进行LWIP协议栈初始化。
(2)MCU调用ARP协议模块判断是否收到ARP广播;若否,则继续轮询接收ARP广播;若是,则解析电脑IP地址。
(3)判断解析出的电脑IP地址和上一次解析出的IP是否一致;若是,则继续轮询接收ARP广播;若否,则重新确立嵌入式设备自身IP地址,保证两者在同一网段,并绑定新的电脑IP地址。
(4)建立新的UDP通信,轮询接收ARP广播。
具体地,电脑向嵌入式设备发送一个数据包,电脑会先从已有的ARP缓存表中寻找该设备IP地址对应的物理地址,然后直接将数据写入以太网数据帧中让网卡进行发送即可,若没有该IP地址,电脑会先在局域网上广播一个ARP请求(目标MAC地址为FF-FF-FF-FF-FF-FF),广播的ARP请求发出后,嵌入式设备会接收到这个请求,并从收到的数据帧中解析出电脑主机的IP地址,此时嵌入式设备根据电脑IP确立自身的IP地址,确保两者在同一个网段,然后“绑定”电脑的IP地址并建立UDP通信,电脑此时向嵌入式设备IP地址发送UDP通信下的连接指令即可实现两者的数据交互。
本实施例第三方面公开了一种计算机可读存储介质,其上存储有程序指令,当程序指令被一个或多个处理器执行时,一个或多个处理器用于实现根据第二方面中任一项所提供的方法。
在本发明提供的不同实施例中,对于相同参数、名词、逻辑等应当理解为统一的含义,本申请对此不刻意在每个实施例中进行重复说明。
以上具体示出和描述了本公开的示例性实施例。应理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
- 一种用于嵌入式设备的应用程序升级方法及存储介质
- 一种专线通信方法、计算机可读存储介质和终端设备
- 一种即时通信的数据存储方法、装置、电子设备和介质
- 用于嵌入式设备串口通信的方法及装置、嵌入式设备、存储介质
- 交通信号控制方法、嵌入式设备、终端设备以及存储介质