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

文档序号:8945727阅读:766来源:国知局
一种基于lwIP协议栈多网口多连接的通讯系统的制作方法
【技术领域】
[0001]本发明涉及一种基于IwIP协议栈多网口多连接的通讯系统,属于嵌入式设备与外部通讯技术领域。
【背景技术】
[0002]随着嵌入式设备的广泛应用,在面临设备需与外界交互数据时,可以通过将装置连入局域网或者广域网中,通过以太网进行通讯。若装置需要与多个多级局域网或者广域网中的不定数目外部装置交互数据,则需要装置自身具有多网口、多连接功能。
[0003]目前嵌入式系统携带以太网通讯功能,可采用成熟操作系统的自带协议栈,或者开发协议栈。如选用操作系统自带协议栈,则对系统CPU的硬件性能要求较高,且自带协议栈操作系统一般为收费授权方式,使用成本较高。如果开发协议栈,对开发人员的技术要求较高,易导致协议栈运行不可靠。
[0004]现阶段使用IwIP协议栈,在面临多网口接入系统需求时,通讯帧输入先从网络接口层输入、网络层确定路由选择、传输层将通讯帧发送给应用层。通讯帧输出时先从应用层发起、传输层发送通讯帧、网络层确定路由选择、网络接口层输出。为了区分多个网口,在网络接口层和应用层分别为每个网口建立一个处理任务。因网络接口层与网络接口硬件关联,各网口间必须独立区分。在应用层将各网口区分,将造成代码成倍增加,多任务或者多函数也将占用CPU资源。

【发明内容】

[0005]针对现有技术存在的不足,本发明目的是提供一种基于IwIP协议栈多网口多连接的通讯系统,应用层不再区分多网口任务或者处理函数,建立的应用层数据处理任务或者函数不随着外部网口数量或者连接数量的变化发生变化,对所有网口发起的所有TCP连接进行统一管理,具有较强的稳定性和可扩展性。
[0006]为了实现上述目的,本发明是通过如下的技术方案来实现:
[0007]本发明的一种基于IwIP协议栈多网口多连接的通讯系统,包括逻辑处理单元、外接网口单元、存储单元和时钟单元;所述逻辑处理单元包括一个CPU,在所述CPU上移植μ C/OS II系统,并在所述μ C/OS II系统上移植入开源的IwIP协议栈;逻辑处理单元用于处理外接网口单元输入的通讯帧以及向外接网口单元输出通讯帧,并为每个外部网络接口建立对应的IwIP协议栈中的虚拟网络接口 ;逻辑处理单元中应用层包括UDP处理任务和TCP处理任务,所述UDP处理任务实现应用层与IwIP协议栈之间UDP报文交互,所述TCP处理任务实现应用层与IwIP协议栈之间TCP报文交互;所述外接网口单元包括多个外部网络接口,每个所述外部网络接口包括以太网控制器、PHY芯片和RJ45接口 ;所述时钟单元由RTC时钟芯片经总线与逻辑处理单元相连接;所述存储单元经总线与逻辑处理单元相连接。
[0008]上述存储单元包括FRAM芯片、SDRAM芯片、FLAH芯片。
[0009]通讯帧输入的处理方法如下:
[0010](IA)通讯帧进入外接网口单元中的一个外部网络接口,经所述外部网络接口中的RJ45接口,经PHY芯片到达以太网控制器,所述以太网控制器对通讯帧处理,完成网口中断信号发出;
[0011](2A)所述逻辑处理单元接到中断信号后,调用所述外部网络接口对应的网口中断处理函数对通讯帧进行处理;
[0012](3A)网口中断处理函数将所述通讯帧以消息邮箱发送至外部网络接口对应的消息处理任务;
[0013](4A)所述消息处理任务将通讯帧由外部网络接口对应的虚拟网络接口的通讯帧输入函数处理,经所述通讯帧输入函数处理后,通讯帧进入IwIP协议栈内部处理流程;
[0014](5A)所述IwIP协议栈将需提交给应用层的TCP报文提交给TCP处理任务,将需提交给应用层的UDP报文提交给UDP处理任务。
[0015]通讯帧输出的处理方法如下:
[0016](IB)所述逻辑处理单元中的TCP处理任务需要往外部发送通讯帧时,先将所述通讯帧发送至IwIP协议桟,进入IwIP协议桟内部处理;
[0017](2B) IwIP协议栈处理待发送通讯帧,判断需要发往的IwIP协议栈虚拟网络接口 ;
[0018](3B)虚拟网络接口收到待发送通讯帧后,通过该虚拟网络接口的通讯帧发送模块将上述通讯帧发送至外部网络接口的发送驱动函数,由所述发送驱动函数完成通讯帧向外部网络接口的输出;
[0019](4B)所述逻辑处理单元中的UDP处理任务需要往外部发送通讯帧时,先将所述通讯帧发送至IwIP协议桟,进入IwIP协议桟内部处理;
[0020](5B) IwIP协议桟处理待发送通讯帧,判断需要发往的IwIP协议桟虚拟网络接口 ;[0021 ] (6B)虚拟网络接口收到待发送通讯帧后,通过该虚拟网络接口的通讯帧发送模块将通讯帧发送至外部网络接口的发送驱动函数,由发送驱动函数完成上述通讯帧向外部网络的输出。
[0022]对TCP处理任务的处理方法如下:
[0023](IC)获取IwIP协议栈内部处于稳定状态的TCP连接链表头结点,进入步骤(2C);
[0024](2C)检查当前结点对应的TCP连接是否有效;
[0025](3C)如果连接有效,进入步骤(4C),如果连接无效,则回到步骤(IC);
[0026](4C)等待接收步骤(3C)中的TCP连接的数据;
[0027](5C)判断步骤(4C)中的等待接收动作的返回值,如果正常则进入步骤(6C),否则进入步骤(7C);
[0028](6C)对TCP报文进行处理,完成后进入步骤(8C);
[0029](7C) TCP连接异常处理模块,完成后进入步骤(8C);
[0030](8C)获取处于稳定状态的TCP连接链表下一个结点,进入步骤(2C)。
[0031]本发明的有益效果如下:
[0032](I)本发明中处理多网口多连接数据方法优势在于,可以统筹管理整个系统资源。依据系统资源数目,在系统初始化时设定外部通讯请求最大总数,无需将资源分配至各个网口。统筹使用系统全部资源后,不需设定单个网口最大通讯数。
[0033](2)本发明中处理多网口连接数据,可以在系统网口数量扩充时,无需修改应用层代码。当系统需要增加网口时,软件部分只需要新建输入、输出任务,设定网口参数。减少新系统开发周期,节省研发费用。
[0034](3)本发明中通过遍历IwIP协议桟内部处于稳定状态TCP连接链表方式,可以向所有网口所有处于稳定状态的TCP连接接收或者发送通讯帧。
【附图说明】
[0035]图1为基于IwIP协议栈多网口多连接的通讯系统框图;
[0036]图2为基于IwIP协议栈多网口多连接的通讯方法工作流程图;
[0037]图3为基于IwIP协议栈多网口多连接的TCP任务工作流程图。
【具体实施方式】
[0038]为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合说明书附图进一步阐述本发明。
[0039]参见图1,本发明的一种基于IwIP协议栈多网口多连接的通讯系统包括逻辑处理单元、外接网口单元、存储单元、时钟单元。逻辑处理单元包括一个CPU,在CPU上移植抢占式实时多任务操作系统yc/os II系统,并在操作系统上移植入开源的TCP/IP协议栈IwIP协议桟,逻辑处理单元负责处理外接网口单元输入通讯帧以及向外接网口单元发送通讯帧;逻辑处理单元,为通讯系统中每个外部网络接口建立对应的IwIP协议栈中的虚拟网络接口 ;外接网口单元包括多个外部网络接口,外部网络接口包括以太网控制器、PHY芯片、RJ45接口 ;存储单元包括FRAM芯片、SDRAM芯片、FLAH芯片,存储单元经总线与逻辑处理单元相连;时钟单元由一个RTC时钟芯片经总线与逻辑处理单元相连构成。
[0040]参见图2,一种通讯帧进入本通讯系统流程和本通讯系统向外部发送通讯帧流程处理方法。
[0041]通讯帧输入的处理步骤具体如下:
[0042](IA)通讯帧进入通讯系统中外接网口单元中某一个外部网络接口,经外部网络接口中的RJ45接口,经PHY芯片到达以太网控制器,以太网控制器对通讯帧处理,完成网口中断信号发出;
[0043](2A)在步骤(IA)的基础上,逻辑处理单元接到上述中断信号后,调用外部网络接口对应的网口中断处理函数对通讯帧进行处理;
[0044](3A)在步骤(2A)的基础上,网口中断处理函数将通讯帧以消息邮箱发送至网络接口对应的消息处理任务;
[0045](4A)在步骤(3A)的基础上,消息处理任务将通讯帧由上述外部网络接口对应的虚拟网络接口的通讯帧输入函数处理,经上述通讯帧输入函数处理后,通讯帧进入IwIP协议栈内部处理流程;
[0046](5A)在步骤(4A)的基础上,IwIP协议栈将需提交给应用层的TCP报文提交给TCP处理任务,将需提交给应用层的UDP报文提交给UDP处理任务;
[0047]通讯帧输出的处理步骤具体如下:
[0048](IB)逻辑处理单元中的应用层TCP处理任务需要往外部发送通讯帧时,先将通讯帧发送至IwIP协议桟,进入IwIP协议桟内部处理;
[0049](2B)在步骤(IB)基础上,IwIP协议栈对待发送帧处理,判断需要发往的IwIP协议栈虚拟网络接口;
[0050](3B)在步骤(2B)基础上,上述虚拟网络接口收到待发送通讯帧后,通过该虚拟网络接口的通讯帧发送模块将上述通讯帧发送至外部网络接口的发送驱动函数,由上述发送驱动函数完成上述
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1