atmega128을 이용한 시리얼 통신 기초 제어 프로그램 작성 실험(인하대)
- 최초 등록일
- 2011.12.18
- 최종 저작일
- 2011.10
- 9페이지/
MS 워드
- 가격 1,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
인하대 3학년 2학기 전자회로 실험 레포트 입니다. atmega128칩을 이용하여 제어 프로그램 작성에 관한 내용이며 codevision프로그램을 사용한 제어프로그램 작성입니다. c compiler 를 사용하여 작성되었고요. 실험 모두 성공한 실험 소스입니다.
lab2 시리얼 통신의 기초
실험1) Wizard에서 우리가 설정한 내용이 실제로 어떠한 소스코드가 생성되는지, 그 소스 코드별 역할이 무엇인지 기술하시오
실험2) 여러분들이 키보드에 입력한 내용이 각각 두 번씩 화면에 표시 되는 프로그램을 작성하시오.
(예를들어 키보드 A를 누르면 화면에 AA, B를 누르면 BB가 출력되는 프로그램을 작성하시오. )
(Codevision의 자동코드생성부분은 제외하고 작성할 것)
실험3) 한 자리 숫자만 입력 받되, 각각의 숫자 만큼 화면에 표시되는 프로그램을 작성하시오.
(숫자 1을 입력하면 화면에 1이 한번 표시되고, 2를 입력하면 2가 2번, 3을 입력하면 3이 세 번 화면에 표시되는 프로그램을 작성하시오. )
실험4) 연속되는 문자열을 입력받고, 엔터를 치면 화면에 표시하는 프로그램을 작성하시오. 단 입력하는 동안에도 화면에 입력하는 내용이 표시 되어야 함.
(화면상에 asdunfvkfdsg <엔터>를 입력하면 그 다음줄에 asdunfvkfdsg라고 나타나도록 작성하시오. )
고찰 및 실험 평가
목차
lab2 시리얼 통신의 기초
실험1) Wizard에서 우리가 설정한 내용이 실제로 어떠한 소스코드가 생성되는지, 그 소스 코드별 역할이 무엇인지 기술하시오
실험2) 여러분들이 키보드에 입력한 내용이 각각 두 번씩 화면에 표시 되는 프로그램을 작성하시오.
(예를들어 키보드 A를 누르면 화면에 AA, B를 누르면 BB가 출력되는 프로그램을 작성하시오. )
(Codevision의 자동코드생성부분은 제외하고 작성할 것)
실험3) 한 자리 숫자만 입력 받되, 각각의 숫자 만큼 화면에 표시되는 프로그램을 작성하시오.
(숫자 1을 입력하면 화면에 1이 한번 표시되고, 2를 입력하면 2가 2번, 3을 입력하면 3이 세 번 화면에 표시되는 프로그램을 작성하시오. )
실험4) 연속되는 문자열을 입력받고, 엔터를 치면 화면에 표시하는 프로그램을 작성하시오. 단 입력하는 동안에도 화면에 입력하는 내용이 표시 되어야 함.
(화면상에 asdunfvkfdsg 를 입력하면 그 다음줄에 asdunfvkfdsg라고 나타나도록 작성하시오. )
고찰 및 실험 평가
본문내용
Lab2는 Lab1과 마찬가지로 기초적인 내용으로써 간단한 시리얼통신에 대한 내용을 습득하기 위한 실험이었다. MCU의 USART통신과 컴퓨터의 하이퍼터미널을 이용하여 MCU와 컴퓨터간 시리얼 통신을 하는 방식으로 진행하였는데, 여기서 시리얼 통신이란 직렬통신의 다른 말로 데이터를 1bit씩 송수신하는 통신을 말한다. 비동기 통신 포트를 의미하기도 한다. 시리얼 통신은 쌍방향. 저렴한 통신 케이블과 소형 커넥터를 사용할 수 있다는 장점을 갖고 있다. 또한 어떤 종류의 정보든 교환 가능하며, 간단한 구조. 데이터 전송 시 시작, 정지, 선택 사항인 parity bit를 덧붙일 수 있다는 점도 시리얼 통신의 편리한 점이라 할 수 있다.
우리가 실험에 사용하는 ATMEGA128에서는 RS-232규격을 사용하고 있으며, RS-232에서 사용하는 문자는 ASCII코드이다. 이 ATMEGA128에서는 오류검사를 위해 데이터 바이트 뒤에 패리티 비트를 첨가할 수도 있다. 데이터를 주고 받는 송수신 측에서 데이터를 정확하게 보내고 받기 위해서는 통신속도를 맞춰주어야 하며 보우레이트로 정의된다. 이는 초당 전송비트를 의미하고 2400, 4800, 9600, 19200, 38400, 57600, 11520으로 다양하게 조정할 수 있다.
세 개의 상태 동작 레지스터로부터 인터럽트와 동작모드 결정을 받은 usart모듈은 보우레이트에 맞춰 보우레이트 제너레이터에서 클럭이 결정된다. 이 클럭에 맞춰 RX,TX 쉬프터가 한 개 비트씩 밀어내어 데이터 레지스터에 값을 저장하거나 보내게 되며 데이터 이후에 들어오는 패리티 비트는 패리티 체커로 들어가 오류를 검사하게 된다.
패리티 체커에서 오류가 발생 될 경우 data recovery에서 오류가난 부분을 정정해 주기도 한다. TX로 들어온 데이터는 다시 데이터 버스를 따라 GPR이나(펌웨어의 구성에 따라) 메모리에 저장되게 된다.
모드에 따라 한번에 한 비트가 아닌 2비트씩 송수신하고 정지할 수 있는데, 이는 고속통신에서 용이할 것이라 생각된다.
실험에서는 보우레이트 9600를 사용하였고 패리티비트는 사용하지 않았다. ATMEGA128의 경우 기본내장 플래쉬메모리가 4k가 있으므로 추가적으로 외부에 메모리를 달아주지 않아도 약 500개의 문자를 저장할 수 있다. 물론 프로그램 메모리도 필요하기 때문에 4k를 전부 사용할 수 는 없을 것이다.
참고 자료
없음