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

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

    关注

    74

    文章

    4090

    浏览量

    96016
  • RS485
    +关注

    关注

    39

    文章

    1143

    浏览量

    82137
  • RS232
    +关注

    关注

    13

    文章

    739

    浏览量

    94245
收藏 人收藏

    评论

    相关推荐

    基于S3C4510B串口网络服务器最小系统

    笔者为了通过Internet读取只有RS-232串口的传感数据,基于S3C4510B设计了一个串口网络
    发表于 10-06 13:53 1814次阅读
    基于<b class='flag-5'>S3C4510B</b>的<b class='flag-5'>串口</b>网络<b class='flag-5'>服务器</b>最小<b class='flag-5'>系统</b>

    S3c44b0 控制步进电机

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

    跪求S3c44b0 u***驱动

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

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

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

    uCOS在S3C44B0上的移植代码 1.0(源程

    uCOS在S3C44B0上的移植代码 1.0(源程序)
    发表于 03-28 09:47 39次下载

    基于S3C44B0和μCOS-II 的CAN节点的设计

    本文在将嵌入式实时操作系统μCOS-II 移植到S3C44B0 的基础上,将CAN 总线通讯程序作为一个模块植入μCOS-II 之中,形成一个CAN 总线智能节点。阐述了CAN 总线智能节点的设计思想,硬件
    发表于 08-06 10:35 14次下载

    S3C44B0文手册,S3C44B0文资料

    S3C44B0文手册:S3C44B0X 的UART(通用异步收发)单元提供两个独立的异步串行I/O 端口,每个都可以在中断和DMA 两种模式下工作。它们支持的最高波特率为115.2
    发表于 09-10 18:53 572次下载

    为何选用SAMSUNG S3C44B0进行开发

    为何选用SAMSUNG S3C44B0进行开发   目前,ARM7芯片在国内开发的潮流是三星公司的S3C44B0S3C4510。这两款芯片各有侧重:前者着力于PDA 应用,芯片内部集成了LCD控
    发表于 02-09 17:57 45次下载

    S3C44B0文数据手册

    S3C44B0文数据手册 很多数字音频系统进入了音频消费市场,包括音频压缩唱片,数字音频磁带,数字声音处理,和数字声音TV。
    发表于 02-10 12:01 128次下载

    S3C44B0在高精度直流开关电源的应用

    S3C44B0在高精度直流开关电源的应用 0 引言   近年来,嵌入式技术发展极为迅速,出现了以单片机、专用嵌入式ARM为核心的高集成度处理
    发表于 02-25 10:26 1093次阅读
    <b class='flag-5'>S3C44B0</b>在高精度直流开关电源<b class='flag-5'>中</b>的应用

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

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

    S3C44B0的初始化程序的理解

    S3C44B0的初始化程序就是初始化各个关键的寄存,建立中断向量,然后转移到主函数去执行程序。不过S3C44B0不支持地址映射,所以程序不COPY到RAM种执行。S3C44B0初始化
    发表于 09-28 11:32 1688次阅读

    基于S3C44B0开发板的图像采集方法研究

    本文简要介绍嵌入式系统,并详细阐述了基于三星公司ARM7嵌入式处理芯片S3C44B0为核心构成的开发板,通过uCLinux开发环境,运用Omni Vision511芯片摄像头采集图片的硬件平台设计和软件实现
    发表于 05-29 10:32 2043次阅读
    基于<b class='flag-5'>S3C44B0</b>开发板的图像采集方法研究

    基于S3C44B0开发板进行Blob的移植操作和步骤

    Bootloader是嵌入式系统软件开发的第一个环节,它紧密地将软硬件衔接在一起,对于一个嵌入式设备后续的软件开发至关重要。Blob是一款功能强大的Bootloader,S3C44B0是三星公司一款基于ARM7TDMI的嵌入式通用处理
    的头像 发表于 10-04 17:08 1865次阅读
    基于<b class='flag-5'>S3C44B0</b>开发板进行Blob的移植操作和步骤

    基于S3C44B0的LCD控制及触摸屏接口设计

    电子发烧友网站提供《基于S3C44B0的LCD控制及触摸屏接口设计.pdf》资料免费下载
    发表于 10-11 09:45 0次下载
    基于<b class='flag-5'>S3C44B0</b>的LCD控制及触摸屏接口设计