UART에 대해서 공부하고 있습니다.
비동기통신에서는 데이터를 보내는 쪽에서 데이터를 수신하는 쪽이 어디서부터 어디까지가 데이터인지 알수 있도록 시작비트(start bit)와 정지비트(stop bit)를 같이 보내지요?
이를 위해서는 통신하는 양 측이 통신속도에 대해서 약속을 해야할 것입니다.
데이터를 보내는 속도를 알아야 데이터 한 폭의 시간을 알아 수신측에서 읽어갈테니까요.
이 통신속도의 단위가 보오(baud)이고 1초에 몇 bit의 데이터를 보낼것인지에 대한 약속, 이것이
baud rate 이구요.(통신에서는 bps와 baud rate의 구분이 없는 것으로 알고 있습니다.)
UART 에서는 위에서 이야기한 사용자가 약속한 통신속도(baud rate)보다 16배 높은 주파수의 내부신호를 사용하며, 이 내부신호는 CPU의 동작을 위한 오실레이터의 출력을 가져다가 분주하여 만드는 것으로 알고 있습니다.
질문)
비통기 통신에서 많이 사용되는 비트율의 예로 37400 bps, 57600 bps, 115200 bps 등이 있는 것으로 봤는데 만약 사용자가 '115200 bps 속도로 데이터를 주고받겠다!' 라고 약속을 하게 되면, UART 에서 내부적으로 사용하는 클럭이 '115,200[bps] x 16 = 1,843,200[Hz]' 가 되는 것인가요?
bps(baud rate) 와 Hz(주파수)의 관계가 궁금합니다....
통신에서는 주파수와 bps가 같은 의미로 쓰이는 것인가요?
혹시라도 위에 기술한 내용을 제가 잘못 알고 있는 부분이 있다면 지적 해주세요.
개념적으로 헷갈리는 부분이 너무 많네요. ㅠ.ㅠ 도와주세요.........
직렬통신이란건 기본적으로 한비트씩 데이터를 받은 다음 레지스터 쉬프트 하다가 오버플로우 일으킬때마다 다음 바이트로 넘어가는거니까 보통 시그널이 하나일땐 한클럭 한비트가 맞습니다
한줄요약=직렬통신에선 bps=클럭 주파수
http://electronics.stackexchange.com/questions/5850/how-critical-are-uart-frequencies
설명해주신건 이해가 잘 안가지만...........답변 감사합니다!!
;; 알려주신 주소는 죄다 영어네요..............
신호 체크를 16배는 빠르게 해줘야 제대로 체크를 하니까
그건 논리 주파수고. 오실레이터에서 먹이는 밥은 좀 더 고주파수지.
http://en.wikipedia.org/wiki/Crystal_oscillator_frequencies
codesaf.// 무슨 말씀이신지 모르겠어요 ㅠㅠ 쉽게 설명 해주시겠어요?
크리스탈 오실레이터의 주파수는 정적이야. 쉽게 속도를 바꿀 수 없어. 그러니까 약수 관계에서 여러 주파수를 쓸 수 있도록 하는거야.
관노// 말씀해주신 부분은 관련자료를 보고 이해를 했는데............밑줄 그은부분에서 말한것처럼 bps와 주파수의 관계가 궁금해요.........그냥 bps 에다가 16 곱한다고 그게 UART에서 사용하게 되는 내부신호가 되는건지..[bps] x 16 = [Hz]????
시계의 '시'가 넘어가는 순간을 보려는데 1시간마다 확인하면 삐꾸라서 5분에 한번씩 하면 덜 놓치듯이,,,
16은 그냥 별 의미없고 자주자주 신호를 체크해서 칼 타이밍에 파악하려고 더 빨리 돌리는거
컨트롤러는 clock source 의 진동을 이용해 동기화 하거든, cpu가 되었든 UART controller 가 되었든. 펄스의 rising 이나 falling 을 보면서 말야. 그 안에서 몇 번의 rising 만에 한 번씩 처리할까, 이런걸 정해 놓은게 baud rate 인거지.
그러니 물리적인 주파수는 당연히 baud rate 보다 높을 수 밖에 없고, 전송 속도가 source clock 의 약수 관계에 있다는거야.
UART 는 start bit 의 falling edge 를 읽는군.
관노// 부연 설명해주시니 이해 했던게 더 확실해지는 것 같네요. 16은 별 의미가 없는거군요.
ㅇㅇ 더 빨라도 됨
내가 준 링크의 표를 보면, 115200 UART 를 지원하는 클럭이 엄청 많이 있잖아. 젤 작은게 16배 정도고.
Bits,Baud,Hz,Rates
http://www.csc.gatech.edu/~copeland/4603/bits_bauds.html
codesaf.// 크리스탈 오실레이터의 주파수는 정적이기 때문에 이를 가져다가 분주해서 쓰려고 37400 bps, 57600 bps, 115200 bps 따위의 수치가 나오게 된거고, 분주해서 쓰기 때문에 오실레이터 주파수와 위의 비트율 사이에는 약수관계가 있다는 것 같네요...맞게 이해 한건지;;
응 닭이 먼저냐 달걀이 먼저냐 같긴 하지만 그래. 문제는 크리스탈 오실레이터가 몇 Mhz 급 이라고 해봐야 같은 등급끼리도 속도가 조금씩은 다르다는거야. 그러면 당연히 촘촘해야 시간이 맞겠지. 관노가 설명한것 처럼 말야.
ㅇㅇ// 이쪽도 죄다 영어네요 ㅠ.ㅠ...시간내서 한번 읽어볼게요
답변해 주신분들 모두 감사합니다!
정성은 돈으로