赞助连接

精品导读

赞助连接

阅 读 文 章

利用RCM2200实现以太网与异步串口的通信

[来源:网上转载 (www.studa.net) | 作者:网友(未知) | 时间:2008-04-04 | 浏览: 人次 ]


     根据不同的实际情况,客户机/服务器的通信存在对称和非对称两种方式。在对称的方式下,通信的每一方都可能扮演主从角色;在非对称的方式下,一方不可改变的认为是主机,而另一方则是从机。无论是对称的或是非对称的,当服务被提供时必然存在客户进程和服务进程。基于UDP协议的通信既可采用对称方式也可采用非对称方式。
3.2  数据报套接字
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
UDP协议支持数据报套接字。这种套接字可以采用客户/服务器模式,以全双工方式工作,接收发送可以同时进行,但并不保证数据传输的可靠性、有序性和无重复性,需要由程序员负责管理数据报的排序和可靠性。
3.3  使用Dynamic C实现UDP报文的传输
Dynamic C提供了许多支持TCP/IP协议的库函数。其中,DCRTCP.LIB是最主要的函数库。
下面将简要介绍UDP协议下的基本通信流程。
3.3.1  调用本地初始化函数
     void sock_init(void)
     该函数将使用默认配置初始化本地信息包驱动器以及DCRTCP.LIB函数库。该函数必须在其他网络库函数被使用前进行调用。
3.3.2  打开数据报套接字
     int udp_open( *s, lport, remote_IP, port, *data_handler ())
其中的参数解释如下:
s : 指向UDP套接字的指针;
lport : 本地协议端口;
remote_IP : 可接受的远地主机IP地址,如果该项为-1,则支持广播通信;
port : 可接受的远地进程协议端口,如果该项为-1,则为广播数据报;
data_handler() : 如果接收到数据则调用该函数;
该函数的返回值,如果成功返回非零,否则返回零值。
3.3.3  接收远地主机发送的数据报
     int udp_recv( *s, *buf_recv, recv_len)
     当套接字初始化后用该函数扫描接收缓冲区,,察看是否有数据报到达。其中,
buf_recv : 指向用于存放已到达数据报的数组的指针;
recv_len : 存放数据报的数组的大小。
如果接收到数据报则返回数据报的长度;否则返回-1。
3.3.4  发送数据报给远地主机
     int udp_send( *s, *buf_send, send_len )
     调用该函数发送数据报给远地主机。如果成功返回该数据报的长度,否则返回-1。
     buf_send : 指向待发送数据报的指针;
     send_len : 待发送数据报的长度。
3.3.5  网络信息处理函
    int tcp_tick( *s )
     该函数将察看网络连接状态,检查数据报的到达情况,处理新到数据报并重传丢失的数据报。若出现网络连接被复位及套接字已关闭的情况或参量s为NULL,则返回值为零;否则返回非零值。
3.3.6  关闭套接字
     void sock_close( *s )
     当数据传送工作完成或传送过程中发生错误时,可调用该函数关闭套接字
4    串口通信的实现
4.1  RS232电平与TTL电平的转换
PC机的串行接口是符合EIA RS-232C规范的外部总线标准接口,而RCM2200配备有四个串行接口,都是采用TTL电平,因此两者之间必须进行电平转换。以RCM2200的串行口C(位于核心模块的J4插槽上)为例,电平转换如图2所示。

          图2  RS232与TTL电平转换图

TAG标签 : 通信 实现 利用 数据 RCM2200 函数 串口 发送 UDP 串行

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.