Macos 使用socat的Mac上的USB串行端口
我有一块硬件,它通过一根多产的串行到USB电缆连接,我需要使用socat来发送/接收与此和TCP端口之间的通信量。到目前为止,它已安装并可与minicom配合使用:Macos 使用socat的Mac上的USB串行端口,macos,serial-port,usb,tty,socat,Macos,Serial Port,Usb,Tty,Socat,我有一块硬件,它通过一根多产的串行到USB电缆连接,我需要使用socat来发送/接收与此和TCP端口之间的通信量。到目前为止,它已安装并可与minicom配合使用: minicom-D/dev/tty.usbserial-b9600 Socat在TCP端口的一个方向上工作,使用: socat/dev/tty.usbserial,clocal=1,nonblock=1,cread=1,cs8,ixon=1,ixoff=1 TCP4:localhost:8080 我如何让它双向工作?我经常看到重复的
minicom-D/dev/tty.usbserial-b9600
Socat在TCP端口的一个方向上工作,使用:
socat/dev/tty.usbserial,clocal=1,nonblock=1,cread=1,cs8,ixon=1,ixoff=1 TCP4:localhost:8080
我如何让它双向工作?我经常看到重复的字符或双线,这表明串行设置不正确,对吗
谢谢!克里斯
编辑:
一些示例代码(实际上不以双向方式工作)
我很可能会告诉你很多你已经知道的东西,但是调试这些情况通常会得到一个完整的画面。
问题1:经典串行通信(纯RS-232) 来自维基百科: 在计算中,串行端口是一种串行通信物理接口,通过该接口,信息一次只能传输一位(与并行端口不同)(……)术语“串行端口”通常表示或多或少符合RS-232标准的硬件,用于与调制解调器或类似通信设备接口。(……) 来自维基百科: 在电信业中,RS-232是一系列标准的传统名称,用于连接DTE(数据终端设备)和DCE(数据电路终端设备)(…)之间的串行二进制单端数据和控制信号 因此,DTE是您的Mac,而DCE是“一块硬件”。要设置串行连接,需要设置以下参数:
- 波特率-可以达到的最大数据发送速度
- 数据位-多个位将组成一个字符
- 停止位流同步
- 奇偶校验
- DTE(Mac)=>DCE(硬件):DTE激活RTS(请求发送)线路,并等待DCE激活CTS(清除发送)线路。然后它发送数据
- DCE(硬件片段)=>DTE(Mac):DCE激活DSR(数据集就绪)导线,并等待DTE激活DTR(数据终端就绪)导线。然后它发送数据
请反馈。谢谢您的帮助。我现在
Chris-MacBookAir:~ chrisbridges$ socat -d -d - /dev/tty.usbserial,clocal=1,nonblock=1,cs8,ixon=1,ixoff=1,ispeed=9600,ospeed=9600,icanon=1
2013/01/09 13:13:34 socat[8501] N reading from and writing to stdio
2013/01/09 13:13:34 socat[8501] N opening character device "/dev/tty.usbserial" for reading and writing
2013/01/09 13:13:34 socat[8501] N starting data transfer loop with FDs [0,1] and [3,3]
sudo socat -U -d -d -d /dev/tty.usbserial,clocal=1,cs8,nonblock=1,ixoff=0,ixon=0,ispeed=9600,ospeed=9600,raw,echo=0,crtscts=0 FILE:tnc-start.hex