串口转网口关键技术三:9 位技术 以太网数据是以字节 Byte 计算的每个字节都是 8 位, 但是串口数据则有可能出现 9 位, 第 9 位常常用于区分是地址帧还是数据帧,1 表示地址帧 0 表示数据帧。那么在当串口转化 为以太网之后,如何将第 9 位也传送出去就成了一个关键技术。 在众多的串口转网口方案中都是将第 9 位直接舍弃的, 目前据了解上海卓岚信息科技的 方案具有快速地适应 9 位的功能,其实现方法中采用了称之为 RealCom 的协议。由于增加 了第 9 位,所以串口数据不能够直接透明地转化为 TCP IP 应用层数据,realcom 协议将串口数据打包之后整个作为 TCP IP 的应用数据传输。 这样做才能够在 realcom 协议的协议头部加入该数据包的 9 位是 1 还是 0 的 信息,以此来实现了 9 位传输技术。
如果按照 ISO 的 7 层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、 应用层)来分的话,串口实际上只包含了物理层、数据链路层。而 TCP/IP 协议应该属于网 络层和传输层。所以串口转 TCP/IP 并不准确。以太网属于物理层和数据链路层,所以串口 转以太网更加准确。 由于目前在以太网之上运行的协议多半是 TCP IP 协议,所以串口转以太网也可以说成 是串口转 TCP IP,串口转网口模块。 3.串口转网口关键技术一:TCP/IP 的工作模式问题 串口转以太网, 并不是简单物理层和数据链路层的转化。 由于串口协议本身不具有网络 层和传输层,串口转以太网,实际是将串口的数据作为 TCP/IP 的应用层数据,用 TCP/IP 封装传输的方式。TCP/IP 的应用层数据是 TCP/IP 所要传送的真正有效的数据。例如用户通
2.澄清一个概念:到底是串口转以太网还是串口转 TCP/IP? 串口一般来说就是 UART, 它实际只定义了数据链路层的规范, 也就是起始位、 数据位、 停止位。但是在不同的物理层又分为:TTL 串口、RS232 串口、RS485 串口等。 根据串口物理层的不同, 能够正常的看到客户在开发设计串口转网口模块时,也应该考虑到客 户对串口的需求,而且设置不一样的电平的串口模块。下图,我们以济南有人物联网技术有限 公司的产品为例来看一下:
原则二:IP 或者域名固定的一方为服务器端。例如在有多个数据采集终端,而只有一 个中心服务器的情况下,中心服务器应该为服务端。这是因为,中心服务器的 IP 或域名一 般是固定的,而采集终端的 IP 是持续不断的增加和变化的。中心服务器难以记住所有的采集终端 的 IP,所以也难以发起连接;而采集终端寻找中央服务器就非常容易。 4.串口转网口关键技术二:串口分帧技术 串口数据是可以连续不断发送的, 而以太网数据则是以数据包为单位发送的。 这样就关 系到将多长的串口数据打包后作为一个以太网数据包发送的问题。 数据包长度: 以太网数据包最长 1500 多字节, 所以在串口转网口转发器收到 1500 字节 后必须将其打包发送。用户都能够设定这个数据包长度上限。 数据包间隔: 除了数据包长度作为串口分帧的规则外,一个更为符合逻辑的方法是通过 数据包间隔。当串口转 TCP IP 转发器发现的串口数据流中出现了 T 毫秒的空闲时间时,则认为之前收到的串口数据可 以作为一个以太网数据包发送了。这里的 T 就是用户设定的数据包间隔。
1.概述 串口转网口目前能够使用串口转以太网模块来实现, 变得很简单易用,但是在该技术 中出现的一些新问题、使用误区需要引起注意。串口转以太网并不是简单传输媒介的变化, 而是串口到 TCP/IP 的协议转化。其中关系到的关键技术包括:TCP/IP 的工作模式问题、串 口分帧技术、9 位技术。这里详细分析这些串口转网口的技术。
过 socket 的 recv()和 send()函数接收和发送的实际是应用层数据。这样通过串口转 TCP IP 用户就可以用 recv()和 send()函数收发串口数据了。 但是 TCP/IP 并不只是 recv()和 send()这么简单,根据工作模式的不同,它关系到 连接、关闭、监听等,这是串口转网口后要增加处理的部分。TCP IP 的工作模式可大致分为:TCP 服务端模式(TCP Server) 、TCP 客户端模式(TCP Client) 、 UDP 模式。 UDP 模式:UDP 模式是基于非连接的模式,只要有数据发送即可发送,不需要事先连 接。所以这种模式更加地接近于串口的通信方式。但是 UDP 协议没办法保证数据不丢失,容 易产生误码。 TCP 模式:TCP 模式采用数据可靠传输机制,所以能保证数据基本不误码、不丢失。 在 TCP 通信中,必然是由通信的两端构成,其中一方是 TCP 客户端,一方是 TCP 服务端。 TCP 客户端和 TCP 服务端的概念可以用电话来类比。TCP 客户端是打电话的人,而 TCP 服 务端是接电话的人。 如何明智的选择 TCP/IP 的工作模式? TCP 与 UDP 的选择:尽可能地选择 TCP 模式,特别是经过 internet 的大数据量传输,udp 容易 误码和丢失。 选择 TCP 客户端还是 TCP 服务器端:请遵循以下原则: 原则一:发起数据发送的一方应选择为客户端。例如一个数据采集系统,采集终端应 该为客户端。这是因为当 TCP 连接断开的情况下,客户端能够在需要发送数据的时候主动 建立连接。而 TCP 服务端,只能够被动地接受连接,使得数据无法发送出去。
此图为 TTL 电平串口 RS232 串口:Байду номын сангаас是实现设备之间通信的串口,其主要将信号电压从 0~5V 的电压变为±15V ( 实 际 一 般 为 ± 12V )。 电 压 的 增 加 , 增 大 了 数 据 传 输 的 距 离 和 可 靠 性 。
此图为 RS232 电平串口 RS485 串口:它是实现远距离通信的串口,能轻松实现上千米的数据传输。其主要特征是 用差模信号(A、B 两根线之间的电压)代替了 RS232 共模信号(信号线和 GND 之间的电 压) ,从而能够抵抗共模干扰,实现更远距离的传。
本表格当中,USR 代表济南有人物联网技术有限公司的名称,后面的-T 代表 TTL 电平,-2 代表 RS232 串口等。 TTL 串口:它是 MCU 芯片之间进行数据通信的串口,它以5V(或者3.3V)表示 1,