1. 개요
Bulk-Only Transport (줄여서 BOT)는 UMS(USB Mass Storage)의 Class가 SD카드, USB 메모리, 외장 저장장치에 대해서 컴퓨터가 이것을 임의의 블록 저장 장치(Block Device)로 인식하고 이를 읽고 쓸 수 있게 해주는 표준 프로토콜이다. 현대에는 대부분 BOT규격을 표준으로 사용한다. 이후 차세대는 UAS[1]가 권장된다.2. 벌크 엔드포인트
USB Mass Storage는 고속 데이터 전송 전용인 Bulk Endpoint(In/Out) 2개를 사용하며, 모든 통신은 아래 3단계 패킷 구조로 진행하게 된다.| CBW (Command Block Wrapper - 31바이트) | PC(Host)가 MCU로 명령(SCSI Command Block)과 전송할 데이터 길이를 담아 보냄. |
| DATA Phase (데이터 전송 단계) | (Read 명령일 때) MCU가 NAND에서 데이터를 읽어 Bulk-IN 엔드포인트로 PC에 쏨. (Write 명령일 때) PC가 Bulk-OUT 엔드포인트로 쏜 데이터를 MCU가 받아서 플래시 메모리에 쏨. |
| CSW (Command Status Wrapper - 13바이트) | MCU가 PC에게 "방금 명령 실패 없이 잘 끝났다(0x00)" 또는 "에러 났다(0x01)"고 결과 리포트를 날림. |
2.1. BBB
이러한 Bulk Endpoint의 구현으로 인해서 Bulk-in/Bulk-out/Bulk-only라는 의미의 BBB약자가 BOT의 별칭으로 사용된다.Bulk-Only Transport라는 용어 자체는 USB-IF(USB Implementers Forum)가 1999년에 발표한 USB Mass Storage Class Specification 규격 문서에서 공식 정의된 명칭이다. USB 통신 엔드포인트 타입 중 하나인 'Bulk Transfer(대용량 전송)' 파이프만을 사용하여 통신한다는 의미이기 때문에, 기술 명칭으로서의 BBB/BOT는 명확히 USB 표준을 가리킨다.
3. 관련문서
[1] UAS (USB Attached SCSI Protocol)는 기존 USB Mass Storage 방식의 성능 한계를 극복하기 위해 만들어진 차세대 USB 저장장치 통신 프로토콜이다.