FPGA를 이용한 OFDM 모뎀 구현
닫기
  • 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
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

FPGA를 이용한 OFDM 모뎀 구현에 대한 보고서 자료입니다.

목차

1. 서론
1.1 연구목적
1.1.1 동기
1.1.2 졸업작품 진행도
1.2 기존연구
1.2.1 OFDM 이론
1.2.2 HDL(Hardware Description Language)
1.2.3 FPGA를 이용한 설계 흐름

2. 본론
2.1 Xilinx ML310 Board Specification
2.1.1 ML310 Board
2.1.1 Virtex2pro
2.2 Ethernet MAC 연구
2.2.1 Ethernet MAC 원리
2.2.2 Ethernet MAC 스케메틱 및 핀배치
2.3 OFDM MODEM 구현
2.3.1 OFDM MODEM의 원리
2.3.2 OFDM MODEM 구현
2.3.2.1 Mapper & Demapper
2.3.2.2 IFFT & FFT
2.4 UART 구현
2.4.1 FPGA UART 구현
2.4.1.1 UART 송신부
2.4.1.2 UART 수신부
2.4.2 PC 파트 OFDM Client 구현
2.4.2.1 MFC 소개
2.4.2.2 MFC를 이용한 시리얼통신
2.4.2.3 OFDM Client 구현

3. 결과
3.1 OFDM 블록의 MATLAB 시뮬레이션
3.2 OFDM MODEM의 HDL 시뮬레이션 및 합성
3.3 UART 송수신기의 HDL 시뮬레이션 및 합성
3.4 PC 파트 OFDM Client 송수신 동작 결과
3.5 FPGA 보드 Implementation

4. 결론

5. 참고문헌
5.1 HDL 참고문헌
5.2 FPGA 참고문헌
5.3 EthernetMAC 참고문헌
5.4 OFDM 이론 참고문헌
5.5 OFDM MODEM 참고문헌
5.6 UART 참고문헌
5.7 MFC 참고문헌

6. 졸업작품 후기

7. 부록 - 소스코드
7.1 OFDM MODEM
7.1.1 UART BaudGen
7.1.2 UART 송신부
7.1.3 UART 수신부
7.1.4 QPSK Mapper
7.1.5 QPSK Demapper
7.1.6 FFT/IFFT
7.2 OFDM Client

본문내용

();
void ComStart();
CSCom();
virtual ~CSCom();
DCB dcb;
OVERLAPPED osRead;
OVERLAPPED osWrite;
COMMTIMEOUTS CommTimeOuts;
HANDLE idCom;
};
#endif // !defined(AFX_SCOM_H__5A71548F_CE4C_11D4_A6B3_00E09833FB7C__INCLUDED_)
// SCom.cpp: implementation of the CSCom class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OFDM.h"
#include "SCom.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSCom::CSCom()
{
}
CSCom::~CSCom()
{
}
void CSCom::ComStart()
{
if((idCom = CreateFile("COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL)) != (HANDLE)-1)
{
SetCommMask(idCom, EV_RXCHAR);
SetupComm(idCom,4096,4096);
PurgeComm(idCom,PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
CommTimeOuts.ReadIntervalTimeout = 5000;//0xFFFFFFFF;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 5000;
SetCommTimeouts(idCom, &CommTimeOuts);
}
GetCommState(idCom,&dcb);
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = EVENPARITY;
dcb.StopBits = ONESTOPBIT;
if(SetCommState(idCom,&dcb) != TRUE)
AfxMessageBox(_T("Error : Set COM4 State"));
////////////////////////////////////////////////////
osRead.Offset = 0;
osRead.OffsetHigh = 0;
//--> Read 이벤트 생성에 실패..
if ( !(osRead.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL)) )
{
AfxMessageBox("!(osRead.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL))");
// return FALSE;
}
osWrite.Offset = 0;
osWrite.OffsetHigh = 0;
//--> Write 이벤트 생성에 실패..
if (! (osWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL)))
{
AfxMessageBox("! (osWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL))");
// return FALSE;
}
///////////////////////////////////////////////
}
void CSCom::ComEnd()
{
if(idCom != NULL)
{
PurgeComm(idCom,PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
if(CloseHandle(idCom) != TRUE)
{
AfxMessageBox(_T("Error : Close COM Port"));
return;
}
}
}
void CSCom::WriteCmd(CString write_str)
{
DWORD nToWrite , dwWrite;
char imsi ;
imsi = 0x0d ;
nToWrite = write_str.GetLength()+1 ;
write_str = write_str + imsi ;
WriteFile(idCom,write_str,nToWrite,&dwWrite,&osWrite);
}
CString CSCom::ReadCmd()
{
DWORD dwRead, dwErrorFlags;
DWORD nToRead = 1;
BYTE pBuff[40], pBuff1[40];
int BufIndex;
COMSTAT comstat;
memset(&pBuff,'\0',40);
BufIndex = 0;
do
{
ClearCommError(idCom, &dwErrorFlags, &comstat);
dwRead = comstat.cbInQue;
if(dwRead >= 1)
{
ReadFile(idCom,pBuff1,nToRead,&nToRead,&osRead);
pBuff[BufIndex++] = pBuff1[0];
}
}while(pBuff1[0] != 0x0d);
CString RtnMsg;
RtnMsg = pBuff;
// int str_su ;
// str_su = RtnMsg.GetLength();
// RtnMsg = RtnMsg.Left(str_su-1);
return RtnMsg;
}

키워드

OFDM,   MODEM,   통신시스템,   VLSI,   VHDL,   이동통신,   ISE,   vertex
  • 가격10,000
  • 페이지수77페이지
  • 등록일2006.06.01
  • 저작시기2005.10
  • 파일형식한글(hwp)
  • 자료번호#352576
본 자료는 최근 2주간 다운받은 회원이 없습니다.
  • 편집
  • 내용
  • 가격
청소해
다운로드 장바구니