임베디드 리눅스 시리얼 통신 질문입니다

익명 사용자의 이미지

root@:~# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x44E09000 irq:30 tx:9364 rx:0 RTS|CTS|DTR|DSR
1: uart:8250 mmio:0x48022000 irq:31 tx:4286 rx:279 CTS|DTR|DSR|CD|RI
2: uart:8250 mmio:0x48024000 irq:32 tx:0 rx:0 CTS|DSR
3: uart:unknown port:00000000 irq:0
4: uart:8250 mmio:0x481A8000 irq:33 tx:0 rx:0 CTS|DSR
5: uart:8250 mmio:0x481AA000 irq:34 tx:0 rx:0 CTS|DSR
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
8: uart:unknown port:00000000 irq:0
9: uart:unknown port:00000000 irq:0

root@:~# echo '1245' > /dev/ttyS1

root@:~# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:

먼저 첫질문이라 좀 두서없거나 잘못된 부분이 있을수도 있다는점 양해 부탁드립니다.

0: uart:8250 mmio:0x44E09000 irq:30 tx:9364 rx:0 RTS|CTS|DTR|DSR
1: uart:8250 mmio:0x48022000 irq:31 tx:4291 rx:279 CTS|DTR|DSR|CD|RI
2: uart:8250 mmio:0x48024000 irq:32 tx:0 rx:0 CTS|DSR
3: uart:unknown port:00000000 irq:0
4: uart:8250 mmio:0x481A8000 irq:33 tx:0 rx:0 CTS|DSR
5: uart:8250 mmio:0x481AA000 irq:34 tx:0 rx:0 CTS|DSR
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
8: uart:unknown port:00000000 irq:0
9: uart:unknown port:00000000 irq:0

현재 ttyS1 포트로 시리얼 통신하는 프로그램을 만드는데
통신 대상 장비가 아직 없어서 일단 write는 정상적으로 돌아가나 체크만 하는 중입니다
프로그램은 문제 없이 돌아가긴 하는데 대상 장비가 없으니 확인할 방법이 없어서 갑갑하더라고요

그래서 cat < /dev/ttyS1 으로 데이터 송신이 되긴하나 하고 봤더니 프로그램 돌아가도 아무런 출력이 없네요
프로그램 문제인가 해서 저 위처럼 echo로 보내보건 cat으로 파일을 직접 때려박건 별짓을 다해봤는데
저 위에있는 시리얼 정보의 tx 카운트만 올라가고 cat에서는 아무것도 출력이 안되네요 ㅠㅠ
이게 정말 통신이 안되서 출력이 안되는건지 cat 으로 보는 방법에 문제가 있는건지 궁금합니다
저 tx 카운트는 실제 데이터 송신여부랑 상관없이 송신 시도만으로도 저렇게 올라가는건가요?

bushi의 이미지

> 통신 대상 장비가 아직 없어서

Rx 와 Tx 핀을 서로 직접 연결해서 loopback 시험하세요. H/W 흐름제어 사용하신다면 관련 신호들도 다 연결하시고요.
뭔 소린지 모르겠다면 "널모뎀" 정도로 구글에서 검색하세요.

> cat < /dev/ttyS1

cat /dev/ttyS1 으로 충분합니다.
상대방이 보내 준 것이 있거나, terminal 에 echo 를 설정하셨으면 Tx 하는 것들이 읽힙니다.

> 저 tx 카운트는 실제 데이터 송신여부랑 상관없이 송신 시도만으로도 저렇게 올라가는건가요?

흐름제어를 전혀 사용하지 않는다면 그렇습니다.
그 만큼 uart 를 통해 이미 출력이 됐습니다. 송신 시도 횟수가 아니라 송신 성공된 워드 숫자 입니다.

시리얼 포트 입출력 프로그램 만드신다면,
"Serial Programming Guide for POSIX Operating Systems" 를 구글에서 검색해서 나오는 문서를 꼭 읽어보셔야 대충이라도 비스무리하게 만드실 수 있어요.

글쓴이의 이미지

답변 감사합니다.
장비 대신 PC에 Serial to USB로 연결해서 값 오고가는거까지 확인해보니 정상 동작하네요.
그동안은 아마 말씀하신대로 echo 설정이 안되서 송신하는 데이터가 안찍혔나봅니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.