微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于SC28L198的多串口服务器设计

基于SC28L198的多串口服务器设计

时间:09-15 来源:互联网 点击:

以及遵守IEEE802.3协议。整个系统连接以太网只需一个隔离变压器,无需外接以太网控制芯片,简化了硬件设计。隔离变压器能够隔离模块地和数字地,从而保证SC28L198能够远离外界的复杂信号。

3 软件设计

在该系统中,用户可以对串口服务器的配置、状态查询和在计算机(客户端)上通过以太网收发数据进而操作该串口服务器。在客户端上,8个SC28L198的通道被虚拟成8个COM接口。操作这些虚拟COM接口就如同操作计算机上的物理COM接口,因此用户不必知道数据是通过以太网进行传输。实际上,用户操作这些COM接口时,产生的命令和数据将被打包成一帧数据并发往处理器LM8962,然后LM8962将数据通过SC28L198的相应通道发送到设备上。串口服务器使用ARM处理器LM8962作为嵌入式设备的核心器件,在其上运行μC/OS-II操作系统来打开、关闭和管理8个串行通道的相应进程。因此,8个串行通道能够同时收发数据而不相互影响。

3.1μC/OS-II

μC/OS-II是免费开源、专门为嵌入式系统设计的实时操作系统。它包括任务计划、任务管理、时间管理、内存管理、任务间的通信以及其他一些基本功能。在该系统中采用μC/OS-II来实现以下功能:

(1)建立一个消息队列来存储串口通道的消息和UDP消息;(2)控制SC28L198收发串口数据;(3)建立一个任务来管理UDP通信,并通过以太网收发数据;(4)建立一个任务来管理串口通道收发任务与UDP通信任务之间的通信。

3.2TCP/IP模块

TCP/IP协议具有分层结构,能够实现对以太网数据帧进行打包和解包。UDP在TCP/IP的传输层,提供一种不可靠的数据传输服务,但UDP协议相对简单,比起TCP协议更能够提供实时和快速的数据传输。在正常的运行过程中,该TCP/IP程序模块能够从数据队列中获取串口通信的数据并将数据打包至UDP包中,然后将UDP包发送至IP层,最后形成一帧数据。该帧数据将会通过以太网发送到计算机中。与此同时,该程序模块还将从以太网接收到的数据解包出来,将其中的串口通道号和串口数据发送到SC28L198中去。表1描述了收发一帧数据的格式。

表1数据传输格式

3.3 SC28L198收发模块

图3描述了串口接收模块的工作流程。当SC28L198中的某个接口通道接收到串口设备的一帧数据时,这些数据将被送往数据队列,同时保存相应的串口通道号。当打包时间到了规定的时间或者打包的串口数据已经达到规定的最大长度(200字节)时,该数据包将被发往以太网。图4描述了串口发送模块的工作流程。当该系统通过以太网接收到主机发来的一帧数据或命令时,ARM处理器将去掉以太网帧头、IP头和UDP头,提取出串口通道号,将分离出的串口数据帧发送到对应的串口通道。

图3 串口数据接收流程

图4 串口数据发送流程

3.4初始化程序

在整个系统开始工作之前,程序必须对SC28L198中的每个通道进行初始化。ARM处理器LM8962通过向SC28L198的寄存器写入命令来完成整个初始化过程。为了保证LM8962与串口设备之间传输的数据准确无误,串口服务器需要规定每个通道的通信格式。该格式包括发送数据波特率和接收数据波特率、数据长度、停止位和校验位等。整个初始化过程的程序如下:

void UART_Init( void) {

uchar channel;

UART_WR ( GCCR,0 x06) ; /* 全局配置* /

UART_WR ( CR( 0), 0xF8) ; /* 重启芯片* /

UART_WR ( ICR, 0x00) ; /* 设置中断水平* /

UART_WR ( IVR,0x00) ; /* 设置中断仲裁门槛* /

for( channel = 0; channel < 8; channel + + ) {

UART_WR ( MR0( channel) ,0xC0) ; /* 无流量控制* /

UART_WR( MR1( channel) ,0x77) ; /* 设置数据格式* /

UART_WR( MR2( channel) ,0x00) ; /* 普通模式* /

UART_WR( RXCSR( channel) ,0x0E) ; /* 设置接收波特率* /

UART_WR( TXCSR( channel) ,0x0E) ; /* 设置发送波特率* /

UART_WR( CR( channel) ,0x28) ; /* 锁住收发器* /

UART_WR( IMR( channel) ,0x03) ; /* 开启

Tx 和Rx* /

}

}

4 结论

笔者研究了基于SC28L198的多串口以太网数据转换,采用μC/OS-II操作系统和TCP/IP协议实现了实时、高效的数据传输,为RS232/422/485设备提供了方便快捷的以太网连接。该系统能够为串口设备提供网络化监控、管理,以及远距离数据服务。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top