3-2학기 2009. 1. 22. 15:29

2008년도 2학기에 진행되었던 프로젝트 텀이다.

우리들은 시리얼통신이 가능한 보드를 직접 디자인 & 납땜 으로 개발하고
그 위에서 돌아가는 펌웨어를 작성, 그 펌웨어를 이용하는 리눅스상의 어플리케이션을
작성하여 같은 프로토콜을 갖는 다른조와 통신하는 텀 프로젝트를 진행하였다.

사용된 인터페이스카드는 PCI9030카드, CPU는 ARM7_TDMI(삼성에서 제조된모델이다)
DPRAM에, MAX232모듈을 사용한 RS232통신을 하였다.

리눅스<->PCI9030<->보드<->MAX232<->선<->MAX232<->보드<->PCI9030<->리눅스

위와같은 흐름이다. 물론 중간의 메커니즘은 뺴고 대략적인 흐름만 볼때말이다.

MAX232에서 수신한 바이트 정보는 DPRAM에 저장하고(영역을 구분한다) 전송이 완료되었다고 판단되면 그제서야 그에 대한 인터럽트를 PCI9030에 발생시킨다. 그리고 그 인터럽트 정보를 통해 리눅스에서는 정보를 수신하여 가져오는 것이다. 이러한 구조로 통신을 한 결과는 성공적이었다.


어플리케이션의 경우, 단순한 채팅 + 타자배틀게임 이었고 상대방 조와의 원활한
협조로 인해 순조롭게 잘 진행되었다.

보드의 경우 김태성군이  밤을 새어가며 납땜을 하며 고생을 해주었으나, 잘못구성되어
다시 김태성군이 고생을하여 여러번 고치고 새로 만들어 결국 제대로된 보드를 만들었다.
또한 여학우 임에도 불구하고 한승혜양이 납떔하느라 고생을 조금 한듯하다.

PCI9030카드와의 세팅 및 점검은 김지훈군이 도맡았고, 연결확인 및 점검은 한승혜, 김지훈군이
도맡다 시피했다.

내가맡은 부분은 어셈블리 펌웨어 부분 100%및 C코드로 작성된 펌웨어의 70~80%정도 이다.
초창기에 어셈블리어를 알고있는 조원이 나 하나 뿐이었기에 중 후반부 까지는 거의 혼자 펌웨어 작업을 진행하였다. 도큐먼트 서칭 및 계산은 김지훈 군과 내가 같이 진행하였다.
후반부는 각종 실험외 개인적 문제로 패닉에 빠진 나 대신 김지훈군이 잘 마무리 해주었다.

사용된 리눅스 배포버젼은 우분투 8.10 이고 커널벼전은 모르겠다..
GUI작성을 위해 QT4라이브러리가 사용되었다.
QT어플리케이션 작성은 김태성군이 도맡았고,  패킷정의 및 패킷을 위한 모듈 라이브러리 작성은
내가 일부 작성하여 모듈을 넘겨주었다.


이 실험은 통신 보드를 작성하고, 직접 드라이버레벨을 컨트롤하며 어플리케이션까지 만들어보는
진정한 의미의 첫 임베디드 프로젝트라 할수 있다. 시리얼이 비록 보잘것 없어 보일지 모르나, 그 단순한 작동을 위해 필요한 여러가지 조건들을 깨달을 수있었고 직접 도큐먼트를 보며 구현하며 하나하나 배울수 있었던 좋은경험이라 생각한다.

팀원들간의 조합도 매우 좋고, 상대편 조와의 조합도 매우좋아 협동도 잘되었고 서로 의논도 잘되어 최상의 팀워크를 자랑했다고 생각한다.

아마도 가자힘든점은 롬을 매번 구우러 가야된다라는 사실과, 문제가생기면 이게 하드웨어 설계의 문제인지, 납땜의 문제인지, 펌웨어의 문제인지, 어플리케이션의 문제인지, 아니면 하드웨어자체의 불량인지를 가늠하기가 쉽지 않다라는 점이다.




말끔한(??) 보드 레이아웃 및 작동어플(우리조, 상대조)

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지





<상대방조가(호철이네) 작성한 어플리케이션>
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

posted by Sense.J
: