首页> 中国专利> 一种基于lwIP协议栈多网口多连接的通讯系统

一种基于lwIP协议栈多网口多连接的通讯系统

摘要

本发明公开了一种基于lwIP协议栈多网口多连接的通讯系统,包括逻辑处理单元、外接网口单元、存储单元和时钟单元;逻辑处理单元包括CPU,在CPU上移植μC/OS?II系统,并在μC/OS?II系统上移植入开源的lwIP协议栈;逻辑处理单元用于处理外接网口单元输入的通讯帧以及向外接网口单元输出通讯帧;外接网口单元包括多个外部网络接口,外部网络接口包括以太网控制器、PHY芯片和RJ45接口;时钟单元由RTC时钟芯片经总线与逻辑处理单元相连。本发明应用层不再区分多网口任务或者处理函数,建立的应用层数据处理任务或者函数不随着外部网口数量或者连接数量的变化发生变化,对所有网口发起的所有TCP连接统一管理。

著录项

  • 公开/公告号CN105162751A

    专利类型发明专利

  • 公开/公告日2015-12-16

    原文格式PDF

  • 申请/专利权人 南京国电南自电网自动化有限公司;

    申请/专利号CN201510340758.4

  • 发明设计人 徐业荣;包明磊;李明;

    申请日2015-06-18

  • 分类号H04L29/06;

  • 代理机构南京纵横知识产权代理有限公司;

  • 代理人董建林

  • 地址 211100 江苏省南京市江宁区菲尼克斯路11号

  • 入库时间 2023-12-18 12:50:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-22

    授权

    授权

  • 2016-01-13

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150618

    实质审查的生效

  • 2015-12-16

    公开

    公开

说明书

技术领域

本发明涉及一种基于lwIP协议栈多网口多连接的通讯系统,属 于嵌入式设备与外部通讯技术领域。

背景技术

随着嵌入式设备的广泛应用,在面临设备需与外界交互数据时, 可以通过将装置连入局域网或者广域网中,通过以太网进行通讯。若 装置需要与多个多级局域网或者广域网中的不定数目外部装置交互 数据,则需要装置自身具有多网口、多连接功能。

目前嵌入式系统携带以太网通讯功能,可采用成熟操作系统的自 带协议栈,或者开发协议栈。如选用操作系统自带协议栈,则对系统 CPU的硬件性能要求较高,且自带协议栈操作系统一般为收费授权 方式,使用成本较高。如果开发协议栈,对开发人员的技术要求较高, 易导致协议栈运行不可靠。

现阶段使用lwIP协议栈,在面临多网口接入系统需求时,通讯 帧输入先从网络接口层输入、网络层确定路由选择、传输层将通讯帧 发送给应用层。通讯帧输出时先从应用层发起、传输层发送通讯帧、 网络层确定路由选择、网络接口层输出。为了区分多个网口,在网络 接口层和应用层分别为每个网口建立一个处理任务。因网络接口层与 网络接口硬件关联,各网口间必须独立区分。在应用层将各网口区分, 将造成代码成倍增加,多任务或者多函数也将占用CPU资源。

发明内容

针对现有技术存在的不足,本发明目的是提供一种基于lwIP协 议栈多网口多连接的通讯系统,应用层不再区分多网口任务或者处理 函数,建立的应用层数据处理任务或者函数不随着外部网口数量或者 连接数量的变化发生变化,对所有网口发起的所有TCP连接进行统 一管理,具有较强的稳定性和可扩展性。

为了实现上述目的,本发明是通过如下的技术方案来实现:

本发明的一种基于lwIP协议栈多网口多连接的通讯系统,包括 逻辑处理单元、外接网口单元、存储单元和时钟单元;所述逻辑处理 单元包括一个CPU,在所述CPU上移植μC/OSII系统,并在所述 μC/OSII系统上移植入开源的lwIP协议栈;逻辑处理单元用于处理 外接网口单元输入的通讯帧以及向外接网口单元输出通讯帧,并为每 个外部网络接口建立对应的lwIP协议栈中的虚拟网络接口;逻辑处 理单元中应用层包括UDP处理任务和TCP处理任务,所述UDP处 理任务实现应用层与lwIP协议栈之间UDP报文交互,所述TCP处 理任务实现应用层与lwIP协议栈之间TCP报文交互;所述外接网口 单元包括多个外部网络接口,每个所述外部网络接口包括以太网控制 器、PHY芯片和RJ45接口;所述时钟单元由RTC时钟芯片经总线 与逻辑处理单元相连接;所述存储单元经总线与逻辑处理单元相连接。

上述存储单元包括FRAM芯片、SDRAM芯片、FLAH芯片。

通讯帧输入的处理方法如下:

(1A)通讯帧进入外接网口单元中的一个外部网络接口,经所 述外部网络接口中的RJ45接口,经PHY芯片到达以太网控制器,所 述以太网控制器对通讯帧处理,完成网口中断信号发出;

(2A)所述逻辑处理单元接到中断信号后,调用所述外部网络 接口对应的网口中断处理函数对通讯帧进行处理;

(3A)网口中断处理函数将所述通讯帧以消息邮箱发送至外部 网络接口对应的消息处理任务;

(4A)所述消息处理任务将通讯帧由外部网络接口对应的虚拟 网络接口的通讯帧输入函数处理,经所述通讯帧输入函数处理后,通 讯帧进入lwIP协议栈内部处理流程;

(5A)所述lwIP协议栈将需提交给应用层的TCP报文提交给 TCP处理任务,将需提交给应用层的UDP报文提交给UDP处理任务。

通讯帧输出的处理方法如下:

(1B)所述逻辑处理单元中的TCP处理任务需要往外部发送通 讯帧时,先将所述通讯帧发送至lwIP协议栈,进入lwIP协议栈内部 处理;

(2B)lwIP协议栈处理待发送通讯帧,判断需要发往的lwIP协 议栈虚拟网络接口;

(3B)虚拟网络接口收到待发送通讯帧后,通过该虚拟网络接 口的通讯帧发送模块将上述通讯帧发送至外部网络接口的发送驱动 函数,由所述发送驱动函数完成通讯帧向外部网络接口的输出;

(4B)所述逻辑处理单元中的UDP处理任务需要往外部发送通 讯帧时,先将所述通讯帧发送至lwIP协议栈,进入lwIP协议栈内部 处理;

(5B)lwIP协议栈处理待发送通讯帧,判断需要发往的lwIP协 议栈虚拟网络接口;

(6B)虚拟网络接口收到待发送通讯帧后,通过该虚拟网络接 口的通讯帧发送模块将通讯帧发送至外部网络接口的发送驱动函数, 由发送驱动函数完成上述通讯帧向外部网络的输出。

对TCP处理任务的处理方法如下:

(1C)获取lwIP协议栈内部处于稳定状态的TCP连接链表头结 点,进入步骤(2C);

(2C)检查当前结点对应的TCP连接是否有效;

(3C)如果连接有效,进入步骤(4C),如果连接无效,则回到 步骤(1C);

(4C)等待接收步骤(3C)中的TCP连接的数据;

(5C)判断步骤(4C)中的等待接收动作的返回值,如果正常 则进入步骤(6C),否则进入步骤(7C);

(6C)对TCP报文进行处理,完成后进入步骤(8C);

(7C)TCP连接异常处理模块,完成后进入步骤(8C);

(8C)获取处于稳定状态的TCP连接链表下一个结点,进入步 骤(2C)。

本发明的有益效果如下:

(1)本发明中处理多网口多连接数据方法优势在于,可以统筹 管理整个系统资源。依据系统资源数目,在系统初始化时设定外部通 讯请求最大总数,无需将资源分配至各个网口。统筹使用系统全部资 源后,不需设定单个网口最大通讯数。

(2)本发明中处理多网口连接数据,可以在系统网口数量扩充 时,无需修改应用层代码。当系统需要增加网口时,软件部分只需要 新建输入、输出任务,设定网口参数。减少新系统开发周期,节省研 发费用。

(3)本发明中通过遍历lwIP协议栈内部处于稳定状态TCP连 接链表方式,可以向所有网口所有处于稳定状态的TCP连接接收或 者发送通讯帧。

附图说明

图1为基于lwIP协议栈多网口多连接的通讯系统框图;

图2为基于lwIP协议栈多网口多连接的通讯方法工作流程图;

图3为基于lwIP协议栈多网口多连接的TCP任务工作流程图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明 白了解,下面结合说明书附图进一步阐述本发明。

参见图1,本发明的一种基于lwIP协议栈多网口多连接的通讯系 统包括逻辑处理单元、外接网口单元、存储单元、时钟单元。逻辑处 理单元包括一个CPU,在CPU上移植抢占式实时多任务操作系统 μC/OSII系统,并在操作系统上移植入开源的TCP/IP协议栈lwIP协 议栈,逻辑处理单元负责处理外接网口单元输入通讯帧以及向外接网 口单元发送通讯帧;逻辑处理单元,为通讯系统中每个外部网络接口 建立对应的lwIP协议栈中的虚拟网络接口;外接网口单元包括多个 外部网络接口,外部网络接口包括以太网控制器、PHY芯片、RJ45 接口;存储单元包括FRAM芯片、SDRAM芯片、FLAH芯片,存储 单元经总线与逻辑处理单元相连;时钟单元由一个RTC时钟芯片经 总线与逻辑处理单元相连构成。

参见图2,一种通讯帧进入本通讯系统流程和本通讯系统向外部 发送通讯帧流程处理方法。

通讯帧输入的处理步骤具体如下:

(1A)通讯帧进入通讯系统中外接网口单元中某一个外部网络 接口,经外部网络接口中的RJ45接口,经PHY芯片到达以太网控制 器,以太网控制器对通讯帧处理,完成网口中断信号发出;

(2A)在步骤(1A)的基础上,逻辑处理单元接到上述中断信 号后,调用外部网络接口对应的网口中断处理函数对通讯帧进行处理;

(3A)在步骤(2A)的基础上,网口中断处理函数将通讯帧以 消息邮箱发送至网络接口对应的消息处理任务;

(4A)在步骤(3A)的基础上,消息处理任务将通讯帧由上述 外部网络接口对应的虚拟网络接口的通讯帧输入函数处理,经上述通 讯帧输入函数处理后,通讯帧进入lwIP协议栈内部处理流程;

(5A)在步骤(4A)的基础上,lwIP协议栈将需提交给应用层 的TCP报文提交给TCP处理任务,将需提交给应用层的UDP报文 提交给UDP处理任务;

通讯帧输出的处理步骤具体如下:

(1B)逻辑处理单元中的应用层TCP处理任务需要往外部发送 通讯帧时,先将通讯帧发送至lwIP协议栈,进入lwIP协议栈内部处 理;

(2B)在步骤(1B)基础上,lwIP协议栈对待发送帧处理,判 断需要发往的lwIP协议栈虚拟网络接口;

(3B)在步骤(2B)基础上,上述虚拟网络接口收到待发送通 讯帧后,通过该虚拟网络接口的通讯帧发送模块将上述通讯帧发送至 外部网络接口的发送驱动函数,由上述发送驱动函数完成上述通讯帧 向外部网络的输出;

(4B)逻辑处理单元中的应用层UDP处理任务需要往外部发送 通讯帧时,先将通讯帧发送至lwIP协议栈,进入lwIP协议栈内部处 理;

(5B)在步骤(4B)基础上,lwIP协议栈对待发送帧处理,判 断需要发往的lwIP协议栈虚拟网络接口;

(6B)在步骤(5B)基础上,上述虚拟网络接口收到待发送通 讯帧后,通过该虚拟网络接口的通讯帧发送模块将上述通讯帧发送至 外部网络接口的发送驱动函数,由上述发送驱动函数完成上述通讯帧 向外部网络的输出;

参见图3,一种多网口多连接数据应用层管理方法。

UDP处理任务:

在UDP报文处理任务中,新建一个UDP类型连接结构,将此连 接结构与IP地址和端口号绑定。为了能用此连接结构接收系统所有 UDP报文,此处绑定时,不指定特定IP地址。循环调用lwIP协议栈 接收函数阻塞接收lwIP协议栈送至应用层UDP报文。

TCP处理任务,包括以下步骤::

(1C)获取lwIP协议栈内部处于稳定状态的TCP连接链表头结 点,进入步骤(1C);

(2C)检查当前结点对应的TCP连接是否有效;

(3C)在步骤(2C)基础上,如果连接有效,进入下一步处理, 如果连接无效则回到步骤(1C);

(4C)等待接收步骤(3C)中的TCP连接的数据;

(5C)判断步骤(4C)中的等待接收动作的返回值,如果正常 则进入步骤(6C),否则进入步骤(7C);

(6C)对TCP报文进行处理,完成后进入步骤(8C);

(7C)TCP连接异常处理模块,完成后进入步骤(8C);

(8C)获取处于稳定状态的TCP连接链表下一个结点,进入步 骤(2C)。

逻辑处理单元中的CPU为Atmel公司AT91RM9200芯片,芯片 最高运算速度达到200MIPS,具有8个优先级的高级中断控制器;

存储单元中的一个FRAM芯片为Ramtron公司铁电存储芯片 FM24CL64,两个DDRSDRAM芯片为两片Hynix公司 HY57V561620FTP,一个NORFLAH芯片为Spansion公司16位 4MByte大小的S29GL032M。

外接网口单元中的网口1中的PHY芯片为Intel公司芯片LXT 971A,与CPU内部的以太网控制器相连;网口2选用CS8900芯片, 芯片还有PHY芯片和以太网控制器两部分功能。使用lwIP协议栈命 令IP4_ADDR设置lwIP协议栈虚拟网络接口IP地址、子网掩码、网 关地址、MAC地址。将两个虚拟网络接口添加到协议栈虚拟网络接 口列表中。

新建网口1的中断处理函数irqEMACISR1。新建网口1通讯帧 输入处理任务EthernetifInput_Net1。新建网口2的中断处理函数 irqEMACISR2。新建网口2通讯帧输入处理任务EthernetifInput_Net2。

irqEMACISR1中断函数主要功能是将外部通讯帧以消息队列方 式发送至EthernetifInput_Net1任务的接收队列中。 EthernetifInput_Net1任务收到外部通讯帧消息后,调用该虚拟网络接 口的输入函数将数据包发送至协议栈中。irqEMACISR2中断函数主 要功能是将外部通讯帧以消息队列方式发送至EthernetifInput_Net2 任务的接收队列中。EthernetifInput_Net2任务收到外部通讯帧消息后, 调用该虚拟网络接口的输入函数将数据包发送至协议栈中。

协议栈在处理通讯帧时,对通讯帧进行解析,发送至该通讯帧对 应的连接结构缓冲区中。应用层任务循环遍历协议栈中处于稳定状态 的TCP连接链表,阻塞式接收每个连接,从缓冲区中取出TCP报文 数据。应用层有数据需要往外部发送数据时,将通讯帧并调用写通讯 帧函数将数据交由协议栈处理。协议栈处理完后,将通讯帧发送至网 口对应的虚拟网络接口,调用发送通讯帧函数发送通讯帧。

以上显示和描述了本发明的基本原理和主要特征和本发明的优 点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上 述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明 精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改 进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权 利要求书及其等效物界定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号