当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]工业控制中,各设备的信号采集和监控只靠串口总线难以实现扩展,要将现场控制网络和信息网络相连,就需要解决串口通信协议和因特网通信协议的转换问题,即把原有设备转换为

工业控制中,各设备的信号采集和监控只靠串口总线难以实现扩展,要将现场控制网络和信息网络相连,就需要解决串口通信协议和因特网通信协议的转换问题,即把原有设备转换为具备网络接口的外设,这样可以将传统串行链路上的数据传输到信息网络上,而无需更换原有设备。如此,可以提高原有设备利用率、增加多终端连接数、节约成本、简化布线的复杂度及延长通信距离。

近年来,因信息化和物联网发展的需要,串口服务器大量涌现,它们不占用主机资源,且具有终端服务器的功能。不过,设备体积庞大、价格昂贵、串口不易裁剪或扩展、传输大量数据帧时丢包、参数配置繁杂等问题也随之出现。

本设计采用的串口服务器的核心设备--树莓派,是一款体积小、价格便宜但功能非常强大的平台,可通过多种通信方式接入互联网,支持多种完整网络协议,结合USB-hub及USB/串口转换器使用,可保证串口服务器使用方便,并实现实时、准确、长时间稳定的数据传输。

1 总体设计

根据当今工业现场数据传输需求,应具备的技术指标和设置参数如下。

1.1 技术指标

①主控芯片:32位700 MHz的ARM1176JZF-S处理器;

②操作系统:Linux;

③支持协议:TCP/IP、UDP、HTTP、FTP;

④网络接口:10/100 Mbps自适应以太网接口;

⑤串口类型:1~16个RS 232/RS485/RS422接口,1个TTL电平串口;

⑥参数配置方式:WEB浏览器配置;

⑦会话数:支持多连接,满足5个以内用户同时管理一个模块设备;

⑧工作模式:TCP客户端、TCP服务器、UDP广播模式;

⑨指示灯:电源指示灯、通信指示灯;

⑩供电电压:5 V.

1.2 设置参数

该设备选择WEB浏览器设置方式,内置WEB服务器,用户可进行IP地址、串口通信参数、工作模式等的管理和配置。以下主要介绍串口通信和工作模式参数的设置。

(1)串口通信参数

①波特率为2 400~115 200 bps;

②数据位为6/7/8/9;

③校验位为None/Even/Odd;

④停止位为1/1.5/2;

⑤成帧长度为1~15000字节;

⑥成帧间隔为30~500位。

其中,成帧长度指每一帧接收数据的长度,接收端缓冲区一旦接收到该长度的数据就转发出去;成帧间隔就是所谓的串口超时,超时时间T(s)、成帧间隔N(位)、波特率B(b/s)的关系如下。一旦超时,不管已有数据长度是不是达到成帧长度,接收端缓冲区就将已有数据组帧转发出去。

T= N/B (1)

(2)工作模式参数

①单个串口支持会话数为1~5个,每个会话模式间相互独立;

②TCP服务器模式为绑定端口范围为1025~65535;

③TCP客户端模式为需配置目标服务器IP、端口及自动重连时间,其中自动重连时间指网络连接中断或者服务器异常时,重新发起主动连接的时间间隔,循环自动重连直到正常连接上为止;

④UDP广播模式为需配置本地端口、目标服务器IP和目标端口。

2 硬件设计

此串口服务器根据以上指标选用最新的树莓派、USB-hub及北京世纪联信公司生产的USB/四串口转换器组合而成。

2.1 硬件结构组成

串口服务器硬件结构组成如图1所示,树莓派具有两个USB接口、一个TTL串口及一个10/100 MHz自适应以太网接口。一个USB接口通过USB-hub和n(可据情况选择,最多时n=4)个USB/串口转换器扩展出4n个RS232/RS422/RS455串口,另一个可外接无线USB网卡,从而实现局域网或广域网中有线或无线数据传输。

图1 硬件结构框图

2.2 树莓派简介

树莓派(Raspberry Pi)是一款基于Linux系统的只有一张信用卡大小的单板计算机,配备一枚博通生产的700 MHzARM架构BCM2835处理器,512 MB内存,使用SD卡当作存储介质,操作系统采用开源的Linux系统,提供并支持Python作为主要编程语言。

2.3 USB-hub简介

USB-hub(USB集线器)是一个将多个USB设备连接到计算机上的USB接口或另一个USB集线器上某时候,它们都来自于主板内部一个或者两个主USB接口,而不是相互独立的硬件。一个USB接口、一个USB集线器和若干个外围设备可以构建一个USB网络。本系统选用的USB-hub由一个USB接口扩展出4个USB接口。

2.4 USB/串口转换器简介

USB/串口转换器选用北京世纪联信LENSYS-USB2COM-4模块。它是一种导轨安装式串口扩展模块,实现了用USB口扩展4串口的功能,可以通过USB快速扩展四个计算机串口,通过拨码开关设定RS 232/422/485接口方式,还可以实现4个RS 232转4个RS422/485的功能。通过该模块能够可靠、实时、便捷地完成工业现场RS232/485/422信号的传输和转换,广泛应用于石油天然气、水利、电力调度、市政调度等行业。

  3 软件设计

此串口服务器软件设计基本结构如图2所示,客户端只是WEB浏览器,软件设计则主要体现为服务器端的网页展现、业务逻辑和数据存储。

WEB服务器负责串口服务器通信参数的手动配置和存储、通信程序的手动启停等;应用服务器负责实现TCP/IP网络与串行接口设备的互通,完成TCP/IP协议格式的数据与串行数据间的相互转换;数据库主要包含用户管理数据表、串口参数配置数据表、工作模式配置数据表。

图2 软件设计基本结构图

下面介绍串口服务器软件设计中3个主要任务:WEB服务器的设计、WEB配置页面的设计和串口联网通信程序的设计。

3.1 WEB服务器的设计

由于串口数量较多,所以在树莓派中植入WEB服务器,由WEB服务器将用户的请求转换为对后台数据的查询或更新,并将友好的图形界面在浏览器上展示给用户,实现简便统一的远程通信参数配置、设备管理、用户管理、监控串口服务器运行状态。

本串口联网服务器选择树莓派自带的Python作为开发语言,采用小巧而灵活的web.py开发框架提供HTTP服务,其轻量级满足采集系统对数据传输模块的要求,可以提高系统的使用效率,WEB服务器设计流程如图3所示。

图3 WEB服务器设计流程

设备上电或系统重启后,WEB服务自动启动,并初始化WEB服务器所需显示和配置的信息,用户通过浏览器访问系统指定端口进行登录认证即可访问参数配置页面。其中,设备信息和网络信息通过系统文件管理器进行查看和配置,用户信息、串口参数和工作模式信息通过数据库进行读写,帮助信息则通过FTP服务器进行串口服务器说明手册、公司服务信息等文档下载。

3.2 WEB配置页面设计

WEB配置页面即WEB服务器的展示层,如图4所示,扫描出的串口数表明该串口服务器带有16个串口,每个串口配置相互独立。

图4 WEB配置界面

由于配置程序设计采取工作模式配置与串口参数配置相关联,如果选用前3个串口,则工作模式配置中只显示此3个串口的工作模式配置界面,如图5所示。

图5 工作模式配置界面

以上配置方式可方便实现批量配置,配置完成后可生成配置信息查看界面,如图6所示,该界面还可进行选中串口的通信参数、工作模式的编辑和删除。

图6 配置信息查看界面

3.3 串口联网通信程序设计

WEB服务器完成配置工作后,即可启动通信程序进行数据通信工作,具体实现流程如图7所示。此程序在设备上电或系统重启后自动启动,读取用户配置的串口通信和工作模式参数后,进入通信程序无限循环,图中进程数即现场应用所配置的串口总数。其中N为串口服务器串口数,M(M≤W)为N个串口中使用的串口数;n为各自编号,I为进程编号;S为所配会话数,s为线程编号。

图7 串口服务器通信程序工作流程

3种工作模式中,TCP服务器和TCP客户端同属TCP协议传输程序,其数据帧收发处理过程都采用同一种思想,下面介绍TCP、UDP协议传输程序和数据帧转发程序的设计:

3.3.1 TOP协议传输程序设计

TCP协议传输程序涉及到服务器端和客户端的设计。

服务器端程序设计:

①建立一个socket,选择类型INET及TCP连接方式;

②读取配置端口进行绑定监听,等待客户端主动连接;

③设置监听队列大小;

④进入一个无限循环,使用accept()等待客户连接,返回的新连接对应于客户端IP,建立通信信道;

⑤进入无限子循环,通过sendall()及recv()进行读写操作。

客户端程序设计:

①建立一个socket,选择类型及连接方式同服务器端;

②读取配置所配置远程服务器IP及端口;

③进入无限循环,使用connect()连接远程服务器,若连不上,达到所配置超时间隔后再次重连;

④连接成功后进入无限子循环,通过sendall()及recv()进行读写操作。

3.3.2 UDP协议传输程序设计

UDP传输称为无连接传输,不存在TCP中的三次握手和错误重传机制,其传输程序需同时读取所配置的本地IP和端口、远程IP和端口,建立数据报形式的socket后可同时作为发送端和接收端。作为发送端时,sendto()发送地址为远程接收端IP和端口,作为接收端时公开本地IP和端口,recvfrom()等待远程发送端的数据到来,可以接收任何地址发送过来的数据包。

3.3.3 数据帧转发程序设计

串口服务器功能模块实现了串行链路数据与以太网数据转换的功能:一方面,接收来自串行链路的数据帧,并将其转化为以太网链路数据帧后发出;另一方面,接收来自以太网链路的数据帧,并将其转化为串行链路数据帧后发出。以上两个通信过程并行执行,在程序设计中采取多线程实现方式。

(1)网络数据的接收

每种通信模式下,网络数据的接收都在指定的回调函数中实现,TCP通信接收函数为recv(),而UDP通信中为recvfrom()。当数据帧长度积累到指定的接收缓冲区大小或达到串口超时还不足指定数据帧长度,立即调用实例化后的串口发送函数write(),即可将缓冲区中接收到的数据通过串口转发。

(2)网络数据的发送

接收串口数据时调用串口接收函数read(),当数据帧长度达到串口接收缓冲区大小或串口超时,立即调用网络发送函数把该缓冲区中的数据帧通过网口转发,其中TCP通信发送函数为sendall(),而UDP通信为sendto()。

结语

经全面测试合格后,目前本串口服务器已经成功应用到工业现场,由此可见,本串口服务器支持高频转发、大数据帧实时转发,可长期、全天候稳定运行。

1次

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭