如何在不占用端口的情况下监视串口通信

如何在不占用端口的情况下监视串口通信,第1张

可以用Serial Spliter 串口虚拟;

例如PLC占用物理串口com1,你可以将com1改名到com11,然后用Serial Spliter 将com11 拆成两个虚拟端口com1和com12,PLC仍用com1,你监听com12,就可以。

基本只能打开一次,参考资料:

http://stackoverflow.com/questions/9358216/using-same-serial-port-data-received-event-on-two-different-forms

首先确认/dev/ttyS0(既串口com)是否被识别,如果被xen占用,需要修改启动参数,重启系统。

然后配置serial port参数,设置完成后即可通过串口通信。

步骤:

第一步:确认/dev/ttyS0(既串口com)被识别:

# dmesg |grep ttyS0

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

以上输出说明串口被识别。

# dmesg|grep ttyS0

Xen virtual console successfully installed as ttyS0

以上输出则说明串口被xen服务占用,我们需要修改启动参数,指定xen服务使用别的console。

安装redhat系统时,如果安装了虚拟机(Xen-enabled host。Xen is a virtual machine monitor (VMM) for x86-compatible computers. Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance. ),则xen可能会占用/dev/ttyS0,要想使用串口,我们需要修改启动设置,指定xen使用别的console(或是不使用任何console,我倾向于这种选择)。

修改启动设置,指定xen使用的console的方法如下:

a)确定系统版本,以便找到需要修改的启动项:

# uname -r

Linux gic-ftp-lin-001.genotec.ch 2.6.18-8.el5xen

从上面的输出,我们可以看出,现在系统版本是2.6.18-8。

b)找到相应的启动配置(对应版本2.6.18-8的那项配置),对呀安装了grub的redhat,在/boot/grub/menu.lst中会有如下的配置项:

title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)

root (hd0,0)

kernel /boot/xen.gz-2.6.18-8.el5

module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/

module /boot/initrd-2.6.18-8.el5xen.img

c)添加“xencons”参数。注意,要紧跟在“root=LABEL=/"后面,如下:

title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)

root (hd0,0)

kernel /boot/xen.gz-2.6.18-8.el5

module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/ xencons=off

module /boot/initrd-2.6.18-8.el5xen.img

说明:

在这里,我设置“xencons=off”,既xen不使用任何console,可选的“xencons”参数有:

xencons=off#disable console at all

xencons=ttyX #attach console to /dev/ttyX

xencons=ttySX #attach console to /dev/ttySX

xencons=xvcX#attach console to /dev/xvcX

现在,/dev/ttyS0是可用的了,我们配置minicom后即可使用串口。

第二步:配置minicom

a)进入minicom配置界面,输入:

#minicom -s

你会看到下面的画面:

┌—————[configuration]——————┐│ Filenames and paths ││ File transfer protocols ││ Serial port setup ││ Modem and dialing ││ Screen and keyboard ││ Save setup as dfl ││ Save setup as.. ││ Exit│└——————————————————┘

b)配置串口连接参数。用上下箭头移动光标,选择:

Serial port setup

你会看到下面的界面:

┌————————————————————————————————————┐│ A -Serial Device : /dev/ttyS0││ B - Lockfile Location : /var/lock ││ C - Callin Program : ││ D - Callout Program : ││ E -Bps/Par/Bits : 9600 8N1 ││ F - Hardware Flow Control : Yes ││ G - Software Flow Control : No││ ││Change which setting? │└————————————————————————————————————┘

这里配置”serial device“为/dev/ttyS0(即com口1);波特率为9600,数据位8位,奇偶校验无,停止位1(既典型的9600 8N1配置);硬件数据流控制(hardware flow control):有;软件数据流控制(software flow control):无。

按ESC返回,选择:

Save setup as dfl

保持为默认设置,然后退出。

c)使用minicom连接串口设备。输入minicom,如果配置成功,会看到消息:

Initializing modem

然后会看到下面的画面:

Welcome to minicom 2.1

OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n

Compiled on Jul 26 2006, 06:38:09.

Press CTRL-A Z for help on special keys

按回车,就会有login提示符,登录即可。

参考资料:

[1].Xen console grabbded /dev/ttyS0

[2].configure cisco switch with linux COM1 terminal


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6777341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存