본문 바로가기
코스웨어/16년 스마트컨트롤러

20160321_조재찬_업무일지_펌웨어(UART)

by 알 수 없는 사용자 2016. 3. 21.
728x90
반응형

함수 호출

  • 프로그래밍(s/w) -> 함수                                 호출
  • 회로(h/w) -> 인터럽트 함수 ISR                        IRQ     INT(인터럽트)
  • 운영체제 os(s/w) -> 콜백 함수(call back)          windows에선 Message         

드라이버 - 각 하드웨어 제조사에서 만듬

운영체제 - 운영 및 조율하는 역할

 

atmega - 펌웨어만 짜놓고 return하면 os가 없기 때문에 안됨

 

 

플랫폼 : 안드로이드

 

리눅스(os) + 안드로이드(플랫폼) 

폰 제조사들이 알아서 한다.

 

에뮬레이터 (플랫폼)  //  Java + JVM(Java Virtual Machine)

 

Java는 임베디드를 타겟으로 만듬, 어플리케이션에 활용

 

 

 

시리얼(직렬)

패러럴(병렬)  

LAN     Local Area Network

WAN    Wide Area Network

 

네트워크 시초는 군사용

 

 

시리얼(직렬) : AVR -> LCD 1bit씩 보냄            1/0/1/1/1/1/0/0

패러럴(병렬) : AVR -> LCD 멀티 bit 를 보냄     10111100         

 

직렬 : 단순, 비용저렴, 속도 느림

병렬 : 복잡, 비용증가, 속도 빠름

 

고속직렬

 Tx

 R

 Rx

 T

 C

 C

 GND

 GND

 VCC

 VCC

 

T 주고 R 받음  (transmit, receive)

C 클럭  

GND 기준전압을 갖게 해주기 위해 무조건 연결

VCC

 

시리얼 방식 대표적인 예 : USB

패러럴 방식 대표적인 예 : BUS

 

 

Atmega2560

 

 

odd(홀수), even(짝수) / parity(점검하다)

 1

 0

 1

 0

 1

 1

 1

 0

 1  (parity bit)

 

선이 길어지면 처음에 출력의 5V가 받는 곳에서는 전압이 불안정해지고 약해질 수 있다. 그러면 노이즈가 생기게 되는데

parity bit는 데이터의 갯수를 체크해서 손실을 점검하게 된다.

 

전이중(Full-Duplex) 통신 : 동시에 양방향 전송이 가능한 방식으로, 전송량이 많고, 전송 매체의 용량이 클 때 사용 (예: 전화)

반이중(Half-Duplex) 통신 : 양방향 전송이 가능하지만 동시에 양쪽 방향에서 전송할 수 없는 방식 (예: 무전기)

 

T,R,G 비동기 (칩에 기본 내장)

 

 

 

 

 

 

C언어 컴파일 명령어

cl /DF_CPU=8000000 main.c

 

http://codepad.org/YjciuvST

 

결과 :

 

 

전압이 높을수록 0과 1을 구별하기 용이하다.

max3232 신호전압을 조정

 

UART

USART(Universal Synchronous and Asynchronous Receive and Transmitter)

 

max3222  120Kbos x 1024=122,880  (최대속도)

TRANSMIT,RECEIVE SHIFT REGISTER  - 1bit씩 밀어냄

BAUD - 폭이 늘어나면 느려지고, 좁아지면 빨라진다.
BAUD RATE GENERATOR


 

 

 

 

 

 

 

 

 

 

 

 

 

USB 직렬통신 실습

 

 






 

 

 

 

 

 

 

 

728x90