디지털 시스템 설계 - UART 설계
- 최초 등록일
- 2009.09.01
- 최종 저작일
- 2008.11
- 1페이지/ 압축파일
- 가격 4,000원
소개글
디지털 시스템 설계를 수강하면서 작성한 보고서 입니다.
Universal Asynchronous Receiver/Transmitter를 하드웨어로 설계하는 과제에 대한 보고서 입니다.
수많은 그림과 설명이 포함되어 있습니다.
총 30페이지의 방대한 양의 보고서입니다.
설계에 대한 보고서가 필요하신분, UART에 대하여 궁금하신 분 등 모두에게 큰 도움이 될 것입니다.
Source code는 보고서와 같이 첨부되어 있습니다.
목차
1. Problem Statement and Design Specification
2. Test Plan
3. Results
4. Discussion
5. Source code
본문내용
1. Problem Statement and Design Specification
Universal Asynchronous Receiver/Transmitter 는 직렬 통신 포트와 병렬 통신 포트를 연결해 주는 integrated circuit이다. 이 UART는 크게 Receiver, Transmitter, 그리고 Baud Rate Generator로 나뉘어져 있다. 이번 프로젝트는 이 UART를 위에서 제시한 Receiver, Transmitter, 그리고 Baud Rate Generator 로 partitioning을 해서 구현하는 것이다. 아래 그림은 UART의 설계도이다.
.
UART의 spec을 알기 전에 먼저 각 sub-module의 specification을 알아 보도록 하자.
Transmitter
TDRE와 Ld가 1일 때 Data BUS에 있는 값을 TDR에 불러들인다
동시에 TDRE를 0으로 만든다
TDR에 있는 값을 TSR로 불러들이고 TDRE를 1로 만든다
Transmission의 시작을 알리는 bit와 parity bit까지 총 10개의 bit를 각각BRG로 만들어진 clock의 주기 만큼의 pulse로 TxD로 보낸다
최종적으로 모든 bit를 보냈을 때는 1을 보내야 한다
Receiver
RxD가 0이 되는 시점부터 data를 받아들이기 시작한다
Bclk보다 주기가 8배 빠른 clock을 사용한다, 이도 BRG에서 만든다
받아들이는 bit는 RSR에 저장한다
첫 번째 bit인 0을 제외하고 9개의 bit를 받으면 전송이 끝난다
RDRF가 0이고 transmission이 끝난 후 RxD에 오는 값이 1이면 RSR에 저장된 값을 RDR로 옮긴다
이 때, RDRF가 1일 경우는 OEflag를, transmission이 끝난 후에도 RxD에서 들어오는 값이 0일 경우 FEflag를 1로 만든다
RSR에 저장된 값의 parity와 실제 계산해서 만든 parity의 값이 다르면 RDR의 각 register에 0을 넣는다
BRG
System Clock의 주파수를 1/13으로 낮춰준다
이 낮춘 주파수의 clock을 다시 21에서 28중 하나의 수로 낮춰준다
이 주파수를 갖는 clock이 Bclkx8이 된다
Bclkx8의 주파수를 또 다시 1/8로 낮춰준다
이 주파수를 갖는 clock이 Bclk이 된다
참고 자료
없음
압축파일 내 파일목록
b_rate.txt
bclk_gen.v
comp_uart.v
tb_bclk_gen.v
tb_comp_uart.v
tb_UART_RxD.v
tb_UART_TxD.v
UART_RxD.v
UART_TxD.v
Project_1_UART.doc