데이터 통신(직렬,병렬)의 종류-RS232,RS422,RS485
기본적인 시리얼 통신 장비의 block diagram 을 보면 PC등에서 나오는 병렬 신호를 직렬 신호로 바꿔주는 UART가 존재하게 된다. 여기서 나오는 직렬 신호는 TTL 레벨 값을 갖기 때문에 노이즈에 약하고 통신거리에 제약을 받게 된다. 이를 극복하기 위해 Drive IC를 사용하며 이를 통하여 통신 방식이 구분되게 된다. 각각의 통신 방식은 고유의 특성이 있으며 통신환경에 맞게 선택하여 적용하게 된다.
EAI에 의해 전기적인 사양이 규정 되어 있음
EIA에 의해 물리적인 코넥터 및 핀에 대한 사양은 규정되어 있지 않음
RS485에서는 'Non-Echo Mode'와 'Echo Mode' 두 가지 mode통신 방식
Half Duplex
1.2km통신 거리
Connector 사양
Multi-Drop(RS422)
RS232방식에 비해 RS422 과 RS485 통신의 큰 차이점은 통신거리 및 노이즈에 강하다는 것이다. 이에 부가적으로 RS422 및 RS485 통신 방식은 멀티드롭이라는 기능을 지원하는데 이것은 한번에 여러 대의 장비와 동시 통신이 가능하게 만들어 주는 것이다.
Multi-Drop(RS485)
Echo Mode
-수신단은 항상 ON 상태
-송신단은 데이터 전송시만 ON
-TXD데이터가 RXD로 Loop Back됨(Echo)
-네트워크 상의 데이터 Callision 개폐
-Callision 발생 시 랜덤 Wait 후 재 송신
Non Echo Mode
-송신단과 수신단은 항상 반대로 개폐
송신 ON-수신 OFF, 송신 OFF-수신 ON
-TXD데이터가 RXD로 Loop Back 되지 않음(Non Echo)
-네트워크사으이 데이터 Callision 개폐 불가
-수신단으로부터 ACK를 받음으로
종단 저항과 Isolation
Termination
종단저항을 붙이는 목적은
네트워크 상에서 신호를 흡수함으로써 다시 반향 되지 않도록 함.
RS422/485 네트워크에서는 버스 양단에 120오옴 저항을 붙여 줌
opto isolation
물리적으로 절연되게 하는 소자로 구성하여 절연간에 빛으로 신호를 전달
1 WIN API
공부 순서
1. Win32 + c++
2. MFC 기초 책 이름: MFC 구조와 원리 / 한빛 미디어
3. MFC 숙달: MFC 예제 / 한빛 미디어
카메라 드라이버 설치
첫번째 예제
1.1 첫번째 예제 실행해 보기
VB 실행
파일/새로 만들기/프로젝트 실행
프로젝트 이름 입력: 20140903
다음 클릭
First.ccp 예제 파일을 메모장에서 열어서 main.c에 붙여 넣기
단축키 ctrl+F5 디버그 않고 시작하기 -> First.exe 아래 실행 파일 실행
Main.c 함수 설명
단어 찿기 단축키: 해당단어 클릭 후 F12 누름. 해당 단어를 찿아줌
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //WndProc 함수 HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("안녕하세요"); //창 제목
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) //함수 본진 윈도우는 Winmain으로 시작 { HWND hWnd; MSG Message; WNDCLASS WndClass; // WndClass구초체 : 창의 모양을 좌우 g_hInst=hInstance;
WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCursor=LoadCursor(NULL,IDC_WAIT); //책p50 참조 마우스 모양 설정 WndClass.hIcon=LoadIcon(NULL,IDI_ASTERISK); //책P51 참조 창 타이틀 맨 왼쪽 아이콘 설정 WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName=lpszClass; WndClass.lpszMenuName=NULL; WndClass.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstance,NULL); ShowWindow(hWnd,nCmdShow);
while (GetMessage(&Message,NULL,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return (int)Message.wParam; }
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) //함수 본진 { switch (iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } |
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014.09.15 출석번호 5번 김상엽 -업무일지 수정 (8) | 2014.09.15 |
---|---|
2014.09.12 업무일지] 김대희 (10) | 2014.09.12 |
[2014.09.11 업무일지] 고한솔 (9) | 2014.09.11 |
2014.09.04. 업무보고서 출석번호22 허수웅 (6) | 2014.09.05 |
일일보고서 09.01 [20. 이경진] (7) | 2014.09.01 |
일일교육보고 2014.08.27 (출석번호 18번 오영주) (7) | 2014.08.28 |
2014.08.26 교육보고 - 오두환 (15) | 2014.08.26 |
20140825 업무일지 양태영 [16번] (10) | 2014.08.26 |