首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式系统中网络通信模块的实现
来源:本站整理  作者:佚名  2009-06-19 15:13:20




2.4基于网络中间件的板卡驱动程序
板卡驱动的软件结构采用C/S(Client/Server)模式,客户端和服务器通过CX模块通信。Client发送请求消息到指定的server,server从client接收请求消息,执行请求的动作,发送一个包含请求动作执行结果的消息给发送请求的client。消息的内容和解释则全由clients和servers来完成。板卡驱动的软件结构示意图如图2所示。

图2:板卡驱动软件结构示意图
板卡驱动的外部接口函数ILDXA_xxx以库文件的形式提供给用户,作为请求服务的客户端。用户通过调用这些接口函数向服务器端发送请求。其中,发送请求消息的函数接口是:CXc_send(const CX_serv serv_addr, const void *msg, int len, int retry_interval)。这里每个server的地址serv_addr与逻辑主机相关,在server地址列表中给出。
请求发送成功后,客户端调用接收返回消息的函数来接收服务端返回消息:CXc_recv(const CX_serv serv addr, void *msg, int len, int *act_len, int timeout)。
服务器端则通过一个无限循环的进程等待来自客户的请求消息,接收请求消息的接口函数是:CXs_recv(const CX_serv serv_addr, void *msg, int len, int *act_len, CX_repl *repl_addr, int timeout)。这里返回地址repl_addr由CX动态分配:当server接收到一个请求消息,CX提供回复消息应该发送的返回地址。
服务器端接收到请求消息后调用相应的处理函数来处理传递过来的命令和参数,并继续等待下一个请求。当命令执行完后,外部中断信号会中断服务器端处理器。中断服务程序ILDISR_command释放信号量来同步服务器端的循环执行的任务。此任务向客户返回一个消息,接口函数:CXs_send(CXXA_repl repl_addr, const void *msg, int len)。
3结束语
VxWorks是一种高效的多任务的嵌入式实时操作系统,网络是VxWorks系统之间以及与其他系统通信的主要方式。本文讨论了VxWorks中网络通信的关键技术,其创新点在于:利用这种基于socket的面向连接的网络通信机制,开发了普适于整机系统通讯的公共模块-CX网络中间件,具体到该嵌入式分系统应用中实现了上位机与硬件板卡的实时通信,取得了良好的效果。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:217,710.90000 毫秒