【问题标题】:GNU SCREEN - USB serial tty communication problems with MAC OS X 10.8.2GNU SCREEN - MAC OS X 10.8.2 的 USB 串行 tty 通信问题
【发布时间】:2013-01-06 15:32:42
【问题描述】:

我们在 Windows 7 上使用 Putty 和在 LINUx 上使用 GNU 屏幕成功管理 USB 到串行通信,但在 MAC OS 上使用终端/屏幕时有一半失败。

在 LINUX windows 机器上需要简单的基本通信设置:

57600 bps,8 位,无奇偶校验,无流量控制

设备成功安装并按照此处所述进行了配置(抱歉,法语):

产品标识符:0x6160

身份验证人:0x03eb(爱特梅尔公司)

版本:1.10

Vitesse:Jusqu'à 12 Mb/s

位置标识符:0x06200000 / 2

电流消耗 (mA):500

Courant 要求 (mA):0

一个 cu.usbmodem621 和一个 tty.usbmodem621 确实出现在列表中 ls /dev/tty* 或 ls /dev/cu*

我们在 terminal.app 上使用以下 screen 命令激活屏幕

屏幕/dev/tty.usbmodem621 57600

sudo 屏幕 /dev/tty.usbmodem 57600

最初不存在 screenrc 文件,我最终创建了一个来微调终端设置并确保没有流量控制:

defscrollback 5000

termcapinfo xterm* ti@:te@

关闭回流

hardstatus alwayslastline "%{rk}%H %{gk}%c %{yk}%M%d %{wk}%?%-Lw%?%{bw}%n*%f %t%? (%u)%?%{wk}%?%+Lw%?"

我尝试过不使用特定驱动程序,然后使用以下 2 个参考

FTDIhttp://www.ftdichip.com/FTDrivers.htm

多产 PL2303 http://osx-pl2303.sourceforge.net/

我还复制并粘贴了列表中列出的所有设置 stty -a 根据LINUX机器。他们在这里:

速度 57600 波特; 92行; 145 列;

lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo -extproc

iflags: -itrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8 -ignbrk brkint -inpck -ignpar -parmrk

标志:opost onlcr -oxtabs -onocr -onlret

cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow -dtrflow -mdmbuf

cchars: 丢弃 = ^O; dsusp = ^Y; eof = ^D; eol = ; eol2 = ;擦除 = ^?;内部 = ^C;杀死 = ^U;下一个 = ^V;最小值 = 1;退出 = ^\;重印=^R;开始 = ^Q;状态 = ^T;停止 = ^S;悬念 = ^Z;时间=0; werase = ^W;

在所有情况下,设备都能正确接收并解释我们从屏幕终端窗口发送的所有命令,但屏幕无法显示来自设备的任何通信。

我尝试过 Goserial 和 Zterm,结果相同。

有什么提示吗?

【问题讨论】:

  • 我面临的问题与您的完全相同。你有没有找到解决方案?
  • 你好@lightxx。不,我辞职使用 Windows 机器和腻子作为解决方法,如果你解决了,请告诉我们!

标签: macos serial-port gnu-screen


【解决方案1】:

串行通信的common pitfalls有:

  • RX 到 TX,TX 到 RX
  • 波特率不匹配
  • 总线争用(例如 getty 进程;参见sudo lsof /dev/tty.usbmodem
  • 溢出(芯片缓冲区;字符进入串行通信芯片太快时发生)
  • 错误的通信参数
  • 帧错误(BAUD、PARITY、DATA BITS 和/或 STOP BITS 可能不正确)
  • 奇偶校验错误
  • ...(请参阅 cisco 的“串行线路故障排除”)

使用screen 的替代方法是使用picocom / setserialcu -l /dev/tty.usbmodem -s 9600 (用于故障排除)。

要获得一个虚拟串行端口来解决screen 你可以使用类似的东西:

socat GOPEN:/dev/ptyp0,ignoreeof TCP:10.0.1.93:10002

确保没有使用流量控制(硬件或软件)。

有关“在 Mac OS X 中设置串行控制台”的更多信息,请参阅here(例如,以getty 开头的.plist 文件;screen /dev/cu.usbserial 115200 8N1)。

【讨论】:

    【解决方案2】:

    http://changux.co/osx-installer-to-pl2303-serial-usb-on-osx-mou 有一个“OSX 安装程序到 PL2303 Serial-USB on Mountain Lion”。还可以使用来自 MacPorts 的最新 GNU 屏幕进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多