1 引言
单片机传输数据有两种方式:串行和并行。并行传输只能应用于近距离的通信,而对于大部分单片机测控系统来说,分布范围广,距离中央处理机远,因此只能采用串行传输[1]。串行传输需要经过电平转换,一般有两种方案:RS-232标准,RS-485标准。第一种标准的最大传输速率为20kb/s,最大传输距离为15m,而RS-485最大传输速率为10Mb/s,最大传输距离为1200m,超出这个范围,由于干扰信号的叠加和传输信号的衰减,误码率将大大增加 [2]。那么如何实现远距离的测控和数据传输呢?利用Nport Express把单片机接入因特网,使数据通过网络传输,则可以很好地解决远程通信的问题。本文就如何利用Nport Express实现S2E(串行口到以太网)进行了细致的讨论。
2 Nport Express简介
Nport Express是由台湾(MOXA)摩莎技术有限公司设计生产的单片机网络接入设备,它有两个端口,一个是RS-232或RS-485电平的输入接口,另一个是网络接口,内部进行TCP/IP封装,对用户来说是完全透明的。其主要特点如下:
(1)体积只有手掌大小,安装调试方便,自动检测10/100M bps以太网端口;
(2)接入口支持RS-232/422/485标准,提供宽泛的主机与远程串行口的Internet/Intranet连接;
(3)支持多个主机共享一个服务器或串行端口;
(4)适用于Windows NT/95/98/ME/2000等操作平台,参数配置直观方便;
(5)接入网络安全可靠,并有相应的控制保障措施,串行口最大速率可达230.4k bps。
3 对NportExpress的参数设置
虽然Nport Express对以太网的连接是一种虚连接,而Windows操作系统会把它的串行接入口当作一个真实存在的物理接口。这个接口完成的不仅仅是数据的接收发送,而且包括RTS,CTS,DTR, DSR, DCD等控制信号的传送。Nport Express支持多种协议:ARP, UDP, TCP, ICMP, Telnet/Rtelnet和DHCP。 TCP 确保了数据的准确传输并提供了自动纠错功能,而IP完成数据块的寻址和路由。在安装和使用Nport Express之前,应对Nport Express的基本参数进行设置。
3.1 参数设置界面的打开
只有获得Nport Express的实际IP地址,才可以打开它的参数设置界面。IP地址由四个字节组成,是Nport Express在网络中的身份证。由于接入网络方式的不同,如局域网接入或通过Modem 拨号上网,IP地址会有所不同,而且每次接入网络时, Nport Express获得的IP地址也可能不同。为了获得Nport Express的实际IP地址,首先运行Nport Monitor,打开Nport Monitor界面,然后运行Configure,Search,则可以查到Nport Express的实际IP地址。然后从“开始”菜单,选择“运行”,输入“telnet 192.168.127.254”(此值为缺省值),当Nport Express所获得的实际IP地址与此不同时,应输入实际IP地址,就可以实现S2E的连接了。
当Telnet窗口打开后,输入1选择ansi/vt100 为控制终端类型,回车后,会出现Telnet的主控界面,在此进行Nport Express各项参数的设置。打开后的主界面如图1所示。
3.2 Nport Express运行模式的设置
Serverconfig是对Nport Express服务器的名称、IP地址、子网掩码、网关的设置进行验证,本项菜单无法改动,也无须改动。 Nport Express有三种运行模式:基于主机连接模式,对等连接模式和自然连接模式。由于自然连接模式是利用TCP/IP协议实现异步串行口的网络接入,可实现与局域网或广域网的连接,使用者可以方便的打开异步串行口,从远程主机上读写原始数据,并实现对异步串行口的远程控制,本文选用这种模式,即RAW-ConnecTIon Mode(自然连接模式)。
有两种传送模式可供选择,即TCP模式与UDP 模式。它们的比较见表1。
Op-mode菜单项的第一个子菜单可以实现对连接方式的设定。从表1可以看出,TCP模式是一种面向连接的传送方式,在传送数据前,通信双方必须都收到对方的回应信号才能启动数据的传输,因而占用了大量的时间用来完成握手信号的传送,但相对于UDP来说,数据传送的安全性较高。而UDP模式是一种快速存取数据的通信方式,通过UDP的特性,Nport Expres可同时接收或发送数据给多台设备,且不需要重新建立联机,节省联机的时间,加快数据传送的效率,对于实时性要求较高的系统,一般选用这种方式,本文的实验中也选择了 UDP模式。经过比较,决定选用RAW Connection(UDP Server/client)。
3.3 可寻址的IP地址范围及端口号的设置
Op-mode还可对收发数据的客户机或服务器的 IP地址范围号和端口号进行设定,这一菜单项特别重要,关系到数据收发的成败,需要仔细设置。
3.3.1 IP地址范围的设置
需要对(S2E)和(E2S)的可寻址IP范围进行设定,它决定了可进行数据交互的网络端计算机和Nport Express的IP地址范围, 这个参数是绝对重要的,数据的往来都是以它为目标进行寻址的,必须对它进行合理的设定。需要进行交互的计算机IP地址一定要包含在内,如果一项设置包含的IP地址太多,而中间有很多IP地址并不需要交互,可以把IP地址范围分段设定,最多可以分为四段。
3.3.2 端口号的设置
端口号分为远程端口号和本地端口号. 无论TCP还是UDP连接方式,数据报都是根据IP地址和端口号达到目的地的,在使用时可以为Nport Express设定一个合适的端口号,即远程端口,一般可自由设定。本地端口指的是要与Nport Express进行数据交互的网络终端计算机的端口号,它的设定以不与计算机外设的缺省端口号冲突为原则。只有IP地址在可寻址范围内,且本地端口号与Nport Express的设定相一致的网络终端计算机才能实现与Nport Express的数据交互。
3.4 串行口参数的设置
第三个菜单项SerialPort为串行口的设置,包括波特率、奇偶校验、数据位、流控等参数的设置,这些参数的设置必须和单片机的串口传送参数相一致,否则,数据将不能被正确的收发。
3.5 利用Monitor 菜单项监控数据的收发
Monitor是另一个比较重要的菜单选项,从这个窗口中,我们可以检查串行口参数的设置情况,其中的两个参数TX、RX比较重要,显示了Nport Express的收发数据量,从而也为我们判断Nport Express是否工作正常提供了依据。
4 单片机接入
以上对Nport Express的参数进行了比较详尽的设置,作为单片机接入网络的关键设备,Nport Express起到了一个单片机网卡的作用,它是串行口数据往来的通道,而单片机作为现场设备检测控制装置,是实现数据交互的门户。利用单片机采集各种数据,并从串行口发出,当然电平转换必不可少,如利用MAX232或HIN232CP芯片,转换成232电平,接入Nport Express的串行口输入口。其中,关键之处在于单片机波特率和握手协议的设定,一定要与Nport Express相一致,才能实现数据的正确传输[4] 。单片机的初始化与收发程序分别如下:
单片机的波特率设定为9600 bps,数据的收发采用中断方式,当单片机收到网络端发来的控制命令时便可触发执行相应的操作,实现远程监控的目的。其原理图如图2所示。
5 网络端编程
5.1 网络控件的选择
为完成数据的采集处理和对单片机的控制,需要在客户机或终端服务器设计一软件平台,实现客户机与Nport Express通过以太网的交互。Nport Express驱动模式支持的开发语言很多,如VC,VB,Delphi, C等。因为VB操作界面简单,串行通信与网络接入控件使用方便,故此选择VB编写前台控制程序。VB中有三个internet控件:internet Transfer, webBrowser, WinSock,都是AcTIveX控件,可以用来实现每一层Internet 通信的访问。
在VB中利用Winsock控件,可以为两个或多个Internet节点建立连接并使之交换数据。对用户来说,Winsock控件是不可见的,它提供了访问 TCP和UDP网络服务的方便途径,编写客户或服务器应用程序时,可不必了解TCP的细节或调用低级的Winsock APIs。通过设置控件的属性并调用其方法就可以连接到一台远程机器上,并且还可双向交换数据。
5.2 Winsock的属性设置
Winsock的属性主要有以下四个:
(a) Protocol ,返回或设置Winsock空间所使用的协议,本文选用UDP;
(b)RemoteHostIP,远程主机IP地址,本文中即Nport Express的实际IP地址;
(c)RemotePort, 要连接的远程端口号,要与Nport Express的设置相一致;
(d)LocalPort, 本地端口,即与Nport Express进行数据交互的计算机端口号,可自由设定,但要与Nport Express中的设置值相一致。
5.3 利用Winsock实现数据的收发[5]
调用Winsock的SendData方法,可以发送数据到网络,经Nport Express传输到单片机,实现前台对现场设备的远程控制,最简单的调用方法如:
Private Sub Timer1_Timer()
Winsock1.SendData (Text1.Text)
End Sub
由一个时钟控件触发Winsock控件的SendData 方法,实现数据向网络的传输,并经Nport Express,传送到单片机,实现控制命令的传送,当然也可以由其他事件触发。
调用GetData方法,可获得单片机发送到网络上的数据流,这个方法一般在Winsock的DataArrival事件中使用。例如,一段数据接收程序如下:
Private Sub Winsock1_DataArrival (ByVal bytesTotal As Long)
Dim strdata As String
Winsock1.GetData strdata, vbString
List1.AddItem strdata
End Sub
则单片机发出的数据流将自动添加到列表框中。值得特别注意的一点是,必须对Winsock的Bind属性赋予合理的初值,并且要与Nport Express的本地端口值一致。数据的具体处理涉及到很多方面的内容,如通信协议的制定,低层数据库的建立与数据更新等,在此不一一累述。
6 结束语
以太网作为IT产业的主要通信骨干,已是众所周知的事实,并且在与人类生活息息相关的信息产业上得到了大量应用,面对这股网络化的潮流,身为所有产业基础建设的工业自动化系统,也应广泛的应用TCP/IP以太网作为系统通信界面,提高系统自动化的能力。利用摩莎公司的Nport Express产品实现单片机接入以太网,达到了远程测量和控制的目的,简单易用、成本适中、效果明显是串行通信网络化的一种可行的方案。
上一篇:爱立信推出全球首款21Mbps嵌入式宽带模块
下一篇:基于LabVIEW8.6和S3C2440的手持数字波形表的界面设计
推荐阅读最新更新时间:2024-05-02 21:09