시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

Serial 통신이란

Serial(시리얼)통신 은 말그대로 직렬통신, 여러 데이터 통신 방법중 하나입니다. 직렬 통신은 하나의 데이터를 비트 단위로 쪼개서 시간차를 두고 하나씩 전송하는 1:1 통신이 기본입니다. USB가 있기 전에는 RS-232C와 그 개량형인 RS-422/RS-485가 대중적으로 사용되었습니다. 여기서 RS(Recommended Standard)는 추천 규격이라는 뜻의 약자이며 232는 특정 규격에 대한 식별번호입니다.

데이터를 시간차를 두고 나누어서 보내야 하기 때문에 이론적으로 병렬 통신에 비해서 느립니다. 하지만 외부 장치들은 고속의 데이터 전송이 필요하지 않은 경우가 대부분이라 단점을 느낄 수 없을겁니다. 앞서 설명하자면, 필자는 이 병렬통신으로 고속통신을 해보려고 합니다. 그전에 통신에 필요한 것들을 알아보겠습니다.

RS232 핀맵

NS-RS232 DataSheet p4

위의 사진이 Serial 통신중 가장 대중적인 RS232의 핀 맵입니다. 실제로 데이터가 송수신 되는데 필요한 핀은 2번.RXD, 3번.TXD, 5번.GND 입니다.

RS232 결선

232 결선 방식

결선 방식은 그림과 같이 2번(RX)-3번(TX), 3번(RX)-2번(TX), 5번(GND) -5번(GND)로 연결하면 됩니다.

RS232 전압 레벨

232 통신 전압 0111111000000111

그림과 같이 -12V전압일 때 비트 1, 12V일때 비트 0 입니다.

통신속도

CoolTerm

보 레이트(baudrate)는 1초동안 보낼수있는 비트수를 말합니다. 가장 대중적으로 사용하는 9600은 1초동안 9600bit의 데이터를 전송한다는 뜻입니다. 통신을 위해서는 두장비간 보레이트를 동일하게 설정해줍니다. 어떤 보레이트가 있는지 봅시다.

110~57600이 모든 시리얼 포트에서 지원되는 표준 보 전송속도라고 나와있습니다. 일부 시리얼 포트에서는 921600까지도 가능하네요.

그 외에 알아두어야 할것

RS232통신 프레임 구조
  • COMPORT: 하드웨어에 할당된 COMPORT.
  • DATA BIT: 시리얼통신으로 데이터를 전송할 BIT의 개수. (8이 대중적)
  • PARITY BIT: 비트의 합으로 데이터의 오류 검사 비트. (CRC 검사로 대체)
  • STOP BIT: STOP비트의 개수.
  • RTS(Request to pin)핀과 CTS(Clear to Send)핀: 데이터부하가 많아 질 경우 송신측에서 보내는 데이터의 흐름을 제한하기 위해 사용.

고속통신 개선

목표: Serial통신으로 보낸 데이터로 그래프를 그리기 위해, 최대 40Byte의 포맷을 초당 350회 보내기.

문제점: 변환속도는 1000Hz, 2000Hz까지 나오는 반면 통신을 120회밖에 하지 못하여 데이터로 그래프를 그리는데에있어 문제가 있다.

해결방안:

  1. 통신속도를 높인다.
  2. 변환속도를 통신속도와 맞춘다.
  3. 통신스레드 검토
20초동안 몇번의 데이터가 뿌려지는지 테스트를 하기 위한 코드

고속통신기능은 Display 변환속도가 1000Hz에서 최대120회밖에 뿌리지 못하고 있었습니다. 변환 속도를 낮추고, 통신속도를 올리는 방법으로 개선을 하고자 사용중인 아날로그 디지털변환기의 DataSheet을 찾아보았습니다.

AD7190 Down PageAD7190 DataSheet

Filter Word가 16일때 300으로 Output Data Rate(변환속도 Hz)가 설정되니 12로 설정하여 350Hz로 변환속도를 맞춰주었습니다.

\AD_Value AD7190_Adapter::Read_Data(char UniPolar, char CH, signed short Speed, char Read_Count)

기존의 115200 보 레이트보다 빠른 256K 보 레이트를 추가하였습니다.

기존 스레드메인 루프에서 시리얼 동작시리얼 스레드 비활성화

Display, SD, SERIAL 스레드의 우선순위가 같은 조건에서 Diplay를 빠르게 뿌리다보니 Seial 스레드가 교착상태에 걸려 통신속도가 현저히 떨어지고 있었습니다. 그래서 Seial Thread를 없애고, main Loop에서 시리얼 통신을 실행시켜 교착상태에 걸리지 않도록 하여 해결하였습니다.

결과

초당 350회 전송

통신 개선 성공!

참고

나무위키 -직렬통신

모종의 음모/Win32 시리얼2017. 3. 17. 15:16

많이 쓰는게 N-8-1 이니까

1byte 전송에 10bit를 주로 쓰니까 일단 둘다 계산

많이 사용되는(?) 비트레이트 저장

[링크 : http://www.cermetek.com/Catalog/High-Speed-Modems/DataSheet/...CH1794_607-0003/]

'모종의 음모 > Win32 시리얼' 카테고리의 다른 글

win32 시리얼 포트 목록 얻기  (0)2017.04.05
mfc CreateFile com10 이상 열기  (0)2017.04.04
시리얼 포트 관련 trouble shotting  (0)2010.02.08
MFC 프로젝트(SDI)에서 CSerial 사용하기 예제  (0)2009.06.15
사용가능한 시리얼 포트 목록 얻기  (0)2009.06.12

Posted by 구차니

Comment 0

댓글을 달아 주세요

     Name  Password

     Homepage

     secret

    태그 : 미디어로그 : 지역로그 : 방명록 : 관리자 : 글쓰기 Blog is powered by Daum / Designed by Tistory


    RSS FEED

    구차니

    나란히 동등하게 함께

    카테고리

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    잡동사니

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    Programming

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    Linux

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    Linux API

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    Microsoft

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    Apple

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    embeded

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    하드웨어

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    이론 관련

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    회사일

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    프로그램 사용

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    모종의 음모

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    게임

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    개소리 왈왈

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    아이디어!

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    파일방

    시리얼 통신 속도 계산 - silieol tongsin sogdo gyesan

    분류가 모호한 글

    공지사항

    • 블로그 주인장 장가갑니다
    • 도메인 이전중입니다.
    • 대문사진 3차 변경 ㅋㅋㅋ
    • 위키도 하고 있어요~ (수근수근)
    • 도메인 기관이전 준비중입니다

    태그목록

    최근에 올라온 글

    • 해피빈 기부의 계절.
    • 삼성 플렉스 알파 키보드 백라이트...
    • 사실상 사과.
    • libvncserver 종료 절차.
    • 10월 끝.

    최근에 달린 댓글

    • 진짜감사합니다 ㅠㅠ vc4-f⋯. ㅇㅇ 11.20
    • 돈이 돈이긴 한데.. 머랄까 ⋯. 구차니 11.01
    • 돈에 의한 계급 사회의 고착화⋯. 담덕01 11.01
    • 그럼에도 불구하고 물리버튼과 ⋯. 구차니 10.31
    • 저 버튼에 대한 건 몇 년 전⋯. 담덕01 10.31