2009-12-08 4 views
0

COM 포트 드라이버에 내장 된 창은 비표준 통신 속도를 지원합니까?Windows의 비표준 통신 속도

내가 문제가 간단히 특이한 전송 속도 5787. 장치 & PC의 이야기를 사용하는 장치에 안정적인 연결을 얻는 데 묻고 그 이유를 (실제로는? 창은 COM1 & 2 드라이버가 내장되어 않습니다) 그런 다음 대화를 풀고 다시 읽는 것 같습니다. 긴 메시지가 보내지면 다른 쪽 끝에서 길게 사라지게됩니다. 잠시 후에 대화가 다시 돌아옵니다. 이것은 고전적인 baudrate 불일치처럼 들립니다. 신뢰할 수있을 정도로 충분히 가까이 있지는 않지만 일부 데이터가 통과하기에 충분히 가깝습니다.

저렴한 PCI 직렬 보드를 사용하면 문제없이 작동합니다. 그것은 내가 찾은 시리얼을 사용하는 컴퓨터 만 제대로 작동하지 않습니다.

+0

RS232 분쇄로 꽤 힘들었습니다. 5787은 참으로 이상한 통신 속도입니다. 전송 속도 문제인지는 확실치 않지만 표준 전송 속도 (예 : 9600)를 사용하면 일반적으로 더 안정적으로 연결됩니다. 전송 속도를 제쳐두고, 타이밍 설정을 구성하거나 조정해야합니까? 드라이버는 Windows (XP 이상)에는 일반 드라이버가 있습니다. PCI/USB 외부 RS232 장치를 사용하는 경우 자체 드라이버가 함께 제공 될 수 있습니다. –

답변

6

PC의 보류 (baudrates)는 UART와 크리스털로 제어됩니다. 크리스털 주파수는 직렬 포트가 생성 할 수있는 통신 속도를 결정합니다. 보레이트는 16 분주 카운터로 종종 생성됩니다. 표준 PC의 크리스털 주파수는 일반적으로 1.8432MHz입니다. 16으로 나눈 값은 보통 115200이며 이는 일반적으로 COM 포트가 수행 할 수있는 최대 값입니다.

UART 내부는 DLAB 레지스터입니다. 이것은 시계를 더 나눕니다. 그래서 본질적으로, 5787 baud를 얻으려면 115200을 5787로 나누면 19.906687이됩니다. 20에 가까운 DLAB 레지스터를로드 할 수 있습니다. 115200/20은 5760을 제공합니다. 따라서 아마 당신은 아마 PC 통신 포트에서 5760 보오를 얻습니다. 그것은 아마 당신이보고있는 문제를 일으키는 차이가 충분합니다.

1

아니요, 5760에서 5787까지의 차이는 문제의 종류를 설명하기에 충분하지 않습니다. UART는 시작 비트의 앞쪽 가장자리에서 바이트의 시작을 식별 한 다음 각 비트의 중간에있는 데이터를 샘플링합니다. 이것은 예측 된 중간이 가장자리 인 지점까지 보드 율 오류에 대해 관대하다는 것을 의미합니다. 각 바이트에는 정지 비트가 있으므로 바이트 당 다시 동기화 이벤트가 있기 때문에 전체 바이트 하나에서 반 비트 오류입니다. 10 비트의 절반 비트 (8 데이터, 1 시작, 1 정지)는 5 %입니다. 5760에서 5787까지의 차이는 안전 지역 안의 0.5 %에 불과합니다.

+0

그게 전부지만, 실제로 나는 그때 모든 이야기를 할 수 없습니다 이론. 내가 훨씬 더 넓은 범위의 주파수와 지원되는 전송 속도를 가진 comport 카드를 시도했을 때 나는 5760 전송 속도를 훨씬 더 가깝게 목표로 할 수 있다는 것을 발견했다. (내가 가지고있는 것을 기억할 수는 없지만 약 10-15 baud 이내였다) . 그냥 효과가있었습니다. 아마 Gilbarco가 RS232에 bitbash 방식을 사용하고 적절한 UART가 아닌 것으로 들었 기 때문일 수 있습니다. 사실이라면 설명 할 수 있습니다. – Matt