serial 통신 속도 변경에 따른 데이터 손상 현상
글쓴이 : vin0724 (2009년 02월 07일 오후 04:58) 읽은수: 991 [ 질문과답변 인쇄용 페이지 ]
안녕하세요, ARM 보드에서 Serial 동작 관련한
문제를 해결하고자 글을 올립니다.
일단 저희 사용 보드는 CPU가 Micrel 사의 KS8695P 이고, linux kernel 2.6.9를 사용하고 있습니다.
현재 문제점은 지금까지 이 보드에서 MG2455(zigbee) 칩을 사용해 왔습니다. mg2455와는 serial 통신을 하게 되어있습니다.
지금까지는 9600 bps 로 통신을 하여 사용하였는데, 데이터 손상이라던가의 문제점은 거의 없었습니다. 그런데 이번에
115200bps 를 사용해야 할 일이 생겨 mg2455측 펌웨어도 115200으로 통신하도록 변경하고, 프로그램상에서도 115200으로 /dev/ttyS0를
연결하도록 수정하고 테스트 하였는데, 데이터가 거의 확인 불가능할 정도로 손상이 됩니다. (잘 들어올때도 있는듯 하나, 거의 깨지는것에 가깝습니다.)
보드 내부 셋팅(예를 들어 cpu register라던가... kernel의 uart driver 쪽)의 문제가 아닐까 생각은 됩니다.
그렇게 생각하는 근거는 mg2455가 지원하는 두개채널의 serial port로 동일한 데이터를 보내게 하고, 보드내부에서 데이터를 확인하고, 외부 PC (노트북)에서
데이터를 확인한결과, 보드상에서 들어오는 데이터들만 손상되는것으로 확인이 되었습니다.
현 상황에서 이 문제점을 어떻게 해결해 가야할지 잘 몰라서 고수님들의 도움을 부탁드립니다.
혹시 이런문제를 겪어보신 분(속도를 높게 설정했을 때 문제가 발생)들의 도움을 받고 싶습니다. 제가 부족하다 보니 혼자서 해결이 힘드네요.
도움 부탁드립니다.
긴 글 읽어주셔서 감사합니다.

항상 행복한 일들만 가득하시길 바랍니다.^^

serial 통신 속도 변경에 따른 데이터 손상 현상 | 답장: 3개(RSS) | 본문에 답장
정렬 :  

답장 boggle70 (2009년 02월 08일 오후 01:48)
115200 정도는 직접 연결된 단거리 상에서는 그렇게 손실이 많지 않습니다
양쪽에서 N81 로 맞추었는데도 그렇다면 하드웨어도 확인해보세요
드라이버칩도 그렇고 보우레이트 쪽도 확실히 계산해서 맞추어주어야 합니다
꼭 스코프로 주기계산을 확실히 해 보시길...
[ 이글에 답장 | 본문에 답장 ]

답장 min090 (2009년 02월 09일 오전 10:12)
윗분 말슴대로 통신속도 문제구요, clock 분주비에따라 속도가 정확치 않을경우
통신하는 양쪽모두 N82(2 stop bit)로 설정해주시면 오차가 조금더 보상이 됨니다.

'QnA' 카테고리의 다른 글

16C554 칩(4CH UART) 포팅 관련질문입니다.  (0) 2009.07.16
level shifter??  (0) 2009.07.16
Hardware flow control Vs. Software flow contorl  (0) 2009.07.06
[Q/A] nCS, nOE, nWE ?  (0) 2009.07.06
close-on-exec ??  (0) 2009.07.06

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,