در USB داده ها در بسته های مشخص انتقال می یابند. به هر بسته یک transaction میگوییم. Host با توجه به سرعت انتقال، هر transaction رو به زمان هایی تقسیم میکنه که به هر کدوم یک frame میگیم. تو سرعت های بالا و پایین frame میشه 1ms و سرعتای خیلی بالا فریم میشه 125µs که به آن میکرو فریم میگویند.

Endpoint :

بخش مهمی از هر دستگاه جانبی (نه میزبان) که مبدا و مقصد هر transaction به اون ختم میشه. در واقع رجیستری است که توانایی ذخیره چند بایت را دارد. هر دستگاه مینیمم 1 و ماکزیمم 16 endpoint دارد. Endpoint شماره 0 همیشه به عنوان endpoint کنترلی شناخته میشود.

جهت انتقال اطلاعات از دید میزبان تعیین میشود. یعنی جهت ورودی به سمت میزبان و جهت خروجی به سمت دستگاه جانبی است. برای جلو گیری از تداخل، هر transaction باید دارای آدرس دستگاه مورد نظر و شماره endpoint آن باشد.هر transaction میتواند از نوع ورودی، خروجی یا setup باشد.

اجزاء transaction :

 هر transaction به چند packet تقسیم میشود.

·         Token packet

·         Data packet

·         Hand shake packet

Packet نیز به اجزای کوچکتری به نام field تقسیم میشود.

خواسته میزبان در Token packet است. پس از ارسال data packet میزبان یا دستگاه جانبی وضعیت خودش را توسط hand shake packet میگوید که میتواند ACK, NAK, STALL, NYET or ERR باشد.

انواع packet :

Token packet : میزبان وظیفه فرستادن این packet را دارد، سه نوع است: input, output and setup و حاوی خواسته ای برای دستگاه است.

فیلد PID نوع transaction را مشخص میکند که ورودی، خروجی یا setup است. Sync برای همزمان سازی بین فرستنده و گیرنده، CRC5 برای خطا یابی و EOP نشانه پایان packet است

Sync

PID

Addr

Endpoint

CRC5

EOP

 

همچنین ممکن است SOF (نشانه شروع فریم) باشد.

Sync

PID

Frame number

CRC5

EOP

 

Data packet :

Sync

PID

Data

CRC5

EOP

 

Hand shake packet :

برای اطمینان از اینکه همه ارسال ها درست انجام شده اند:

EOP

PID

Sync

Advertisements