uart로 파일전송

shr3221의 이미지

uart로 파일 전송하는 방법을 찾지 못하여 인터넷에 있는 프로그램을 사용하였더니 파일을 통째로 전송하는 것이라 파일 크기가 커지면 멈추더라고요

파일 송수신하는 코드는 작성해두었는데(c언어) 이걸 uart로 전송하는 방법을 몰라 프로그램을 썼던 것입니다.

혹시 프로그램을 아시거나 힌트라도 주실 분 계신가요??

VS로 인터넷에 나와있는 예제를 참고하여 파일을 TCP/IP 통신으로 송수신(저장)하는 걸 작성했었습니다.

라스코니의 이미지

파일을 전송하려면 쌍방향 통신이 가능해야 합니다. 일단 uart_tx(), uart_rx()가 된다고 가정했을 때

파일을 전송하는 가장 단순한 프로토콜은 tftp 프로토콜이라고 생각되고요. 인터넷 상에서 쉽게 찾을 수 있는 UDP 상에서 돌아가는 프로젝트가 많을 겁니다. recvfrom(), sendto() 만 교체하면 쉽게 될 것이라 생각되네요.

파일이 어느 정도 사이즈인가요?

shr3221의 이미지

일단 uart통신은 되고 wifi까지 뚫어놨습니다.

tcp/ip를 통해 통신을 하려고 하는거라 udp는 생각을 해보지 않았습니다. 크기가 큰 파일을 전송하는 것을 목표로 잡고 있습니다.

그러기 때문에 파일이 커지면 나누어 전송이 되겠금하려고 생각만 하고 있습니다.

tftp 프로토콜, recvfrom(), sendto() 는 처음 들어보는 것이라 학습이 필요합니다. 공부하겠습니다.

익명 사용자의 이미지

예전 모뎀에 자주쓰던 zmodem 같은거 쓰셔도 좋습니다. 요즘 network 이 없는 임베디드에서는 아직 자주 씁니다.

shr3221의 이미지

zmodem이란 것에 대해 알아보겠습니다. 감사합니다.

Necromancer의 이미지

프로그램 만들겠다면 시리얼장치(/dev/ttyXXX) 연다음 소켓 다루듯이 read/write 하면 됩니다. 파일디스크립터나 소켓이나 다 int형 id라. 대신 프로토콜은 알아서 정의해둬야 합니다. 정의한 프로토콜에 오류검출 기능은 반드시 있어야 합니다.

Written By the Black Knight of Destruction

shr3221의 이미지

프로토콜에 대해 학습 중입니다. 오류검출까지는 생각을 못했는데 그 기능에 대해서도 생각해보겠습니다. 감사합니다.

shr3221의 이미지

제 선에서는 어려워서 일단 최대한 할 수 있는 곳까지 해봤습니다. 계속 학습하고 찾아보는 중인건 마찮가지라 여기의 댓글이 저에게는 큰 도움이 되었습니다. 늦게 댓글을 확인해서 죄송합니다. 적용해서 계속 해보도록 하겠습니다. 감사합니다.

댓글 달기

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