基于S3C44B0的串口服务器系统的设计

出处:工矿自动化 发布于:2011-08-22 14:07:01

  摘要:为使现有的基于RS232 、RS485 或CAN 总线的串口设备以以太网的方式组网运行,文章介绍了一种基于S3C44B0 的串口服务器系统的设计,详细阐述了系统硬件、软件结构及其工作原理。实际应用表明,该系统实现了以太网与串口的数据交互,使现有的串口设备能快速接入以太网。

  0  引言

  目前,煤矿瓦斯、负压及电动机、供电等自动化监控装置已在各大矿井广泛采用,甚至在个别矿井已组网运行。但是,各自动化监控装置绝大部分仍然采用RS232 、RS485 或CAN 总线组网方式,严重影响了矿井安全监控系统运行的实时性、可靠性、交互性。而工业以太网从10 M、100 M 带宽发展到现在的千兆网,已成为矿井监控系统的主要组网方式。

  因此,如何使现有的基于RS232 、RS485 或CAN 总线的串口设备以以太网的方式组网运行,是目前需要解决的一个问题。本文介绍一种基于S3C44B0的串口服务器系统,该服务器系统可将串口数据转换成TCP/ IP 协议进行数据传输,具有广泛的应用前景。

  1  系统硬件结构

  基于S3C44B0 的串口服务器系统硬件结构如图1 所示。

图1  基于S3C44B0 的串口服务器系统硬件结构图

图1  基于S3C44B0 的串口服务器系统硬件结构图

  该系统主要功能: 从串口设备读取数据,将所得到的数据进行TCP/ IP 协议封装,通过RJ 45 的接口发送到上位机,与上位机的服务器程序进行交互;同时,将上位机发送给串口服务器的数据转发到串口,进而通过网络远程监控现场的串口设备。

  RS232 接口电路如图2 所示。在本系统中,扩展出2 个独立的串行口,该串行口可以三线通信或者与Modem 通信。该接口采用2 片MAX3232C芯片,其中MAX3232C(1) 负责串行口发送接收信号的电平转换,MAX3232C (2) 完成握手信号的电平转换。处理器S3C44B0 的C10~C15 分别作为nRTS1 、nCTS1 、TXD1 、RXD1 、nRTS0 、nCTS0 信号,PE1 和PE2 作为TXD0 和RXD0 信号。

图2  RS232 接口电路图

图2  RS232 接口电路图

  以太网控制器采用在嵌入式领域应用广泛且性价比较高的网络控制芯片RTL8019AS ,其接口电路如图3 所示。

图3  以太网控制器接口电路图

图3  以太网控制器接口电路图

  图3 中,RTL8019AS 采用IN T0 中断方式, 连到S3C44B0 的外部中断引脚IN T1 。数据总线宽度为16 位,因此,RTL8019AS 的引脚IOCS16B 上拉。

  RTL8019AS 有3 种工作方式: 跳线方式, 该方式I/ O和中断由跳线决定;即插即用方式( PnP) , 该方式由软件进行自动配置; 免跳线方式,该方式I/ O和中断由外接的EEPROM93C46 中的内容决定。

  使用何种工作方式由RTL8019AS 的引脚J P 决定,图3 中引脚J P 上拉, 即选择跳线方式。

  RTL8019AS 的引脚IOS2 上拉,引脚IOS0 、IOS1 、IOS3 悬空(引脚IOS0~IOS4 在图3 中未画出) ,当引脚IOS0 、IOS1 、IOS3 悬空时,每个引脚里有1 个100 kΩ 的下拉电阻,因此,引脚IOS0 、IOS1 、IOS3为低电平, RTL8019AS 的I/ O 基址为200H。

  RTL8019AS 片选端AEN 接S3C44B0 的nGCS5 也就是Bank6 ,由于数据总线宽度为16 位, S3C44B0的引脚A1 连接RTL8019AS 的引脚SA0 ,因此,对于S3C44B0 来说, RTL8019AS 的I/ O 基址为0X0A000400H。20F001N 为网卡滤波器,其内部包含1 对低通滤波器和1 对隔离变压器,直接与RJ 45相连。

  2  系统软件结构

  系统软件建立在Linux 2. 4 内核的uClinux 操作系统基础上,采用模块化设计,其结构组成模块如图4 所示。系统软件的为串口和以太网处理模块,串口服务器通过这2 个模块即可实现串口设备的联网。

图4  系统软件结构组成模块图

图4  系统软件结构组成模块图

  由于uClinux 内核中含有串口、网口的通用驱动程序,因此,不必再写关于串口及网络驱动程序,只需在内核移植时,根据硬件电路对uClinux 进行裁减移植后,便可实现对串口及网络的应用编程功能。

  uClinux 的设备管理和文件系统紧密结合,各种设备都以文件的形式存放在/ dev 目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。所以访问串口,只需要打开相应的设备文件即可。在uClinux 下,串行口COM1 和COM2 对应的设备分别为/ dev/ t tyS0 和dev/ t tyS1 。串口的编程步骤如下:

  (1) 打开串口, 采用open ( ) 函数f d = open(" / dev/ t tyS0" ,O_RDWR| O_NOCTTY) ;(2) 若打开成功, 则对串口进行参数设置:

  tcgetat t r ( f d , &oldtio) ;(3) 清除串口缓冲区,因为串口接收和发送数据是从上一组数据之后的缓冲区开始存放的,为了使先前的数据不会重复出现,故清除缓冲区tcflush( f d , TCIFLUSH) ;(4) 读写串口,读串口采用read ( f d ,sbuf ,B U F_L EN) 函数,写串口采用write ( f d , sbuf , B U F_L EN) ,其中f d 为设备打开返回的值, sbuf 为存放发送或接收数据的数据组, B U F_ L EN 为数据的个数;(5) 读写完成后关闭串口,close ( f d) 。

  网络通信本质就是进程间的通信,网络地址和端口号结合在一起,才可以共同确定整个Internet中的1 个网络进程,网络进程由套接字确定,程序采用Socket 表示。套接字常用的有2 种:流式套接字( St ream Socket ) 和数据报套接字(DatagramSocket) 。这2 种套接字的区别在于它们使用不同的协议。流式套接字使用TCP 协议,数据报套接字使用UDP 协议。本系统中采用的协议为TCP 协议。具体通信步骤如下:

  (1) 由socket () 函数创建侦听套接字;

  (2) 通过bind ( ) 函数为该套接字分配1 个地址;

  (3) 使用listen () 函数建立和客户机的连接,告诉套接字开始侦听客户机的连接请求;

  (4) 由accept ( ) 函数完成实际的连接,创建连接套接字,原来的侦听套接字将会继续侦听新的连接请求,而新的连接请求可能会通过accept ( ) 函数的再调用而获得接受;

  (5) 创建连接套接字成功后,便可完成数据的发送与接收任务,数据接收由recv () 函数完成,发送由send () 函数完成。

  本系统在主程序中创建2 个关键的线程完成数据的传送任务, 分别为Serialt hread 线程和Ethernet t hread 线程。Serialt hread 线程的功能是将串口接收到的数据流通过网口发送出去, 而Ethernet t hread 线程的功能是将网口发送过来的数据流通过串口发送出去。基于S3C44B0 的串口服务器系统主程序流程如图5 所示。

图5  基于S3C44B0 的串口服务器系统主程序流程图

图5  基于S3C44B0 的串口服务器系统主程序流程图

  3  结语

  基于S3C44B0 的串口服务器系统可以将零散的串口设备连入以太网,实现资源的共享以及远程控制功能,基本上满足现代矿井各监控单元的组网需求。该系统控制灵活、成本低、具有较大的扩展性,便于实现各种复杂的控制功能。目前该系统已应用到煤矿供电系统馈电开关的以太网监控系统中,大大促进了煤矿的生产和网络化。

参考文献:

[1]. RS232  datasheet https://www.dzsc.com/datasheet/RS232+_585128.html.
[2]. RS485  datasheet https://www.dzsc.com/datasheet/RS485+_585289.html.
[3]. C10 datasheet https://www.dzsc.com/datasheet/C10_1842564.html.
[4]. TXD1  datasheet https://www.dzsc.com/datasheet/TXD1+_666125.html.
[5]. PE1  datasheet https://www.dzsc.com/datasheet/PE1+_1200705.html.
[6]. PE2  datasheet https://www.dzsc.com/datasheet/PE2+_1200684.html.
[7]. RTL8019AS  datasheet https://www.dzsc.com/datasheet/RTL8019AS+_1096173.html.
[8]. A1  datasheet https://www.dzsc.com/datasheet/A1+_2047438.html.
[9]. 20F001N  datasheet https://www.dzsc.com/datasheet/20F001N+_1136734.html.

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!