9600, 19200, 38400, 57600, 115200 및 1.8432 Mbaud를 알고 있지만 다른 것은 없습니다. 이러한 값이 사용되는 이유는 매번 단순히 두 배로 증가하거나 더 복잡한 작업이 진행되고 있습니까 (예 : 38400 쿼드 러플은 115200 보드가 아닙니까?).
이 질문을하는 이유는 다양한 전송 속도와 상호 작용해야 할 수있는 무언가를 설계합니다. 9600에서 초기화 한 다음 특정 전송 속도로 전환합니다.하지만 사용중인 dsPIC33F가 임의 속도를 지원하지 않기 때문에 임의 속도를 지원할 수 없습니다. 16 비트 BRG 다운 카운터로 제한됩니다. 이와 관련하여 다른 많은 프로세서와 유사합니다.
설명
- 실제로 16 비트 카운터와 사전 / 사후 스케일러는 충분합니다. 임의의 전송 속도에 " 충분히 근접하게 ". UART 직렬은 약간의 전송 속도 불일치를 허용 할 수 있습니다.
- uart는 START 비트의 중간에서 시작하고 7-10 비트를 직렬화 한 후 STOP 비트의 중간에 머물러야합니다. 따라서 최소 클럭 정밀도는 약 2-3 %이며, 가급적이면 노이즈, 지터, 편차를 처리하는 것이 좋습니다. 소스 주파수 …
답변
텔레타이프로 오래 전에 시작되었습니다. 75 보드라고 생각합니다. . 그 이후로 거의 두 배로 증가했습니다. 예를 들어 28,800과 같이 소수 (x1.5) 배수로 두 배가되지 않는 전화선 모뎀 기술에 제약이있었습니다.
표준 크리스탈 값은 이러한 초기 보오율과 가용성 y는 미래 요금을 나타냅니다. 예 :
\ $ \ begin {align} {7.3728 \, \ mathrm {MHz} \ over 16} & = 460,800 \; \ text {baud} \\\\ {7.3728 \, \ mathrm {MHz} \ over 64} & = 115,200 \, \ text {baud} \ end {align} \ $
대부분의 UART는 전송 속도의 \ $ 2 ^ n \ times 16 \ $ 의 시계를 사용합니다. 더 현대적인 부품 (예 : NXP LPC)에는 비 이진 배수를 사용하여 더 넓은 범위를 얻기위한 분수 분할기가 있습니다.
기타 일반적인 표준은 31,250 (MIDI) 및 250K (DMX)이며 둘 다 좋은 배수로 선택되었을 가능성이 높습니다. 1MHz 등의 “원형”클럭입니다.
댓글
- 분수 구분자를 생각하지 않습니다. ' 비표준 비트 레이트를 얻기위한 것이지 표준 비트 레이트가 아닌 MCU 클럭 주파수에서 표준 비트 레이트를 얻는 것입니다.
- 저는 대학 시절 (1976)에 돌아와서 1926 년 텔레타이프를 2 년 리퍼브했으며 예, 약 75 보드로 실행되었습니다. 그들은 baudot 텔레타이프로 분류되었습니다. 110vac에 연결하고 모터가 타이밍을 제공하고 그들 사이에 전기적 연결을 제공했습니다. 나는 그들을 청소하기 위해 휘발유에 담근다. (나에게 휴식을 줘-나는 18 살이었다. 그러나 그것은 효과가 있었다!) Ctrl-G는 다른 사람에게 정직한 종소리를 울렸다. 아아, ' 누군가를 줬는 지조차 기억하지 못합니다. 🙁 예, 기계식 키보드에 ' d를 입력하면 키 입력을 기계적으로 직렬화하고 상대방이 읽은 접촉을 끊습니다.
- Yay, 활활 타오르는 ' 20 '! 50 년 동안 지속되고 존 실바에서 끝나는 품질의 기술 '는 캘리포니아 헤이워드에 있습니다.
- @DougNull 죄송합니다. 115200bps에 대한 질문입니다. 따라서 IC 클럭 (7.3728MHz)을 ? 64는 어떻게 얻었습니까?
Answer
프리웨어 Windows 터미널 프로그램 인 RealTerm은 이러한 UART 요금을 나열합니다. Baud 메뉴에서 :
110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
하지만 실제로는 baud가 아닌 초당 비트 (bps)-아래를 참조하십시오.
110 보드는 ASR-33과 같은 8 레벨 텔레타이프에서 사용되었습니다. 150 Baud가 사용 된 위치는 알 수 없습니다. 75 보드의 두 배, 일반적으로 우리 ed (60 보드와 함께)는 5 레벨 TTY를위한 것입니다.
300bps는 1960 년대에 최초로 널리 사용 된 전화 모뎀의 표준이었습니다. 초당 30 개의 문자 터미널이 동시에 나타났습니다.
단순 주파수 편이 키 (FSK)를 사용하는 300bps / 300 보드 이상, bps 및 보드 (초당 기호 또는 톤 )는 동일하지 않습니다. 예를 들어 1200 bps 모뎀은 실제로 600 baud에서 실행되고 4800 bps 모뎀은 1600 baud에서 실행됩니다. 이 도움말 의 대역폭 아래 표를 참조하세요. 차이점은 초당 특정 수의 톤 펄스를 사용하는 것 외에도 위상 편이 키잉 및 다른 방법 을 사용하여 동일한 보드에서 추가 대역폭을 추출하기 때문입니다. 더 높고 더 높은 bps를 얻기위한 속도. (따라서 56K 모뎀은 실제로 8000 보로만 실행됩니다.)
보시다시피 UART 속도 목록은 기본적으로 75에서 시작하여 계속 두 배 (600을 건너 뛰기)하여 38400에 도달합니다. 57600을 얻기 위해 1.5를 곱했습니다.56K bps는 아날로그 전화선의 제한입니다. 유선 연결에는 115200 이상의 높은 속도 (다시 한 번 57600부터 두 배 증가)가 사용됩니다.
mikeselectricstuff가 언급했듯이 14400 및 28800 bps는 모뎀 속도가 불가능할 때 1.5 x 9600 및 1.5 x 19200으로 도입되었습니다. “당시에는 두 배가되지 않지만 더 이상 사용되는 경우는 거의 없습니다.
댓글
- 현상 적이지는 않지만 프로그램은 어떤 속도 만 지원할 수 있습니다. 하드웨어가 허용합니다. 묻지 않고 표준 속도 만 나열 할 수도 있습니다. 내 하드웨어에
zip(*serial.Serial('COM10').getSupportedBaudrates())
에게 물어 보면 다음과 같이 응답합니다.(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
- 80 년대에는 600 비트 / 초 반이중 음향 커플러를 사용했습니다. 독일 BTX 시스템에서는 업로드 방향으로 75 비트 / 초를 오랫동안 사용했고 다운로드는 1200 비트 / 초였습니다.
- ' 또한 62.5kbaud도 확인했습니다. 실제로 이는 기본 클럭에 따라 다르며 어떤 전송 속도가 충분히 낮은 오류로 이어질지 계산할 수 있습니다.
답변
오랫동안 통신에 115,200의 submultiples를 사용하는 것이 일반적이었습니다. 38,400의 2 승 submultiple 또는 57,600 또는 115,200의 submultiples 중 하나입니다. 대부분의 PC 하드웨어는 이러한 속도를 지원합니다. 일부 PC 하드웨어는 230,400 또는 460,800을 지원할 수 있습니다. 자체 클럭 속도의 하위 배수 인 데이터 전송률과 같은 많은 임베디드 컨트롤러와 일부 USB- 직렬 칩은 3,000,000bps의 정수 하위 배수를 지원할 수 있으므로 1,000,000bps 또는 1,500,000bps와 같은 속도가 더 일반적이 될 것입니다. USB 칩을 통해 PC에 연결할 수 있습니다.
BTW, 언급 할만한 또 다른 속도 : 31,250bps는 표준 MIDI에 사용되는 속도입니다.
답변
원래 IBM PC에는 8250 UART가있었습니다. 이것은 1.8432 MHZ 클럭을 사용하여 내부 클럭을 생성하기 위해 정수로 나눈 다음 해당 클럭은 비트에 대해 16 사이클로 실행됩니다.
제수 레지스터에서 1을 설정하면 115,200, 2는 57,600을 얻습니다. 3은 38,400을, 6은 19,200을 얻습니다.
가장 좋은 방법은 DSPIC에서 1.8432MHz의 배수로 실행되는 클록을 사용하는 것입니다.