멀티 시리얼 프로그래밍(1 : N)

funbear의 이미지

EZ보드를 사용하여 멀티 시리얼 프로그래밍을 하려고합니다..

여기서 제가 말하는 멀티 시리얼 프로그래밍이란...

EZ보드에는 시리얼을 S0,S1 이렇게 사용이 가능합니다..

그중 S0는 타겟보드 모니터링하고...나머지 S1으로 시리얼 통신을 해야되는

상황인데, S1 하나로 마이컴과 2개의 시리얼 통신을 구현해야됩니다...

제가 알고 있는거로는 DG408 Controller를 사용한 회로를 이용하여

사용하는 방법인데...이 방법 말고 다른 방법이 있을까요??

이상황과 유사한 경우라도 괜찮습니다...^^;

flyduck의 이미지

예전에 serial 하나를 두 장치에 연결해서 사용했던 기억이 나는데, 연결하고 있는 모든 장치가 똑같은 baud rate, protocol을 사용한다는 가정하에, 각 장치가 패킷을 해석하는 것을 별도로 구현할 수 있고 (또는 특별한 형식의 패킷만을 인식하도록 설계되어 있어서 다른 형식의 데이터는 무시한다든지) 항상 CPU 쪽이 master가 된다면 모든 장치를 같은 serial line에 연결해서 사용할 수 있을 것입니다. I2C를 생각하면 같은 원리가 됩니다.

제 경우는 serial을 console과 장치가 공유하도록 설계를 했는데, 장치가 특별한 형식을 요구하기 때문에 일반 console 메시지는 무시하였고, 대신 console이 장치에게 가는 형식의 데이터를 무시하도록 설계했습니다.

만약 어떤 장치가 아무때에나 데이터를 보낼 수 있는 상황이라면 arbitration이 필요해지기 때문에 좀 더 복잡해질 것입니다. 이 때는 CTS/RTS flow control을 사용할수 있습니다. CTS signal을 bus request 용도로 RTS를 bus grant 용도로 사용하는 것입니다.

같은 선을 사용했을 때 오동작을 할 수 있는 환경이라면 앞에서 언급한 dg409같은 switchbox chipset을 사용하거나 보드상에 switchbox 회로를 구현해야 할 것입니다. 이 때도 장치가 임의로 데이터를 보낼 수 있는 경우에는 flow control을 고려해야겠죠.

정 곤란한 경우에는 software UART를 생각할 수 있습니다. gpio 선 두개를 할당해서 (하나는 interrupt를 발생시킬 수 있는) software 적으로 gpio를 제어해서 UART를 구현하는 것입니다. 이 방법도 생각보다 많이 쓰입니다. :-)

Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.

funbear의 이미지

답변감사합니다...
방법이 있는데로 다해봐야겠지요.^^

익명 사용자의 이미지

필드에서는 rs232<->422/485 컨버터를 이용합니다.

rs232/485는 멀티드롭통신을 지원하지요..

마이컴쪽에서 422이나 485포트가 있는 경우(보통은 그런편인데)
PC단에서 컨버터를 달아 통신을 하고,
마이컴쪽에서는 패킷 선두에 어드래스를 달아서,
자신의 어드래스가 아니면, 소프트웨어적으로 드롭을 시키는 방식으로
통신을 합니다.
패킷모양은 보통 이렇합니다.
stx + 어드래스+ data + etx

h2cl의 이미지

485/422 통신을 사용해야될듯합니다.
시리얼포트에다가 시중에 판매되는 485 통신모듈을 구입하여 달아서 사용하시면
멀티로 사용가능합니다.
2개가 아니라 여러개도 사용가능합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.