비트뱅잉
Bit banging이 글은 검증을 위해 인용구가 추가로 필요하다. – 뉴스 · · · 학자 · (2014년 7월) (이 를 |
컴퓨터 공학과 전기 공학에서 비트 뱅킹은 전송된 신호나 수신된 신호를 처리하기 위해 전용 하드웨어의 대체물로 소프트웨어를 사용하는 모든 데이터 전송 방법의 속어다.소프트웨어는 GPIO 상태(예: 마이크로컨트롤러의 핀)를 직접 설정 및 샘플링하며, 신호의 모든 타이밍 요건과 프로토콜 시퀀싱의 충족을 담당한다.비트 뱅킹과 대조적으로 전용 하드웨어(예: UART, SPI 인터페이스)는 이러한 요구사항을 충족하며, 필요한 경우 소프트웨어 타이밍 요구사항을 완화할 수 있는 데이터 버퍼(data buffer)를 제공한다.비트 뱅킹은 매우 낮은 비용으로 구현될 수 있으며 임베디드 시스템에서 일반적으로 사용된다.[1]
비트 뱅킹은 하드웨어 변경을 최소화하거나 전혀 하지 않고 기기가 다른 프로토콜을 구현할 수 있도록 한다.어떤 경우에, 비트 뱅킹은 표준 통신 프로토콜이 만들어졌을 때 보다 최근의 하드웨어가 훨씬 더 빨리 작동하기 때문에 더 새롭고 더 빠른 프로세서에 의해 실현 가능하다.
C 코드 예제
다음의 C 언어 코드 예는 SPI 버스로 데이터 바이트를 전송한다.
// 바이트를 직렬로 전송, MSB 먼저 공허하게 하다 send_8bit_bit_data(서명이 없는 마를 뜨다 자료) { 인트로 i; // 디바이스 선택(활성 로우) output_low(SD_CS); // 비트 7을 전송한다.0 을 위해 (i = 0; i < 8; i++) { // 맨 왼쪽 비트 고려 // 비트가 1, 비트가 0이면 로우 라인 설정 만일 (자료 & 0x80) output_high(SD_DI); 다른 output_low(SD_DI); // 클럭 상태를 펄스하여 비트 값을 읽어야 함을 나타냄 output_low(SD_CLK); 지연시키다(); output_high(SD_CLK); // 바이트를 왼쪽으로 이동하여 다음 비트가 가장 왼쪽이 되도록 함 자료 <<= 1; } // 장치 선택 취소 output_high(SD_CS); }
고려 사항.
비트 뱅킹을 배치할 것인가 말 것인가 하는 문제는 한편으로는 로드, 성능, 신뢰성 사이의 절충과 다른 한편으로는 하드웨어 대안의 가용성이다.소프트웨어 에뮬레이션 프로세스는 전용 하드웨어를 지원하는 것보다 더 많은 처리 능력을 소비한다.마이크로컨트롤러는 핀으로 샘플을 송수신하는 데 많은 시간을 할애하며 다른 작업을 희생한다.생성된 신호는 일반적으로 지터 또는 글리치가 더 많으며, 특히 프로세서가 통신 중에 다른 작업을 실행하는 경우 더욱 그러하다.단, 비트 뱅킹 소프트웨어가 신호에 의해 인터럽트 구동되는 경우, 특히 RTS, CTS 또는 DCD와 같은 제어 신호를 사용할 수 있는 경우 이는 중요하지 않을 수 있다.소프트웨어의 구현은 특정 하드웨어 지원을 이용할 수 없거나 더 비싼 마이크로컨트롤러를 필요로 할 때 해결책이 될 수 있다.
참고 항목
- 비트 조작
- 비트 스트림
- 비트 트위들러(동음이의)
- 비트-시리얼 아키텍처
- 1비트 아키텍처
- 고속 로더
- 통합 워즈 머신(IWM)
- FTDI, 일련의 USB-직렬 컨버터 칩도 비트 뱅 모드를 지원한다.
- 2MGUI(Ciricao Garciaa de Celis가 비트뱅잉을 활용하여 비표준 대용량 플로피 디스크 포맷을 지원하는 DOS 드라이버, 일반적인 플로피 컨트롤러 로직을 "통과"하며, 아미가 플로피스의 유사한 프로그램은 빈센트 조깅의 디스크2이다.FDI)
- 가상 머신(VM) (실제 하드웨어 컨트롤러를 에뮬레이션하는 가상 디바이스 드라이버를 구현하는 경우 비트 뱅킹과 유사한 프로그래밍 기법을 사용하는 경우가 있음)
- SDR(소프트웨어 정의 라디오)
- 폴링(컴퓨터 과학)
참조
- ^ Predko, Michael (2000). Programming and customizing PICmicro microcontrollers (2nd ed.). McGraw-Hill Professional. pp. 10–12. ISBN 978-0-07-136172-9.
외부 링크
- 비동기 시리얼(RS-232)
- I²C 버스
- SPI 버스