'2015/02/16'에 해당되는 글 2건

  1. 2015.02.16 데이터시트의 도면 설계 및 시리얼 통신
  2. 2015.02.16 C언어 복습 및 비트 연산자
Busan IT/제어기초2015. 2. 16. 17:35

제어기초 - 데이터시트의 도면 설계 및 시리얼 통신

 

액츄에이터(Actuator) - 전기 에너지를 역학 에너지로 변환시켜주는 도구.

 

USB to Serial

 

USB로 받은 정보를 RS232로 전달

 

USB -> UART -> RS232

1-------------

2--------------

 

1, 2IC 하나씩 선정

 

module을 구글에서 검색해 보면 정보를 얻을 수 있다.

 

1. FT232R

 

2. Maxim에서 만든 max시리즈(max231)

 

 

해당 데이터 시티를 검색하여 기본 outline에 대한 정보 확인 후 설계하면 된다.

 

Datesheet에 나와 있는 circuit boardOrCad에서 직접 작성해 본다.

 



 

 

UART(Universal Asynchronous Receiver and Transmitter)

 

- 범용 비 동기식 serial

- Atmel 사에서 사용하는 직렬 통신 방법

- 송수신이 동시에 가능한 Full Duplex(전이중) 방식의 통신 모드 지원

- 비동기식 또는 동기식 통신 모드 지원

- 동기식으로 동장하는 Master 또는 Slave mode 지원

- 고 분해능의 Baud Rate 발진기를 내장

- 짝수 또는 홀수 Parity 발생/검사 기능을 Hardware로 지원

- 데이터 오버런/프레임 오류 검출 기능을 내장

- 시작 비트 검출과 디지털 저대역 필터 등과 같은 잡음 제거 기능 내장

 

Line Transceiver

 

Line Transmitter & Receiver

- UART의 출력 신호는 보통 TTL(DC5v) 신호 레벨

- TTL 신호를 입력 받아 노이즈에 강하고 멀리 갈 수 있게 해주는 인터페이스 직접회로를 사용 이를 Line driver/Receiver라고 부른다.

- 대표적인 기기는 RS232C, RS422 RS485

Specification

RS232C

RS423

RS422

RS485

동작 모드

Single-Ended

Single-Ended

Differential

Differential

최대 Driver/Receiver

1 Driver 1 Receiver

1 Driver 10 Receivers

1 Driver 32 Receivers

32 Drivers 32 Receivers

최대 통달거리

15 m

1.2 km

1.2 km

1.2 km

최고 통신속도

20 Kb/s

100 Kb/s

10 Mb/s

10 Mb/s

지원 전송방식

Full Duplex

Full Duplex

Full Duplex

Half Duplex

최대 출력전압

±25V

±6V

-0.25V to +6V

-7V to +12V

최대 입력전압

±15V

±12V

-7V to +7V

-7V to +12V

 

RS232C

- 수신: -3V 이하이면 1, +3V 이상이면 0

- 송신: -12V이하이면 1, +12V 이상이면 1

 

수신이 송신보다 레벨이 높아야 한다.

 





 

 

RS422

- Point To point ModeMulti-Drop mode 두 가지 mode 통신 방식 사용

 

 




 

 

 

RS485

- Non-Echo ModeEcho Mode의 두 가지 모드 통신 방식이다.

- 자신이 방출한 신호를 받을 수 있으면 Echo mode 받지 못하면 Non-Echo mode이다.

- 반이중통신 ex) 무전기



 

반응형
Posted by newind2000
Busan IT/제어언어2015. 2. 16. 13:45

C언어 복습 및 비트 연산자

 

#1. 관계연산자

 

학습목표 - 관계연산자에 결과 값을 이해할 수 있다.

 

관계연산자

 

연산자의 결과는 참(1) 아니면 거짓(0)이다.

 

ex) 1<3 -> 1

 

대입 연산자의 결과는 그 결과 자체이다.

 

ex) A=3 -> A 이고 결론적으로는 3을 뜻한다.

 

모든 연산은 결과를 필요로 한다.

 

-> 논리 연산자는 값이 나와야 하고 비교 연산자는 참 거짓이 나오야 한다.

 

p/64, 66 예제 실습

 



#2. 콤마 연산자/예약어/진법

 

학습목표 - 콤마 연산자/예약어/진법에 대해서 이해하고 활용할 수 있다.

 

p/67 콤마 연산자(,)

 

p/67 예제)

 



 

한꺼번에 변수를 사용할 때 콤마(,)를 사용할 수 있다.

//위와 같이 변수를 선언할 수 있지만 가독성이 좋지 않음으로 따로 변수를 선언하는 것이 //.

 

콤마(,)는 여러 줄에 있는 것들을 합하여 줄 때 사용한다.

 

[ p/69, 03-5 연산자와 우선순위와 결합방향 ]

 

연산 시 한 줄에 여러 가지 연산기호를 쓰지 마라. 가독성이 떨어진다. 굳이 써야 한다면 괄호를 써서 먼저 연산해야 하는 값을 표시해 준다.

// 외울 필요 없이 헷갈리면 둥근 괄호로 묶어줘라.

// 지금까지 배우지 않은 연산자가 있으나 후에 언급할 것이다.

 

같은 서열에 있는 연산자는 결합방향에 따라서 연산을 해준다.

 

입력 연산자에서는 다른 것은 넣지 않고 표현 형식과 저장위치만 입력한다.

 

p/75 예약어

 

해당 페이지에 나온 명령어들은 변수명으로 쓸 수 없다.

// 'main‘ 예약어가 아니다. entry point이다.

 

 

진법은 한자리에서 가장 큰 수가 무엇인가를 따지는 것이다.

 

ex) 16진수 F(진법 -1 까지의 수가 표현)

 

//이진수는 C compiler에서 지원하지 않는다.

#3. 실수의 표현

 

학습목표 - 실수의 표현 방법을 이해한다.

 

8진수를 입력하려면 0으로 시작하여 숫자를 넣어주면 된다.

ex) int num3 = 012

 

16진수를 입력하려면 0x로 시작하여 숫자를 넣어주면 된다.

ex) int num2 = 0xA

 

정수와 실수의 표현방식

 

가장 왼쪽에 부호를 적어서 수를 표현하는 방식을 magnitude방식이라고 한다.

 

실습 - float의 저장형태 이해)

 

float의 저장될 수(0.125)를 직접 메모리에 넣어보자.

 



 

 

#4. &, &&, shift 연산자(비트 연산자)

 

학습목표 - 각 비트 연산의 값의 도출과정을 이해할 수 있다.

 

p/91, 예제

 




double로 할 경우 오차가 없어지는 것이 아니라 보이지 않는 자리에 오차가 생길 뿐이다.

 

1&2 -> and 연산자

 

&iNum -> 주소 연산자

 

3&iNum -> and 연산자

 

// 연산 순서가 헷갈릴 경우 ()를 써서 우선순위를 지정해주자.

&&는 논리연산자로써 좌 우항을 덩어리(참 혹은 거짓)로 계산한다.

 

&의 경우 좌 우측에 있는 숫자를 이진수로 바꾼 후 자리로 비교하여 참과 거짓을 판단한다.

 

실습 - &연산자와 &&연산자의 구분)

 



1 1 1 1

& 1 0 0 1

----------

1 0 0 1

 

그러므로 결과 값은 9가 나온다.

 

//비트 연산자는 후에 칩에 코딩할 때 많이 쓰임으로 잘 알아둘 필요가 있다.

 

“^”XOR 연산을 한다. 다르면 1 같으면 0이 나오는 연산자이다.

 

ex) 10 ^ 7

 

1 0 1 0

^ 0 1 1 1

---------

1 1 0 1

 

"~"은 틸드 연산자라 부르고 이진수가 뒤집어져 버리는 결과가 나온다.

 

ex) ~1 = -2

Shift 연산(<<, >>)

 

>>는 오른쪽으로 다 한 칸씩 옮겨지고 빈칸은 양수일 때 0으로 채워진다.

 

ex) iNum >> 1 iNum을 오른쪽으로 1씩 한 칸씩 민다는 뜻이다.

 

! signed - 부호에서는 빈자리가 1로 채워진다.

 

<<는 왼쪽으로 다 한 칸씩 옮겨지고 빈칸은 무조건 0으로 채워진다.

 

 

 

반응형
Posted by newind2000