20150504-3번-권오민 (A/D 컨버터 & 파일 입출력&PCAP
요 약 |
H/W |
S/W |
◉A/D 컨버터 ●Atmega2560 A/D 특징 ●ADCSRA ●ADCSRB ●ADMUX ●Source Coding |
◉파일 입출력 ●임의 접근을 위한 ‘파일 위치 지시자’의 이동 ●fseek ●ftell ◉Linux ●pcap ●pcap 선언 |
H/W |
◉A/D 컨버터
- 기본 회로 구성
- Proteus로 설계
●Atmega2560 A/D 특징
- Atmega2560은 16채널 10비트 분해능의 축차비교형 A/D 컨버터를 가지고 있다.
- 10bit : 0~1023까지 표현이 가능하다.
- 분해능 : 0~5V를 1024개로 분해한다.
- bit가 많이 할당 될수록 더욱 유사하다.
- 많이 쪼갤수록 원래의 데이터와 유사해진다.
- 단극성 입력
- 하나만 입력.
- 샘플링 주파수 : 50KHz ~ 1MHz
- 2개가 입력되면 차동입력이라고 한다.
- 샘플링 주파수 : 50KHz ~ 200KHz
- 2개의 레벨차를 이용한다.
- 특성
- 아날로그는 노이즈에 약하다.
●ADCSRA
- 7번 비트 : ADC 인에이블
- 모든 A/D컨버터의 동작을 허용 및 금지시킨다.
- 6번 비트 : 스타트 컨버젼
- 한 번 설정해놓고 수정할 사항 없음.
- 4번 비트
- A/D 인터럽트는 거의 사용하지 않는다.
- 사용할 경우 비교기로 사용한다.
- 3번 비트
- SREG레지스터의 최상위 비트 설정.
- 2~0번 비트
- 분주비를 설정한다.
- 분주비가 클수록 속도가 늦다.
- 32분주
- 16MHz를 32로 나누면 50KHz가 된다.
●ADCSRB
- 아날로그 비교기 비트 보유
- 7, 5, 4번 비트는 사용하지 않음.
- 2~0번 비트(ADTS2~0)
- 트리거를 설정한다.
- 프리러닝 : 트리거에 상관없이 알아서 동작
- 아날로그 비교기 : 아날로그 비교기에 의해서 딱딱 데이터가 끊긴다.
- 외부 인터럽트 0의 입력 변화에 따라서 짤린다.
- 타이머0에 의해서 설정한 출력 이상이 되면 어떤 주기로 변환한다.
●ADMUX
- 7, 6번 비트
- 기준 전압 AVCC를 사용한다. 따라서 01을 사용한다.
●Source Coding
- ADC 관련 코드는 다음과 같다.
S/W |
◉파일 입출력
●임의 접근을 위한 ‘파일 위치 지시자’의 이동
- 파일 위치 지시자
- FILE 구조체의 멤버 중에 파일의 위치 정보를 저장하고 있는 멤버.
- fgets로 파일을 읽게되며 이 멤버가 가리키는 위부터 읽는다.
- 저장된 위치 정보의 갱신을 통해서 데이터를 읽고 쓸 위치 정보가 유지되는 것이다.
- 파일 포인터
- 파일을 읽어도 위치 이동이 가능하지만, 강제로 이동을 시킬 수 있다.
- 임의 접근(Random Access)가 가능하다.
●fseek
- stream으로 전달된 파일 위치 지시자를 wherefrom에서부터 offset바이트만큼 이동시켜라.
●ftell
- 파일 위치 지시자의 위치 정보를 반환한다.
- 첫 번째 바이트를 가리키면 0을 반환한다.
- 세 번째 바이트를 가리키면 2를 반환한다.
◉Linux
●pcap
- 설치 방법
- pcap
- Packet Capture library
- Packet을 잡아내는 라이브러리
- <>으로 include하면 이 곳으로 날아온다.
- 헤더파일을 usr/include에 다 모아둔다.
- 수정은 자제한다.
- 다른 장비에 들고 갈 경우 문제가 발생한다.
●pcap 선언
정리가 깔끔하지 못하고 누락된 부분도 많은듯 합니다.
많은 댓글 부탁 드립니다.