현재 USB 작동 방식을 연구하고 있습니다. 나는 작은 조각들 - 패킷들로 이루어진 거래가 있음을 읽었다. 모든 종류의 패킷에 대해 읽었습니다.USB - 프로토콜에 대한 의문이 있습니다.
한 가지를 이해할 수 없습니다. 책이 말했듯이 - 모든 거래는 3 패킷 : 토큰, 데이터 및 hanshake으로 구성됩니다.
내 책을 이해하는 방법은 아래 스키마에 나와 있습니다. 제 생각에는
:
나는 첫 번째 트랜잭션은 토큰 및 데이터 패킷을 포함한다고 생각합니다,하지만 hanshake 패킷 (핸드 셰이크 무엇을 위해?).
응답에는 해당 ACK Hanshake 패킷 만 포함되어야합니다 (데이터가 장치에 올바르게 기록됨).
제발, 내가 올바른 방법으로 이해하도록 도와주세요.
감사합니다. 탐.
답변 해 주셔서 감사합니다. :) 내 이해가 정확한지 확인할 수 있습니까? 사실입니다. 장치에 쓰고 싶다면 의사 소통은 다음과 같습니다 (내가 보내려는 데이터 크기가 MaxPacketSize보다 크고 대량 모드로 전송하고 있다고 가정). 1. [pc-> device] OUT 2. [device-> pc] ACK 3. [pc-> 장치] DATA0 4. [장치 -> pc] ACK 5. [pc-> 장치] DATA1 6. [장치 -> pc] ACK 7. [pc-> 장치] DATA0 8. [장치 - pc] ACK 9. [pc-> 장치] DATA1 10. [장치 -> pc] ACK – tomdavies
아니요, 두 번째 패킷을 삭제해야합니다. 데이터가 전송되기 전에 (적어도 최고 속도 장치에 대해 말할 때) 장치가 ACK 패킷을 변경하지 않습니다. 그리고 컴퓨터가 모든 트랜잭션에 대해 OUT 토큰을 보내야한다는 것을 잊고 있으며 OUT 트랜잭션은 하나의 DATA 패킷 만 가질 수 있습니다. 정말로 당신은 제가 대답에서 제공 한 세 가지 예제 거래를보고 그 사본을 만들어야합니다. –
감사합니다. 대단히 감사합니다. 이제 알겠다 :). – tomdavies