USB- Universal Serial Bus רקע היסטורי מהירויות עבודה: LS FS HS USB לעומת RS232 . מבנה פיזי: הדקי הקו, זיהוי התקן מבנה הנתונים: העברה טרנזקציה חבילה תהליכי אתחול ו Enumeration סוגי drivers קרדיט: המצגת מבוססת על הספר תכן התקני USB2.0 מאת ד"ר גל בן-דוד
USB- רקע היסטורי 1995 – גרסה ראשונה 1.0 1998- גרסה 1.1 נתמכת Win 95 . LS=Low Speed- 1.5 Mbps FS=Full Speed- 12 Mbps 2000- גרסה 2.0 High speed-480 Mbps היום- גרסה 3.0
USB- לעומת RS232 USB מהיר יותר, מתאים לעבודה של מחשב מול מס' רב של התקנים על BUS אחד. מחברים מהירים. RS232 תקשורת מנקודה לנקודה. USB – מבנה שכבתי עד לרמת היישום, כולל מנגנוני תיקון וניהול. מצריך מערכת הפעלה במחשב. RS232 – רמה פיזית בלבד .
USB סוגי התקנים 2 סוגי התקנים פריפריאלים: HUB ו Function Host Root Hub Keyboard Disk HUB Speaker Printer
USB ניהול הספק ניהול הספק Power Management: אספקה עצמית אספקה דרך הקו : Vbus≥4.35V 100mA , (500mA after negotiation) 500uA in suspend mode מצב השעיה. ניתוק אספקה בתקלה.
USB מבנה פיזי שיטת קידוד: NRZI עם bit stuffing קו בן 4 תילים: מס' פין צבע תיל שם האות הסבר 1 אדום Vbus מתח נומינלי 5V 2 לבן D- סיגנל (מינוס) 3 ירוק D+ סיגנל (פלוס) 4 שחור Ground אדמה
USB מחברים בצד המחשב מחבר נקבה סוג A בצד ההתקן סוג B סוגי מחברים משמאל לימין: Micro-B plug, ExtUSB plug (HTC proprietary variant), Mini-B plug (5-pin), Standard-A receptacle, Standard-A plug, Standard-B plug. בעת חיבור התקן הדקי המתח מתחברים לפני הדקי הנתונים
זיהוי התקן device בצד ה host (מחשב) או ה hub יש 2 נגדי pull-down . כאשר ההתקן לא מחובר אז DP=DM= 0V . בצד ההתקן יש נגד pull-up ולכן DP=3.3V ו DM=0V. כאשר ההתקן מתחבר השינוי במתח מזוהה במחשב. המחשב מאלץ 0V ב DP DM לפרק זמן קצר 10msec לצורך reset . המחשב שולח להתקן כתובת ברירת מחדל 0. ובהמשך Enumeration 3.3V 1.5 Kohms HOST DP 15 Kohms DP DM DM 15 Kohms ב LS הנגד מחובר ל DM ב FS הנגד מחובר ל DP Device
זיהוי LS FS FS LS Name D- D+ SEO L K J Diff0 H Diff1 לא חוקי ה HOST מזהה את מהירות ההתקן ( DEVICE ) ע"י זיהוי מצבי המוליכים ע"פ הטבלה להלן: מצב נתק נקרא SEO Signal ended o מצב IDLE נקרא J State. מצב הפוך נקרא K State המחשב בודק את מצב האותות: מצב Diff 1 מצביע על התקן FS מצב Diff 0 מצביע על התקן LS. FS LS Name D- D+ SEO L K J Diff0 H Diff1 לא חוקי
USB טופולוגיה לכל התקן מוקצית כתובת ייחודית לו. רמה פיזית רמה לוגית Dok @: 3 HOST Hub @: 2 Root Hub @: 1 Mouse @: 4 Keyboard @: 6 IP phone @: 5 USB cable רמה לוגית Root Hub @: 1 A driver has no information on the topology of the physical network HOST Hub @: 2 HUB Driver Dok @: 3 Mouse @: 4 IP phone @: 5 MSD Driver Audio Driver HID Driver Keyboard @: 6 Logical link
Pipes צינורות PIPE הוא קשר לוגי בין נקודת הקצה בהתקן לבין המחשב Hub Mouse Disk On Key Control Transfer Bulk IN Transfer Bulk OUT Transfer Ep0 Ep1 Ep2 Device Address 3 Iso IN Transfer Iso OUT Transfer Interrupt IN Transfer Ep3 Device Address 4 IP Phone Device Address 5 Device Address 2 Host Logical Pipe נקודת קצה endpoint מתייחסת לקבוצת אוגרים נפרדת בהתקן שמקבלת כתובת נפרדת. התקני FS : עד 30 נקודות קצה התקני LS מוגבלים ל 2 נקודות קצה
צינורות במסגרת לכל התקן יש מס' נקודות קצה endpoints - EPs. כל נקודת קצה מקושרת דרך צינור לוגי עם המחשב HOST כל צינור לוגי logical pipe מאופיין ע"י: מס' ההתקן מס' נקודת הקצה סוג העברה transfer מסגרת FRAME היא פרק זמן של 1msec שבו מועברות חבילות בצינורות בין המחשב לבין נקודות הקצה. חלוקת הזמן בין ה Epנעשית לפי סדר עדיפויות ביניהם. A 1ms USB Frame SOF @6EP1 @5EP0 @6EP2
מבנה של העברה Transfer Transfer Device Control Bulk Iso Int Device address Handles Offers Control Bulk Iso Int Pipe/Endpoint Endpoint number Endpoint type 2+ 1+ 1+ 1+ Transaction Token pkt Data pkt Handshake pkt
סוגי העברה סוגי העברה: Control: configuration/command/status type communication Bulk: large amounts of data at highly variable times Isochronous: constant-rate, error tolerant transfers Interrupt: send or receive data infrequently but with bounded service periods
מאפיינים של טרנזקציה Transaction סוגים: IN OUT SETUP Host based token polling תקשורת בין המחשב להתקן Half Duplex חסינותHandshake : CRC protection מו"מ לקביעת רוחב פס והשהייה. ניהול בקרת זרימה בחוצצים של ההתקן ההתקן לא שולח פסיקות.
טרנזקציות בהעברה העברה transfer מורכבת מטרנזקציה אחת או יותר לדוגמא: דוגמא להעברה מסוג bulk וטרנזקציה אחת: Setup Stage Data Stage Status Stage
מבנה של טרנזקציה (1) טרנזקציה מורכבת מ 3 מנות/חבילות packets . Token – אסימון המכיל כתובת התקן, מס' נקודת קצה, וסוג העברה. Data – נתונים Handshake – אישור קבלת המנות. Token Data Transfer Handshake
מבנה של טרנזקציה (2) Endpoint Address Device Address PID Host Token Data Device Handshake
טרזקציות במסגרת כל העברה נעשית במסגרת בחלון זמן של 1 msec . המחשב שולח מנה Start Of Frame (SOF) Packet בראשית כל מסגרת. הטרנזקציות מרובבות במסגרת אחת או יותר. SOF @5 @3 @6 SOF @5 @6 @6 SOF @5 @2 SOF Time A 1ms USB Frame
חבילת SOF מסגרת הזמן של 1msec מחולקת בין ההתקנים החבילה הפותחת: SOF-Start Of Frame חבילת SOF שמשודרת במסגרות רק להתקני FS כל חבילה מכילה מס' סידורי החבילה ללא כתובת ספציפית חבילת SOF
הקצאת זמן במסגרת ה host מקצה קטע זמן קבוע לכל העברה מסוג Isochronous ו Interrupt . ה host מקצה קטע זמן להעברה מסוג Control . יתרת הזמן מוקצית להעברה מסוג Bulk . ה host רשאי לסרב לבקשה של התקן להעביר כמות גדולה של נתונים בהעברה מסוג isochronous התקן כזה אמור להציע תצורות נוספות. Variable width Valible width Fixed width Control transfers Iso + Interrupt transfer Bulk transfer
העברת בקרה Control transfer The device is not ready… The device does not acknowledge the transaction The host retries… The device has Acknowledged the transaction
רוחב פס- Bandwidth תיאורטית- עד 1216 bytes למסגרת לנקודת קצה מעשית- עד 950 bytes 1ms frame
תרחישי Handshake מהות התרחיש מענה ההתקן תקלה הדורשת התערבות משתמש STALL ה Token- נתקבל בצורה שגויה (PID או CRC ) לא עונה פנייה להתקן בזמן שאין לו נתונים לשידור NAK
Enumeration תהליך הקצאת כתובת ותצורה ההתקן מחובר ל HUB או למחשב. המחשב מזהה אביזר חדש המחשב ממתין ומבצע RESET המחשב מבצע קריאה ראשונה של Device Descriptor המחשב מעניק כתובת ייחודית להתקן המחשב מבצע קריאה שנייה של Device Descriptor המחשב מבצע קריאות נוספות על מנת ללמוד על ההתקן המחשב בודק האם הוא יכול לשרת ההתקן טעינת Driver ה- Driver מפעיל את ההתקן
מיספור Enumeration תהליך הקצאת הכתובת וקביעת התצורה בהתקן Host Hub Device Attached Powered Default Addressed Configured Connect Cable Status Change Query Change Port Enable Reset Device Get Device Descriptor via default Pipe and Address Assign a Unique Address Read all Configuration Information Configure and Assign Configuration Value
מאפייני ההתקן Descriptors נתונים בהודעות מיוחדות שמאפשרות ל host ללמוד על ההתקן. סוגי Descriptors : Device descriptors Configuration descriptors Interface descriptors Endpoint descriptors
USB class drivers הסטנדרט מסווג את הדרייברים במערכת ההפעלה WIN או LINUX לפי סוגי התקנים: Audio (רמקולים....) HID ( מקלדת, עכבר ) Mass Storage ( DOK ) Printer Smart Card CCID Communication Data
רכיבי ה driver בהתקן ה Device descriptor משמש לבחירת ה driver ב host USB Device driver API Power Management Attach/ Detach Processing Status & Control Control Protocol Standard Requests Class Requests Vendor Requests Endpoint Data Transfer Protocols Bulk In/Out Isochronous In/Out Interrupt In/Out Pull-Up Resistor Clock Registers USB Controller Registers Endpoint FIFO Registers ה Device descriptor משמש לבחירת ה driver ב host
FX2 56-pin Package Simplified Block Diagram EZ-USB FX2 רכיב חומרה התומך בפרוטוקול USB ממיר פס טורי USB לבין פס מקבילי. קצב Full Speed (12 Mbits/sec) and High Speed (480 Mbits/sec) FX2 56-pin Package Simplified Block Diagram