==========================================================================================

네트워크 

==========================================================================================

<네트워크>


=Internet : Inter Network


1. 방위 고등 연구 계획국(DARPA , Defense Advanced ResearchProjects Agency) - 국가기관 (투자자)


2. AT&T                                                                        -회사

   Bell 연구소(Bell사) => Unix 기반 NETWORK 테스트


3. 버클리대학                                                                  -대학

   *버클리대학 ( UNIX -국가망(바이러스X) ) - LINUX - MAC - WINDOWS(바이러스)

   

=> 1 / 2 / 3 모여 규약(protocol - 악수..) 문서로( -> 국제규약(IEEE / ISO)) 작성 => TEST(ALPHA NET)


**(천궁 - 크루즈(날개 / GPS / 카메라 / 레이더 / CPU - 가미가제)

(발사체(용접),이삿짐센터 이동- 해상 테스트))**


=> TEST 망 => ALPHA NET => 다른기관 참가 => 망이 확대/복잡 => INTERnational NETwork


- IP ( Internet Protocal ) - IP ADDRESS

*(국가망:PN(Private Network) (인터넷망) (금융망) -> 분리


*VPN( A(암호화) -> (복호화)A )


-규약 하나라도 다르면 - GATEWAY가 패킷 폐기


=네트워크 형태

1. STAR( 방 형성(내부 GATEWAY))(내부GATEWAY + 내부GATEWAY ... => 외부 GATEWAY) => 각 건물 => 각 동

        =>전화국(고가-빠름)


*(광케이블 자르는 것 정확히 - 기계 셋팅)


-감쇄 (쉴드/그물 로 싼다- 신호 보호/ 잡음 제거)


-랜선등급(category)-5e...(숫자 낮으면 속도 낮음)(공유기확인 / 랜선확인)


=LAN: Local Area Network - 근거리 네트워크


=LAN의 종류(통신방법)

1. ETHERNET PROTOCOL

.

.

.


=WAN : Wide Area Network => LAN + LAN ...

=Internet : WAN + WAN

-GATEWAY (공유기) : 번호 (보통) X.X.X.1


=BROADCAST : 방송 : 번호 X.X.X.255 (PROTOCOL)(네트워크 장치들끼리 ..)


=1:1




<C>


=TYPEDEF 선언


#include <stdio.h>

typedef int INT;
typedef int * PTR_INT;

typedef unsigned int UINT;
typedef unsigned int * PTR_UINT;

typedef unsigned char UCHAR;
typedef unsigned char * PTR_UCHAR;

int main()
{
  INT num1 
= 120;    // int num1 = 120;
  PTR_INT pnum1 = &num1;   // int * pnum1 = &num1;

  UINT num2 = 190;  // unsigned int num2 = 190;
  PTR_UINT pnum2 = &num1; // unsigned int * pnum2 = &num2;

  UCHAR ch = 'Z';    // unsigned char ch = 'Z';
  PTR_UCHAR pch = &ch;   // unsigned char * pch = &ch;

  printf("%d, %u, %c \n", *pnum1, pnum2, *pch);
  
return 0;
  
}





=구조체의 정의와 TYPEDEF 선언

#include <stdio.h>

struct point
{
  
int xpos;
  
int ypos;
};

typedef struct point Point;

typedef struct person
{
  
char name[20];
  
char phoneNum[20];
  
int age;
}Person;

int main()
{
  Point pos 
= {1020};
  Person man 
= {"이승기""010-1212-0001"21};
  printf(
"xpos : %d , ypos : %d \n", pos.xpos, pos.ypos);
  printf(
"name : %s , phoneNum :  %s , age : %d \n", man.name, man.phoneNum, man.age);
  
return 0;
}






=구조체속 배열 복사 가능 => 프로그래머 입장에서 편리함

-구조체변수 = 구조체변수

-배열변수 = 배열변수 => 주소상수 = 주소상수 => compile error



#include <stdio.h>

typedef struct _person
{
  
char name[20];
  
char phoneNum[20];
  
int age;
}person;

int main()
{
  person arr 
= {"한지수""010-1717-0003"19};  // 초기화
  person temp;

  printf(
"%s %s %d \n", arr.name, arr.phoneNum, arr.age);
  temp 
= arr; // cf - 배열이름 = 배열이름 사용 못함 => 구조체 속 배열은 복사 가능
  printf("%s %s %d \n", temp.name, temp.phoneNum, temp.age);
  
return 0;
}




-비교

#include <stdio.h>

typedef struct _person
{
  
char name[20];
  
char phoneNum[20];
  
int age;
}person;

int main()
{
  person arr 
= {"한지수""010-1717-0003"19};  // 초기화
  person temp;
  person temp2;

  printf(
"%s %s %d \n", arr.name, arr.phoneNum, arr.age);
  temp 
= arr; // cf - 배열이름 = 배열이름 사용 못함 => 구조체 속 배열은 복사 가능
  printf("%s %s %d \n", temp.name, temp.phoneNum, temp.age);

  strcpy(temp2.name, arr.name);
  strcpy(temp2.phoneNum, arr.phoneNum);
  temp2.age 
= arr.age;
  printf(
"%s %s %d \n", temp2.name, temp2.phoneNum, temp2.age);

  
return 0;
}







=컴파일러(32bit)와 구조체 관계

(장시간 통신 - 구조체 사용시 size 계산 주의)


-보통 변수 선언 => 변수 선언 순서대로 ADDRESS 아래에서부터 할당


-배열/구조체 => ADDRESS 아래에서부터 통째로 할당 => 변수 선언순서대로 위에서부터 할당


-4BYTE > 2BYTE(1BYTE보다 클 경우) > 1BYTE


#include <stdio.h>

typedef struct _smart
{
  
int A;
  
char B;
  
short C;  
  
int D;
  
char E;
  
short F;
  
char G;  
}smart;

int main()
{
  printf(
"%d\n",sizeof(smart));
  
return 0;
}





#include <stdio.h>

typedef struct _smart
{
  
int A;
  
char B;
  
short C;  
  
int D;
  
char E;
  
short F;
  
char G;  
  
int H;
  
char I;
  
char J;
  
short K;
}smart;

int main()
{
  printf(
"%d\n",sizeof(smart));
  
return 0;
}




==========================================================================================

AVR

==========================================================================================

=AVR2560

=INTERRUPT(P131)

-주변장치의 서비스 요청에 CPU가 가장 빠르게 대응 할 수 있는 방법

-비동기적인 일(EVENT, 사건)을 CPU가 빠르게 처리

-주변장치(비교적 저속) - CPU(매우 고속) 사이에서 효율 적으로 일을 수행하느 중요한 수단


=종류

-발생원인 : 외부인터럽트

-반응방식 : 차단 가능 인터럽트

-입출력기기확인방법 : 벡터형 인터럽트 ( 마이크로 콘트롤러 방식 > 범용 마이크로프로세서 방식 )






=(P25)



=인터럽트 우선순위

=인터럽트 처리 과정

1. 인터럽트 요청 신호의 검출

2. 인터럽트 우선순위 제어 및 허용 여부 판단

3. 인터럽트 처리루틴의 시작 번지 확인

4. 복귀조수 및 레지스터를 저장

5. 인터럽트 서비스 루틴을 실행

6. 인터럽트 서비스 루틴을 종료하고 원래의 주프로그램으로 복귀





=INT0 => VECTOR_1


void __vector_1(void__attribute__((signal,used, externally_visible));

void __vector_1(void)

{

        ;

}


#include <avr/interrupt.h>

ISR( INT0_vect)

{


}

int main(void)

{


}


=
















1. SREG 7BIT => 0

2. APORT 출력

3. DPORT 입력

4. EICRA/EICRB/

        EIMSK(SET INT0)

        /EIFR

=

<AVR2560.H>




<INTERRUPT.H>




<INTERRUPT.C>




<MAKEFILE>




=실행



1. RISING EDGE




2. FALLING EDGE




3. RISING + FALLING EDGE




'2015 스마트 콘트롤러 > 업무일지' 카테고리의 다른 글

20150415  (0) 2015.04.15
20150414  (0) 2015.04.14
20150410  (0) 2015.04.10
20150409  (0) 2015.04.09
20150408  (0) 2015.04.08
Posted by ahj333
,