Serial Communication
Transcription
Serial Communication
תקשורת סריאלית מגיש :דביר דדון מנחה :ד"ר מרטין לנד תקשורת סריאלית • הגדרה :תקשרות סריאלית ,בין שני משתמשי קצה אשר המידע בינהם עובר באופן טורי. סריאלית = סדרתי/טורי • בתקשורת סריאלית אנו מעבירים מידע באופן סדרתי ,כלומר המידע עובר ביט אחר ביט (כאשר רק סיבית אחת תעבור ברגע מסוים). • ההפך מתקשורת סיריאלית היא תקשורת מקבילית. • בתקשורת מקבילית מספר סיביות יעברו בבת אחת ממחשב למחשב. דוגמא לתקשורת סריאלית לדוגמא :מעוניינים להעביר מילה 10011101בתקשורת סריאלית (טורית) בין שני מחשבים. דוגמא לתקשורת מקבילית לדוגמא :מעוניינים להעביר מילה 10011101בתקשורת מקבילית בין שני מחשבים. תקשורת סריאלית • תקשורת סריאלית ,יתרונות: • • • • חסכוני יותר בכבלים (= חסכוני בכסף) מאפשר העברת נתונים למרחקים גדולים יותר העברה ביט באופן טורי יותר קלה לפיענוח בצד המקבל. אם נעביר באופן אחר (למשל שימוש בשני קווי תקשורת) עלול להיווצר בעיה בתקשורת עקב הגעה לא נכונה של הביטים שנשלחו (אין הבטחה שהמהירות בקו אחד זהה למהירות בקו השני) • תקשורת סריאלית ,חסרונות: • מאט את קצב העברת הנתונים • דורש מעגלי המרה ממקבילי לטורי ולהפך. תקשורת סריאלית • תקשורת סריאלית מחולקת לשני סוגים תקשורת סריאלית סינכרונית -תקשורת סריאלית אסיכרונית • סינכרונית – יתואם מראש בין שני ההתקנים קצב העברת המידע על ידי שעון ,כך כל דגימה של הקו ידועה מראש. • כיצד? • נקבע מראש את קצב השעון ,וכך בכל פעם שהשעון יראה " "1לוגי אזי ההתקן המקבל ידגום את קו התקשרות .וכאשר השעון מראה " "0לוגי אזי ההתקן המוסר יעביר את המתח החשמלי בקו התקשורת. תקשורת סריאלית • אסינכרונית – אין צורך בשליחת סיגנל שעון למקבל ההודעה. בין השולח והמקבל יסוכם מראש צורת העברת המידע • השולח והמקבל נמנעים לשדר רצפים ארוכים של סיביות ,זאת משום שאין סנכרון מלא בין היחידה ששולחת נתונים לזו המקבלת. במקרה זה ,המידע המשודר מחולק למסגרות מידע )frames) ,בגודל של בית אחד כאשר כל מסגרת כוללת סיבית Startוסיבית Stop • סיבית Startמסמנת את תחילת מסגרת חדשה ,וסיבית Stopמסמנת את סיומה. • מסגרות המידע אינן חייבות להיות משודרות במרווחי זמן שווים ,מכוון שאינן תלויות בשעון. פרוטוקול UART • )Universal Asynchronous Receiver Transmitter (UART הוא פרוטוקול תקשורת נפוץ לתקשורת טורית אסינכרונית • הפרוטוקול מאפשר שליטה על מספר פרמטרים: .1קצב העברת הנתונים ,14400 ,9600 ,4800 ,2400 ,1200 ,300 ,50 - 57600 ,28800 ,19200ו 115200סיביות לשנייה. .2כמות סיביות המידע בכל מסגרת 5,6,7 -או 8סיביות מידע בכל מסגרת (כלומר בין סימבול ההתחלה לסימבול הסיום). .3הוספת סיבית זוגיות -ניתן להוסיף לכל מסגרת סיבית אשר תקבע את מצב הזוגיות של ביטי המידע במסגרת .4משך סימבול הסיום -ניתן לקבוע את משך הזמן של שידור סימבול הסיום לאורך של 1.5 ,1או 2סיביות. פרוטוקול UART • סט הפרמטרים הנפוץ ביותר הוא 8N1שמשמעותו ' '8סיביות מידע - 'N' ,ללא סיבית זוגיות - '1' ,אורך סיבית הסיום היא (משך הזמן של) סיבית יחידה. • המושג BAUD RATE • זהו קצב העברת הסיביות בקו. כלומר ,כמות הסיביות העובר בקו בשניה אחת. • קצבים מקובלים: 110,150,300,600,1200,2400,4800,9600,14400,19200,28800, 33600,57600,115200…. BAUD. פרוטוקול UART • קצב העברת הנתונים נטו ניתן לחישוב לפי פרמטרי המערכת .למשל ,סט הפרמטרים 8N1 ,קצב הנתונים הוא ביחס של 8:10מקצב הסימבולים ,עקב 2 סיביות תקורה אשר מתווספות לכל בית של מידע גולמי. • ניתן לחשב את קצב הנתונים לפי הנוסחה הבאה: • נגדיר SB :אורך סימבול הסיום; Pקיום סיבית זוגיות ( 0אם לא קיימת 1 ,אם קיימת); Dכמות סיביות המידע בכל מסגרת. • קצב המידע נתון על ידי: פרוטוקול UART • דוגמא: • הסבר :כדי להעביר מילה בקו טורי עלינו לשדר לפי סדר: • אSTART BIT . ב .סיביות הנתון (בדרך כלל ,)8מתחילים עם הLSB - ג STOP BIT .אחד או שניים. פרוטוקול UART • דוגמא: • כמה מילים לדקה נוכל להעביר בקו ,אם קצב ההעברה הוא BAUD 2400מילת הנתון היא בת 8סיביות וקיים STOP BITאחד? • [2400 / (1+8+1)] * 60 = 14,400 bytes RS-232 • פרוטוקול RS-232מאפיין תקשורת בינארית טורית Single-Ended (קו העברה בודד לכל כיוון תקשורת) המחבר בין שני מכשירים אלקטרוניים ))Point to Point • יציאות התקשורת הטורית של מחשבים אישיים רבים תומכים בפרוטוקול RS-232 הפרוטוקול מגדיר את המאפיינים החשמליים והתזמון של האותות ,המשמעות של כל אות ,וסידור הפינים והמחברים. • פרטים על אופיין הביטים וקצב השידור נשלטים באמצעות החומרה (כגון רכיבי )UART • מבנה של פרוטוקול RS-232מופיע באיור הבא: RS-232 • ערכי המתחים בפרוטוקול זה נעים באזור ה ±15V -עבור מידע ) (Data Bitsערך מתח שלילי נותן ערך לוגי " "1ואילו ערך מתח חיובי נותן ערך לוגי " ."0עבור שליטה ) (Control Bitsערך מתח חיובי נותן ערך לוגי " "1וערך מתח שלילי נותן ערך לוגי "."0 RS-232 • בגלל שהמתחים בפרוטוקול זה גבוהים ממתחי ) (TTL 0-5Vשמיושמים במעגלים חשמליים רבים ,נדרש רכיב שממיר את רמות המתח של RS-232לרמות מתח TTL • פרוטוקול RS-232מיועד לשדר ולקלוט נתונים בקצבים של עד Kbps 20אך יש יצרנים של מכשירים שמאפשרים לבצע את ההעברה בקצב גבוה יותר. • פרוטוקול RS-232רגיש מאוד להפרשים בפין ההארקה בשני צידי הכבל .יש ליצור הארקה משותפת לפיני ההארקה על מנת לשמור על תקשורת אמינה. • זו אחת הסיבות שפרוטוקול זה אינו מיועד לשימוש במרחקים גדולים. SPI • תקן ) SPI (Serial Peripheral Interfaceנועד לאפשר תקשורת טורית בין מכשיר Masterאחד למספר מכשירי Slave • התקן הזה לא מגדיר את המידע אלא את אופן ותזמון השידור והקליטה שלו. • קצב השידור בפרוטוקול SPIהוא עד Mbps 1והמרחק המומלץ בין מכשירים הוא ft.10 • התקן מבוסס על העברת מידע באמצעות ארבעה קווי תקשורת דו כיווניים: SPI • תהליך התקשורת המלא מתחיל בכך שרכיב ה MASTER -מגדיר את קצב השעון ואת מוד הפעולה שלו. • קיימים ארבעה מודי פעולה של שעון: SPI • לאחר מכן ה MASTER -מגדיר לאיזה SLAVEהוא עומד לבצע תקשורת באמצעות שליחת " "0בקו ה CS -של ה SLAVE -הרצוי. • לאחר מכן ,הוא שולח ביט התחלה בקו ה MOSI -שאותו ה SLAVE -קורא .במקביל, ה SLAVE -שולח ביט אישור בקו ה MISOשאותו ה MASTER -קורא. SPI • כאשר ה MASTER -מסיים את שליחת המידע ,הוא מפסיק את פעולת השעון .פעולה זו גורמת לביטול הבחירה של הSLAVE - רק ה SLAVE -שנבחר באמצעות קו ה CS -מתייחס לשעון CLKולקו הMOSI - ורק הוא יכול לכתוב מידע בקו הMISO - שאר רכיבי ה SLAVE -מתעלמים מהשעון ומה MOSI -ואינם רשאים לכתוב לקו ה- MISO IIC/I2C • תקן ) IIC (Inter-Integrated Circuitשנועד לאפשר תקשורת טורית בין מכשיר Masterאחד למספר מכשירי Slave • התקן הזה לא מגדיר את המידע אלא את אופן ותזמון השידור והקליטה שלו( .ביט אחד בכל מחזור שעון ו 8-ביטי מידע נוספים בין שני אישורים). • קיימים שלושה קצבי שידור: Standard Mode – 100Kbps .1 Fast Mode – 400Kbps .2 High-Speed Mode – 3.4Mbps .3 • המרחק המומלץ בין מכשירים בפרוטוקול זה הוא עד ft.10 • התקן מאפשר זיהוי התנגשויות ) )Collision Detectionסנכרון שעון וביצוע Hand- Shake IIC/I2C • התקן מבוסס על העברת מידע באמצעות שני קווי תקשורת דו כיווניים: SCL – Serial Clock Line o SDA – Serial Data Line o • בזמן התקשרות גם ה Master -וגם ה Slave -משמשים גם כמשדרים וגם כמקלטים. מספר רכיבי Slaveשניתן לחבר ל Master -תלוי בסך הקיבול של הרכיבים. רמות המתחים של פרוטוקול I2Cהן רמות ))TTL 0-5V • לפרוטוקול I2Cיש 127כתובות. • עקרונות הפעולה של פרוטוקול I2Cהן ששינוי מידע בקו SDAאפשרי רק כאשר קו SCLנמוך " ."0כאשר קו SCLגבוה " "1קו ה SDA -חייב להיות יציב ולא להשתנות. • סיגנל STARTמתאפשר כאשר SDAעובר מ "1"-ל "0"-בזמן שSCL -נמצא ב."1"- סיגנל STOPמתאפשר כאשר SDAעובר מ "0"-ל "1"-בזמן ש SCL -נמצא ב."1"- IIC/I2C • אורך מילה בקו ה SDA -מוגדרת בגודל של 9ביט 8 .עבור מידע וביט תשיעי עבור אישור .השעון של האישור מיוצר ע"י מכשיר הMASTER - • קיימים שלושה מצבים עבור אישור: oבזמן אישור מכשיר ה MASTER -יוצר מתח-צף על קו ה SDA -והSLAVE - יוצר " "0על קו הSDA- oכאשר SLAVEלא משדר אישור הוא יוצר מתח-צף בקו ה SDA -ומשחרר אותו לטובת הMASTER- oכאשר SLAVEמשדר אי אישור הוא יוצר מתח " "1ומייד אחר כך יוצר מתח-צף על קו ה SDA -ומשחרר אותו לטובת הMASTER- • מכשיר ה SLAVE -יכול לגרום ל MASTER -להמתין באמצעות הורדת קו ה SCL -ל- "."0 • כאשר קיימים מספר מכשירי MASTERעל אותו קו תקשורת ניתן לסנכרן את השעון של כולם SCL .יעבור למצב " "1רק כאשר כל מכשירי ה MASTER -יציגו בשעון שלהם "."1 IIC/I2C • תהליך התקשורת המלא מתחיל בכך שרכיב ה MASTER -בודק אם קו התקשורת פנוי .במידה וכן ,הוא מייצר ביט התחלה 7 +ביטי כתובת של SLAVEוביט תשיעי של מוד כתיבה (" )"0או קריאה (".)"1 • לאחר מכן ,מתקבל ביט ACKע"י ה SLAVE -וה MASTER -ממשיך בשליחת המידע ( 8ביטים). דוגמא ממערכות מובילאיי • במובילאיי ה-צ'יפ של החברה ( )IQ4הוא ה Master -והמצלמה היא הSlave - (קיימים עוד כמה רכיבים שקשורים למצלמה שהם Slavesנוספים ,כגון :אופרציות אוגרים וה process -על התמונה) התקשורת ביניהם עובדת לפי פרוטוקול i2c • בין ה-צ'יפ ליצרנית הרכב התקשורת כיום (בצ'יפ המתקדם של החברה = ())IQ4 הינה לפי פרוטוקול SPI • כאשר מספר המעבדים בצ'יפ הם ה Slaves -ו ה Master -הוא יצרן הרכב. • בצ'יפים הישנים של מובילאיי (( ))IQ1( ,)IQ2( ,)IQ3בהם יש מעבד אחד משתמשים בפרוטוקול UART • מדוע? • הצ'יפ יותר פרימיטיבי (= יותר איטי) ולכן אין צורך בפרוטוקולים חכמים ומתקדמים כמו I2CוSPI - סוף! תודה רבה על ההקשבה!