下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【Word版本下载可任意编辑】 S3C44B0的串口服务器系统的设计 0 引言 目前,煤矿瓦斯、负压及电动机、供电等自动化监控装置已在各大矿井广泛采用,甚至在个别矿井已组网运行。但是,各自动化监控装置绝大部分仍然采用RS232 、RS485 或CAN 总线组网方式,严重影响了矿井安全监控系统运行的实时性、可靠性、交互性。而工业以太网从10 M、100 M 带宽发展到现在的千兆网,已成为矿井监控系统的主要组网方式。 因此,如何使现有的基于RS232 、RS485 或CAN 总线的串口设备以以太网的方式组网运行,是目前需要解决的一个问题。本文介绍一种基于S3C44B0的串口服务器系统,该服务器系统
2、可将串口数据转换成TCP/ IP 协议开展数据传输,具有广泛的应用前景。 1 系统硬件构造 基于S3C44B0 的串口服务器系统硬件构造如图1 所示。 图1 基于S3C44B0 的串口服务器系统硬件构造图 该系统主要功能: 从串口设备读取数据,将所得到的数据开展TCP/ IP 协议封装,通过RJ 45 的接口发送到上位机,与上位机的服务器程序开展交互;同时,将上位机发送给串口服务器的数据转发到串口,进而通过网络远程监控现场的串口设备。 RS232 接口电路如图2 所示。在本系统中,扩展出2 个独立的串行口,该串行口可以三线通信或者与Modem 通信。该接口采用2 片MAX3232C芯片,其中M
3、AX3232C(1) 负责串行口发送接收信号的电平转换,MAX3232C (2) 完成握手信号的电平转换。处理器S3C44B0 的C10C15 分别作为nRTS1 、nCTS1 、TXD1 、RXD1 、nRTS0 、nCTS0 信号,PE1 和PE2 作为TXD0 和RXD0 信号。 图2 RS232 接口电路图 以太网控制器采用在嵌入式领域应用广泛且性价比较高的网络控制芯片RTL8019AS ,其接口电路如图3 所示。 图3 以太网控制器接口电路图 图3 中,RTL8019AS 采用IN T0 中断方式, 连到S3C44B0 的外部中断引脚IN T1 。数据总线宽度为16 位,因此,RTL
4、8019AS 的引脚IOCS16B 上拉。 RTL8019AS 有3 种工作方式: 跳线方式, 该方式I/ O和中断由跳线决定;即插即用方式( PnP) , 该方式由软件开展自动配置; 免跳线方式,该方式I/ O和中断由外接的EEPROM93C46 中的内容决定。 使用何种工作方式由RTL8019AS 的引脚J P 决定,图3 中引脚J P 上拉, 即选择跳线方式。 RTL8019AS 的引脚IOS2 上拉,引脚IOS0 、IOS1 、IOS3 悬空(引脚IOS0IOS4 在图3 中未画出) ,当引脚IOS0 、IOS1 、IOS3 悬空时,每个引脚里有1 个100 k 的下拉电阻,因此,引脚
5、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
6、 所示。系统软件的为串口和以太网处理模块,串口服务器通过这2 个模块即可实现串口设备的联网。 图4 系统软件构造组成模块图 由于uClinux 内核中含有串口、网口的通用驱动程序,因此,不必再写关于串口及网络驱动程序,只需在内核移植时,根据硬件电路对uClinux 开展裁减移植后,便可实现对串口及网络的应用编程功能。 uClinux 的设备管理和文件系统严密结合,各种设备都以文件的形式存放在/ dev 目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。所以访问串口,只需要打开相应的设备文件即可。在uClinux 下,串行口COM1 和
7、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
8、_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 种套接字的区别在于它们使用不同的协议。流式
9、套接字使用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 的串口服务器系统主程序流程图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 242-2026人工智能智能体技术要求
- 小学生交通安全知识教育主题班会模板
- 远大林某省市生活圈系列活动方案
- 2026年秋高中生营养与健康科普课件:健康体重从娃娃抓起
- 山东省泰安市新泰市2025-2026学年七年级下学期期末检测语文试卷(含答案)
- PLC应用实践试题及答案
- 2026年影子专栏测试题及答案
- 作物栽培学试题及答案
- 2026年集成烹饪中心测试题及答案
- 营养师考试题目及答案
- 2026-2027学年岭南版(新版)初中美术七年级上册教学计划及进度表(第一学期)
- (语文)2027版高中《晨读晚测小纸条》高三二轮复习(学生+教师版)
- 湖北省鄂州市鄂城区2025-2026学年七年级下学期期末质量监测语文试卷(含答案)
- 焊接施工进度管控方案
- 人工智能训练师(三级高级工)国家职业技能考试题库(2026年版)
- 污水处理池模板工程专项施工方案
- 2026年一级建造师《建设工程经济》考前冲刺练习题库(完整版)附答案详解
- 节假日值班值守工作制度
- TGDACM 0174-2026 中医技术操作规范 温通拨筋罐疗法
- 税务师业务风险控制制度
- 富通尼特、山东众海消防主机字库、汉字编码表
评论
0/150
提交评论