通用可靠的串口/以太网网关设计
摘要:介绍了一种串口/以太网嵌入式网关的设计方案,详细讨论了串口可靠通信的实现方法,并在开源操作系统RTThread和微处理器S3C2 440开发板的软硬件平台上实现。网关实际应用于一个无线传感器网络项目,实验表明该网关能实现可靠的数据通信。
关键词:串口/以太网网关;可靠串口通信;RT-Thread;S3C2440
引言
随着物联网的蓬勃发展,越来越多的传统本地设备或网络有接入计算机网络的需求,而这些传统没备一般都是不具备网络接口的非IP设备。最常用的通信接口是串口,不能直接接入计算机网络,在不改变这些原有设备的基础上,使用串口/以太网网关来接入计算机网络的方式不失为一种比较好的解决方案。
基于此需求,设计和实现了串口/以太网网关,网络结构如图1所示。实现了非IP设备与IP设备间的数据通信,并特别考虑了串口通信的可靠性,从软件和硬件两方面详细讨论了保证串口通信可靠性的方法。IP端通信的可靠性由TCP/IP协议保证,这样就保证了串口设备与IP设备间通信的可靠性。
1 网关工作原理
1.1 概 述
网关实现串口设备和以太网之间的协议转换,具体表现为帧格式的转换,可表示为:
Socket帧←→净荷数据←→串口帧
其中Socket(套接字)帧和串口帧郜是为实现网关可靠通信而自定义格式的帧,净荷数据为真正需要传送的应用数据。
网关的数据通信可分为两部分:网络端和串口端,要保证整个网关通信的可靠性,那么就要分别保证网络端和串口端通信的可靠性。
在网络端,网关使用了流式套接字。流式套接字使用TCP协议,而TCP协议是面向连接的,保证了数据传输的正确性和顺序性。所以,流式的套接字可以提供可靠的、面向连接的通信流。但是,流式数据对应用来说不易使用,所以Socket数据传送都是基于帧格式的。
在串口端,串口数据传送本质上也是字节流式的,在硬件层次是不可靠的,而且不能保证数据的完整性,需要在软件上有一些其他机制来保证可靠性。所以,网关串口的数据传送同样基于帧格式,并且使用了接收确认、超时重发、差错校验等机制来保证可靠性。
图2为网关工作时的数据流示意图。图中3个带箭头的椭圆表示3个线程,图中未画出建立Socket连接、串口初始化和线程启动等过程。
tcp/ip相关文章:tcp/ip是什么
评论