GNU SCREEN - MAC OS X 10.8.2的USB串行通信问题

时间:2013-01-23 07:59:49

标签: macos serial-port gnu-screen

我们成功地通过Windows 7上的Putty和LINUx上的GNU屏幕与设备进行USB到串行通信。但是有一半使用MAC OS上的终端/屏幕无法实现。

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

  

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

设备成功安装并按此处所述进行分析(抱歉用法语):

  

Identifiant du produit:0x6160

     

Identifiant du fournisseur:0x03eb(Atmel Corporation)

     

版本:1.10

     

Vitesse:Jusqu'à12Mb / s

     

识别性进驻:0x06200000 / 2

     

Courant disponible(mA):500

     

Courant requis(mA):0

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

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

  

screen /dev/tty.usbmodem621 57600

  

sudo screen /dev/tty.usbmodem 57600

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

  

defscrollback 5000

     

termcapinfo xterm * ti @:te @

     

defflow off

     

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

我尝试过没有特定的驱动程序,然后使用以下2个引用

FTDI http://www.ftdichip.com/FTDrivers.htm

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

我还复制并粘贴了a上列出的所有设置 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:-istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8 -ignbrk brkint -inpck -ignpar -parmrk

     

oflags:opost onlcr -oxtabs -onocr -onlret

     

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

     

cchars:discard = ^ O; dsusp = ^ Y; eof = ^ D; eol =; eol2 =; erase = ^?; intr = ^ C; kill = ^ U; lnext = ^ V; min = 1;退出= ^ \;再版= ^ R; start = ^ Q; status = ^ T; stop = ^ S; susp = ^ Z;时间= 0; werase = ^ W;

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

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

发生了什么事情的暗示?

2 个答案:

答案 0 :(得分:2)

串行通信的common pitfalls包括:

  • RX-to-TX,TX-to-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(例如.plist启动getty; screen /dev/cu.usbserial 115200 8N1的文件。

答案 1 :(得分:1)

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