Serial 통신(RS-232) 2 김성환 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.

Slides:



Advertisements
Similar presentations
오류 검출 및 정정  정보 전송시 발생하는 오류 검출 및 정정 코드  오류 검출 : 패리티비트, CRC 코드  오류 검출 및 정정 : 해밍코드  오류 검출 - 패리티비트 (parity bit)  비트 1 의 개수가 짝수 또는 홀수가 되도록 조절  간단한 오류.
Advertisements

멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
VISUAL BASIC 양 계 탁.
데이터형, 변수, 연산자 컴퓨터 응용 및 실습 I.
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 2.1 Hardware Version : 2.0
10장 오류 검출과 오류 정정 (Error Detection and Correction)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 1.1 Hardware Version : 1.0
제 9 장의 구성 9.1 원천부호화 (Source Coding) 9.2 채널부호화 (Channel Coding) 연습문제
제 9 장의 구성 9.1 원천부호화(source coding) 9.2 채널부호화(channel coding)
J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트
4 컴퓨터에서 활용되는 디지털 논리회로 IT CookBook, 컴퓨터 구조와 원리 2.0.
비주얼 베이직 프로그래밍 한성대학교 정보전산학부 강 승 식.
예제로 배우는 Visual Basic 계산기로 익히는 연산자
프로시저 와 인수전달 컴퓨터응용 및 실습 I.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
임베디드 프로그래밍 Lecture #
제 2 장 기본 문법 (1-2) 주제 : 객체, 변수, 모듈, 상수.
전원설비 포인트연결어댑터 교육자료 주식회사 필 트 론.
5장 기본 컨트롤 응용프로그래밍.
Data Communications 제 10 장 오류 제어와 흐름 제어.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
GDK-CIDU GDK 및 LDK-Series에 사용할수 있는 Caller ID박스 ■ 발신자 번호 표시 개요
9.3 데이터컨트롤을 제어하는 프로그램 9.4 DBGrid를 사용하는 프로그램
PLC의 이해와 활용.
학습목표 변수 비주얼 베이직 자료형 변수 선언하기. 학습목표 변수 비주얼 베이직 자료형 변수 선언하기.
5 Part 정보 통신 개론 1. 정보 전송 이론 2. 데이터 전송 제어 3. 통신 회선 공유 4. 데이터 회선망 5.
ADO컨트롤을 이용하여 데이터를 관리하는 방법과 데이터베이스내의 레코드들을 리포트 형식으로 출력하는 디자인 기능을 알아본다.
Visual Basic 연산자.
Computer Architecture
DataScience Lab. 박사과정 김희찬 (월)
RFID Programming (출결관리 프로그램)
6.3 툴바와 이미지 리스트 사용하기.
6.3 툴바와 이미지 리스트 사용하기.
컴퓨터 활용 및 실습 Chapter 3 수식과 함수 김 정 석
osp.chungbuk.ac.kr/2012년 강의자료
3 장 Visual Basic 2010 기본 문법 3.1 변수 3.2 데이터 형식 3.3 연산자 3.4 제어문
직렬 통신(RS-232) 박희재 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.
직렬 통신(RS-232) 김성환 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.
SK증권 API 이용방법 강사: 말과의미(SK증권 방배역지점 정광옥차장) 계좌개설 및 계좌관리, 선물옵션 협의수수료 문의
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
osp.chungbuk.ac.kr/2012년 강의자료
Visual Basic 반복문.
네트워크 보안 3 오 세 종.
3 장 Visual Basic 2010 기본 문법 3.4 제어문 1) 조건문 2) 반복문 3) 기타 제어문
디지털-아날로그 부호화.
6.2 공통 대화상자 사용하기.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
USB Door Lock System 공 민 표 강 정 이 권 경 곤
MA1356T ▶ 제품개요 *. 사용 스마트 카드 : ISO A Type And Mifair 호환 .
DataScience Lab. 박사과정 김희찬 (월)
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
3장. LAN (Local Area Network)
Chapter 03. 네트워크 통신.
논리회로 설계 및 실험 3주차.
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
주제 : 배열, 사용자정의 데이터형, 프로시저와 함수 등..
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
Young-Tae Han 오류 검출과 오류 정정 Young-Tae Han
비주얼 프로그래밍 1분반 화/목.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
9. 데이터베이스 두 개의 테이블 조인해서 보기.
자바 5.0 프로그래밍.
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 6주차 대림대학교 2017년도 1학기 강의 왕보현
Excel 2007을 이용한 통계학 제 2 장 자료의 정리.
01 초등학교 미술과 신•구 교육과정 비교 내용 체계 및 성취 기준의 체계화 구체적인 내용 제시 2009 개정 교육과정
컴퓨터 프로그래밍 언어 Visual Basic 6.0 √ 원리를 알면 VB가 쉽다.
RB-680 사용 설명서 1.프로그램 모드 진입 ① * + 마스터 비밀번호(4자리) + # ② 초기 비밀번호 2416
Presentation transcript:

Serial 통신(RS-232) 2 김성환 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.

목 표 목표 : PC의 주요통신 방식 중 직렬통신에 대하여 살펴보고 VB에서 프로그래밍하는 방법을 학습한다. 주요내용 1. 프로토콜 2. BCC 3. Query & Acknowledge 4. 프로토콜 예제.

Protocol Protocol은 통신의 약속으로서 통신의 신뢰성을 높이고 수신된 데이터에서 유익한 정보를 용이하게 추출할 수 있도록 한다. 송신과 수신단에 프로토콜에 대한 인코딩(encoding)과 디코딩(decoding or Parsing) 부를 가지고 있다. 중요한 것은 통신은 항상 100% 완벽하지 않다는 것을 가정해야 한다는 것이다. 따라서, 통신설계자는 데이터의 신뢰성과 전송속도 등을 고려하여 설계한다. 송신 수신 Happy Happy @ 5 Happy 3D % Encoder Decoder

Protocol 다음은 (x,y) 좌표를 전송하는 Protocol의 예이다. 무기, 공작 기계, 로봇 등에서는 이 데이터에 오류가 발생하면 상상할 수 없을 만큼 큰 피해를 가져올 수 있다. Start Byte, End Byte, BCC 등의 기능을 알아보자. 제어용 컴퓨터 @ + 7 2 1 - BCC Start Byte M X- Cord. Y- Cord. Block Check Code % End Byte Data Command

Block Check Code(BCC) 전송 데이터 블럭 단위 마지막에 몇 바이트 짜리 BCC를 붙여 통신의 신뢰성을 높인다. 가장 완벽한 것은 같은 데이터를 여러 번 보내서 그 중에서 하나라도 차이점이 있으면 다시 보내는 것이다. 하지만 중복으로 데이터를 보내는 것은 통신량이 증가되므로 BCC를 많이 사용한다. 다음은 주로 많이 사용하는 BCC를 열거하였다. Exclusive OR : 모든 데이터를 bitwise XOR Check Sum : 모든 데이터의 산술합 CRC (Cyclic Redundancy Check) LRC (Longitudinal Redundancy Check) Hamming Code : 에러복구 코드 Data BCC

Query & Acknowledge Query(질문)에 대한 Acknowledge(응답)을 확인함으로써 통신에 대한 신뢰를 높인다. M “Are you ready?” S “Yes!” “1234c678” “Not ok!” “Are you ready?” “Yes!” .

BCC (Exclusive Or) Exclusive Or Public Function bccXor(a As String) As Long ldata = Len(a) bccXor = Asc(Mid(a, 1, 1)) For k = 2 To ldata bccXor = bccXor Xor Asc(Mid(a, k, 1)) Next k End Function

BCC(CRC) CRC (Cyclic Redundancy Code) Public Function crcCompute(a As String) As Long Dim crcReg As Long crcReg = &HFFFF& ldata = Len(a) For k = 1 To ldata crcReg = crcReg Xor Asc(Mid(a, k, 1)) For i = 0 To 7 If (crcReg Mod 2) Then crcReg = (crcReg \ 2) Xor &HA001& Else crcReg = crcReg \ 2 End If Next i Next k crcCompute = crcReg End Function

통신 프로그래밍 예 구성요소에서 MS Comm Control 추가 Form Load Event에서 초기설정 다음 기능을 차례로 구현해 보자. (1) 단순 폴링 통신 (2) On_comm Event 사용. (3) List box에 대화내용 표시 (4) Enter Key 사용 (5) 머리말 구현

주요 설정 Control 의 이름을 MSC로 하자 COM1 포트를 사용함. MSC.CommPort = 1 Baud Rate 9600, No Parity, 8bit, 1 Stop bit MSC.Settings = “9600,n,8,1“ 입력 시 1문자씩 입력 MSC.InputLen = 1 한 개의 데이터가 들어와도 OnComm 이벤트 발생 MSC.RThreshold = 1 이제 포트를 연다. MSC.PortOpen = True

송신 On_ Comm Event 사용 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then MSC.Output = Text2 & Text1 & Chr(13) List1.AddItem Text2 & Text1 Text1 = "" End If End Sub

수신 On_ Comm Event 사용 Private Sub MSC_OnComm() Dim a As String Static st As String If MSC.InBufferCount > 0 Then a = MSC.Input If a <> Chr(13) Then st = st & a Else List1.AddItem st st = "" End If

Protocol 설계 예제 - (1) 동기화 실험 두 컴퓨터의 데이터가 통신으로 동기화 되는 것을 실험한다. 한쪽에서 타이머로 타원의 궤적을 생성하여 송신하고 다른 쪽에서 이를 수신하여 Plot 한다. (2) 수동제어 실험 Shape Control을 이용하여 청색 공을 만들고 수동 커서 버튼으로 두 개의 공을 제어할 수 있도록 한다. 또한, 빨간 공을 만들고 이 공은 다른 컴퓨터에서 오는 데이터에 동기 시키자. x y @ + 7 2 1 - 7 2 1 BCC

화면 구성 채팅을 추가하려면? 화면의 크기를 (-1000,1000)-(1000,-1000) 으로 하자. SendData(x,y) 라는 서브루틴을 만들자. Xor, CRC등 여러 가지 BCC를 비교한다. Start Byte ‘@’의 역할은 ? 통신 중에 코드를 뽑아도 다시 동기화 된다. 채팅을 추가하려면?

송신부(Encoder) Public Sub SendData(X As Long, Y As Long) Dim t As String, temp As String, bcc As Integer t = "@" temp = Right("000" & CStr(Abs(X)), 3) If X >= 0 Then temp = "+" & temp Else temp = "-" & temp t = t & temp temp = Right("000" & CStr(Abs(Y)), 3) If Y >= 0 Then temp = "+" & temp Else temp = "-" & temp bcc = bccXor(t) t = t & Chr(bcc) List1.AddItem t If List1.ListCount > 20 Then List1.RemoveItem 0 End If MSC.Output = t End Sub

수신부(Decoder) Private Sub MSC_OnComm() Dim a As String, bcc As Integer Static R As String If MSC.InBufferCount > 0 Then a = MSC.Input If a = "@" Then f_started = True R = "@" Else If f_started Then R = R & a If Len(R) = 10 Then bcc = bccXor(Left(R, 9)) If bcc = Asc(Right(R, 1)) Then sh2.Left = Val(Mid(R, 2, 4)) sh2.Top = Val(Mid(R, 6, 4)) End If f_started = False End Sub