Linux主从设备通过以太网接口进行通信的方法

文档序号:7945984阅读:391来源:国知局
专利名称:Linux主从设备通过以太网接口进行通信的方法
技术领域
本发明涉及LINUX平台下主从设备之间通过以太网接口进行通信的 实现方法,属于通信技术领域。
背景技术
现有的嵌入式系统一般都由一个主CPU和许多的外围器件组成一个 系统,特别是在多媒体系统应用领域中,主机CPU负责与媒体相关的协议、 人机交互和设备控制的处理,外设(将CPU简称为外设)用来完成音频、 视频的压縮、解压处理。这就涉及到主从CPU之间的通信,现有的主从 设备之间进行通信一般都通过各种硬件总线(如UART、 12C、 HPI、 SPI 等)进行连接。要求主从设备必须具有相应的硬件接口电路,这将会对主 从设备的芯片选型造成一定的限制。由于都属于低速总线接口,因以传输 速率并不高。由于这些设备总线的信号衰减原因,之间的线路传输长度都 会受到限制。
嵌入式设备一般都配置有以太网接口,通过以太网接口可以实现高速 率的数据传输,并完成主从设备之间的通信。现有的主从设备通信一般都 是应用程序利用SOCKET通过TCP/IP协议栈进行通信,由于TCP/IP协议 是一种分层协议,所有的数据包从接收到提交到上层应用程序需要很多的 处理,所以它会占用比较多的CPU时间,并且它的实时性、可靠性都不能 得到保证(其处理示意图见图1右边所示)。
嵌入式主从设备都有各自的代码在独自运行,如果要对整个系统升 级,需要分别升级主设备和从设备,并且从设备还需要额外的存储介质。

发明内容
本发明针对嵌入式主从设备间通信的缺陷,提供一种新型的利用以太 网接口在嵌入式主从设备之间进行实时、可靠、低开销通信的方法。 本发明的目的通过以下技术方案来实现
LINUX主从设备通过以太网接口进行通信的方法,特点是首先,主 设备引导从设备的启动;然后,主设备发送控制命令给从设备;继而,从 设备将检测到的事件或状态发给主设备;最后,从设备完成主设备下发的 命令,完成对应的操作。
进一步地,上述的LINUX主从设备通过以太网接口进行通信的方法, 其中a)将主从设备交换的信息分为命令、响应、指示、数据四类
命令,主设备指示从设备完成从设备提供的功能,如在VOIP应用中 从设备完成语音、视频压縮功能;从设备处理命令后发送一响应消息; 响应,从设备接收到主设备命令并执行,发送消息; 指示,从设备检测到事件或状态发生变化时,通知主设备; 数据,从设备将产生的数据发送给主设备,或者通过以太网发送到网 络上;
b) 利用LINUX提供的网络设备驱动接口,注册新的专用协议簇,当 以太网接口驱动接收到该协议簇的数据包后直接提交到socket层进行处 理。当发送包时,直接将发送的数据包添加到以太网驱动队列上;通过该 专用协议簇实现据数据包的重发、数据包排序、数据包校验、数据包无响 应等处理机制;
c) 从设备启动过程从设备在上电后处于boot状态,等待接收主设 备的消息,主设备发送一包括从设备的MAC地址、IP地址的广播包,从 设备在接收到该广播包后将包中的MAC地址、IP地址配置为MAC、 IP 地址,并发送一响应消息;主设备下载从设备的运行代码,代码下载完成 后主设备发送一程序执行命令,从设备校验主设备下载的代码,校验成功,并发送一程序开始执行指示;从设备运行后,主设 备可靠消息传输机制发送命令消息指示从设备的操作,或者从设备将检测
到的事件发送给主设备;
d) 可靠的消息传输特征定义一种协议包类型,并配置QOS,保证 数据包的优先级;主从设备自动地发送消息包,采用消息应答机制, 一方 发送消息,另外一方收到消息后发送ACK;每个消息有一个序列号,接收
方根据该序列号决定是一个新消息或重复消息,如果是一个重复消息接收
方重新发送一ACK消息;消息发送方设置一定时器,当在指定的时间内 没有收到ACK响应时,消息发送方重发消息;
e) 该实现方法跳过了防火墙、路由的处理,直接将以太网包挂接到以 太网发送队列,节省了CPU的开销,并且提高了数据包的优先级;该方法 可广泛用于多媒体系统或网络处理系统等多主机环境下的主从设备之间 的通信控制。
本发明技术方案突出的实质性特点和显著的进步主要体现在 本发明利用常用的以太网接口进行主从设备通信;定义了主从设备通
信方法,将通信内容按使用分为命令、响应、指示、数据;本发明提高了
系统的实时性、降低了系统的开销。


下面结合附图对本发明技术方案作进一步说明
图1:应用程序直接利用socket通信与标准的linux通过TCP/IP通信 的分层比较示意图2:命令发送处理示意图。
具体实施例方式
本发明设计一种新型的利用以太网接口在嵌入式主从设备之间进行 实时、可靠、低开销通信的方法,不采用TCP/IP协议栈,利用LINUXNAPI接口创建一新的协议簇,并在该协议簇上实现socket接口 。
LINUX主从设备通过以太网接口进行通信的方法,首先,主设备引导 从设备的启动;然后,主设备发送控制命令给从设备;继而,从设备将检 测到的事件或状态发给主设备;最后,从设备完成主设备下发的命令,完 成对应的操作。
1) 将主从设备交换的信息分为命令、响应、指示、数据四类 命令,主设备指示从设备完成从设备提供的功能,如在VOIP应用中
从设备完成语音、视频压縮功能。从设备处理命令后发送一响应消息; 响应,从设备接收到主设备命令并执行,发送消息; 指示,从设备检测到事件或状态发生变化时,通知主设备; 数据,从设备将产生的数据发送给主设备,或者通过以太网发送到网
络上;
2) 利用LINUX提供的网络设备驱动接口,注册新的专用协议簇,当 以太网接口驱动接收到该协议簇的数据包后直接提交到socket层进行处 理。当发送包时,直接将发送的数据包添加到以太网驱动队列上;通过该 专用协议簇实现据数据包的重发、数据包排序、数据包校验、数据包无响 应等处理机制;
3) 从设备启动过程从设备在上电后处于boot状态,等待接收主设 备的消息,主设备发送一包括从设备的MAC地址、IP地址的广播包,从 设备在接收到该广播包后将包中的MAC地址、IP地址配置为MAC、 IP 地址,并发送一响应消息;主设备下载从设备的运行代码,代码下载完成 后主设备发送一程序执行命令,从设备校验主设备下载的代码,校验成功, 即执行下载后的代码,并发送一程序开始执行指示;从设备运行后,主设 备可靠消息传输机制发送命令消息指示从设备的操作,或者从设备将检测 到的事件发送给主设备;
4) 可靠的消息传输特征定义一种协议包类型,并配置Q0S,保证数据包的优先级;主从设备自动地发送消息包,采用消息应答机制, 一方 发送消息,另外一方收到消息后发送ACK;每个消息有一个序列号,接收 方根据该序列号决定是一个新消息或重复消息,如果是一个重复消息接收 方重新发送一 ACK消息;消息发送方设置一定时器,当在指定的时间内 没有收到ACK响应时,消息发送方重发消息;
5)该实现方法跳过了防火墙、路由的处理,直接将以太网包挂接到 以太网发送队列,节省了CPU的开销,并且提高了数据包的优先级;该方
法可广泛用于多媒体系统或网络处理系统等多主机环境下的主从设备之 间的通信控制。
具体实现方法如图1 (左边)所示
I应用程序,完成对从设备的代码下载、从设备控制、从设备的数据 处理等功能;
IIBSD socket, LINUX提供的通过网络进行通信的方法; III专用协议簇,类似UDP的协议,负责将应用程序通过socket调用 发送的命令,通过以太网驱动发送出去;
IVEthemet,负责以太网的数据包发送接收。 主设备命令发送过程如图2所示
I应用程序产生需要的命令,通过socket接口发送给专用协议簇; II专用协议簇加上协议簇头字节、添加序列号、通过以太网驱动将数 据包发送出去;
III专用协议簇启动一定时器,当定时器到期时,重发该数据包; IV当接收到从设备响应时,确认该命令成功,将发送序列号加l。 综上所述,实现专用协议簇,通过该协议簇可以对以太网的包进行重 发、排序、确认包是否正确发送;利用linux的网络设备驱动;将主从设 备交互信息抽象分类,通过命令响应机制确保从设备命令正确执行。
利用常用的以太网接口进行主从设备通信;定义了主从设备通信方法,将通信内容按使用分为命令、响应、指示、数据;提高了系统的实时 性、降低了系统的开销。
需要理解到的是上述说明并非是对本发明的限制,在本发明构思范 围内,所进行的添加、变换、替换等,也应属于本发明的保护范围。
权利要求
1.LINUX主从设备通过以太网接口进行通信的方法,其特征在于首先,主设备引导从设备的启动;然后,主设备发送控制命令给从设备;继而,从设备将检测到的事件或状态发给主设备;最后,从设备完成主设备下发的命令,完成对应的操作。
2. 根据权利要求1所述的LINUX主从设备通过以太网接口进行通信 的方法,其特征在于主从设备交换的信息分为命令、响应、指示、数据 四类命令,主设备指示从设备完成从设备提供的功能; 响应,从设备接收到主设备命令并执行,发送消息; 指示,从设备检测到事件或状态发生变化时,通知主设备; 数据,从设备将产生的数据发送给主设备,或者通过以太网发送到网 络上。
3. 根据权利要求1所述的LINUX主从设备通过以太网接口进行通信 的方法,其特征在于利用LINUX提供的网络设备驱动接口,注册新的 协议簇,当以太网接口驱动接收到该协议簇的数据包后直接提交到socket 层进行处理;当发送包时,直接将发送的数据包添加到以太网驱动队列上; 通过该协议簇实现数据包的重发、数据包排序、数据包校验、数据包无响 应的处理机制。
4. 根据权利要求1所述的LINUX主从设备通过以太网接口进行通信 的方法,其特征在于从设备启动过程是,从设备在上电后处于boot状态, 等待接收主设备的消息,主设备发送一包括从设备的MAC地址、IP地址 的广播包,从设备在接收到广播包后将包中的MAC地址、IP地址配置为 MAC、 IP地址,并发送一响应消息;主设备下载从设备的运行代码,代码 下载完成后主设备发送一程序执行命令,从设备校验主设备下载的代码,校验成功,即执行下载后的代码,并发送一程序开始执行指示;从设备运 行后,主设备可靠消息传输机制发送命令消息指示从设备的操作,或者从 设备将检测到的事件发送给主设备。
5.根据权利要求1所述的LINUX主从设备通过以太网接口进行通信的方法,其特征在于可靠的消息传输特征,定义一种协议包类型,并配 置QOS;主从设备自动地发送消息包,采用消息应答机制, 一方发送消息, 另外一方收到消息后发送ACK;每个消息有一个序列号,接收方根据该序列号决定是一个新消息或重复消息,如果是一个重复消息接收方重新发送一 ACK消息;消息发送方设置一定时器,当在指定的时间内没有收到ACK响应时,消息发送方重发消息。
全文摘要
本发明提供一种LINUX主从设备通过以太网接口进行通信的方法,首先,主设备引导从设备的启动;然后,主设备发送控制命令给从设备;继而,从设备将检测到的事件或状态发给主设备;最后,从设备完成主设备下发的命令,完成对应的操作。实现专用协议簇,通过该协议簇可以对以太网的包进行重发、排序、确认包是否正确发送;利用linux的网络设备驱动;将主从设备交互信息抽象分类,通过命令响应机制确保从设备命令正确执行。
文档编号H04L1/16GK101605128SQ20091003150
公开日2009年12月16日 申请日期2009年4月22日 优先权日2009年4月22日
发明者光 何, 刘继明, 杰 程 申请人:网经科技(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1