속도와의 싸움 조언 좀 부탁 드리겠습니다.

puaxx의 이미지

요즘 제가 하고 있는 일이 있습니다.

호스트에서 시리얼포트를 통해 모듈을 제어하는 것을 하고 있습니다.

호스트는 386보드에 모듈쪽은 atmega64입니다.

둘다 제가 프로그램하고 있는데 도저히 통신시간을 줄일수가 없네요...

이거 양쪽의 송.수신부를 어셈블리로 처리하면 빨라진다면 좋겠지만 확신이 서질 않습니다.

조언좀 부탁 드리겠습니다.

seoleda의 이미지

먼저 얼마나 많은 데이터가 언제까지 도착해야 하는지를 알아야 해결책이 나올것 같습니다.

일반적으로 통신시간을 줄이는 방법으로 다음과 같은 2가지 방법이 있습니다.
1) 오고가는 데이터를 줄이는 방법(압축)
그러나 중요한 데이터가 왔다갔다 한다면 무손실 압축으로는 큰 효과를 기대하기 어렵고요, 영상이나 소리 같은 멀티미디어 데이터일 경우 적당히 압축하면 1/10정도로 데이터를 줄일 수 있습니다.

2) 물리적인 속도개선 (시리얼케이블 데체)
시리얼케이블의 속도가 일반적으로 115200 bps 니깐, 속도가 초당 14 Kbyte 정도 나옵니다. 따라서, 영상과 같은 실시간 전송에는 적절하지 않습니다. 따라서, 인터페이스를 이더넷이나 USB 등으로 데체하는 방법을 추천합니다.