DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 314|回复: 0
打印 上一主题 下一主题

用于单片机的以太网网关

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:47:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:“网络通”是基于普通单片机的廉价以太网测控网关。它可以将具有RS-232、RS-485等接口的测控设备简单而且直接地连接在以太网(因特网)上,利用丰富的现成的以太网资源,组成一系列以太网的分布式测控系统。
    关键词:以太网分布式测控系统 以太网测控网关 网关 网络通
1 概 述
  利用现有以太网(因特网)的丰富资源,组建以太网分布式测控系统是一种低成本、高可靠性、快捷的技术方案。组建以太网分布式测控系统的关键设备是以太网测控网关,而以太网测控网关的组成方式有以下三种。
  第一种是在20世纪90年代中期,人们采用PC机+网卡+采集插卡组成以太网测控网关,进行协议转换,将由现场总线连接测控设备组成的分布式测控系统接入以太网,将管理PC机放在以太网内,组成一个较大的自控系统。这种组成方式成本很高,只适用于大的自控系统。
  第二种是在近几年,人们采用嵌入式系统+以太网卡+采集卡来组成以太网测控网关。嵌入式系统实际上是在硬件和软件上均可按用户需要进行剪裁的PC机。例如,PC-104实际就是一台没有显示器、键盘、硬盘、软盘的PC-486DX计算机,有电子硬盘及各种I/O插口,可装入Windows CE和其他PC机应用软件。所以,实际上它是第一种网关的简化和微型化。它的成本比第一种有所下降,但价格还是较高。另外,利用了PC机的软件,开发速度较快。
  第三种是今年以来,人们利用单片机加上以太网接口芯片组成以太网测控网关。这实际上是嵌入式网关向大众化、普及化的进一步发展。它以单片机取代PC机,用以太网接口芯片取代以太网卡,使测控网关的价格下降到几百元。这就使测控设备能以低廉的费用,以简捷的方式接入以太网,使网络家电变为现实,使以太网分布式测控系统能得到迅速的发展。
  本文重点介绍我们研制的基于单片机的以太网测控网关--"网络通"的结构、原理和应用。
2 网络通的组成
  "网络通"是以太网测控网关。它主要在网络层完成以太网TCP/IP协议和测控设备现场总线RS-232、RS-485、并口通信等协议的转换,完成以太网和现场总线网络间的互联,实现不同以太网和现场总线网络之间的数据交换。


  "网络通"的组成如图1所示,由单片机和以太网接口芯片组成。
  以太网接口芯片可选用符合IEEE802.3协议的10Base-T通用接口芯片,如UM9003、RTL8019、DM9008等芯片。这些芯片完成与以太网在物理层上的通信任务,采用RJ-45插口,可以直接连接到以太网上。
  "网络通"对单片机没有什么独特的要求,可选用普通的单片机,如80C51等。单片机内用汇编语言写入TCP/IP通信协议,以及RS-232、RS-485等现场总线及并行总线通信协议。它负责完成数据链路层、网络层的协议转换,数据交换任务。它将从以太网接收来的IP包,进行拆包,取出数据,再按RS-232、RS-485等现场总线或并行总线通信协议重新组成帧,发送给测控设备;或者将测控设备发送来的数据帧,重新打成IP包,向以太网发送。
  由于"网络通"具有RJ-45、RS-232、RS-485及并行通信总线等多种接口,是异型网互联、协议转换的网关,所以使用"网络通"可以很容易将具有RS-232、RS-485、CAN、双口RAM等接口的测控设备连接到以太网上,构建基于以太网的分布式测控系统。
  由于"网络通"的接口丰富,且价格低廉,所以它既可以作为网关连接以太网和RS-485、CAN等现场总线网,也可以直接将具有各种接口的测控设备接入以太网,组成以太网分布式测控系统,而不需要再架设现场总线,如图2所示。
3 上位PC机软件
  "网络通"为了方便测控设备通过以太网和以太网上任一PC节点进行数据通信,特意设置了VB下的专用控件lenlib.ocx,用户只需在PC机上安装10/100 Base-T以太网卡,在WIN98平台上即可调用该控件。控件lenlib.ocx提供以太网上接收和发送"网络通"产品数据的软件接口。嵌入lenlib.ocx控件可设计开发出"网络通"的各种网络控制系统应用软件,实现各种基于以太网的分布式测控系统。
  lenlib.ocx控件是一种ACTIVEX控件,使用lenuser对象。它向应用开发者提供了一个属性remoteip,3个方法GetData()、SendData()、Link()和1个事件dataarrival()。其调用步骤如下。
  ① 首先连接PC机和"网络通"。remoteip属性赋值"网络通"的IP地址,再用Link()方法连接。当收到"ACK"字符串表示连机成功时,可以进行下一步通信。
  ② 通信。连通后,GetData()用来接收网络数据,SendData()用来发送数据到网络上。PC机收到"网络通"发数据后,触发DataArrival()事件,使用 DataArrival 事件内的 GetData 方法来获取已发送的信息,获取当前的数据块并将其存储在变体类型的变量中。
  ③ SendData,GetData,link语法:
  返回值  Void
  a. object.SendData data
  b. object.GetData data, [type,] [maxLen]
  通常总是将GetData方法与 DataArrival事件并用,而 DataArrival 事件包含totalBytes参数。如果指定一个比totalBytes参数小的maxLen,则将得到警告10040,以此指出剩余的字节将丢失。
  c. object.link
  参数如表1所列。

表1
[table]


部  分[/td]
描            述[/td][/tr]

Object[/td]
对象表达式,其值是控件的对象Lenuser1[/td][/tr]

Data[/td]
在SendData方法中,是要发送的数据,对于二进制数据应使用字节数组
在GetData方法成功返回之后存储获取数据的地方。如果对请求的类型没有足够可用的数据,则将data设置成Empty[/td][/tr]

Type[/td]
可选的。获取的数据类型,如下例“设置值”所示[/td][/tr]

MaxLen[/td]
可选的。在接收到字节数组或字符串时所需大小。如果对字节数组或字符串参数丢失,则将获取所有可用数据。如果提供的数据类型不是字节数组或字符串,则忽略这个参数[/td][/tr]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-14 11:50 , 耗时 0.100693 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表