SSH를 사용하는 것처럼 쉽게 직렬 포트에 연결할 수 있는 방법은 무엇입니까?

SSH를 사용하는 것처럼 쉽게 직렬 포트에 연결할 수 있는 방법은 무엇입니까?

SSH를 사용하는 것처럼 직렬 터미널에 연결하는 방법이 있습니까? Minicom과 같은 도구보다 더 쉬운 방법이 있을 것입니다.

$ serial /dev/ttyS0 

cat출력 할 수 있다는 것을 알고 있지만 /dev/ttyS0통신하는 방법은 포트에서 콘솔로 한 가지뿐입니다. 항구에 도착할 때도 마찬가지 echo지만, 항구에 도착할 때는 그 반대입니다.

Unix/Linux에서 가장 간단한 방법으로 양방향 직렬 포트 통신을 구현하는 방법은 무엇입니까?

답변1

screen어차피 다른 용도로 사용하다 보니 가장 유용한 직렬통신 프로그램을 찾았습니다 . screen /dev/ttyS0 <speed>장치의 기본 설정은 다를 수 있지만 일반적으로 그렇습니다. 또한 명령 모드를 입력하고 실행하여 세션에 무엇이든 파이프할 수 있습니다 exec !! <run some program that generates output>.

답변2

배경

필요한 주된 이유어느직렬 포트를 통해 통신하는 프로그램과 마찬가지로 minicom포트에는 다음이 필요합니다.설정연결을 시작하기 전에. 잘못 설정하면 catecho명령이 예상한 대로 작동하지 않습니다. 유사한 프로그램을 실행하면 minicom포트는 minicom사용된 설정을 유지합니다. stty다음 프로그램을 사용하여 통신 설정을 쿼리 할 수 있습니다 .

stty < /dev/ttyS0

올바르게 수행하면 minicom,컴퓨터를 시작한 후 다른 프로그램(예: 통신 설정)을 실행하기 전에 기본 설정이 적용됩니다. 이는 연결을 설정하는 데 필요한 것과 다를 수 있습니다. 이 경우 명령을 보내 cat거나 echo포트로 전송하면 쓰레기가 생성되거나 전혀 작동하지 않습니다.

stty다시 뛰어뒤쪽에를 사용하면 minicom프로그램이 사용하는 설정으로 설정되어 있음을 알 수 있습니다.

최소한의 직렬 통신

기본적으로 직렬 포트를 통한 양방향 통신에는 두 가지가 필요합니다. 1) 직렬 포트 구성, 2) 읽기 및 쓰기를 위해 의사 tty 열기.

내가 아는 한, 이 작업을 수행하는 가장 기본적인 프로그램은 다음과 같습니다.picocom. 다음과 같은 도구를 사용할 수도 있습니다.setserial포트를 설정하고 셸에서 직접 상호 작용합니다.

답변3

쉘 스크립트를 사용하여 방법을 찾았습니다직렬 프로그래밍 이는 cat백그라운드 프로세스로  실행되며 while사용자 입력을 읽고 echo이를 포트에 출력하는 루프입니다. 나는 그것을 좀 더 일반적으로 수정했고 그것은 내 목적에 완벽하게 부합합니다.

#!/bin/sh

# connect.sh

# Usage:
# $ connect.sh <device> <port speed>
# Example: connect.sh /dev/ttyS0 9600

# Let cat read the device $1 in the background
cat "$1" &

# Capture the PID of the background process (cat)
# so it is possible to terminate it when done.
bgPid=$!

# Set up device
stty -F "$1" "$2"


# Read commands from user, send them to device $1
while read cmd
do
   echo "$cmd" 
done > "$1"

# Terminate background read process
kill "$bgPid"

답변4

노력하다http://tio.github.io

"tio"는 기본 입력/출력을 위해 TTY 장치에 쉽게 연결할 수 있는 간단한 명령줄 인터페이스를 갖춘 간단한 TTY 터미널 애플리케이션입니다.

일반적인 용도는 옵션이 없는 것입니다. 예를 들어:

tio /dev/ttyS0

공통 옵션에 해당:

tio --baudrate 115200 --databits 8 --flow none --stopbits 1 --parity none /dev/ttyS0

모든 옵션에 대해 완전한 셸 자동 완성 지원을 제공합니다.

관련 정보