关键词:网络接入模块,TCP,IP,UDP ,ARP
一、前言
利用现有局域网的丰富资源,组建局域网分布式测控系统是一种低成本、高可靠性、快捷的技术方案。局域网测控系统的组成方式有以下三种。方案一采用PC机+网卡+采集卡组成局域网测控网关,进行协议转换,将由现场总线连接测控设备组成的分布式测控系统接入局域网,将管理PC机放在局域网内,组成一个较大的自控系统。这种组成方式成本很高,只适用于大的控制系统。方案二采用嵌入式系统+局域网卡+采集卡来组成局域网测控网关。嵌入式系统实际上是在硬件和软件上均可按用户需要进行配置的微型机。所以,实际上它是第一种方案的简化和微型化。它的成本比第一种有所下降,但价格还是较高。方案三则由于最近网络发展的趋势,人们利用单片机加上局域网接口芯片组成网络接入模块。它以单片机取代PC机,用局域网接口芯片取代局域网卡,并只需一台网络计算机进行监控,使测控方案的价格大大下降。这就使测控设备能以低廉的费用,以简捷的方式接入局域网,使网络信息家电、IC卡网络控制等变为现实,使局域网分布式测控系统能得到迅速的发展。
二、 TCP/IP网络基本原理与网络接入模块的组成及结构
1. TCP/IP网络基本原理及TCP/IP的具体连接过程
TCP/IP协议是把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网际层、网络接口层。其中网络接口层由控制同一物理网络上的不同机器间数据传送的底层协议组成,如Ethernet 协议等,为TCP/IP协议组的下层物理电气层接口。网际层让信息可以发送到相邻的TCP/IP网络的主机上,IP协议就是该层中传送数据的机制并定义了IP数据帧的格式。同时为了建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到网络物理地址的映射,并用RARP逆向地址解析协议实现物理地址到IP地址的映射。传输层让网络程序通过定义的通道,端口等获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。网络应用层要有一个定义应用的会话过程,如Http、Ftp、Telnet等。
2.网络接入模块的组成及结构
网络接入模块就是局域网的网络协议转换器。它主要在网络层完成局域网TCP/IP协议和测控设备现场总线RS-232协议的转换,完成局域网和测控设备及现场总线网络间的互联,实现不同局域网和现场总线网络设备之间的数据交换。
由于网络接入模块的接口丰富,且价格低廉,所以它可以直接将具有RS-232、RS-485(需通过转接口实现转接)接口的测控设备接入局域网,组成局域网分布式测控系统,而不需要再架设现场总线。
网络接入模块的组成如图1所示,其主要由单片机和局域网接口芯片组成。
图1、网络接入模块的组成原理结构图
局域网接口芯片可选用符合IEEE802.3协议通用接口芯片,如RTL8019AS等芯片。这些芯片完成与局域网在物理层上的通信任务,采用RJ-45插口,可以直接连接到局域网上。
网络接入模块中的单片机可选用普通单片机,如AT系列的AT89C52等。单片机闪存(或外接EEPROM)内用汇编语言写入TCP/IP通信协议,以及与RS-232、RS-485等现场串行总线通信协议。它负责完成网际层、网络接口层的协议转换,数据交换任务。它将从局域网接收来的UDP包,进行拆包,取出数据,再按RS-232、RS-485等现场串行总线通信协议重新组成帧,发送给测控设备;或者将测控设备发送来的数据帧,重新打成IP包,向局域网服务器发送。
三、网络接入模块的硬件设计与工作原理
1.硬件原理框图
系统提供RJ45接口连接局域网,并且提供一个RS-232总线的串口并控制测控设备。网络接入模块可以将从局域网上过来的UDP数据报解包后送给对应的串口,也可将从串口过来的数据封装为UDP包送到局域网中。单片机采用62256外部RAM芯片来暂时存储数据,并保存中间处理结果以及作为与UDP服务器端进行数据通信的缓冲区:如在发生UDP数据发送错误需要重新发送时,将数据再次从RAM中取出并发送到网络,而在数据发送后被正确接收后才将该帧数据冲内存单元内删除。使用EEPROM芯片,既可以作为看门狗(用于单片机程序故障时自动复位)使用,也可以保存IP地址、网卡物理地址和其他参数。具体,网络接口模块的硬件原理框图如图2所示:
图2、网络接入模块的硬件结构原理框图
其中AT89C52单片机采用P0.0~P0.7口与RTL8019AS网卡芯片的数据端口SD0~SD7连接,单片机的P2.0~P2.4与网卡芯片地址端口SA0~SA4连接,单片机P3.7、P3.6分别对应网卡芯片的IORB、IOWB端口,实现对网卡数据的交换及TCP/IP通信的实现。单片机的P2.5、P2.6端口分别对应AT24C512的串行EEPROM的SCL,SDA口。AT24C512中存放IP地址,网卡物理地址等设备参数。单片机与62256RAM芯片的数据接口采用时分复用片选方式用P0.0~P0.7口与62256的D0~D7口交换数据,用P1.0 ~P1.7来控制62256内存单元的物理地址进行数据存放控制。单片机通过P3.0~P3.3端口分别与MAX232芯片(其作用是将TTL电平转变为RS-232电平)串口控制的片选信号,然后根据相应的串口线路进行串口数据传送。而串口接收数据时,通过CTS控制信号进行MAX232芯片的选通,然后MAX232芯片输出中断信号来分别与单片机进行串口数据交换及自定义通信协议的实现。
2.网络接入模块的工作原理及流程
网络接入模块上电复位后,首先进行系统初始化,然后分别接受数据网络数据传送预处理(数据打包、拆包)-网络数据传送-自定义通信协议的数据处理等操作。
根据单片机的程序的不同可以采用两种方式实现TCP/IP的数据通信:即采用TCP和UDP两种方式进行数据传输。但是TCP连接的方式采用可靠连接,虽然系统的可靠性高,但建立可靠连接的系统开销大,不适用于采用传输数据量少的场合。所以采用UDP方式进行数据传输,并采用上层出错重发等协议来进行差错控制。采用UDP的单片机算法流程如下:
图3.单片机UDP通信的算法流程
在单片机相关的存储器中写入相应UDP的控制处理程序,进行UDP的数据打包、拆包,检验等处理和ARP地址解析的处理并进行自定义通信协议握手连接等处理,以确保测控数据的正确传输。
四、 网络接入模块对应的网络PC机通信软件的实现
网络计算机通过WINDOWS的TCP/IP编程的Winsock机制来实现与网络接入模块的控制与通信。在一台作为服务器的计算机上设置一个TCP/IP端口监控的程序,实时监控网络接入模块发到局域网的UDP数据报。对于UDP数据报传送方式,上层服务器先建立一个套接字,然后把它和本地接口绑定在一起,由这个绑定的套接字接口读入UDP数据,并在UDP数据拆包后进行自己定义通信协议的处理(包括安全验证、出错重发及用户自定义帧格式等的处理)。具体的单片机与计算机之间的UDP收发数据流程如下图所示:
图4、UDP数据通信Winsock方式工作流程
五、 网络接入模块应用中的几个关键技术问题
在应用网络接入模块组建局域网测控系统的实际过程中,要根据实际应用需要,注意以下几个问题:
1.网络接入模块的处理及传输速度
在利用网络接入模块组成的局域网测控系统中,上位PC机与下位测控设备之间数据交换的速度取决于网络接入模块的处理及传输速度:网络接入模块的处理速度主要取决于实际需要处理的数据计算量和单片机的处理速度;而网络接入模块的传输速度取决于局域网接口芯片的速度、单片机的处理速度,以及网络接入模块和测控设备交换数据的方式。在一般的测控系统中,要传送的仅仅是控制命令和测量反馈数据,数据量及需要单片机处理的数据计算量不大。网络接入模块与测控设备之间采用RS-232串口方式连接,其通信速率仅几十kb/s~上百kb/s。这时局域网接口芯片的速度(10Mb/s)和微处理器的速度就远大于串口通信速度。网络接入模块的传输速率就取决于串口的通信速率。
局域网接口芯片的速度已达10 Mb/s,远大于微处理器的速度,远大于网络与测控设备的数据交换速度,远大于测控工作的要求,所以满足应用要求。
2.网络接入模块的IP地址
局域网测控系统中,测控设备通过网络接入模块进入局域网,就必须确定自己的IP地址。网络接入模块的IP地址有活动IP和固定IP两种获取的方法:上电时,网络接入模块软件自动在系统中搜寻是否有代理服务器。若有代理服务器,则申请并由代理服务器分配给一个活动IP地址,作为网络接入模块的IP地址;若系统中没有代理服务器,则启用单片机在硬件上设立的一个固定IP地址作为网络接入模块的IP地址。通常在局域网内所需要控制的网络接入模块较少时,如连同同一局域网内工作站不超过255台时,可以分别为网络接入模块分配独立的IP地址,以简化处理,方便单片机实现,否则只能采用代理服务器的方式动态分配IP地址。
3.安全控制
在小型封闭的局域网中进行测控,安全问题不大,但为确保系统安全,在网络接入模块中,单片机采用48~128位的用户密码来保护测控设备的安全,并将部分关键命令码变换加密。合法用户可以修改、设定自己的密码。非法用户即使窃取了网络接入模块的IP地址,没有密码,也无法通过网络接入模块来操作测控设备。
4.实时性问题
测控系统在很多场合都要强调它的实时性,但局域网不是一个实时系统。由于它的载波侦听碰撞检测(CSMA/CD)通信方式,决定了局域网中IP包的传输会有延迟,甚至丢包,这是利用局域网组成分布式测控系统最大的缺点。但是,现在局域网的速度越来越快,百兆网甚至千兆网,或在一些小型封闭的局域网中,当网络的繁忙程度大为减轻时,IP包几乎没有碰撞,传输延迟、丢包现象就大大减小,不会影响测控系统的正常工作。同时,在系统的网络层之上,可增加应答协议,并根据实际应用情况,增加一定大小的缓冲存储器暂存未应答的数据包直到应答为止,丢包的问题就可基本克服。而且可以将直接连接网络接入模块的网线通过交换机中转连入局域网,以保证其交换速度。
六、网络接入模块的应用前景
基于单片机的网络接入模块可以满足一般测控系统的要求,而且它的成本低、体积小,便于在智能楼宇,校园一卡通等工程项目中推广。它可以作为一个模块,直接嵌入到测控设备,生产新一代的网络测控设备、信息家电等嵌入式应用系统。这必将大大促进局域网测控系统、信息家电等自动控制设备的发展。
参考文献
[1]牟英峰 、徐殿国 、张东来 基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案 《电子技术应用》 2002年 28卷 第6期
[2]Behrouz Forouzan, Catherine Coombs, Sophia Chung Fegan编著 潘仡、朱丹宇 翻译 ,吴时霖审校 《数据通信与网络》北京机械工业出版社 2000年4月 第1版 P91~P114 ,P229~P236
[3]余永权 编著 《ATMEL89系列单片机应用技术》北京 北京航空航天大学出版社 2002年4月 第1版P124~P192,P321~P326
[4]RTL8019AS芯片资料,Realtek Full-Duplex Ethernet Controller with Plug and Play Function Specification ,Realtek Semi-conductor Co.,Ltd. May 1st. 2001