摘 要:本文通过设计ARM芯片S3C4510B与网络物理层芯片RTL8201BL的软、硬件接口,实现了下位机和PC机之间基于UDP/IP协议的通信。克服了采用串口通信的一系列弊端,通过一根网线就可以轻松实现PC机和下位机控制器的数据传输。通信速率可达100Mbps满足控制系统对实时性的要求。在通信线路简单可靠的基础上采用UDP/IP协议代替TCP/IP协议不仅提高了数据的传输效率也大大简化编程的复杂度。
关键词:ARM S3C4510B RTL8201BL UDP/IP协议 PE68515
1 概述
串口通信技术在数据通信中的应用极为广泛。但是,其固有的通信距离小、抗干扰能力差等缺点使其无法满足对实时性要求较高的现代工业控制。随着近年来网络技术和以ARM为代表的32位处理器的发展,通过网络实现ARM与PC机高速、可靠的通信已成为可能。
本文的主要目的是设计一种高速、可靠的通信方式,实现PC机和数控系统的数据传输,克服传统串口通信传输距离短,速度慢的缺点。本设计采用三星公司以ARM7为内核的S3C4510B芯片,通过RTL8201BL和网络变压器PE68515实现和PC机的通信。
2 ARM芯片S3C4510B 简介
S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器,内含一个由ARM公司设计的16/32位ARM7TDMI RISC处理器核。ARM7TDMI为低功耗、高性能的16/32核,特别适用于对功耗敏感的应用场合,且价格低廉。三星公司在ARM7TDMI处理器核的基础上扩展了多个片内外围功能模块以满足不同的客户需要。本设计采用S3C4510B芯片,因为它集成了一个片内Ethernet控制器。该控制器具有如下特点:
· 带猝发模式的DMA引擎;
· DMA发送/接收缓冲区(256字节发送,256字节接收);
· MAC发送/接收FIFO缓冲区(80字节发送,16字节接收);
· 数据对准逻辑;
· 支持端模式变换;
· 100M/10Mbps的工作速率;
· 与IEEE802.3标准完全兼容;
· 提供MII和7线制10Mbps接口;
· 站管理信号生成;
· 片内CAM(可达21个目的地址);
· 带暂停特性的全双工模式;
· 支持长/短包模式;
· 包拆装PDA生成。
3 RTL8201BL简介
RTL8201BL是我国台湾地区Realtek公司生产的一种网络物理层芯片,它支持10/100Mbps网络传输,符合IEEE802.3协议。它包括物理译码子层、物理介质连接子层、双绞线物理介质相关子层、10base-Tx译码/解码、双绞线介质连接单元。支持PECL(正极射极耦合逻辑)电平接口的100base-TX光纤发送器。适应低电压、低功耗要求。
RTL8201BL的主要引脚功能如表1所示:
表1 RTL8201BL的主要引脚功能
nextpage
4 硬件接口电路设计
本设计硬件接口电路图(略):
1) S3C4510B和RTL8201BL对应的引脚直接相连。其中RTL8201BL的RESETB引脚为复位引脚和S3C4510B的复位引脚nRESET连接。
2) RTL8201BL经过网络变压器PE68515后和PC机通过网线连接。
TPRX+和TPRX-为接收数据,TPTX+和TPTX-为发送数据。
ANE接3.3V电源表示网络可自动识别用10M还是100M模式;Duplex接高电平使能全双工方式;Speed接高电平则选择网络传输速度为100Mbit/s;LDPs接高电平允许进入LDPs模式(没有连接信号是进入节电状态,可节电60%-80%);MII/SNIB接高电平采用MII(介质无关接口)模式。
RTSET通过5.9KΩ电阻接地,产生发送地驱动电流;
3)PE68515为网络隔离变压器,利用它的最大好处是网线可以很方便的带电拔插,而不至于象RS232口那样造成设备的损坏。
5 S3C4510B与RTL8201BL的软件接口设计
S3C4510B集成了一个网络控制,支持IEEE802.3规则,采用TCP/IP模型。TCP/IP模型共分为四层:应用层、传输层、网间网层、网络接口层(链路层和物理层)。如下图所示:
网络传输协议层图
本文根据具体应用场合的特点采用无连接的UDP/IP协议。该协议适用于一次传输交换少量报文(尤其是交易型应用,比如数据库查询)的情形,其可靠性由应用程序提供。它不像TCP/IP协议那样要包容通信子网的各种不可靠因素,几乎直接建立在IP协议之上,相对简单的多。UDP的价值在于其效率,当通信子网相当可靠时,UDP更是大有用武之地。
网络通信过程可分为网络初始化、接收控制、发送控制、接收以太包解析等四部分。整个网络是一个简化的嵌入式TCP/IP协议栈,支持ARP、ICMP、IP和UDP协议,其中,UDP协议用于高速传输用户数据。本文定义基于UDP的高速数据传输协议如下:
(1)送命令帧:上位机向下位机说明传输过程,包括包的大小和数量;
(2)收回应帧:下位机向上位机发送接收就绪,启动上位机发送进程;
(3)发送数据帧:每次发送一个窗口大小的数据帧;
(4)发送确认帧:确认已经收到数据;
(5)重发未确认:每发送完毕一个窗口,重发未确认的帧。
6 小结
本文采用S3C4510B本身所带的网络控制器,通过一个物理层芯片RTL8201BL和网络变压器PE68518实现和PC机网卡的连接,不仅硬件接口简单,而且软件编程容易。采用UDP/IP协议又进一步降低了编程的难度,并大大提高了通信效率。以上硬件和软件设计已在所开发的雕刻机数控系统中获得成功应用。