0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

串口服务器系统中S3C44B0的应用设计

电子设计 作者:工程师之余 2018-11-12 11:19 次阅读

引言

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

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

1、系统硬件结构

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


图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 信号。

串口服务器系统中S3C44B0的应用设计
图2 RS232 接口电路图

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

串口服务器系统中S3C44B0的应用设计
图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 个模块即可实现串口设备的联网。

串口服务器系统中S3C44B0的应用设计
图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 所示。

串口服务器系统中S3C44B0的应用设计
图5 基于S3C44B0 的串口服务器系统主程序流程图

结语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电动机
    +关注

    关注

    73

    文章

    3787

    浏览量

    93439
  • RS485
    +关注

    关注

    39

    文章

    1054

    浏览量

    81061
  • RS232
    +关注

    关注

    13

    文章

    702

    浏览量

    93430
收藏 人收藏

    评论

    相关推荐

    工控必备的串口服务器

    串口服务器
    亿佰特物联网应用专家
    发布于 :2023年03月08日 17:31:12

    请问S3C44b044binit.sb ResetHandler跳转不了问题

    大家好,我在S3C44b0开发板上新建工程添加文件,后通过ADS编译仿真,结果发现开发板上没有反应,怀疑程序没有烧进去,后来单步查看,发现程序运行没有跳转到Main()函数处,接着发现在IMPORT
    发表于 09-29 14:39

    S3c44b0 控制步进电机

    使用S3c44b0控制步进电机,需要有正转,反转,加速减速,匀速功能,哪位大虾帮帮我,给我个例程,十分感谢了
    发表于 03-29 23:58

    手头有些ARM的开发板和原型版,S3C2410,S3C44B0,S3C4510,40-80元不等

    了。打款统一用支付宝,不用手续费,也方便一点。旺旺:ww5223017240QQ:1012923754一般除早上外都在线的。1.拆机的门禁系统板,S3C44B0主控,带一片2M的FLASH和一片8M
    发表于 05-20 15:44

    手头有些ARM的开发板和原型版,S3C2410,S3C44B0,S3C4510,40-80元不等

    有4种MCU,三个三星的,S3C44B0S3C4510,S3C2410,一个ATMEGA的,还有个增强型51的板有好几种,基本都有JTAG,网口,串口,作为开发板是肯定没问题的。具体
    发表于 05-20 16:03

    跪求S3c44b0 u***驱动

    `各位大虾,我买了一块S3c44b0的板子,准备用DNW烧写程序时,但是DNW显示USB:x,在网上找了很久都没有找到,我用的是win7,所以跪求这个驱动,如果有的话,请发到邮箱1159438455@qq.com,万分感谢!`
    发表于 07-06 22:16

    串口服务器应用接线较长

    串口服务器应用接线较长1、虚拟串口模式2、点对点模式3、点对多点模式http://www.cnsmart.net4、多台主机模式
    发表于 01-06 08:47

    转让闲置S3C44B0开发板增强版一块

    `转让闲置S3C44B0开发板增强版一块S3C44B0开发板增强版标配全套产品清单:1、S3C44B开发板增强板1块2、JTAG调试1个3
    发表于 04-02 18:42

    求基于S3C44B0的语音录放系统设计代码的mcp工程包

    求大神相助!基于S3C44B0的语音录放系统设计,最好有mcp工程包哈
    发表于 05-10 21:20

    32位处理S3C44B0怎么移植?

    S3C44B0是Samsung公司推出的一款为手持设备或其他通用设备开发的32位处理,它基于ARM7TDMI核,没有内存管理单元(MMU)。在采用无MMU的微处理的嵌入式系统中广泛
    发表于 08-19 08:00

    设计分析:树莓派的多串口服务器软件设计3个主要任务

    串口服务器带有16个串口,每个串口配置相互独立。图4 WEB配置界面由于配置程序设计采取工作模式配置与串口参数配置相关联,如果选用前3
    发表于 05-20 07:00

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

    为使现有的基于RS232 、RS485 或CAN 总线的串口设备以以太网的方式组网运行,文章介绍了一种基于S3C44B0串口服务器 系统的设计,详细阐述了
    发表于 09-01 15:16 1604次阅读
    基于<b class='flag-5'>S3C44B0</b>的<b class='flag-5'>串口服务器</b><b class='flag-5'>系统</b>的设计

    串口服务器调试方法_口服务器怎么设置

    MOXA串口服务器有多种型号,其中最常用的要数5130、5232等基本型号。其功能强大性能稳定深的用户喜爱。在此我们就5130这个型号看一看MOXA串口服务器的基本调试方法串口服务器如何调试是很多用户入手新产品时必须要考虑的问题
    发表于 02-01 17:25 2.7w次阅读
    <b class='flag-5'>串口服务器</b>调试方法_<b class='flag-5'>口服务器</b>怎么设置

    串口服务器是什么 有哪些分类及特点

    串口服务器相对单串口服务器来说,具备多个串行口,其要求主CPU的性能及功能的要求更多,这也是很多厂商只有单串口服务器,而没有多串口服务器的原因。接下来我们就来为大家详细介绍下什么是多
    的头像 发表于 02-12 15:45 2189次阅读

    串口服务器连接MQTT服务器方法说明

    串口服务器连接MQTT服务器方法参考“串口服务器用户手册”,不再重复说明。
    发表于 03-30 09:58 3973次阅读
    <b class='flag-5'>串口服务器</b>连接MQTT<b class='flag-5'>服务器</b>方法说明