통신시스템 DMB 수신보드 제어 및 통신 최종설계보고서
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 서 론2.

2. T-DMB 이론 ··················

3. DMB 수신보드 및 PC 연결 구성 ······

4. ARM 프로세서의 General Purpose I/O pin ···········

5. BaseBand 칩 제어 ·····················

6. Tuner 칩 제어 ···············

7. BaseBand 칩과의 통신 ·············

8. T-DMB 수신을 위한 칩셋 제어 ··········

9. FIC 데이터 구조 및 분석 ··············

10. 결론 및 고찰 ···················

본문내용

DATA[SER_COM_SIZE], Copy_Size) ;
}
break ;
case 2: //FIG0/2=================
while( Copy_Size != 0 ) {
if(P_D == 0) {
NUM_OF_SER_COM = FIG_DATA[2] & 0x0F ;
SER_COM_SIZE = 3 + (NUM_OF_SER_COM * 2) ;
}
else if(P_D == 1) {
NUM_OF_SER_COM = FIG_DATA[4] & 0x0F ;
SER_COM_SIZE = 5 + (NUM_OF_SER_COM * 2) ;
}
Copy_Size -= SER_COM_SIZE ;
FIG_TYPE0_EXT2_SAVE_FUN(FIG_DATA, FIG_EXTENSION, P_D, SER_COM_SIZE) ;memcpy(FIG_DATA, &FIG_DATA[SER_COM_SIZE], Copy_Size) ;
}
break ;
default:
break ;
}
}
void FIG_TYPE1_FUN(INT8U * FIG_DATA, INT8U FIG_EXTENSION, INT8U LENGTH) {
INT32S i = 0 ;
printf("\nData field : ") ;
for(i = 0; i < LENGTH ;i++) {
printf("%02x ", FIG_DATA[i]) ;
}
printf("\n") ;
switch(FIG_EXTENSION) {
case 0: //FIG1/0=================
FIG_TYPE1_EXT0_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
case 1: //FIG1/1=================
FIG_TYPE1_EXT1_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
case 2: //FIG1/2=================
FIG_TYPE1_EXT2_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
case 3: //FIG1/3=================
FIG_TYPE1_EXT3_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
case 4: //FIG1/4=================
FIG_TYPE1_EXT4_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
case 5: //FIG1/5=================
FIG_TYPE1_EXT5_SAVE_FUN (FIG_DATA, FIG_EXTENSION, LENGTH) ;
break ;
default:
break ;
}
}
void FIG_TYPE5_FUN(INT8U * FIG_DATA, INT8U FIG_EXTENSION, INT8U LENGTH) {
INT32S i = 0;
printf(" Data field : ") ;
for(i = 0; i < LENGTH; i++) {
printf("%02x ", FIG_DATA[i]) ;
}
printf("\n") ;
}
void FIG_TYPE6_FUN(INT8U * FIG_DATA, INT8U FIG_EXTENSION, INT8U LENGTH) {
INT32S i = 0;
printf(" Data field : ") ;
for(i = 0; i < LENGTH; i++) {
printf("%02x ", FIG_DATA[i]) ;
}
printf("\n") ;
}
[소스 28]
[소스 28]에서 main()함수는 크게 두 개의 for 문으로 이루어져 있다. 첫 번째 for문은 파일로부터 일정 크기(30byte)만큼 읽어 들이는 것을 반복한다. 두 번째 for문은 파일로부터 읽어 들인 데이터(FIB : 30Byte)에 포함될 수 있는 FIG의 경우의 수만큼 반복하면서 하나의 FIB에 포함되는 모든 FIG를 분석한다.
두 번째 for 문은 if ~ else문으로 다시 구성된다. 이 if ~ else 문은 읽어 들인 데이터(FIB : 30Byte)가 Padding 인지 아닌지를 구분한다. 만약 읽어 들인 하나의 FIB가 ①Padding이 아닌 경우 FIG TYPE과 FIG LENGTH를 구하게 되고 ②Padding인 경우 하나의 FIB분석이 완료된다. ①의 경우는 FIG LENGTH가 ‘0’보다 큰지 확인하는 if 문으로 다시 구성되고 이 if문은 FIG TYPE을 구분하기 위한 switch 문으로 구성된다.
switch 문의 각 case 문은 각 FIG TYPE을 분석하기 위한 EXTENSION 등의 파라미터를 구하고 해당하는 FIG TYPE 분석함수나 저장함수를 호출한다.
이렇게 switch문까지 실행하면 하나의 FIG 분석이 완료된다. Switch 문 다음에 있는 if ~ else 문은 하나의 FIB에 포함된 하나의 FIG 분석이 끝나고 FIB의 분석이 완료되었는가를 검토하는 부분이다. 만약 이 if ~ else 문에서 ③조건을 만족할 경우 (하나의 FIB에 하나의 FIG 만이 포함되어 있을 경우) 하나의 FIB 분석이 완료된다. ④조건을 만족하지 않을 경우 (하나의 FIB에 여러 개의 FIG가 포함되어 있을 경우) 다음 FIG 데이터를 분석하기 위해 FIB 데이터에서 분석을 마친 FIG를 제외하고 FIB 데이터를 새로 저장한다.
switch문에서 호출되는 FIG_TYPE0_FUN(), FIG_TYPE1-FUN() 등의 함수들은 각 FIG TYPE에 따른 Data Field를 출력하는 함수이다.
10. 결론 및 고찰
처음에 DMB에 대한 기본 지식이 없어서 조원 모두에게 힘든 점이 많았다. 매번 실습을 통해 공부 하였지만 어려운 부분이 많아 잘 풀리지 않는 부분도 있었다. 하지만 실습시간에 조교의 도움을 통해 많이 배우고 실습을 무사히 끝낼 수가 있었다. 처음 시작에 비해 마무리 단계에 오니 DMB에 대한 이해도가 한층 높아졌고 프로젝트를 통해 새로운 지식을 알게 되어 모든 조원에게 좋은 경험이 되었다.

키워드

  • 가격3,000
  • 페이지수71페이지
  • 등록일2010.01.25
  • 저작시기2008.1
  • 파일형식한글(hwp)
  • 자료번호#577565
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니