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

20150716 - 26번 임현수 ADConverter, ADCompare 서보모터제어, ARM(AT91SAM7S256), TCP헤더 캡처용 패킷애널라이저

by 알 수 없는 사용자 2015. 7. 17.
728x90
반응형
■ 제어 기초


■ ADConverter

아날로그 비교기

적외선 센서 출력값을 전압값으로 비교.
그 전압이 몇볼트이상일경우 문이열리고 몇볼트 이하이면 문이 닫히고......


▲ 위의코드는...

ADC값은 10비트 양의 정수로 표현되므로 0~1023의 범위를 갖는다.
즉 전압값이 0~1023으로 나타난다.

5V를 1024로 나누면
☞ 5v/1024 = 0.0048...

0.0048V은 ADC값 1이다.
 
0.0048에 1FF를 곱하면
☞ 0.0048 * 511(1FF) = 2.495.........

2.495V초과면 문을닫고
2.495V이하이면 문을연다.



■ ADCompare


아날로그 비교기를 사용해서 구현하면 가변저항을 달아서 센서의 인식거리를 조절할 수 있다...


▲ 위의코드는...

ADCompare는 AIN0과 AIN1의 아날로그 입력을 비교해서 
AIN1의 값이 높으면 ACO값이 1로 set되고,
AIN0의 값이 크면 ACO값이 0으로 set된다.

ACO값을 비교해서 자동문을 열고 닫으면 된다.

ACSR의 비트6을 1로 설정하면 AIN0이 기준전압 1.1V로 셋팅되므로 AIN1만 입력으로 사용하면 된다.


■ 시스템 제어


■ ARM(AT91SAM7S256)




■ SAM-BA


내부에 ROM이 있는데 SAM-BA라는 프로그램이 들어있다

펌웨어가 안올라가있을때 ARM에 전원을 넣으면 SAM-BA라는 프로그램이 구동한다.

SAM-BA는 컴퓨터와 통신할 준비(펌웨어를 받을 준비)를한다.

ATMEGA계열과 달리 USB연결만하면 펌웨어를 올릴준비가 된다.
즉 하드웨어가 할 일을 소프트웨어(SAM-BA)로 해줘야한다.


ARM을켜면 플래시가 구동한다.

ARM에 펌웨어를 올리려면 삼바가 플래시에 적재되어있어야한다.
ROM에있는 SAM-BA를 플래시적재한 후
ARM을 재부팅하고
펌웨어를 올리면 SAM-BA위에 덮어쓴다.

관련 프로그램 다운

■ 다운받은 파일들 중 Install_AT91-ISP_v1.12.exe 설치


 ▶ 바탕화면에 아이콘 생성된다.

▶ 안쓰니까 지운다.


■ SAM-BA 올리기

  1. 스위치 다 끈상태에서
  2. TST를 올리면 SAM-BA를 가져오는 회로가 연결
  3. POWER를 위로 올리면 SAM-BA를 플래시에 복사(10초이상)
  4. POWER를 내린다.
  5. TST를 내린다.
  6. POWER를 켜면 삼바가 구동하며 통신준비(장치관리자가 잡는다.)

■ 드라이버 설치 및 SAM-BA 실행

▲ USB를 연결하면 일반모드에서는 Bossa라는 엄한 드라이버가 깔리므로 안전모드에서 설치한다.


▲ 드라이버 설치 성공

▶ 더블클릭

▶ 연결시도 - 드라이버 설치제대로 되었으면 \usb\ARM0 뜬다.

▲ 성공

■ 패킷애널라이저 소스코드 수정

TCP 헤더만을 캡쳐하기위한 패킷애널라이저를 만든다.

▲ tcphdr 구조체
이름이 동일한 두개의 구조체 정의되어있는데, 전처리 조건문으로 둘러쌓여있다.
시스템에 맞는 구조체를 찾아서 사용하면 된다. (우리는 아래것을 사용)

■ tcpcapture.c(패킷애널라이저 소스코드)


▲ 결과


728x90