직렬 포트와 통신하는 데 문제가 있습니까?

직렬 포트와 통신하는 데 문제가 있습니까?

Linux의 직렬 포트 통신이 내 컴퓨터에서 제대로 작동하지 않습니다. 그것을 처리하는 방법?

USB to NULL 모뎀을 USB 연결에 연결했습니다. 이 직렬 케이블은 Windows에서 제대로 작동합니다. Windows에서는 최대 100MB까지 파일을 전송할 수 있습니다. 우분투 리눅스에서. 나는 곤경에 빠졌다. 명령줄을 작동시킬 수도 없습니다.


포트 설정:

sudo chmod o+rw /dev/ttyS0
sudo chmod o+rw /dev/ttyS4

crw-rw-rw- 1 root dialout 4, 64 Feb 10 14:31 /dev/ttyS0
crw-rw-rw- 1 root dialout 4, 68 Feb 10 14:20 /dev/ttyS4

dmesg | grep ttyS
[    0.412092] 00:07: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.433676] 0000:00:16.3: ttyS4 at I/O 0xf0e0 (irq = 19, base_baud = 115200) is a 16550A

의사소통하다:

On one terminal:
cat -v < /dev/ttyS0   or   cat -v < /dev/ttyS4


On another terminal:
echo -e "\x7E\x03\xD0\xAF und normaler Text" > /dev/ttyS0

stty -aF /dev/ttyS0
speed 57600 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>;
eol = <undef>; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>;
susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>;
discard = <undef>; min = 0; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl -echoke -flusho -extproc

stty -aF /dev/ttyS4
speed 57600 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>;
eol = <undef>; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>;
susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>;
discard = <undef>; min = 0; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl -echoke -flusho -extproc

문서는 다음과 같습니다.

https://www.digi.com/resources/documentation/Digidocs/90001541/tasks/t_use_terminals.htm?TocPath=Get%20started%20with%20MicroPython%7C_____8

답변1

USB-직렬 장치에 대해 이야기하고 있습니까? 그러면 장치 이름은 /dev/ttyUSB*이 아닌 형식일 가능성이 높습니다 /dev/ttyS*. 그러한 장치가 하나만 있는 경우 이름은 가 될 수 있습니다 /dev/ttyUSB0.

링크된 지침의 첫 번째 Linux 단계에는 다음과 같은 내용도 나와 있습니다.

Linux에서 터미널을 열고 다음을 입력하세요.picocom -b 115200 /dev/ttyUSB0

보이는 것은 /dev/ttyS0일반 물리적 직렬 포트(노트북에서는 도킹만 가능할 수 있음)이며, /dev/ttyS4출력에서 ​​PCI ID 0000:00:16.3과 관련된 것으로 보이 므로 dmesgIntel AMT/MEI 직렬일 수 있습니다. Port-over-LAN 관리 엔드포인트. 이 중 어느 것도 USB-직렬 장치와 관련이 없습니다.

답변2

흐름 제어를 수행할 사람이 필요합니다. 직렬 회선이 아날로그인 경우 실제 직렬 회선으로 취급해야 합니다.

한 가지 가능성은 네트워크를 설정하는 것입니다. 이전 문서를 사용하여 이 작업을 수행할 수 있습니다.

  1. slattach /dev/ttyS0한편 slattach /dev/ttyS4으로는. 이제 sl0양쪽에서 호출 할 수 있는 새로운 "네트워크 어댑터"가 생겼습니다 .
  2. 주소를 지정하고(예: 사용 ip addr aadd 172.16.16.1/30 brd + dev sl0) 활성화할 수 있습니다( ip link set sl0 up). 반대쪽도 비슷하지만 다른 주소를 사용합니다.
  3. 그런 다음 다른 네트워크 연결로 사용하십시오.

다른 가능성으로는 kermit과 같은 파일 전송 유틸리티가 있습니다. 유감스럽게도 단순함 만으로는 충분 cat하지 echo않습니다.

관련 정보