当前位置:首页 > 通信技术 > 通信技术
[导读]目前工业领域中有大量的设备不具备以太网接口,但这些设备都提供RS-232串口或RS-422/485串口。RS-232只能提供近距离数据传输,且速度不高。RS-422/485虽然能提供远距离数据传输,但却是独立于Internet之外,不便

目前工业领域中有大量的设备不具备以太网接口,但这些设备都提供RS-232串口或RS-422/485串口。RS-232只能提供近距离数据传输,且速度不高。RS-422/485虽然能提供远距离数据传输,但却是独立于Internet之外,不便于网络管理。而以太网有传输速度快,传输距离远,能够为任何一台联网的计算机提供监控和数据存取服务。为使传统串口设备能够方便、快捷地接入互联网,笔者以ARM7处理器LM8962和串口扩展芯片SC28L198为核心构建嵌入式系统(串口服务器),完成以太网数据与串行口数据之间的相互转换。一方面,LM8962将SC28L198发送过来的串口数据打包成以太网数据帧,并通过自身的以太网控制器发往主机;另一方面,LM8962将收到的以太网数据解包,分离出数据和相应的串口设备号,然后通过SC28L198的相应通道发往串口设备。笔者简化了复杂的硬件电路设计,能够实现低成本、高速度的单芯片多串口扩展方案。采用该方案,能够将串口设备虚拟成计算机的一个COM接口,用户对串口设备进行远程操作无需考虑数据传输的复杂性。

  1 串口服务器硬件结构

  该系统选用TI公司生产的ARM芯片LM8962作为主控MCU以及选用Phillips公司生产的芯片SC28L198作为8通道UART控制器。

  该系统的主要功能是完成TCP/IP协议与串口通信协议之间的相互转换。

  主控制器LM8962是由LuminaryMicro公司开发的一款基于ARMCortex-M3MCU内核的32位微处理器。该处理器支持的最大主频为50MHz,具有嵌入式Flash和SRAM、运动控制PWM等内部模块。LM8962内部集成了以太网控制器,结合了Bosch控制器局域网技术和10/100以太网媒体访问控制(MAC)以及物理(PHY)层,简化了该系统以太网连接的硬件电路设计。该微控制器使用了兼容ARMThumb?的Thumb2指令集来减少存储容量的需求,并以此达到降低成本的目的。系统的硬件结构如图1所示。

图1硬件结构图

  UART器件SC28L198提供了8路相互独立的全双工异步通道,每路UART通过同步总线接口与主机进行通信。每个通道的接收器和发送器均具有16个字符的FIFO,最大限度地减少了接收器超时的情况,使用用户定义的Xon/Xoff字符可实现自动带内流量控制,在唤醒模式下可进行地址识别。SC28L198同时还包括以下功能模块:

  时序模块,其中包含一个可产生22个工业标准的波特率的通用波特率发生器和用来产生非标准波特率的2个16位计数器;I/O口控制模块和状态变化检测器模块;可仲裁24个中断的中断仲裁系统。为了降低软件开销,器件包含的中断仲裁系统通过直接访问或修改中断向量的方法来报告UART中断的情况。报告的中断上下文包括通道编号、器件中断类型(接收器COS等)、发送器或接收器FIFO的填充点。

  2 串口扩展电路

  图2描述了具有8通道的串口联网服务器的电路连接框图。串口服务器的硬件由两个主要芯片和其他外围电路组成。在SC28L198的管脚中,CEN、W_RN、IACKN、DACKN、IRQN、SCLK管脚控制着主机外部与内部数据总线与SC28L198之间的数据传输,管脚A7~A0为SC28L198与ARM相连的地址总线,D7~D0为SC28L198与ARM传输数据的数据总线。

图2电路连接框图

 

波特率发生器工作在振荡器或外部X1/CCLK时钟输入下,可以产生22个50.0~230.4k范围内的常用数据通信波特率。通常使用的外部晶振频率为3.6864MHz和7.3728MHz,在7.3728MHz工作频率下产生的波特率是3.6864MHz下产生的两倍。每个接收器和发送器可以工作在不同的波特率下,通过向波特率选择寄存器写入不同的选择代码将产生不同的波特率。

  SC28L198的系统时钟(SCLK)可同时作为主机接口和其他内部电路的基本时间基准。为了确保内部控制器的正确操作,提供的SCLK频率必须大于X1晶体时钟的2倍或任何外部的1X数据时钟输入。由于LM8962芯片本身没有提供时钟信号输出引脚,若由定时器中断产生7.3728MHz以上频率的方波信号将使LM8962频繁处理中断程序,影响程序执行效率。当SC28L198工作在50MHz频率下,其中的PWM硬件模块最高可以产生25MHz输出,且不产生任何中断,因此LM8962将从频繁的查询和处理中断中解脱出来。

  在该系统中,需根据不同的应用场合使用RS-232收发器或RS-422/485收发器及其外围电路。使用RS-232收发器可以进行近距离全双工通信,使用RS-422/485收发器能够进行远距离数据传输。由于整个系统工作于3.3V电压下,为了匹配TTL电平和RS-232电平或RS-422/485电平,该电路采用MAX3232芯片或MAX3485芯片。

  LM8962内部集成的以太网控制器包含一个完整的MAC模块和PHY接口器件,简化了硬件电路设计。该以太网控制器完全支持10BASE-T和100BASE-TX标准以及遵守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设备提供了方便快捷的以太网连接。该系统能够为串口设备提供网络化监控、管理,以及远距离数据服务。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

串行通信是一种通信方式,数据在通信线上按位进行传输。每位数据占据固定的时间长度,使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

关键字: 串行通信 UART

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

UART(通用异步收发器),这是用于全双工串行通信的最常见协议。它是设计用于执行异步通信的单个LSI(大规模集成)芯片。该设备将数据从一个系统发送到另一系统。

关键字: 数据通信协议 UART 异步收发器

UART将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: UART 通信协议

8款产品入围最终名单 上海2023年9月5日 /美通社/ -- 富士胶片控股株式会社荣誉宣布,在由美国工业设计师协会(IDSA)主办的设计大奖、2023国际设计卓越奖"IDEA奖"(Internat...

关键字: IDE 富士 数码相机 LM

北京2023年3月13日 /美通社/ -- 近日,亚马逊云科技宣布针对其广泛的存储服务推出诸多可帮助客户进一步优化成本的新功能,功能更新涵盖Amazon Simple Storage Service(Amazo...

关键字: 亚马逊 STORAGE LM Windows

苏州2023年2月3日 /美通社/ -- 2023年2月2日,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(以下简称"TUV莱茵")为科沃斯家...

关键字: UART 机器人 科沃斯 GO

发个方便测试I2C、SPI、1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成上面几种接口的硬件时序电信号,实现与这几种接口芯片、设备的快速测试。 首先声明一下,大家都是搞...

关键字: 可编程USB UART I2C SMBusS SPI

芬兰石油公司耐思特(Neste)从2023年开始,将向法荷航集团(Air France-KLM Group)供应超过100万吨(约12.6亿升)可持续航空燃料。这项为期8年的新可持续航空燃料协议是迄今为止航空业同类协议中...

关键字: TE ST GROUP LM

苏州2022年10月13日 /美通社/ -- 北京时间2022年10月13日,开拓药业(股票代码:9939.HK),一家专注于潜在同类首创和同类最佳创新药物研发及产业化的生物制药公司,宣布其联合美国德克萨斯大学...

关键字: 模型 LM EMI PD
关闭
关闭