【米尔-瑞萨RZ/G2UL开发板-试用评测】ser2net移植与使用
<div class='showpostmsg'><div><p><b>开发环境:</b></p>
<p>主机:Ubuntu 20.04</p>
<p>开发板:MYD-YG2UL开发板</p>
</div>
<h1>1 ser2net简介</h1>
<div>ser2net(Serial to Network Proxy)给用户提供了一种网络与串口相互连接的软件,它可以将串口数据通过网络传输到远程设备上。本文将介绍ser2net的原理及其在实际应用中的作用。</div>
<div><a href="https://ser2net.sourceforge.net" target="_blank">https://ser2net.sourceforge.net</a>/</div>
<div><a href="https://github.com/cminyard/ser2net" target="_blank">https://github.com/cminyard/ser2net</a></div>
<h2>1.1 ser2net的原理</h2>
<div>ser2net是一种基于TCP协议的串口服务器,它通过将串口数据转换成网络数据包,实现了串口数据的远程传输。ser2net的工作原理可以分为以下几个步骤:</div>
<div>1.配置串口参数:首先需要对sr2net进行配置,包括串口的波特率、数据位、停止位等参数,以及网络相关的配置,如IP地址、端口号等。</div>
<div>2.建立TCP连接:ser2net在启动后会监听指定的端口,当有客户端请求建立TCP连接时,ser2net会接受连接请求,并与客户端建立起TCP连接。</div>
<div>3.串口数据转发:一旦TCP连接建立成功,ser2net会开始监听串口上的数据。当有数据到达时,ser2net会将数据通过TCP连接发送给客户端。同时,ser2nt会监听客户端发送的数据,并将其转发到串口上。</div>
<div>4.数据处理:ser2nt还支持对数据进行处理和转换。例如,可以对接收到的数据进行校验、解析或加工,然后再将其发送给客户端。</div>
<h2>1.2 ser2net的应用场景</h2>
<div>ser2net在实际应用中有着广泛的用途,主要体现在以下几个方面:</div>
<div>1.远程控制:通过ser2nt,可以远程控制位于远程地点的设备。例如,可以通过互联网远程控制家里的智能家居设备,或者通过远程终端机访问远程服务器。</div>
<div>2.数据采集:ser2nt可以将串口设备连接到远程服务器上,实现数据的远程采集。例如,可以将气象设备的串口连接到云服务器上,实时采集气象数据并进行分析。</div>
<div>3.远程调试:ser2net可以用于远程调试嵌入式设备。当嵌入式设备出现问题时,可以通过ser2net将设备的串口输出信息传输到远程服务器上,方便进行调试和故障排查。</div>
<div>4.数据共享:ser2net可以实现多个设备之间的数据共享。例如,可以将一台设备的串口数据通过ser2net转发到其他设备上,实现数据的共享和交互。</div>
<div>5.远程维护:ser2net可以用于远程维护设备。例如,可以通过ser2net将设备的串口连接到远程维护中心,实现对设备的远程维护和管理。</div>
<h2>1.3 ser2net的优势</h2>
<div>相比传统的串口通信方式,ser2net具有以下几个优势:</div>
<div>1.灵活性:ser2net可以将串口设备连接到任意远程服务器上,实现串口数据的远程传输。这种灵活性使得ser2net在各种应用场景下都能发挥作用。</div>
<div>2.扩展性:sr2net支持多个串口设备的同时连接和传输,在满足大规模数据传输需求的同时,还可以方便地扩展和添加新的串口设备。</div>
<div>3.可靠性:sr2net使用TCP协议进行数据传输,具有较高的可靠性和稳定性。即使在网络环境较差的情况下,也能保证数据的稳定传输。</div>
<div>4.安全性:ser2net支持对传输数据进行加密和认证,确保数据的安全性。同时,ser2net还可以限制连接的P地址和端口号,提高系统的安全性。</div>
<h1>2 ser2net移植</h1>
<div><strong>1</strong><strong>.</strong><strong>下载源码</strong></div>
<div>ser2net的官网为://<a href="http://ser2net.sourceforge.net" target="_blank">http://ser2net.sourceforge.net</a>/,在页面中可以找到下载链接。笔者的版本为3.5.1。可以通过页面中的下载链接进行下载,也可以通过下面的命令行进行下载。</div>
<div>wget <a href="https://udomain.dl.sourceforge.net/project/ser2net/ser2net/ser2net-3.5.1.tar.gz" target="_blank">https://udomain.dl.sourceforge.net/project/ser2net/ser2net/ser2net-3.5.1.tar.gz</a></div>
<div><strong>2</strong><strong>.</strong><strong>解压</strong><strong>源码</strong></div>
<div>$ tar -xvf ser2net-3.5.1.tar.gz</div>
<div>$ cd ser2net-3.5.1/</div>
<div><strong>3.</strong><strong>配置</strong></div>
<div>./configure --host=aarch64-poky-linux</div>
<ul>
<li>“arm-linux”是交叉编译工具的前缀,根据自己的实际情况进行修改。</li>
</ul>
<div><strong>3</strong><strong>.</strong><strong>编译并安装</strong></div>
<div>设置环境变量:</div>
<div>$ source /opt/poky/3.1.21/environment-setup-aarch64-poky-linux</div>
<div>编译</div>
<div>$ make</div>
<div>最后将程序下载到开发板,修改用户权限后即可运行。</div>
<div>$ tftp -g -l ser2net -r ser2net 192.168.101.11</div>
<h1>3 ser2net测试</h1>
<div>接下来就需要修改配置文件。</div>
<div>$ vim ser2net.conf</div>
<div>8008:raw:600:/dev/ttySC4:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCT</div>
<div>ser2net工具安装完后,可执行文件放在:/sbin/ser2net,新建配置文件ser2net.conf</div>
<div>配置项说明如下:</div>
<div><TCP port>:<state>:<timeout>:<device>:<options></div>
<div>格式说明:</div>
<ul>
<li>TCP port:TCP/IP端口号,可以加IP信息如127.0.0.1 , 2000或者localhost,2000; 如果这里指定了 IP,则只能绑定在这个固定的IP</li>
<li>state: 四种可选状态</li>
<li>off: 禁止该端口的连接</li>
<li>raw: 端口和串口设备之间双向通信</li>
<li>rawlp: 端口向串口设备单向通信</li>
<li>telnet: 使用telnet协议时用</li>
<li>timeout:超时,以秒为单位;当没有活动的连接时,可以设置这个时间关闭端口;常写0,关闭该功能,即不会超时</li>
<li>device: 指定映射本机的哪个串口(This must be in the form of /dev/<device>)</li>
<li>options: 设置串口的参数如:波特率(300,1200,2400,4800,9600,19200,38400,57600,115200)</li>
<li>校验(EVEN,ODD,NONE)</li>
<li>停止位(1STOPBIT,2STOPBITS)</li>
<li>数据位(7DATABITS,8DATABITS)</li>
<li>开启(关闭)XON\XOFF :XONXOFF(-XONXOFF)</li>
<li>开启(关闭)硬件控制流:RTSCTS(-RTSCTS)</li>
</ul>
<div>启动ser2net.。</div>
<div>$ ./ser2net -C ser2net.conf</div>
<div>当然也可直接使用命令。</div>
<div>$ ./ser2net -C "8008:raw:600:/dev/ttySC4:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS"</div>
<div>然后查看ser2net运行状态。</div>
<div>$ ps -elf | grep ser2net</div>
<div></div>
<div>TCP连接:</div>
<div></div>
<div>串口接收数据:</div>
<div></div>
<h1> </h1>
<div> </div>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>感觉相比传统的串口通信方式,ser2net具有的几个优势不是很明显,但安全性要靠项目工程检验</p>
<p> </p>
<p>远程和本地地址怎么确定啊 </p>
秦天qintian0303 发表于 2024-4-7 16:56
远程和本地地址怎么确定啊
<p>你是问服务器其地址吗,服务器地址直接使用ifconfig查看即可</p>
<p>楼主分享的技术内容非常详细,图文并茂,对入门的新手帮助很大,非常感谢</p>
页:
[1]