חזור לתיקייה: תרגול

9 - תקשורת ותרגילי חזרה נוספים

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • UART
  • תרגילי חזרה

9 - תקשורת ותרגילי חזרה נוספים

00440252

מערכות ספרתיות ומבנה המחשב

רשימות תרגול לקריאה בשבת

תקשורת ותרגילי חזרה נוספים

הופק מתוך תקיית התואר של שקד

uni-folder.vercel.app

אנו רוצים לתת למערכות "לדבר" זו עם זו עם מינימום משאבים.
אנו נגדיר פרוטוקול שהוא סוג של שפה משותפת אשר עוזרת לנו להבין מתי מתחיל שידור ומתי נגמר גם בלי קו שעון משותף

UARTUARTUART

​תרגול ספרתיות 29.6 - 1.png
התדרים שרשומים פה הם סתם לדוגמה.
נשים לב כי השעון אינו מחובר בין שתי המערכות ולכן זה AsynchronousAsynchronousAsynchronous.

נגדיר tbitt_{bit}tbit​ ככמות הזמן שביט אחד משודר. כל ביט משודר tbitt_{bit}tbit​ אחד בדיוק.
הביט הראשון שהמשדר ישדר הוא ה-start  bitstart\;bitstartbit אשר הוא תמיד ירידה מ-111 ל-000.
לאחר מכן, הוא ישדר כמות ביטים מסויימת, בקורס נניח שהיא 888 ביט.
לבסוף, הוא ישדר את ביט הסיום שהיא עליה מ-000 ל-111.

הערה (למה הקו מוחזק על אחד?)

כי ככה אנו יודעים כי הקו עובד.
הרבה יותר נפוץ תקלות בהן הקו נתקע על 000 מאשר על 111.

אנחנו יודעים מתי אנו מודדים tbitt_{bit}tbit​ באמצעות הנוסחה החביבה הזו:

NTtcycle(Tx)=NRtcycle(Rx)=tbitN_{T}t_{cycle}(T_{x})=N_{R}t_{cycle}(R_{x})=t_{bit}NT​tcycle​(Tx​)=NR​tcycle​(Rx​)=tbit​
תרגיל

מערכת נתונה העובדת בפרוטוקול תקשורת טורית UARTUARTUART עם:

  • תדר המשדר הוא 50MHz50MHz50MHz.
  • תדר המקלט הוא 100MHz100MHz100MHz
  • קצב השידור המבוקש הוא 1MHz1MHz1MHz.

א. כמה מחזורי שעון על המשדר לשדר עבור כל סיבית?
ב. כמה מחזורי שעון על המקלט להמתין בין דגימה לדגימה?

פתרון א':

NT150⋅106=11⋅106  ⟹  NT=50N_{T} \frac{1}{50\cdot 10^{6}}=\frac{1}{1\cdot 10^{6}}\implies N_{T}=50NT​50⋅1061​=1⋅1061​⟹NT​=50

פתרון ב':

NR⋅1100⋅106=11⋅106  ⟹  NR=100N_{R}\cdot \frac{1}{100\cdot 10^6}=\frac{1}{1\cdot 10^6}\implies N_{R}=100NR​⋅100⋅1061​=1⋅1061​⟹NR​=100
תרגיל (2)

מערכת נתונה העובדת בפרוטוקול תקשורת טורית UARTUARTUART עם:

  • תדר המשדר הוא 33MHz33MHz33MHz.
  • תדר המקלט הוא 100MHz100MHz100MHz
  • קצב השידור המבוקש הוא 112MHz112MHz112MHz.

א. כמה מחזורי שעון על המשדר לשדר עבור כל סיבית?
ב. כמה מחזורי שעון על המקלט להמתין בין דגימה לדגימה?

פתרון א':

NT133⋅106=1112⋅103  ⟹  NT=294.64N_{T}\frac{1}{33\cdot 10^6}=\frac{1}{112\cdot 10^3}\implies N_{T}=294.64NT​33⋅1061​=112⋅1031​⟹NT​=294.64

נשים לב כי אנו לא יכולים לספור חצי מחזור שעון, לכן אנו מעגלים לערך השלם הגדול ביותר. לכן, נקבל כי: NT=295N_{T}=295NT​=295.

פתרון ב':
נשים לב כי ה-TbitT_{bit}Tbit​ האפקטיבי הוא NT⋅tcycle(Tx)N_{T}\cdot t_{cycle}(T_{x})NT​⋅tcycle​(Tx​) ולא מה שנתון לנו.
אם ידוע לנו קצב השידור האמיתי, אנו ננסה להגיע אליו.

NR1100⋅106=294.64133⋅106  ⟹  NR=294.6410033=892.8484≈893N_{R} \frac{1}{100\cdot 10^6}=294.64 \frac{1}{33\cdot 10^6}\implies N_{R}=294.64 \frac{100}{33}=892.8484 \approx 893NR​100⋅1061​=294.6433⋅1061​⟹NR​=294.6433100​=892.8484≈893
תרגיל

במערכת תקשורת טורית בפרוטוקול UARTUARTUART:

  • הסיבית הראשונה המשודרת היא ה-LSBLSBLSB.
  • המשדר עשוי לבחור tbitt_{bit}tbit​ שונה בכל יום.

התקבל האות המוצג בגרף:
​תרגול ספרתיות 29.6 - 2.png
מה יכול להיות tbitt_{bit}tbit​ המשדר?
א. T2\frac{T}{2}2T​.
ב. T3\frac{T}{3}3T​.
ג. T4\frac{T}{4}4T​
ד. כל התשובות נכונות.

התשובה הנכונה היא T3\frac{T}{3}3T​ שכן בשתי האפשרויות האחרות אנו מגלים כי ביט העצירה נופל על 000 שזה לא נכון לפי הפרוטוקול.
זה בייסיקלי ניסוי וטעיה.

תרגיל

משדר ומקלט עובדים ע"פ פרוטוקול תקשורת טורית הדומה לזה שנלמד בקורס:

  • תחילה משודרת סיבית התחלה
  • לאחר מכן, משודרות XXX סיביות נתון
  • לבסוף משודרת סיבית סיום

ידוע כי זמן מחזור השעון של המשדר הוא 100ns100ns100ns וזמן מחזור השעון של המקלט הוא 102ns102ns102ns.
מבחינת המשדר והמקלט, זמן הסיבית הוא 444 מחזורי שעון פנימיים(N=4N=4N=4)

בהינתן שנדרש שגם סיבית הסיום תדגם בצורה תקינה, מהו ה-XXX המקסימלי? (הניחו כרגע כי סיבית ההתחלה נמדדת ישר)

בעצם אנו שואלים את עצמנו מתי הם יוצאים מאיזון.

4⋅100=4004⋅102=4084\cdot 100 = 400 \qquad \qquad 4\cdot 102=4084⋅100=4004⋅102=408

נרצה לראות מתי זה כבר יותר מידי.
מכיוון שהשידור הוא במחזור של 400400400 אנחנו מחכים 1.5T1.5T1.5T עד לדגימה הראשונה ולכן T=600nsT=600nsT=600ns.
נמספר את הביטים כ-D0,…,Dx−1D_{0},\dots,D_{x-1}D0​,…,Dx−1​ כאשר edge(Dx−1)edge(D_{x-1})edge(Dx−1​) משודר בקטע [400x,400(x+1)][400x,400(x+1)][400x,400(x+1)].
איפה הדגימה קוראת? הוא יתחיל בדגימה הראשונה ואז יחכה 612ns612ns612ns. לכן, הדגימה תהיה 408[1.5+(x−1)]408[1.5+(x-1)]408[1.5+(x−1)].
לכן:

400x<408(x+0.5)<400(x+1)  ⟹  x<24.5400x< 408(x+0.5)< 400(x+1)\implies x<24.5400x<408(x+0.5)<400(x+1)⟹x<24.5

לכן, X=24X=24X=24 כאשר אם נדרש לדגום אם את סיבית העצירה, ניתן לשדר 232323 סיביות מידע סה"כ.

הערה

ההנחה שסיבית ההתחלה נמדדת ישר היא אינה ראליסטית כלל וכלל.
ה-offsetoffsetoffset הכי גדול שניתן לזכור ב-start  bitstart\;bitstartbit הוא מחזור שעון יחיד.
נקבל אם כן כי:

400x<102+408(x+12)<400(x+1)  ⟹  x<11.75400x<102+408\left( x+\frac{1}{2} \right)<400(x+1) \implies x< 11.75400x<102+408(x+21​)<400(x+1)⟹x<11.75

לכן, ניתן לשדר 101010 סיביות מידע.

תרגילי חזרה

תרגיל (מועד א' חורף 26 שאלה 5)

נתון מעגל צירופי בעל 444 כניסות {A,B,C,D}\left\{ A,B,C,D \right\}{A,B,C,D} ומוצא אחד QQQ.
​תרגול ספרתיות 29.6 - 7.png
נתונים פרמטרי התזמון הבאים:

tpdHLtpdLHNOT1ns3nsNAND7ns4nsOR8ns1nsXOR2ns6ns\begin{array}{|c|c|c|} \hline & t_{pdHL} & t_{pdLH} \\ \hline NOT & 1ns & 3ns \\ \hline NAND & 7ns & 4ns \\ \hline OR & 8ns & 1ns \\ \hline XOR & 2ns & 6ns \\ \hline \end{array}NOTNANDORXOR​tpdHL​1ns7ns8ns2ns​tpdLH​3ns4ns1ns6ns​​

חשבו את tpd(A→Q)t_{pd}(A\to Q)tpd​(A→Q).

נבדוק מה צריכים להיות ב-B,C,DB,C,DB,C,D כדי שהשינוי יהיה רלוונטי.
B=0B=0B=0 בהכרח כי הוא מחובר ל-AAA בשער OROROR.
כעת, נשים לב כי בשער OROROR השני, האיבר השני מקבל במצב זה 111 בהכרח ולכן AAA לא משפיע על המוצא בכלל.

תרגיל (מועד א' חורף 25 שאלה 2)

נתון הקוד הבא לקידוד שמות סטודנטים:

{0011−Shani0110−Iggy1001−Yanal}\left\{ \begin{matrix} 0011 & - & Shani \\ 0110 & - & Iggy \\ 1001 & - & Yanal \end{matrix} \right\}⎩⎨⎧​001101101001​−−−​ShaniIggyYanal​⎭⎬⎫​

כמה שמות נוספים ניתן להוסיף לקוד מבלי לפגוע ביכולת לתקן ולגלות שגיאות?
הערה: כל המילים בקוד הן עם אותו מספר סיביות.

נשים לב כי מרחק הקוד הוא 222 ולכן ניתן לגלות שגיאה אחת ולא ניתן לתקן שגיאות כלל.
אם נרצה להוסיף לקוד עוד מילים, נדרש לדאוג לכך שמרחק הקוד ישאר 222.
נוכל להשתמש במפת קרנו כדי למצוא את כל המילים האפשרויות שנוכל להוסיף.
​תרגול ספרתיות 29.6 - 8.png
לכן, מספר המילים שניתן להוסיף הוא 555.