是否有OS X终端程序可以访问串行端口?


101

哪些程序可以充当终端并访问串行端口?

这不是用于IP连接上的终端访问,因此,我可以访问插入到以9600/8 / N / 1运行的USB /串行转换器的硬件设备。


2
您的意思是像20年前的调制解调器端口吗?
nohillside

@patrix,是的。我可以加载vmware,运行Windows并使用腻子,但是执行这种简单任务似乎很麻烦。
马克·哈里森

1
大声笑。9600/8 / N / 1。就像我的口头禅。您可以使用zterm,至少仍可以运行10.6。它是旧软件。但是是为配置,与调制解调器通讯以及将文件调制解调器传输到调制解调器而建立的。dalverson.com/zterm
markhunte 2013年

最新的zterm适用于10.9。
丹·普里兹

Answers:


54

应用商店中提供了一个名为Serial的新Mac应用。完全披露-我写的。与其他应用程序相比的主要优点是,它具有内置的驱动程序,因此可以与大多数USB到串行设备一起使用而无需安装任何驱动程序。它还可以进行完整的终端仿真,因此您可以将其用于Linux或需要它的其他设备。您也可以免费试用。

另外,苹果公司开始在Mavericks(10.9)中包括他们自己的基于FTDI的设备的驱动程序。因此,如果您使用的是10.9或更高版本,并且设备内部装有FTDI芯片,则可以在终端中使用内置的screen命令来访问设备,而不必担心驱动程序。


6
我今天刚刚尝试了Serial。到目前为止,我印象深刻。我购买它只是为了避免担心USB到串行驱动程序。我将不会错过ssh's进入Linux机器来运行minicom。
达里尔·斯皮策2015年

1
哇,我现在正在使用串行,我认为这就是每个软件都应该工作的方式。因为我只需要一份非常具体的工作,并且它附带一些免费试用期,所以我破产了,所以我不会获得完整版本……如果三个条件中的任何一个都不成立,我都可以得到。 。 他们应得的!
kikusin

好吧,一旦我为设备选择了波特率,就无法再使用其他值再次打开它了……选择窗口不会出现,并且卡在9600上……
JBernardo

8
fyi系列

2
哇。真的很棒。我已经使用屏幕多年了,总是发现ttys只是..很烦。我随机找到了这个线程,就像我没有为它支付30美元-哦,还有审判。所以我尝试了。我几乎买了该软件2分钟后,无论我多么频繁地需要它来支持Chris,因为它确实很棒。好一阵子没看过这样写的东西了。
lukash

105

您可以使用终端命令screen执行此操作!!!

在ServerFault上看到的:

喜欢使用[screen]连接到串行控制台,即

screen /dev/ttyS0 19200

或者,如果您喜欢Mac OS X提示 ...

我经常必须通过控制台端口进行路由器配置,因此我使用Keyspan串行适配器进行访问。然后出现两个问题:ZTerm是一个可怕的Mac OS X应用程序。它已经五年左右没有更新,并且不是通用二进制文件。开发人员似乎并不急于纠正这种情况。按照当前形式,这不值得共享软件费用。Minicom需要安装Fink或MacPorts,并且过于复杂。解决方案:使用屏幕,终端和一些AppleScripting。

首先,启动脚本编辑器并在以下代码中键入/粘贴:

tell application "Terminal"
  do script with command "screen /dev/tty.KeySerial1"
  set number of rows of window 1 to 100
  set number of columns of window 1 to 80
  set background color of window 1 to "black"
  set normal text color of window 1 to "green"
  set custom title of window 1 to "SerialOut"
end tell

从脚本编辑器中编译并另存为应用程序,您可以双击该应用程序来启动串行终端会话。您可能需要略微自定义-您可以更改屏幕颜色或列数或行数。如果您使用的不是Keyspan串行适配器,则可能还需要使用其他设备名称来自定义screen命令(对/ dev /目录执行ls tty *以获取正确的名称)。

屏幕使用Control-A接受指向它的命令。因此,键入Control-A,然后按Control- \退出屏幕会话。如果您无法执行此操作并退出“终端”会话,则将使屏幕会话保持活动状态,并且串行资源将不可用,直到您手动终止屏幕会话。手动屏幕将向您显示发送到屏幕会话的更多命令。

如果任何人都可以通过指向有关如何在Cocoa中包装交互式Unix App的教程的链接进行回复,那将是下一步-无需终端就可以做到这一点。如果您更喜欢使用Minicom,则仍然可以使用AppleScript将其包装到一个不错的可启动应用程序中-使用此较早的提示来找到正确的命令行命令。

许多USB串行适配器都使用FTDI的芯片。安装“ 虚拟COM端口 ”驱动程序,并在中查找正确的TTY名称/dev。例如,在PowerBook G4上显示为/dev/tty.usbserial-FTALKY8I


1
对于具有PL2303芯片的USB串行适配器,请参见sourceforge.net/projects/osx-pl2303
Dan Pritts 2014年

显然,最好的答案是:终端+屏幕+ osx-pl2303(自……多年以来一直在生产中使用)。
2014年

1
值得在下面查看Chris K的答案;显然,OS X自10.9起(在编写此答案之后)就随附FTDI驱动程序,因此不需要安装。
krs013 2014年

屏幕(或小型通信)不是很正确。除非您尝试运行nano或vi,否则看起来不错。它无法处理这些。箭头键和返回键生成垃圾。如果屏幕上有解决此问题的设置,请告诉我。
加里普2015年

我喜欢屏幕,但是:如何将lf转换为crlf?
fearless_fool

25

我的偏好是cu。我将其用于Arduino或与Bus Pirate相关的乐趣。它是默认安装的,并支持其他选项之间的奇偶校验设置(man cu有关更多信息,请键入)。

sudo cu -s 115200 -l /dev/tty.usbserial-A6005kdh

要在完成后退出,请~.像使用SSH一样输入


1
这似乎是一个好答案的开始,但是以root身份运行它是错误的。其他程序不需要访问/dev/tty.xxx或/dev/cu.xxx程序,但是cu当以有权访问端口的用户身份运行时,它似乎因锁定文件错误而失败。也许程序的默认安装配置错误?
user221106

没有?权限应该在设备上,而不是程序上。老实说,我一直很懒惰地研究许可。您是否在screen解决方案中尝试过“ / dev / ttyS0” ?那会cu导致权限问题吗?
RandomInsano

我在本周末遇到的一个有趣的问题是,如果您需要不同的换行设置,则必须学习stty命令来设置控制台。
RandomInsano

24

我所知道的最好的程序是minicom,可以从Homebrew,fink和macports获得。

Minicom是一个串行通信程序。它是著名的MS-DOS Telix程序的Unix克隆。它具有ANSI颜色,拨号目录,拨号列表和脚本语言。


1
中继键是Esc。因此,Esc-Q退出,Esc-O提供选项,等等。我发现minicom(和Serial.app)最适合处理断开/重新连接,这在运行LinkitOne(所有Arduino?)开发时基本上是隐式的。大多数其他应用程序崩溃或失去连接,并且只有重新启动后才能重新连接。
owenfi'3

18

如果您不想在终端机上工作,则可以尝试使用CoolTerm(免费)。向下滚动以获取描述和下载。不要让它用RealBasic编写的事实让您失望……我已经使用它通过Keyspan USB <-> Serial Adaptor将其连接到绘图仪,Arduino板和收据打印机。


已经是CoolTerm用户,只需搜索“以十六进制发送”功能即可将我带回到该线程。CoolTerm非常出色,甚至在菜单“连接>发送字符串...”中包含了此功能,然后切换到十六进制以发送格式!
andreas-supersmart

我从不理解“以十六进制发送”用例。你能开导我吗?我只将其用于ASCII输入/输出。
frakman1

15

您应该看看ZOC,我认为这是Mac上可用的最佳终端仿真程序。我每天都在工作中使用它。它具有与串行端口直接通信的能力。当然,它所做的不仅仅是串行通信。

ZOC是专业的SSH / telnet客户端和终端仿真器。凭借其令人印象深刻的仿真列表,它使您可以使用安全外壳,telnet,串行电缆或调制解调器/ isdn等通信方法轻松连接到主机和大型机。

其时尚的用户界面有多种使您的生活更轻松的方式。用它自己的方式,这是瘦客户的瑞士军刀:多功能,坚固,成熟。

主要功能:
-带缩略图的选项卡式会议
-可自定义以满足您的喜好和需求
-脚本和自动化功能
-与Windows 7和OS X Lion兼容
-管理员友好(部署,配置)
-现价$ 79.99,具有大量折扣


3
如果终端仿真器只需要该功能,那么80美元似乎有点陡峭!
阿戈斯

2
价格未作为问题中的标准提及。请不要仅仅因为您不同意价格而减少答案。
卡特

1
我赞成阿戈斯的评论。他并没有“减少”您的答案,只是说他认为ZOC并不是考虑所有因素(成本,功能等)的好解决方案
cyphunk 2012年

另外,结合上面的其他答案,(从引用的描述开始)似乎ZOC和Terminal之间的唯一区别是选项卡缩略图(和价格)。
马特2012年

11

C-Kermit可以在Brew中正常运行,并且可以安装:

brew install c-kermit

自然,您需要先安装Brew。您可以在此处找到有关如何执行此操作的信息:http : //brew.sh

或者使用Macports

sudo port install kermit

这也将要求您安装Macports


7

然后还有旧的ZTerm,它看起来像建议的一样旧,但是可以很好地完成工作,并且可以免费使用。与Prolific(PL 2303)和基于FTDI的USB串行适配器一起正常工作。


1
哇,ZTerm住了!带回许多回忆和古老的Mac。
lhf 2014年

刚刚下载了ZTerm ...就像我记得的那样糟糕... CRASH ... CRASH ... CRASH ...(删除ZTerm)。
geowar '18

4

我在Ubuntu 16.04上使用cutecom取得了成功

在OSX上受支持:http : //cutecom.sourceforge.net/


欢迎询问不同!请不要给出仅链接的答案。我们正在寻找能够解释为什么它回答问题以及为什么它是最佳答案的答案。链接会随着时间而变化,然后我们将失去问答环境。有关如何构成一个好的答案的信息,请参见如何回答。-来自评论-–
fsb

不幸的是,它需要在系统上安装非常旧的Qt版本才能构建它。
奥斯卡

3

Mac OS X的另一个串行终端是Cornflake

它具有设备选择功能,包括刷新按钮,波特率和数据包类型及流控制选择,端口控制和查看过滤器,以ASCII,ASCII +,整数或十六进制的形式查看输入数据。




1

screen用来连接到Mac上路由器的串行端口。

安装后- 根据您的喜好使用macportshomebrew-使用以下语法:

sudo screen /dev/(serialDevice) (baudRate) (TransmissionRate) (flowControl)

要连接到我的MikroTik RB4011路由器,我的screen命令是:

sudo screen /dev/ttyUSB0 115200 cs8 ixoff

cs8 ”是路由器的比特率,“ ixoff ”指定“无流量控制”。“ 115200 ”是路由器的波特率。如果串行设备支持流控制,则备用设置将是7而不是8位的“ cs7”和“ ixon”。 man screen

screen我发现使用Googling在网络上用于进行串行连接的所有“ HowTo's” 都省略了这些必需的参数,因此这就是为什么screen如果尝试仅通过波特率就无法使用的原因。

BTW minicom -s(也需要通过macports或自制软件安装)也很好用,但是我更喜欢屏幕,因为我不必通过设置菜单-我可以将串行连接参数直接传递给screen命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.