본문 바로가기

IT관련/s3c6410

s3c6410을 이용한 binary cdma 연동




















ㅎㅎ 제 생업(?)에 관련된 글은 정말 오랫만에 쓰네요. 요새 짬이 좀 나서..이것 저것 써보려합니다. ㅋㅋ

KETI(전자부품연구원)에서 WIFI의 대항마로 개발한 binary cdma (바이너리 CDMA : 이하 bcdma) 라는 기술이 있는데요.
이름은 CDMA가 들어가는데 실제 개인사용자들이 전화를 걸때 쓰는 방식인 CDMA와는 좀 무관한 뭐 그런 통신방식입니다.
보내야할 데이터를 이진 부호화 한 다음 TDMA에 실어서 data를 보내는 방식을 사용하는 통신 방식이죠.
(제 생각엔 이름이 binary TDMA가 맞지 않을까 싶네요 ㅋㅋㅋ)
초기에 connection 부분은 CSMA/CA 방식을 사용하여 체결을 하고,
이후 data 전송은 할당 받은 슬롯에 해당 data를 실어서 보내는 방식을 사용하고 있습니다.

출처 http://www.dbguide.net/knowledge.db?cmd=view&boardUid=126708&boardConfigUid=20&boardStep=0



차세대 무선 통신이라고 강조하면서 수많은 중소기업에 광을 팔아왔는데..
실제로 구현한 회사들의 스펙을 보면 wifi에 비해 전송효율 및 속도 면에서 많이 떨어지는것이 현실입니다.
(특정 회사에서는 수 Km도 보낼수 있다고는 하는데..뻥 뚤린 개활지에서 출력을 높이고 안테나 감도를 조절하면 wifi도 그렇게 잘 됩니다 -_-) 

국산기술을 활성화하기위해 ARIA를 삽입한 무선 네트워크의 개발을 정부에서 정책적으로 밀어주고 있고,
해당 작업을 하려는 중소기업이 몇몇 있는 것으로 알고 있습니다. (chip spec에 보면 AES를 지원한다고는 나와 있으나, 어떻게 access를 하는지 등의 문서는 없네요. 실제로  AES가 사용가능한지는 의문입니다.)

bcdma 관련 asic 기술을 가지고 있는 회사는 카써와 전자부품연구원에서 개발하고, 대우전자부품에서 생산한 Koinonia 정도로 알고 있는데요. 카써는 주로 음성관련 전송기술에 사용되 왔고,코이노니아는 영상전송용으로 주로 마케팅을 하고 있는것 같더군요.
카써 버전은 사용해 보지 못해서 이렇다 저렇다 말은 못하겠는데..코이노니아 버전은 유저친화도(?)면이나..
기술지원면에 있어서 그다지 좋은 선택은 아니었습니다. (하지만 현재 시장에 나와있는게 코이노니아 밖에 없는 관계로 bcdma를 하려면 어쩔수 없이 쓰긴 써야합니다 ^^)

여기까지 바이너리 CDMA에 대한 기술적요약(?)이었구요. ㅋㅋ
사설이 길었는데, s3c6410에 koinonia를 붙이는 방법을 설명해 드리겠습니다. (그다지 어렵지 않아요 ^^)

우선 회로적인 연결을 보면

어드레스 / data 부분만 보세요 아래부분은 귀찮아서 ㅋㅋ



16 bit 억세스를 하므로 6410의 어드레스 1번부터.. Xm0Addr[1]번 부터 Koinonia의 0번 어드레스와 연결합니다.
쭉 연결하다보면 어처구니 없는 문제가 생기는데요..6410은 최대 19개까지의 address line을 지원하는데, BCDMA 칩인 koinonia는 address line이 무려 23개가 필요합니다. (ASIC 설계 하시는분이 쓸데 없이 메모리맵을 널널하게 잡은 삽질의 부산물이 아닐지 추측됩니다.) 일반적인 CPU의 address line으로만은 연결이 안되고, 작은 FPGA를 써서 하던지..아니면 GPIO를 ADDRESS라인으로 잡아서 회로상으로 연결해주고, driver에서 해당 어드레스로 억세스할경우에는 GPIO를 on/off 하는 방식의 수동어드레싱 방식을 사용해야합니다.
(위의 그림에서는 GPIO K 부분을 OUTPUT 모드로 잡고, BCDMA의 어드레스와 쭉 연결했습니다.)
하드웨어를 설계하시는 분에게는 CPU 선정시 골머리가 썩고, 드라이버 개발하는 사람의 입장으로는 심히 극한의 짜증이 몰려 올 수 밖에 없는 그런 구조입니다 ㅋㅋㅋ
그래도 어쨋든 비교적 구하기 쉬운 삼성CPU를 사용해서 붙일 수 있다는데에 의의를 둬야겠습니다 ㅋㅋ

또한가지..칩 데이터 시트 어디에도 안나와 있는..코이노니아의 비기(秘記)가 있는데요.
해당 칩은 host interface 로 억세스를 하는데 사용하는 chip select가 2개가 있습니다.
처음에는 용도를 몰라 상당히 골치가 아팠었는데..그냥 두개의 chip select를 묶어서  6410쪽의 CS 하나에 연결해주면 됩니다.
(나중에 알고보니, low/hi 용 CS라는데 무슨 용도인지 궁금하기도 하고, 유저친화적이지 못한 설계구나라는 생각이 들더군요)

회로적인것은 이정도면 대충 알아서 붙어요~ ㅎㅎㅎ
드라이버 부분은 또 시간이 나면 잠시 언급해드리도록 하겠습니다.
슝~





 

'IT관련 > s3c6410' 카테고리의 다른 글

s3c6410을 이용한 binary cdma 연동 #2  (6) 2011.06.15