hw 시간
○ 직렬 통신
하나의 데이터선을 통해 한 번에 한 비트를 전송하는 통신 방식.
한번에 한비트씩 통신함으로 속도가 느리지만 인프라 구축 시 비용이 적게 든다.
마이크로 프로세서와 컴퓨터 외부장치가 통신할 때 주로 사용.
양단 간 통신 거리가 먼 경우에 사용
ex) PC의 COM Port, USB(Universal Serial Bus), IEEE1394, PCI Express
// IEEE1394: 영상 분야에서 많이 사용
○ 병렬 통신
한 번의 많은 정보를 전달하는 방식이다.
대량의 정보를 빠른 시간에 전송하다보니 속도가 빠르다는 장점이 있으나 인프라 구축 시 비용이 많이 든다는 단점이 있다.
마이크로 프로세서와 컴퓨터 내에 주변 장치간의 통신에 주로 사용된다.
ex) HDD
○ 직렬 통신의 전송 방식에 따른 구분
* 동기식(Synchronous)
마스터(master)에서 슬레이브(slave)쪽으로 특정 신호를 이용.
그 신호에 맞춰 데이터를 송수신하는 방식이다.
데이터 속도가 빠르나 clock 신호 선이 필요하다는 단점이 있다.
* 비동기식(Asyncronous)
데이터를 보낼 때 특정 약속에 따라 데이터를 송수신하는 방식.
○ 전송 방향에 따른 구분
* 단 방향 통신
한 방향으로만 데이터를 전송하는 방식 ex)라디오, TV
* 반 이중 통신
양방향 데이터 송수신이 가능하지만 한 쪽이 송신일 때 다른 방향은 반드시 수신인 형태를 취한다. ex) 무전기, 모뎀
* 전 이중 통신
양쪽이 자유롭게 송수신이 가능하게 데이터를 전송하는 방식. ex) 전화기
○ USART(Universal Asyncronous Receiver and Transmitter)
* 범용 비동기식 Serial 통신 controller
* 비동기식 serial 통신에 필요한 제어 신호를 생성
// 한 때 유행했던 PC통신(모뎀)을 가능하게 한 장치
장치 관리자 모드에 통신 포트(com1)이 보인다.
통신 포트를 클릭하고 포트설정 탭을 클릭하면 설정을 제어할 수가 있다.
ATmega 전송 규칙을 그림으로 나타낸 것.
* 패리티 비트로 비트수를 검사하는 이유.
ex) 믹서기 돌릴 때 TV화면 줄이 나온다.
고주파 모터 동작 => 통신선로에 노이즈
* 정지비트
-흐름제어 : 잘 사용 안함
(RTS, CTS 이용해서 )
○USART 구조
-BAUD RATE GERNERATOR - OSC로 제어
○ POLLING
-다른 일 수행중 데이터 들어오면 데이터 읽는 처리 하기 전 데이터 사라질 수 있음
○ INTERRUPT 방식 권장
- UDRn에 데이터 들어오면 인터럽트 발생
○ 실습
MCU => PC
-SWITCH 4개 사용
-KEY 1 => PC로 A전송
-KEY 2 => PC로 B전송
-KEY 3 => PC로 C전송
-KEY 4 => PC로 D전송
PC->MCU
=POLLING 방식 예제(P801)
=INTERRUPT 방식 예제(P811)
SW.
visual studio에서 메모리 주소 보안 옵션을 끄고 메인 함수의 주소를 추출
메모리 주소 보완 옵션 끄는 명령어 - cl a.c /link /DYNAMICBASE:NO
○ DYNAMICBASE:NO 명령어에 대한 설명 입니다.
로드할 때 Windows Vist의 ASLR(Address Space Layout Randomization) 기능을 사용하여 임의로 기준 주소를 지정할 수 있는 실행 가능 이미지를 생성할지 여부를 지정합니다.
/DYNAMICBASE[:NO]
○만약 함수가 함수를 return 값으로 반환할 경우 함수의 인자를 어떻게 나타내 주어야 할까?
Q) return 값이 printf 함수인 smart함수를 만들어 보자.
? smart(void)
{
return printf;
}
?에 int를 넣고 컴파일을 하고 warning message를 살펴보자.
printf의 함수 원형을 확인할 수가 있다.
int (__cdecl *)(const char *,...)
--cdecl삭제.
int (*)(const char *,...) smart(void)
해당 형태에서 smart(void)를 (*)에 *우측에 삽입한다.
int (* smart(void))(const char *,...)
컴파일 하면 잘됨.
편집후기
hw시간 : 어느 정도 가르치고 알아서 하라는 식. 모르면 하나하나 씩 모두 질문해야 됨.
sw시간: 가르쳐 주는데 뭔가가 빨리 지나가는 느낌. 다 못알아 듯는 게 머리 아픔.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150429-33번-홍준모 - <hardware>데이터 수신(usart), <software>파일과 스트림, 그리고 기본적인 파일의 입출력 (11) | 2015.04.29 |
---|---|
다들 아시는 거일지 몰라도... (프티 아무것도 입력 안해서 연결 끈김 방지?) (6) | 2015.04.29 |
2015-04-28 32번 천정호 (5) | 2015.04.29 |
20150427-31번-차윤도 USART, 함수포인터 (13) | 2015.04.28 |
ODIY 한국과학창의재단_YouTube (3) | 2015.04.24 |
20150423-29번-주보건 PC PWM,Void *, Hexaview 프로그램, vi 편집기의 기본 명령어 (6) | 2015.04.24 |
20150422-27번-임현수 CTCmode Compare Match Interrupt, 함수포인터, vi 연습 (7) | 2015.04.23 |
20150421-26번-임병열 LED제어 및 배열포인터와 삼바구축 (7) | 2015.04.21 |