>
首页 » 技术文章 » 基于Rabbit2000的SOCKET通信设计

基于Rabbit2000的SOCKET通信设计

作者:■ 黑龙江科技学院 大连维深自动识别技术有限公司 苏锦秀 杨庆江 张广璐 边莉  时间:2008-02-01 16:14  来源:电子设计应用08年第一期

摘要:本文选择微处理器Rabbit2000作为CPU,利用其软件平台Dynamic C实现了SOCKET通信。本设计采用客户端/服务器的工作模式。介绍了该SOCKET通信系统的组成,同时给出了系统通信接口原理图,详细说明了软件设计思想,并对在SOCKET通信中用到的函数作了说明。

关键词:Rabbit2000;SOCKET通信;客户端/服务器

引言

随着计算机和通信技术的进步,网络的智能化与灵活性不断增强,各种通信系统之间的互联互通也成为可能。本文给出了一种支持中/低端应用的通信平台设计方案,它支持以太网之间的数据传输,并具有 RS-232、RS-485接口。在软件实现原理上,本方案采用客户端/服务器的工作模式,使通信系统不仅能够正常地实现通信功能,而且能够实现在局域网内对系统的监视功能,同时能够在发现系统故障时,通过监视器发送复位命令使系统复位。

SOCKET通信系统组成

SOCKET通信系统组成如图1所示。

图1 系统组成框图

系统的各部分说明如下:

1. CPU:微处理器采用Rabbit2000,它是8位高性能微处理器,有6个串口,并具有标准的10针编程端口,避免了使用CPU仿真器及PROM编程器。

2. 网络接口芯片:网络接口采用以太网接口芯片RTL8019AS,它支持PNP自检方式;支持Jumper和Jumperless模式;支持UTP、AUI和BNC自动检测;支持10Base-T的自动极性改正;支持可编程的4诊断LED输出。

3. 服务器:建立SOCKET连接必须具有公网的IP地址,故应保证服务器中心计算机连接到Internet且取得IP地址。在系统正常工作之前,服务器终端需要运行SOCKET端口监听程序,并且设定为监听状态,同时要设定好端口号。

4. 监视器:用来实时监视系统的运行状况。在监视器主动连接被监视系统时,系统必须首先运行端口监听程序,并且设定好监视端口号。

5. RS-232接口:用来设置系统的参数,如IP地址、网关等参数。

6. RS-485接口:用来实现其他设备通过本系统接入以太网。

通信接口实现

SOCKET通信接口原理图如图2所示。

图2 SOCKET 通信接口原理图

本方案采用的是以太网接口芯片RTL8019AS,工作在跳线方式,这种工作方式能够降低整个系统的成本,并减少整个电路的连线。芯片的引脚61(LED0)和62(LED1)各接一个发光二极管,以反映网络的通信状态: LED0表示网络通信是否冲突;LED1表示是否接收到网络上的信息包。

SOCKET通信软件设计

Rabbit2000的软件平台Dynamic C中集成了强大的TCP/IP库文件,灵活应用Dynamic C中的库函数能够方便地实现SOCKET通信。本设计方案使系统工作在客户端/服务器模式下,即系统既能够作为客户端与服务器进行正常的通信,又能作为服务器,在监视器与系统建立连接之后,将系统工作的状态实时地发送给监视器,使系统的整个工作过程处于可监视状态。并且在监视器发现系统工作异常时,发送复位命令使系统复位,从而保证系统能够正常工作。

系统采用客户端/服务器工作模式,还能够在系统独立工作发生故障时,通过监视器跟踪系统的工作状态来发现系统出现故障的原因,从而能够快速解决问题,使系统重新正常工作。

系统的整体软件设计流程如图3所示。

系统上电之后,首先初始化串口和TCP连接,如果没有初始化成功则重新初始化;如果初始化成功则检测串口是否输入了新的系统配置信息。如果输入了则系统按新的配置信息运行;如没有输入,系统按默认配置信息运行。接着系统作为服务器,打开SOCKET被动连接,运行端口监听程序等待监视器的连接。然后作为客户端打开SOCKET主动连接服务器,如果连接10次未成功建立,则系统重新打开SOCKET,主动连接服务器,直到与服务器成功建立连接。与服务器成功建立连接后,整个系统进入正常的工作状态。系统正常工作以后,只要监视器成功连接,系统就开始向监视器发送运行信息,如果监视器没有成功连接,则系统重新运行端口监听程序。

函数说明

sock_init( ): 初始化TCP/IP连接;

ip_print_ifs( ):调试时用于显示设备的IP地址、网关和子网掩码;

ifconfig(): 修改设备的IP地址、网关和子网掩码等参数;

tcp_listen( ):创建一个SOCKET被动连接;本设计用来创建监视器连接程序;

tcp_open( ):创建一个SOCKET主动连接;

sock_established( ):检测SOCKET是否成功连接;

forceSoftReset():Rabbit2000系统软件复位函数;

goto Label:程序跳到Label处执行;

tcp_tick( ):检测SOCKET连接是否打开、成功连接或处于监视状态;

resolve( ):IP地址类型转换函数;

sock_fastread( ):SOCKET通信读取函数,可以读取任意长度的字符;

sock_write():SOCKET通信发送函数,可以发送任意长度的字符。

结语

本文利用Dynamic C集成的强大TCP/IP库,在Rabbit2000上实现了SOCKET通信功能。在系统实现上采用了客户端/服务器的SOCKET通信模式,使系统更具有实用性。系统硬件具有外围器件少、电路简单、成本低等优点。应用该方案设计的SOCKET通信设备运行在局域网内,能够稳定、实时、快速地传输数据,具有广泛的应用前景。■

参考文献

1. 吴爱国,何熠,王冬青. 基于工业以太网的嵌入式控制器的研究. 信息与控制,2004,4

2. Z—World Corp. Dynamic C User's Manual [M]. Z-World Inc,2001

相关推荐

5月全球芯片销售额创三年来最大环比增幅

芯片销售  服务器  2013-07-04

甲骨文:收购Sun公司是最划算的交易

甲骨文  服务器  adata  2012-12-20

戴尔CEO:戴尔要成为全球第一大服务器厂商

戴尔  服务器  PC  2012-12-16

AMD拥抱ARM架构意在对外出售?都是英特尔的错

AMD  服务器  英特尔  2012-11-06

优酷土豆合并获股东批准 销售和版权部门已打通

优酷  服务器  2012-08-20

浪潮国防展隆重推出自主可控系列装备

浪潮  服务器  2012-05-28
在线研讨会
焦点