저자 소개 ... 4 옮긴이의 말 ... 5 들어가며 ... 17 1장 옵션과 선택 ... 23 시리얼 포트 사용 ... 24 장점 ... 25 한계 ... 26 시스템 구성 요소 ... 27 컴퓨터 시스템 ... 27 물리적 연결 ... 30 프로그래밍 ... 30 애플리케이션 ... 32 시스템 구성 사례 ... 33 통신 제어 ... 33 특별한 용도의 모듈 ... 34 2장 통신 포맷과 프로토콜 ... 35 시리얼 데이터 전송 ... 35 비동기 통신과 동기 통신 ... 35 워드 형식 ... 36 비트레이트와 보레이트 ... 38 시스템에서 지원되는 로우레벨 프로토콜 ... 38 비트 전송 ... 39 형식 ... 39 정확한 타이밍의 필요성 ... 40 비트레이트 자동 감지 ... 42 COM 포트 자동 감지 ... 43 데이터 포맷 ... 44 2진 데이터 ... 44 텍스트 데이터 ... 45 아스키 16진수 ... 48 애플리케이션 고유 프로토콜 ... 50 데이터 손실 방지 ... 53 흐름 제어 ... 53 버퍼 ... 55 이벤트 처리와 폴링 방식 프로그래밍 ... 56 응답 신호 ... 57 에러 체크 ... 57 3장 PC용 COM 포트 ... 61 포트 구조 ... 61 장치 관리자 ... 61 포트 리소스 ... 65 시리얼 서버 ... 66 포트 사용 ... 67 드라이버 ... 67 포트 구별 ... 68 COM 포트 GUID ... 69 COM 포트 번호 ... 70 INF 파일 ... 70 애플리케이션 프로그래밍 선택 ... 71 4장 RS-232 구조 ... 73 하드웨어 연결 ... 73 시그널 ... 72 전압 ... 77 타이밍 제한 ... 78 전압 변환 ... 79 인터페이스 칩 ... 81 단거리 통신 회로 ... 85 포트 전력 구동 ... 88 전력 공급용 출력 ... 89 전압 레귤레이팅 ... 90 기타 연결 방법 ... 90 직접 연결 ... 91 기타 언밸런스드 인터페이스 ... 91 5장 RS-232 연결 ... 93 커넥터와 어댑터 ... 93 커넥터 선택 ... 93 어댑터 ... 95 마이크로컨트롤러 개발 보드 활용 ... 99 케이블 ... 100 한계 길이 ... 100 써지 보호 ... 102 신호선 분리 ... 103 분리 방법 ... 103 그라운드 ... 104 전원 그라운드 ... 106 광 분리 ... 108 디버깅 툴 ... 110 브레이크아웃 모듈 ... 110 테스터 ... 111 오실로스코프와 로직 애널라이저 ... 112 6장 RS-485 ... 113 RS-485 표준 ... 113 밸런스드와 언밸런스드 신호 ... 114 전압 요구 사양 ... 118 전류와 전력 ... 120 통신 속도 ... 123 내부 보호회로 ... 124 연결 옵션 ... 125 통신 칩 ... 126 PC용 RS-485 포트 ... 127 3.3/5V 전압 변환 ... 128 RS-232 신호 변환 ... 130 드라이버 활성화 제어 ... 134 드라이버 재활성화 ... 135 소프트웨어를 이용한 제어 ... 136 하드웨어 제어 방식 ... 138 7장 RS-485 통신과 네트워크 설계 ... 145 긴 연결과 짧은 연결 ... 146 긴 연결의 경우 ... 146 선로 길이 계산 ... 150 드라이버 칩 선정 ... 152 라인 터미네이션 ... 153 임피던스 특성 ... 154 터미네이션 추가 ... 155 터미네이션의 효과 ... 157 반사 ... 160 직렬 터미네이터 ... 165 짧은 통신선의 터미네이터 ... 165 AC 터미네이션 ... 166 네트워크 구성 형태 ... 168 신호 바이어싱 ... 171 오픈 회로 보호 ... 171 쇼트 회로 보호 ... 174 케이블 종류 ... 176 케이블이 노이즈를 줄이는 방법 ... 177 트위스트 페어 케이블 ... 178 케이블 선택 ... 178 접지와 차동 신호선 ... 180 공통 접지 유지 ... 180 분리된 신호선 ... 184 다중 버스 이용 ... 187 리피터 추가 ... 187 별 형태 구성 ... 188 8장 무선 연결 ... 191 연결 매체와 변조 방식 ... 191 전송 주파수 ... 192 확산 스펙트럼 기술 ... 193 전송 신뢰성 ... 193 적외선 ... 194 송신과 수신 ... 194 IrDA ... 195 무선 주파수 ... 196 전파 규정 준수 ... 196 주파수 선택 ... 196 연결 구성 ... 198 기타 RF 표준 ... 199 9장 닷넷 SerialPort 클래스 ... 203 포트 사용하기 ... 204 포트 찾기 ... 204 포트 열기 ... 205 타임아웃 ... 209 수신 드레숄드 ... 210 포트 닫기 ... 211 데이터 전송 ... 213 바이트 전송 ... 218 텍스트 전송 ... 221 Stream 객체 사용 ... 229 BinaryReader 클래스와 BinaryWriter ... 229 StreamReader와 StreamWriter 클래스 ... 236 포트 설정 저장 ... 240 애플리케이션 설정 구조 ... 241 콤보박스 예제 ... 242 10장 닷넷을 활용한 포트 제어와 전송 ... 245 데이터 수신 ... 246 타임아웃 설정 ... 246 수신 데이터 감지 ... 247 수신 데이터 모으기 ... 254 효율적인 전송 방법 ... 260 데이터 전송 ... 261 타임아웃 방지 ... 261 애플리케이션 블록킹 없이 전송 ... 262 버퍼 오버플로우 방지 ... 266 효율적인 전송 방법 ... 268 흐름 제어 ... 268 메소드 선택 ... 268 흐름 제어 신호 제어와 감시 ... 269 에러 처리 ... 273 예외 ... 273 ErrorReceived 이벤트 ... 274 수신 데이터 확인 ... 277 애플리케이션 구조 ... 277 ComPort 클래스 정의 ... 278 포트 설정용 콤보박스 ... 281 애플리케이션 고유 이벤트 ... 285 11장 임베디드 시스템용 포트 ... 289 마이크로컨트롤러의 시리얼 포트 ... 290 PIC18F4520 칩 ... 290 Enhanced UART ... 290 레지스터 ... 291 포트 제어와 구동 ... 291 통신 속도 설정 ... 295 인터럽트 ... 299 기본 순서 ... 301 포트 구동 ... 303 포트 설정 ... 304 데이터 전송 ... 306 데이터 수신 ... 308 인터럽트 활용 ... 318 흐름 제어 ... 322 포트 추가 ... 329 여러 개의 온칩 UART 사용 ... 329 펌웨어 UART 사용 ... 329 외장 UART 칩 사용 ... 330 12장 네트워크 프로그래밍 ... 333 전송 관리 ... 333 메시지 전송 순서 ... 334 프로토콜 ... 335 다양한 프로토콜 활용 ... 337 디버깅 팁 ... 338 주소 ... 339 주소 할당 ... 339 주소 감지 ... 340 주소 값 유보 ... 340 메시지 형식 선정 ... 341 9비트 포맷 ... 342 13장 RS-485 네트워크 ... 349 노드 연결 ... 349 트랜시버 ... 349 터미네이팅과 바이어싱 ... 351 케이블 연결 ... 351 프로토콜 연습 ... 351 주소 ... 352 메시지 포맷 ... 352 명령 ... 353 바이트 수신 ... 353 바이트 쓰기 ... 354 노드 폴링 ... 355 드라이버 활성화 신호 설정 ... 356 명령 전송 ... 357 폴링 응답 ... 360 기타 함수 ... 361 수신 데이터 디코딩 ... 374 14장 USB 구조 ... 387 호스트와 디바이스 ... 387 호스트상의 드라이버 설정 ... 388 요구 사양 ... 389 호스트의 역할 ... 389 디바이스의 역할 ... 390 속도 ... 391 엔드포인트 ... 391 USB 전송 ... 392 전송 방식 ... 392 트랜잭션 ... 394 데이터 토글 ... 395 15장 USB 컨트롤러 활용 ... 397 칩의 내부 구조 ... 397 시리얼 인터페이스 칩(TF232R) ... 398 패러렐 인터페이스 칩(FT245R) ... 400 개발용 모듈 ... 401 컨트롤러 이용 ... 402 드라이버 ... 402 제조사 고유 데이터 추가 ... 403 가상 COM 포트 구현 ... 403 RS-232에서 USB로 변환 ... 404 16장 범용 USB 컨트롤러 활용 ... 407 통신 디바이스 클래스 ... 407 표준 문서 ... 408 기본 개념 ... 409 디바이스 컨트롤러 ... 411 호스트 드라이버 ... 411 추상화 제어 모델 사용 ... 412 POTS 모델 ... 412 가상 COM 포트 ... 413 요청 ... 415 통지 ... 417 성능 최대화 ... 419 디스크립터와 INF 파일 ... 420 디바이스 디스크립터 ... 422 설정 디스크립터 ... 422 통신 클래스 인터페이스 디스크립터 ... 427 데이터 클래스 인터페이스 디스크립터 ... 429 문자열 디스크립터 ... 432 INF 파일 ... 432 복합 디바이스 ... 433 찾아보기 ... 442