Q&A

  • comport에서 boudrate를 더 큰 값으로 지정하고 싶습니다.
시리얼 통신 쌩 초보입니다.

개발이 끝나가는 마당에 H/W가 교체되는 황당한 일이 벌어진 후 새 장비에 연결을 못하고 있습니다.
RS-485 방식으로 연결되는 장비에 230400bps로 연결해야 한다는데...
제가 지금 사용하는 CommPort 컴포넌트에는 baudrate 종류에는 230400이 없더군요...
우선 256000처럼 값이 비슷한 baudrate 값으로 설정했더니 port open과 writestring 실행에서 오류는 없는데 저쪽 장비에서 들어와야 할 결과 값이 들어오질 않더군요.
여기서 일단 첫번째 질문입니다.
혹시 양쪽 장비의 baudrate를 서로 다른 값으로 맞춰 놓은 상태에서도 두 기기 사이의 시리얼 통신은 되는건가요?  당연히 문제가 발생할 것 같긴 한데...   말 그대로 혹시나 하는 마음에...   그래도 된다면 걍 대충이라도 맞춰둔 상태에서 개발할까?라는 얍삽한...   ^^
( 만약 이 질문의 답이 '달라도 상관없다'라면 아래는 더 이상 읽을실 필요도 없을듯... )

또 다른 방법을 시도해보던 중...  ComPort의 baudrate 속성 값 중에 brCustom이라는 항목을 쓰기 위해서
INI file을 사용해 BaudRate=230400으로 지정해도...
나중에 확인해보면 Comport의 Default baud인 9600으로 열렸더군요   ㅜ_ㅜ

똑같은 방법을 사용하면서 INI 파일의 속성값만 2400같이 기존에 정의되어 있던 값으로 지정하면 실제로도 2400bps로 연결되는걸 확인했습니다. (아마 제가 brCustom을 잘못 사용하진 않았단 말이겠죠?)
지금은 어찌해야할지 암담한 상태입니다.

두번째 질문입니다.
어떤 방법이든 ComPort 컴포넌트의 의 baudrate를 높일 수 있는 방법 좀 알려주세요...
혹시 다른 컴포넌트로 바꿔야만 한다면 가능한 공개용으로 좀 알려주시고요...  
물론 정 안되면 상용도 상관은 없지만...  돈이 문제가 아니라 개발 완료 시점이 너무 촉박해서 구매하고 자시고 할 시간 여유도 없거든요   ( 도와달라는 주제에 꽤나 따지죠?   ㅡ.ㅡ )

통신쪽에 아는게 별로 없다보니 질문마저도 조리있게 하질 못하네요.
글만 길어졌지 내용은 두서 없어졌지만...  고수님들의 답변 부탁드리겠습니다.
4  COMMENTS
  • Profile
    성광기 2005.08.08 04:45
    경험에 의한 답변을 드리겠습니다.
    근본적으로 어떤 방법으로도 baud rate 230400은 PC에서는 지원하지 않습니다.
    왜냐하면 PC에 있는 통신 PORT의 UART는 기능적으로는 230Kbps가 지원이 가능합니다.
    그러나 기존 UART와 호환을 위해는 1.84MHZ를 기본 주파수로 이용합니다.
    최대 분주비인 1로 하더라도 115200이됩니다.
    따라서 115200이상은 S/W만 가지고는 불가능합니다.
    따라서 230400이 지원하기 위해서는 기원 가능한 Board가 있어야 합니다.
    Board를 구입하면 통상적으로 설정 S/W 까지 있습니다.
    사용하는데 문제가 없을 것입니다.
    참고로 설정 가능한 최대 속도는 920KBPS까지 일겁니다.


  • Profile
    허강우 2005.08.02 20:04


    => 이승민님이 알려주신건데...AsyncFree 로 검색해서 사용해 보세요. 그 이상의 속도로도 이상없이 사용자가 세팅할 수 있습니다.


    => 통신을 위해서 설정되는 baudrate는 아주 중요합니다. 서로 이 것이 맞지 않을 경우, 잘못된 값을 읽게됩니다. 읽어야 할 타이밍이 맞지 않으니까요. 1000일 경우 0.001초에 한번 읽을 테고, 100일 경우 0.01초에 한번 읽으니까 서로 sync가 맞지 않게 될 것입니다.


    => 일단 알려드린 컴포를 사용해 보시고, 정확한 것은 오실로스코프로 확인해 보시는 것이 좋을 것입니다. 하드웨어를 한다면 오실로스코프가 있을것이라 생각됩니다. 시간에 따른 전기적 신호를 화면에 보여주므로 실제 신호의 속도를 정확히 알 수 있습니다.

  • Profile
    권태훈 2005.07.21 19:36
    pc에서 높게 세팅되고 실제 통신이 낮게 되고 있다면 보레이츠 안 맞아도 됩니다.

    반대인 경우는 안됩니다.  256000bps는 해본적이 없어서 뭐라 말씀 드리긴 뭐하지만,

    아마 485에서라고 해도 그 정도 속도가 안 나올것 같은 느낌입니다.

    속도 마추고 잘 된다고 쳐도 데이타가 선로 중간에서 다 깨질것이란 말씀입니다.

    그리고, 485를 연결하셨다면 변환기를 사용하셨을텐데 그 변환기가 어떤것인지에 따라

    되고 안되고 할것 같습니다...

    보레이츠는 하드웨어에서 정해지긴 하지만 그 하드웨어가 pc의 영향권(내장된 232처럼)안에

    있지 않다면 의미 없는 경우도 있습니다. (많습니다)

    구입하신 장비에 설정프로그램이 있을것으로 생각되며 속도는 거기서 설정하시고,

    높은 속도는 컴퍼넌트 약간 수정하면 될것 같습니다.


  • Profile
    박종성 2005.07.21 20:17
    제목에 [냉무]를 붙였는데...

    내용을 입력해야만 올라가네요   ㅡ.ㅡ

    [냉무]입니다   ^^