USART Universal Synchronous / Asynchronous Receiver / Transmitter הקדמה .מסמך זה מתאר את רכיבי התקשורת הטורית המקובלים במחשבי 8251, :PC 8050, 16450, 16550ועוד .הרכיבים דומים ביסודם .הדמיון ברור :צריך להפעיל אותם במחשבים דומים ,עם אותן התוכנות פחות או יותר )חוץ מה ,-8251שלמיטב ידיעתי אף פעם לא הופעל בתוך מחשב .(PC חלק מתכונות הרכיב לא מופעלות אף פעם .חלקן משום שלא נמצא שימוש בהן )כגון האפשרות להפעיל את הרכיב בתקשורת סינכרונית( וחלקן בגלל תוכנות התקשורת הנפוצות בשוק המחשבים ,שכותביהן חיפשו את המכנה המשותף הרחב ביותר האפשרי ודילגו על תכונות יוצאות דופן ברכיב כזה או אחר. החלק הראשון עוסק ברכיב הפשוט והישן 1-8250הנמצא בתכנית הלימודים ,חלקו האחרון עוסק ברכיבים חדישים יותר שלא הגיעו עדיין אל תכנית הלימודים. מבחינת חיבורו אל המעבד -יש לו קו בקרה הנקרא ’/ Data’) C/D .(Controlיש להבין קו זה כקו כתובת ,A0שמטרתו להבחין בין שתי כתובות פנימיות באוגרי הרכיב. 8251הוא רכיב פשוט יותר ,מיושן יותר בגישתו אל צרכי המשתמש .אחת הבעיות שלו: תדר השעון הקובע את קצב השידור בא מבחוץ. 8250הוא רכיב דומה מאד ,קצת יותר מתוחכם ,המכיל כמה שיפורים: השעון הוא פנימי ,הרכיב יוצר לעצמו את תדר השעון ,בעזרת גביש חיצוני. •1 התווספו אוגרי שליטה במודם וסטטוס של המודם. •2 התוספו אוגרי בקרת פסיקות. •3 בהמשך יתוארו האוגרים של ,8251הפשוט יותר. .1האוגרים ): (8251 אוגר האופן ) .(Mode registerהגישה אליו היא כאשר הקו והרכיב במצב של כתיבה אליו ,כמו באוגר הבקרה. ’C/D במצב ","1 המילה הראשונה שתיכתב אל כתובת זו אחרי פעולת אוגר האופן .אוגר זה מגדיר את אופן העבודה הדרוש. אם צריך לשנות את מילת המצב תוך כדי עבודה ,אפשר לבצע איתחול פנימי במקום חיצוני ,.ואחריו להגדיר את האופן ואת הבקרה מחדש ,בסדר זה. Reset ברכיב -תיכתב אל אוגר הבקרה ) .(Controlהגישה אליו כאשר הקו של כתיבה אליו. המילה שתיכתב אל כתובת זו אחרי הכתיבה אל אוגר האופן תגיע אל אוגר הבקרה ,בין אם היא השניה או אחר-כך .אוגר זה מכיל את הגדרות אופן העבודה הדרושות. ’C/D במצב " ,"1והרכיב במצב אוגר המצב ) C/D’ .(Statusעדיין במצב " ,"1אבל הרכיב במצב של קריאה ממנו. במצב זה אפשר לקרוא את מילת המצב ,ה"סטטוס" ,המתארת את המצב בתוך אוגרי המידע .למשל :האם שידור המילה האחרונה הסתיים? האם קליטת המילה האחרונה הסתימה? . אוגר המידע -שידור .הגישה אליו היא כאשר ’ C/Dבמצב " "0והרכיב במצב כתיבה אליו .במצב זה מעבירים מילה )בד"כ בית( לשידור. . אוגר המידע -קליטה .הגישה אליו היא כאשר הקו ’ C/Dבמצב " "0והרכיב במצב קריאה ממנו .במצב זה המעבד קורא מתוך הרכיב את המילה שהתקבלה. כדאי לציין שאוגרי המידע ב -8250הם כפולים ) ,(Double Bufferedכך שאם המחשב עסוק בטיפול בהם או בקריאה מהם -הרכיב יכול ,באותו הזמן ,להמשיך לקלוט מידע. כנ"ל גם לגבי שידור מידע :הוא יכול להמשיך לשדר גם כאשר המעבד עסוק בהכנסת מילה חדשה לשידור .סידור זה מייעל את לוחות הזמנים של המעבד ,כותב התוכנה יכול להיות פחות לחוץ מבחינת לוח זמנים לקריאה ולכתיבה. - 16450רכיב דומה לקודם.8250 , - 16550רכיב דומה חדש ,גם מהיר יותר וגם מסוגל להחזיק בתוכו "תור" של 16מילים מחכות לקריאה על ידי המעבד .הפניות אל תכנית הפסיקה המשרתת את התקשורת הטורית מרוחקות יותר זו מזו .כל פניה כזו גורמת להעברת של 16בתים בבת אחת, פנימה או החוצה. - 16650דומה ,מכיל חוצץ של 32בתים. - 16750דומה ,מכיל חוצץ של 64בתים .בנוסף -התקשורת עם המודם שופרה ,היא אינה דורשת פעילות תוכנה. מגמת ההתפתחות ברורה ,לכל המתבונן במספרים. למרות ההבדלים בכמות האוגרים בכל רכיב כזה ,אין ,כמעט ,הבדל בתוכנות התקשורת. למעשה ,הכל מסודר בהתאם למכנה המשותף הנמוך ביותר ,והתוכנות בד"כ לא "מתעסקות" כמעט בשיפורים שהוכנסו. .2מילת האופן מילה זו אפשר לכתוב ברכיב ,רק בכתיבה הראשונה אחרי פעולת איתחול ) ,(resetאחרת הכתובת "שייכת" לאוגר הבקרה. פעולת איתחול כזו יכולה להיות חיצונית ,על ידי חיבור ההדק מתאים במחשב ,או על ידי ביצוע איתחול פנימי דרך מילת הבקרה. D 0 B a u d D 2 C h a r D 1 B a u d D 3 C h a r D 5 P a ri t y D 4 P a ri t y גורם הכפלת קצב התקשורת Baud rate סינכרוני 00 01 10 11 אסינכרוני אסינכרוני אסינכרוני X1 X16 X64 אורך התו 5 6 7 8 Character 00 01 10 11 סיביות סיביות סיביות סיביות בקרת זוגיות Parity ללא זוגיות זוגי אי זוגי X0 01 11 , D6, D7אם הוגדר בסיביות D0-1 כאסינכרוני: בקרת המסגרת Framing לא תקין אחת סיבית Stop סיבית וחצי stop שתי סיביות Stop 00 01 10 11 , D6, D7אם הוגדר בסיביות D0-1 כסינכרוני: בקרת סינכרון סינכרון פנימי Syn control X0 D 6 F r a m e D 7 S y n ל-reset חמרה סינכרון חיצוני תו סינכרון כפול תו סינכרון אחד X1 0X 1X .3מילת הבקרה D 0 T x E N D 2 R x E D 1 D T R D 3 S B R K D 4 E R D 5 R T S D 6 I R - D0איפשור שידור - 1איפשור - 0ביטול DTR - D1 " "1יאלץ את הקו למצב ""0 - D2איפשור קליטה - 1איפשור - 0ביטול - D3שדר "ביטול" Send Break - - 1מאלץ את TxDל.-0 - 0שידור רגיל - D4איפוס כל הודעות השגיאה Error Reset - - 1איפוס דגלי השגיאה )OE, FE (PE, RTS - D5 - 1מאלץ את הקו ל.-0 - D6איתחול פנימי Internal Reset - - 1מבצע איתחול כללי ,כמו האיתחול החיצוני. אחרי האיתחול אוגר הבקרה יעבור לקבלת "אופן" )(MODE - D7מתחיל מצב "חיפוש" Enter Hunt mode - - 1נכנס למצב חיפוש מילת סינכרון ,אם מוגדר כתקשורת סינכרונית D 7 E H .4מילת המצב D0 TxR DY D1 Rx RD Y D 2 T x E D 3 P E D 4 O E - D0המילה שודרה Tx Ready - - 1שודרה - 0לא שודרה עדיין - D1מילת המידע נקלטה Rx Ready - - 1נקלטה - 0לא נקלטה עדיין - D2הקליטה מאופשרת TxE - - 1מאופשרת - 0ביטול - D3שגיאת זוגיות Parity Error - - 1יש שגיאה - D4שגיאת כפילות Overrun Error - - 1מצב שגיאה ,המילה האחרונה "עלתה" על הקודמת ,שלא נקראה בזמן - D5שגיאת מסגרת Framing Error - - 1התגלתה תקלה בקליטת אותות ""Stop - D6התגלה אות סינכרון SynDet - - 1התגלה סינכרון ,אם פועל בתקשורת סינכרונית - D7מצביע על מצב DSR - 1הכל מוכן לקליטת מילה חדשה D 5 F E D6 SYN DET D7 DS R 8250 כתובות האוגרים ברכיב איננו כזה :זה איננו הדק אלא הקוים A0, A1, A2הם ,כמובן ,קוי כתובתDLAB . סיבית בתוך אוגר אחר ,האוגר הנקרא ) Line Controlבקרת הקו ( .הסיבית D7באוגר זה צריכה להכתב מראש כ -0או כ ,-1בכדי לאפשר לנו לגשת אל האוגרים האחרים. אוגר זה עצמו נמצא בין האוגרים שסיבית זו בהם אינה חשובה ,ולכן אפשר לכתוב אליו תמיד. האוגר קריאה :אוגר הקליטה. כתיבה :אוגר השידור איפשור פסיקות קריאה :זיהוי פסיקות בקרת הקו בקרת המודם מצב הקו בקרת מצב המודם לא בשימוש A 0 0 A 1 0 A 2 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 מחלק התדר -הנמוך 0 מחלק התדר -הגבוה 1 DL AB 0 0 x x x x x x 1 1 .5תכנית תקשורת לדוגמה תכנית זו היא מינימלית ,אינה בודקת מצבי שגיאה כלשהם .כל מה שהיא עושה זה לאתחל את הרכיב ,לקלוט מילה בתקשורת טורית ולשדר אותה בחזרה אל השולח ,בלולאה אין- סופית .התכנית נועדה לבדוק את רכיב התקשורת. התכנית אינה מטפלת באוגר האופן -זה נעשה במקום אחר במחשב )במסגרת האיתחולים שלו(. כתובות הפורט הטורי במחשב ,למי שמבקש להתנסות בכתיבת תכנית כזו: COM1 = 03F8h, 03F9hערוץ פסיקה = IRQ 4 COM2 = 02F8h, 02F9hערוץ פסיקה = IRQ 3 ערוץ פסיקה = IRQ 4 COM3 = 03E8h, 03E9h ערוץ פסיקה = IRQ 3 COM4 = 02E8h, 02E9h מכיוון שהכתובות גבוהות ,יש צורך להשתמש באוגר DX הקרובה. בפניה אליהן ,ולא כמו בדוגמה reset mode equ 01000000b equ 01001110b ;1stop, Parity odd, no parity, 8 bits, Baud X 16 command equ 00000101b ; איפשור שידור וקליטה כתובת אוגר המידע sr_data equ 90h ; כתובת אוגר קריאת המצב sr_status equ 91h ; sr_cntrl equ 91h ; כתובת אוגר כתיבת פקודת הבקרה code segment assume cs:code, ds:code, es:code, ss:code ;Inch = Input character into Al inch: in al, sr_status ror al,1 ror al,1 jnc inch ; בדוק אם סיים לקבל את המילה in al,sr_data ; קרא את המילה שהתקבלה ret ;Outch = Output character from Al outch: push ax push cx outch2: in al, sr_status mov cl, 3 ror al,cl jnc outch2 ; בדוק האם הסתיים שידור המילה הקודמת pop cx pop ax out sr_data, al ; שדר את המילה ret ;Main = Initialize the device, wait for a received word and send it back main: mov dx, cs mov ds, dx ; DS תיקון mov al, mode out sr_cntrl, al ; 8251 איתחול loop: call inch call outch jmp loop code ends end main התפתחות היסטורית מכיוון שמערכות ישנות יותר עדיין בשימוש ,כדאי להקדיש זמן להתפתחות הרכיבים. - 8251נמצא בשימוש במערכות תקשורת רבות ,לא במחשבי .PC - 8250היה בשימוש במחשבי XT ישנים ,הוחלף על ידי 16450בכדי להתגבר על מהירות הגישה בפסי הנתונים של מחשב .AT - 16450הוכנס לשימוש במחשבי ,ATבכדי להשיג שתי תוצאות :מהירות גישה גבוהה יותר מצד המעבד ,קצב תקשורת מהיר יותר .מסוגל להגיע עד .38KBPS - 16550Aמאפשר קצב תקשורת מהיר יותר ,עד .115.2BPSהשכלול שהתווסף בו הוא הכנסת שני חוצצים ,שרשרות אוגרים 16 ,בתים כל אחת ,עבור אוגר השידור ועבור אוגר הקליטה .אוגרים אלה הם אוגרי הזזה מסוג FIFO )ראשון נכנס -ראשון יוצא( המאפשרים את האצת התקשורת באופן משמעותי. תכונה נוספת שהתווספה -האפשרות להפעיל את הרכיב ב ,-DMAבגישה ישירה ,ובכך לאפשר העברות מידע מהירות אל הרכיב וממנו .תכונה זו אינה מנוצלת ברוב מערכות המחשבים בגלל סיבוכיות המעגל .מעט כרטיסי תקשורת מנצלים תכונה זו. רכיב זה הוא הנפוץ ביותר היום ,מבין כל הרכיבים במשפחה זו. - 16650הגדלת החוצצים ל-32 בתים. - 16750הגדלת החוצצים ל-64 בתים. הוספת אוגרים ).(16650 .1 Buffer Register) RBR .(Receiverחוצץ הקליטה ,קריאה בלבד. זהו אוגר המידע ,ממנו קוראים את המידע שהגיע בתקשורת .אם החוצץ ) 16בתים( מופעל -אוגר זה מכיל את המילה העליונה )הראשונה( שהגיעה .בכל קריאה מאוגר זה המילה תתחלף עם הבאה אחריה. .2 Holding Register) THR .(Transmitterהחזקת המילה המשודרת. כתיבה בלבד. זהו אוגר השידור .אליו שולחים את המילה שברצוננו לשדר .מבחינת כתובת הרכיב -הוא באותה כתובת כמו אוגר הקליטה ,אלא שהאחרון יהיה במצב קריאה כשניגשים אליו ואילו אוגר השידור יהיה במצב כתיבה כשניגשים אליו. אם הרכיב הוא אחד מהפשוטים ) (16450 ,8250יש בו אוגר שידור אחד .אם הוא - 16650 יש בו 16אוגרים בשרשרת .אפשר לאגור בו עד 16בתים בבת אחת ,ולשדר אותם אחד אחד לפי התור. .3 Enable Register) IER .(Interruptאוגר איפשור הפסיקה ,קריאה או כתיבה. הרכיב יכול לפעול עם פסיקות ,כאשר הוא יודיע למעבד על ידי פסיקה על כל שינוי שקורה בו ,או יכול לפעול באופן של קלט-פלט רגיל ,כאשר המעבד פונה אל הרכיב בכל כמה מילי-שניות לבדוק אותו. אם אוגר הפסיקה מאופס כולו -אין פסיקות .כל סיבית באוגר שאוחסן בה " = "1תפעיל פסיקה בכל פעם שהאירוע המוזכר קורה .טבלת תפקידי הסיביות וארועי הפסיקה: הסיבית הארוע 0 התקבלה מילת מידע 1 אוגר השידור ריק ,הכל שודר 2 חל שינוי באוגר מצב הקו 3 חל שינוי באוגר מצב המודם המחובר 4 מצב "שינה" )רק ב(-16750 5 הרכיב במצב "הספק נמוך" )רק ב(-16750 6 שמור לשימוש עתידי 7 שמור לשימוש עתידי .4 Identification register) I I R ,(Interruptאוגר זיהוי הפסיקה ,קריאה בלבד. מכיוון שהקו המבקש פסיקה הוא קו אחד ,תכנית הפסיקה זקוקה למידע נוסף בכדי לדעת איך להגיב על הפסיקה .את המידע הנוסף היא מקבלת מאוגר זה ,תפקידו להצביע על הגורם לפסיקה בתוך הרכיב או על מצב הרכיב ,בסיביות מסוימות. הסיבית הערך הארוע D0 0 פסיקה צפויה מבוטל ע"י 1 D1,2,3 פסיקה לא צפויה D1 D2 D3 0 0 0 שינוי מצב מודם קריאת MSR 1 0 0 חוצץ השידור ריק קריאת IIRאו THR 0 1 0 נקלטה מילת מידע קריאת RBR 1 1 0 מצב הקו השתנה קריאת LSR 0 1 1 זמן התו נפגע ) (16550 קריאת RBR D4 0 שמור D5 0 שמור )ברכיבים הישנים( 1 חוצץ 64סיביות מופעל )(16750 D6,7 FIFO = D6 D7 0 0 חוצץ FIFO אינו מופעל 0 1 חוצץ FIFO לא ניתן לשימוש 1 1 חוצץ FIFO מאופשר First In First Out = תיאור של סוג החוצץ .פועל כאוגר הזזה ,המילה הראשונה שהוכנסה לתוכו היא הראשונה שתיקרא ממנו. .5 Control Register) ,FCR ,(FIFOבקרת חוצץ המידע אוגר זה נמצא בשימוש החל מהרכיב .16550 הסיבית הערך הפעולה D0 0 ביטול החוצץ 1 איפשור החוצץ D1 1 לרוקן את חוצץ הקליטה D2 1 לרוקן את חוצץ השידור D3 0 בחר באופן DMA ""0 1 בחר באופן DMA ""1 D4 שמור D5 1 D6,7 .6 אפשר חוצץ של 64סיביות )(16750 D6 D7 באיזה רמת קליטה תישלח פסיקה 0 0 כעבור בית אחד 1 0 כעבור 4בתים 0 1 כעבור 8בתים 1 1 כעבור 14בתים Control Register ,LCR ,Lineאוגר בקרת הקו. אוגר זה דרוש בעיקר בזמן איתחול התקשורת ,בדרך כלל אין ניגשים אליו במשך ההתקשרות. הסיבית הערך D0,1 D2 הפעולה D0 D1 אורך המילה המשודרת 0 0 5סיביות 1 0 6סיביות 0 1 7סיביות 1 1 8סיביות 0 סיבית וחצי עצירה ) ,(Stopרק כשהמילה 5סיביות 1 2סיביות עצירה ,עבור מילה של 6,7,8סיביות D3,4, D3 D4 D5 5 0 X X ללא זוגיות 1 0 0 סיבית הזוגיות אי זוגית 1 1 0 סיבית הזוגיות זוגית 1 0 1 סיבית הזוגיות ""1 1 1 1 סיבית הזוגיות ""0 0 אין איפשור מצב עצירת שידור )(Break 1 איפשור מצב עצירת שידור )(Break D6 D7 0 סיבית 1 8250למעלה( DLAB )ראה יש גישה אל האוגרים RBR, THR, IER הכתובות שייכות לאוגריםDLM ,DLL : .7 Register ,MCR ,Modem Controlבקרת המודם ,קריאה /כתיבה. הסיבית הפעולה 0 Data Terminal Ready 1 Request To Send 2 יציאת עזר 1 3 יציאת עזר 2 4 מצב בדיקה )(Loop-Back 5 בקרת זרימה אוטומטית )רק )16750 6 שמור 7 שמור יציאות העזר בדרך כלל לא נועדו לשימוש .אפשר להשתמש בהן בכדי לבקר מעגלים שונים בסביבת הרכיב. .8 Status Register ,LSR ,Lineמצב הקו ,קריאה בלבד. אוגר זה הוא המצביע העיקרי של מצבי שגיאה. הסיבית הפעולה 0 התקבלה מילת מידע ,צריך לקרוא אותה 1 שגיאת חפיפה ) .(Overrunמילה חדשה "עלתה" על הקודמת ,שלא נקראה 2 שגיאת זוגיות 3 שגיאת מסגרת ,סיביות העצירה )bits 4 התקבל אות עצירה )(Break 5 אוגר השידור ) (THRריק ,אבל יש מידע שעוד לא יצא באוגר ההזזה 6 אוגר השידור ריק והקו פנוי )גם אוגר ההזזה ריק( 7 המידע בחוצץ הקליטה בעייתי )אולי שגוי( (Stopאינן תקינות .9 Register ,MSR ,Modem Statusמצב המודם )קריאה בלבד( אוגר זה מצביע על מצב המודם ,מראה את הקוים הנכנסים מהמודם ,בעיקר קוים נכנסים של .RS-232 צריך לשים לב להבדל בין "מצב נוכחי" לבין "היה שינוי" .הבדל זה נועד למנוע מצבי טעות שעשויים לקרות כאשר בין גישה אחת אל הרכיב לבין גישה שניה ,המעבד "לא ראה" שהגיע אות קצר כלשהו. הסיבית הפעולה 0 היה שינוי בקו CTS 1 היה שינוי בקו DSR 2 היה שינוי בקו Ring Indicator 3 היה שינוי בקו גילוי הנושא )(DCD 4 מצב נוכחי של CTS 5 מצב נוכחי של DSR 6 מצב נוכחי של Ring Indicator 7 מצב נוכחי של הקו DCD .10 Register ,SCR )צלצול( )צלצול( ,Scratchאוגר טיוטה ,קריאה /כתיבה. זהו אוגר ריק ,לא ברור מה תפקידו .יש כותבי תוכנה שהשתמשו בו בכדי לזהות האם הרכיב הוא מהישנים )8250B מהחדשים )16450 .11 (8250,שלא היה בהם אוגר כזה )במחשבי (XTאו שהוא .(8250A,ככל שעובר הזמן גם יישום זה נראה מיותר. .DLM ,DLLאוגרי קצב השידור Latch Least significant ,DLL ,Devisorמכיל את מילת החלוקה הנמוכה. Latch Most significant ,DLM ,Devisorמכיל את מילת החלוקה הגבוהה. הרכיב מכיל מתנד המסוגל לעבוד בתדר של MHz1.8432 גביש מדויק חיצוני המתחבר אל הרכיב .תדר זה מחולק )בערך( .התדר נקבע על ידי ב-16 בכדי ליצור את בסיס הזמן של הרכיב .בכדי לקבוע את תדר העבודה הרצוי המדויק יש צורך לחלק אותו חלוקה נוספת .מילת החלוקה הנוספת ) 16סיביות( מאוחסנת בשני האוגרים האמורים .להלן הטבלה המראה את התדר המתקבל כתוצאה מזוגות מספרים מתאימים: המהירות )(bps המחלק )עשרוני( )DLL (hex )DLM (hex 50 2304 0 9 300 384 80 1 1200 96 0 60 2400 48 30 0 4800 24 18 0 9600 12 0c 0 19200 6 6 0 38400 3 3 0 57600 2 2 0 115200 1 1 0 עקרונית ,הרכיב 16550מסוגל לעבוד גם בתדרים גבוהים יותר ,עד .24MHzפעולה כזו נדירה ,משום שהתוכנה שתיכתב לצורך זה לא תהיה תואמת למערכות ישנות יותר. : a6850-ALTERAמתאם ממשק תקשורות אסינכרוני תכונות: .1ה ,a6850 -הוא פונקציה המיישמת מתאם ממשק תקשורת אסינכרוני. .2מתאים לארכיטקטורות של FLEXו.MAX- .3אורך מילה ניתן לתכנות ,stop bitושוויון .parity .4מציע מצב עבודה המחולק לפי 16 , 1או .64 .5כולל זיהוי שגיאות. .6משתמש ב 237-אלמנטים לוגיים של .flex .7מתבסס מבחינה פונקציונלית על mc6850של "מוטורולה". תיאור כללי: ה a6850-מיישם פונקצית מתאם ממשקי תקשורת אסינכרונית ,שהוא למעשה מקמ"ש אוניברסלי אסינכרוני .ה a6850-מספק ממשק בין מעבד וערוצי תקשורת טוריים .הוא קולט ומשדר נתונים בכמה קונפיגורציות ,כולל מילים של 7או 8ביטים ,עם שוויון זוגי ואי זוגי או היעדר שוויון ) , (parityו 1 -או stop 2 ביט. תרשים :1 הפורטים של :a6850 תיאור מוכן לשליחה ,שם של אות המודם.כניסת ה ncts-מונעת את עליית הביט המציין רגיסטר נקי מנתונים)(tdre זיהוי קו נתונים ,מעבר מנמוך לגבוה ,נוצר אות פסק למעבד. בורר רגיסטר .כניסה זו בוחרת את הרגיסטר בהתבסס על .rnw אם rnwגבוה) מסמן פעולת קריאה( ,אז rn =1בוחר את רגיסטר קולט הנתונים. rs=0בוחר את רגיסטר סטטוס. אולם אם rnwנמוך )פעולת כתיבה( אז rs=1בוחר רגיסטר משדר נתונים ו rs=0 -בוחר רגיסטר בקרה. קוטביות סוג שם נמוכה כניסה nCTS נמוכה כניסה nDCD כניסה RS המשך RS תיאור קוטביות סוג שם בקרת רגיסטר כתיבה/קריאה. כאשר RnWגבוה המעבד קורא את הרגיסטרים וכאשר RnW נמוך המעבד כותב לרגיסטרים. אפשור לממשק המעבד .כאשר "e " גבוה ,המעבד יכול לגשת לרגיסטרים. איפוס אסינכרוני לרגיסטרים ולוגיקת הבקרה. נמוכה כניסה RnW גבוהה כניסה E נמוכה כניסה nRESET קליטת שעון .רגיסטר קליטת השעון דוגם rxdataבהתבסס על rxclkואת מצב הביטים במונה החלוקה ) (cdsברגיסטר הבקרה. קולט נתונים .כניסת נתונים טורית מהמודם או הפריפריה. שעון שידור .הנתונים עולים עם txdataעם ירידת .txclk שבב בחירה מהמעבד .השבב חייב להיות במצב 110כדי שהa8650 - ייבחר. כניסת נתונים מקבילה מהמעבד או מהתקן בקרה אחר. בקשת פסק למעבד. בקשה לשליחה .ביטים 5ו6- )ביטים בקרת משדר 9של רגיסטר הבקרה דורכים את ביט ה.nrst- אות ה nrst-עולה כאשר ביט 6 נמוך או ביט 5ו 6-שניהם גבוהים. נתוני שידור .יציאה טורית למודם או לפריפריה. יציאת נתונים מקבילה למעבד או להתקן בקרה אחר. נמוכה נמוכה כניסה RXCLK נמוכה RXDATA כניסה TXCLK כניסה CS כניסה DI יציאה יציאה nIRQ nRTS יציאה TXDATA יציאה ]D[0..7 רגיסטרים: רגיסטר שידור נתונים : אל ה TDR -כותב המעבד או התקני בקרה אחרים .ברגע שהביטים הקיימים של הנתונים ברגיסטר היסט היציאה משודרים במלואם ,ה ,TDR -מעביר נתונים חדשים לתוך רגיסטר ההיסט של היציאה. רגיסטר קולט נתונים: אל ה RDR-כותב רגיסטר ההיסט שבכניסה .ברגע שהנתונים ב RDR -נקראים, רגיסטר ההיסט של היציאה מעביר נתונים חדשים ל .RDR -אם בוחרים בנתונים של 7ביטים ,ביט 7מוצב על לוגי נמוך. רגיסטר הבקרה: הרגיסטר הזה מכיל את הביטים של הבקרה . בורר חלוקת המונה -ביט :0 ביטים 0ו 1 -של רגיסטר הבקרה הם הביטים של ה ,CDS -שקובעים את היחס שבין קצב הנתונים והשעונים .היחסים בזמן שידור וקליטה זהים .הביטים של ה CDS -יכולים לשמש גם לאיפוס ה m6850-למצב ידוע. הביטים של בורר חלוקת המונה ):(cds פונקציה CDS0 0 CDS1 0 0 1 מצב של חלוקה ב .16-קצב השעון הוא פי 16גדול מקצב הנתונים .עם זיהוי ביט הstart - ) rxdataנמוך( ,אות הrxdata - נידגם עם העלייה ה 9-של ה- ,rxclkלאחר הכתיבה לרגיסטר שידור הנתונים ,אות הtxdata - עולה עם הירידה הראשונה של אות ה txclk-וכל 16מתקפי שעון לאחר מכן. 1 0 1 1 מצב של חלוקה ב .64 -קצב השעון גדול פי 64 -מקצב הנתונים .לאחר זיהוי ביט ה- ,startאות ה rxdata-מודגם בעלייה ה 33-של ה .rxclk-לאחר הכתיבה לרגיסטר משדר הנתונים ,אות ה txdata-עולה עם הירידה הראשונה של txclk ועם כל מיתקף 64של השעון לאחר מכן. איפוס מסטר .כאשר בוחרים במצב זה ,ה m6850-מתאפס למצב ידוע ,רגיסטר הסטטוס מתנקה ,ופעולת השידור והקליטה נעצרות ומאותחלות. מצב של חלוקה ב .1-קצב הנתונים והשעון זהים .לוגי חיצוני אחראי לסינכרון של rxdataלפי .rxclkאות ה- rxdataנידגם עם הופעת ה- ,rxclkואות ה , txdata-עולה עם ירידת ה.txclk - בחירת מילה ):(ws ביטים 3,2ו 4-של רגיסטר הבקרה הם הביטים של ה ,ws-הקובעים את אורך המילה ,parity ,ואת מ"ס הביטים של ה ) .stop-ראה טבלה הבאה(. זוגי/אי-זוגי זוגי אי-זוגי זוגי אי-זוגי X X זוגי אי-זוגי Stop bit 2 2 1 1 2 1 1 1 בחירת מילה )(ws אורך מילה Ws0 0 7 1 7 0 7 1 7 0 8 1 8 0 8 1 8 Ws1 0 0 1 1 0 0 1 1 Ws2 0 0 0 0 0 0 0 0 בקרת משדר: ביטים 5ו 6-של רגיסטר הבקרה הם הביטים של .tc ביטים אלה אחראים ל: .1אפשור או מניעה של הפסק שניגרם ע"י מצב של ), (tdreרגיסטר שליחת נתונים ריק. .2בקרה על אות בקשה לשליחה ).(nrst .3שליחת סימן breakעל יציאת ה.txdata - אפשור קליטת פסק: ביט 7של רגיסטר הבקרה הוא ביט ה .rie -כאשר ביט זה גבוה ,ה ,mdcd ,rdrf -וה- את יציאת ה .nirq-כאשר ovrייעלו ביט ה rie -נמוך ,לא מתאפשרת יצירת אות הnirq - רגיסטר סטטוס: הרגיסטר הזה מכיל את הביטים הבאים של הסטטוס: ביט :0רגיסטר קליטת נתונים מלא ).(rdrf ביט :1רגיסטר שליחת נתונים ריק ).(tdre ביט :2זיהוי קו נתונים ).(ndcd ביט :3מוכן לשליחה ).(ncts ביט :4שגיאת מסגרת ).(fe ביט :5הדבקה בקליטה ).(our ביט :6שגיאת .(pe) Parity )המשך רגיסטר סטטוס( ביט :7בקשת פסק ).(irq רגיסטר קליטת נתונים מלא: ביט 0של רגיסטר הסטטוס הוא ביט ה .rdrf -כאשר הוא גבוה ,הביט מציין שהנתונים שנקלטו הועברו לתוך רגיסטר קליטת הנתונים והוא מוכן להיקרא ע"י המעבד .אם פסק הקליטה מאופשר ,אז עולה אות ה .nirq -ביט הrdrf - מתנקה כאשר האות של nresetעולה ,כאשר המעבד קורא את רגיסטר קליטת הנתונים ,או כאשר רגיסטר הבקרה נידרך למצב איפוס מסטר) כללי(. רגיסטר שליחת נתונים ריק: ביט 1של רגיסטר הסטטוס הוא ביט ה ,tdre-כאשר הוא גבוה ,הביט מציין שהנתונים הועברו מרגיסטר שליחת הנתונים לרגיסטר ההיסט שביציאה. בנקודה זו ,ה a6850-מוכן לקלוט מילת נתונים חדשה .אולם ,אם אות הncts - גבוה ,ביט ה tdre -נותר נמוך ללא קשר למצבו של רגיסטר שליחת הנתונים. כמוכן ,אם מאפשרים פסק שידור ,יציאת ה nirq -עולה .ביט ה tdre-יורד כאשר אות ה nreset -עולה ,המעבד כותב לתוך רגיסטר שליחת הנתונים ,או שרגיסטר הבקרה נידרך למצב של איפוס מסטר)כללי(. זיהוי קו נתונים: ביט 2של רגיסטר הסטטוס הוא ביט ה ,ndcd-המשקף את מצביה של כניסת ה- .ndcd כאשר כניסת ה ndcd -משדרת מנמוך לגבוה ,ביט הסטטוס נידרך ללוגי גבוה. אם פסק הקליטה מאופשר ,נוצר נמוך ביציאת ה .nirq-ברגע שדורכים את ביט ה ,ndcd -הוא נותר גבוה ללא קשר למצבה של כניסת ה ndcd-עד שמתקיים אחד התנאים הבאים: .1רגיסטר הסטטוס ניקרא אחרי שקראו את רגיסטר קליטת הנתונים. .2אות ה nreset-עולה. .3רגיסטר הבקרה נידרך למצב של איפוס כללי. מוכן לשליחה:Clear to send : ביט 3של רגיסטר הסטטוס הוא ביט ה ,ncts-המשקף את מצבה של כניסת ה- .nctsכניסת ה nreset -דורכת את ביט ה ncts -ללוגי גבוה עד להופעתהtxclk - . שגיאת מסגרת: ביט 4של רגיסטר הסטטוס הוא ביט .feה fe-עולה כאשר אות שניקלט לא מסתיים בביט סטופ נכון ,דבר שנגרם בדרך-כלל ע"י שגיאה בשידור .ה fe -נידרך כאשר האות הנקלט מועבר לרגיסטר קליטת הנתונים ,ונותר דרוך עד שאות נוספת נכתבת לרגיסטר נתונים הנקלטים. ביט ה fe-ביט ה fe-יורד כאשר עולה אות ה ,nreset-נכתב סימן לרגיסטר קליטת הנתונים ושאין לו שגיאת ,feאו שרגיסטר הבקרה נידרך למצב איפוס כללי. הדבקה בקולט ):(overrun ביט 5של רגיסטר הסטטוס הוא ה ,ovr-המציין מצב של הדבקה במקלט ,כלומר, מילת נתונים אחת או יותר כתבו שוב ברגיסטר ההיסט בכניסה .מצב זה קורה בנקודה האמצעית של הביט שניקלט אחרון ברגיסטר ההיסט בכניסה ,כאשר המילה הקודמת )ב (rdr-עדיין לא נקראה ע"י המעבד .אולם ,ביט ה ovr -לא עולה באופן מיידי כאשר מתרחשת הדבקה ,רק נידרך כאשר המילה המתאימה בrdr - נקראת ,לכן ,כאשר יש מצב הדבקה אלה הם הנתונים שברגיסטר ההיסט שכותבים עליהם ,ולא הנתונים שב .rdr-הביט יורד כאשר עולה אות ה, nreset - הנתונים שנקלטים ברגיסטר קליטת הנתונים נקראים ,או שרגיסטר הבקרה נידרך למצב של איפוס כללי. שגיאת שוויון: ביט 6ברגיסטר הסטטוס הוא ה .pe -כאשר הוא גבוה ,הוא מציין שביט השוויון שנקלט לא מתאים לשוויון שחושב בזמן תהליך הקליטה .ביט ה pe-נידרך כאשר הנתונים נכתבים לתוך רגיסטר קליטת הנתונים .אם בוחרים בהיעדר שוויון ,ה- peלא תופיע. ביט ה pe-יורד כאשר אות ה nreset -עולה ,הנתונים נקראים מרגיסטר קליטת הנתונים ,או שרגיסטר הבקרה נידרך למצב של איפוס כללי. בקשת פסק ):(interrupt ביט 7של רגיסטר הסטטוס הוא ה ,irq-ההפך הלוגי של יציאת ה.nirq- פעולות: פעולת ממשק אפיק: המעבד ניגש ל a6850 -דרך ממשק אפיק ,המספק קשר ישיר לרגיסטרים של הקליטה ,שידור ,סטטוס ובקרה. ממשקי המעבד עם ה a6850-פועלים כאשר כניסת ה cs-נדרכת ללוגי ,110 וכניסת ה rnw-נדרכת ללוגי נמוך בכתיבה ,או לוגי גבוה בקריאה .כניסת הrs- בוחרת אז את פעולת הרגיסטר המתאימה .כאשר ,rnw ,csו rs-נדרכים מתחילה הגישה כאשר כניסת ה e-מעבירה מנמוך לגבוה .כניסת ה e-חייבת להיות גבוהה למשך מחזור txclkאחד לפחות במחזור קריאה ,הנתונים זמינים דרך יציאת אפיק הנתונים ) (doעם הופעת כניסת ה .e-במחזור כתיבה ,הנתונים נכתבים עם הירידה של כניסת ה.e- פעולת המקלט: הוא מציין שניקלט ביט השוויון ),בכניסת ה.(rxdata- זיהוי ביט ה:start- ה a6850-מתחיל לקלוט נתונים כאשר מזהים ביט .start ביט startהוא לוגי נמוך בכניסת ה ,rxdata-והוא נידגם עם כל עלייה של אות ה.rxclk- ברגע שה a6850-מזהה לוגי נמוך ,הוא מתחיל לספור את דגימות הלוגי נמוך בהתאם למצב החלוקה שנקבע )16 ,1או .(64 דגימת ביטים של נתונים: לאחר זיהוי לוגי נמוך ,ה a6850-דוגם ומסיט את הנתונים לתוך כניסת רגיסטר ההיסט .דגימת ביטים מתרחשת עם כל עלייה במצב החלוקה ב ,1-כל 16עליות במצב ,16וכל 64עליות במצב .64בכל פעם שהביט נידגם ,מחושב השוויון לצורך זיהוי שגיאות. זיהוי ביטים של stopו:parity - ה a6850 -סופר את מ"ס הביטים בנתונים כשהם זזים .כאשר מ"ס הביטים שניקלט מתאים למ"ס המפורט ברגיסטר הבקרה ,ה a6850-מצפה לקבל ביט שוויון או .stop אם מאפשרים שוויון ,ה a6850-דוגם אחר ביט ה ,parity-המעובד לאחר מכן, אולם אם לא מאפשרים שוויון ,ה a6850-דוגם אחר ביט סטופ )כלומר לוגי גבוה( .אם דוגמים לוגי גבוה ,נידרך ביט ה fe-ברגיסטר הסטטוס .ה a6850-קולט עם ביט אחד או שניים של סטופ .אם קובעים ביט אחד ברגיסטר הבקרה ,ה- a6850מצפה לביט סטופ אחד לפני התחלת תהליך הסנכרון .באופן דומה ,אם קובעים שני ביטים של סטופ ,התהליך יתחיל לאחר שזוהו שני ביטים של סטופ. זיהוי שגיאות: שגיאות יכולות להופיע כאשר קולטים :מסגור ,הדבקה ושוויון. העברה לרגיסטר קליטת נתונים: ברגע שקולטים את ביט הסטופ האחרון או שמזהים שגיאות מסגרת ,הנתונים בכניסה לרגיסטר ההיסט מועברים לרגיסטר קליטת נתונים .בנקודה זו ,כל הביטים של הסטטוס הקשורים למילת נתונים זו נדרכים ,כולל ביט ה .rdrf-אם מאפשרים קליטת פסק ,נוצר פסק ב .nirq -תהליך הקליטה מסתיים כאשר המעבד קורא נתונים מרגיסטר קליטת הנתונים. פעולת השידור: רגיסטר שליחת נתונים כתיבה/קריאה: פעולת שידור מתחילה כאשר המעבד כותב נתונים לרגיסטר שליחת הנתונים, בפעולת הכתיבה הראשונית .אם יציאת רגיסטר ההיסט ריקה ,הנתונים מועברים מיד ופעולת ההיסט מתחילה .אולם ,אם פעולת ההיסט מתרחשת, הנתונים נעצרים ברגיסטר שליחת הנתונים עד שפעולת ההיסט המתרחשת מסתיימת. כאשר הנתונים נמצאים ברגיסטר שליחת הנתונים ,אות ה tdre -יורד .ברגע שהנתונים הועברו לרגיסטר ההיסט ,ביט הסטטוס של tdreנידרך .בנקודה זו, פסק השידור מתאפשר ,ופסק ב nirq-נוצר. ביט תחילת שידור: לאחר שהנתונים מועברים לרגיסטר ההיסט ,ביט ) startלוגי נמוך( מוצב ביציאת ה . txdata -עם ירידת אות ה . txclk-ביט ה start-נשאר פעיל עבור מ"ס מחזורי השעון שנקבעו ע"י מצב החלוקה ב ,16 ,1 -או .64 שליחת נתונים: לאחר ביט ה ,start-הנתונים מוסטים החוצה מהרגיסטר אחד אחרי השני ,מהכי פחות משמעותי להכי משמעותי .מחזור הזמן עבור כל ביט מתחיל בתחילת מחזור השעון הקבוע 1,16) ,או .(64מ"ס הביטים המוסטים החוצה מקביל למ"ס הביטים שנקבעו ברגיסטר הבקרה. שליחת ביט שוויון :parity אם מאפשרים שוויון ,הביט שבא לאחר ביט הנתונים האחרון הוא ביט השוויון. יש לו ערך המאלץ את הנתונים כך שיהיה להם השוויון הנכון .לדוגמא ,אם קובעים שהשוויון יהיה אי-זוגי ברגיסטר הבקרה ,אז ביט השוויון מבטיח שיהיה מ"ס אי-זוגי של אחדים ולהפך. שליחת ביט :stop לאחר שליחת ביט השוויון ,או את ביט הנתונים האחרון אם לא מאפשרים שוויון ,משודרים 1או 2ביטים של סטופ ליציאת ה .txdata-היציאה נשארת אז גבוהה עד תחילת שידוריה של מילת הנתונים הבאה. פעולת פסק: יציאת ה nirq -נועדה להוות פסק למעבד ,היציאה מוציאה כמה מצבים כולל שידור וקליטה. פעולת השידור משדרת פסק בתנאים הבאים: .1מאפשרים שידור פסק .2דגל ה tdre -נידרך. .3אות ה ncts -נמוך. פעולת הקליטה יוצרת פסק כאשר התנאים הבאים קיימים: .1מאפשרים קליטת פסקי קליטה ) .אות הבקרה rieגבוה(. .2כל אחד מהאותות הבאים נידרך .rdrf ,ovr ,ndcd : פעולת איפוס: ה a6850 -מתאפס באחת מהדרכים הבאות: .1הפיכת כניסת ה nreset -לנמוך. .2כתיבת 1לוגי בכל הביטים של ה cds -של רגיסטר הבקרה. כניסת ה nreset -משמשת כניקוי סינכרוני לכל הרגיסטרים הפנימיים .הכנסת ה- a6850לאיפוס כללי תנקה באופן סינכרוני את כל הרגיסטרים ,אולם ,איפוס כללי פועל רק אם שני השעונים פועלים. :A8255ממשק מתאם פריפרלי הניתן לתכנות: תכונות: .1 .2 .3 .4 .5 .6 .7 .8 a8255מיישם פונקצית תאום ממשק פריפרלית ברת-תכנות. מותאם לארכיטקטורות FLEXן.MAX - 24כניסות יציאות הניתנות לתכנות. מצבים סטטיים של קריאה/כתיבה או של לחיצת-יד. יכולת ישירה של איפוס/דריכה שח ביט. עיצוב סינכרוני. משתמש בערך ב 194 -אלמנטים של flexלוגי. מתבסס מבחינה פונקציונלית על האינטל a8255והאריס ,82c55a פרט למצוין בהערות. תיאור כללי: פונקצית ה a8255 -מיישמת מתאם ממשק פריפרלי הניתן לתכנות.ל a8255 -יש 24 אותות קלט/פלט שניתן לתכנתם בשתי קבוצות של .12פונקציה זו מתפקדת בשלושת המצבים הבאים: מצב :0קלט/פלט בסיסי -פורט , Aפורט Bופורט ) , Cעליון ותחתון( ניתנים לקונפיגורציה בלתי תלויה ככניסות או כיציאות כדי לקרוא או לשמור נתונים סטטיים .היציאות רשומות ,הכניסות לא. מצב :1קלט/פלט במעקב -פורטים B , Aו C -ניתנים לקונפיגורציה בלתי תלויה בכניסה במעקב או ערוצי יציאה .אותות מפורט Cנחשבים לאותות בקרה להחלפת נתונים. מצב :2ערוץ דו-כיווני :ניתן לקנפג את פורט Aכערוץ דו-כיווני כאשר הרוב של פורט Cמספק את אותות הבקרה .בקונפיגורציה כזו ,פורט Bעדיין יכול להפעיל את מצב 0או מצב .1 פורטים של a8255: תיאור סוג שם נמוכה כניסה כניסה clk ncs נמוכה כניסה nrd קוטביות שעון שבב בחירה ,כאשר ncsעולה ה- a8255נבחר ומתאפשרות פעולות של כתיבה וקריאה לרגיסטרים הפנמיים. בקרת קריאה,כאשר ה nrd-עולה וה 8255-ניבחר ,פעולות קריאה מהרגיסטרים הפנמיים מתאפשרות. בקרת כתיבה).כנ"ל( איפוס .מאתחל את הרגיסטרים של הבקרה ושל פורט ,cודורך את פורטים aו b -ו c-למצב כניסה. ערוץ הכתובת של הרגיסטר. ערוץ)אפיק( זה בוחר את אחד מהרגיסטרים הפנמיים. אפיק כניסת נתונים ,המעבד כותב נתונים לרגיסטר הבקרה הפנימית, לפורט b ,aאו cדרך ערוץ ][7..0 .din ערוץ כניסת נתונים פורט .a ערוץ כניסת נתונים פורט .b ערוץ כניסת נתונים פורט .c מאפשר נתונים פורט .aאפשור יציאה עבור אפיק נתונים פורט .a מאפשר נתונים פורט .bאפשור יציאה עבור אפיק נתונים פורט .b אפיק יציאת נתונים .המעבד המרכזי קורא נתונים מהבקרה הפנימית ,מפורט ,b , aאו ,cדרך .dout אפיק נתונים פורט .a אפיק נתונים פורט .b אפיק אפשור נתונים פורט .c אפשור יציאה עבור כל ביט של אפיק הנתונים של פורט ,c ביציאה. אפיק יציאת נתונים פורט .c נמוכה גבוהה כניסה כניסה rwr reset גבוהה כניסה ]a[1..0 גבוהה כניסה ]din[7..0 גבוהה גבוהה גבוהה גבוהה כניסה כניסה כניסה יציאה ]pain[7..0 ]pbin[7..0 ]pcin[7..0 paen גבוהה יציאה pben גבוהה יציאה ]dout[7..0 גבוהה גבוהה גבוהה יציאה יציאה יציאה paout pbout pcen גבוהה יציאה pcout מפת כתובות הרגיסטר: רגיסטר פורט ) aכל המצבים(. פורט ) bכל המצבים(. פורט ) cמצב ,(0וסטטוס )מצב 1 ו.(2 - רגיסטר בקרה ופורט .c a0 0 1 0 0 0 1 1 1 רגיסטרים: קטע זה מתאר את הרגיסטרים הבאים של ה.a8255 - a1 .1בקרה. .2פורטים b ,aו.c - רגיסטר בקרה: רגיסטר זה דורך את המצב והכוון של האות עבור שלושת הפורטים של 8ביטים ) I/Oקלט/פלט( מחולקת לשתי קבוצות .קבוצה Aמורכבת מפורט Aו4 - הביטים העליונים של פורט .Cקבוצה Bמורכבת מפורט Bו 4-הביטים התחתונים של פורט .Cאת קבוצה Aניתן להציב על מצב 1 ,0או ,2אך את קבוצה Bאפשר להציב על מצב 0או .1 כתיבה לתוך כתובת רגיסטר הבקרה עם ביט ,7היא הגדרת פורמט המצב, המאפשרת בקרה על המצב והכוון של שלושת הפורטים של ה .I/O -כתיבה לכתובת רגיסטר הבקרה עם ביט איפוס היא פורמט .Cהמעבד המרכזי קורא את רגיסטר הבקרה בעזרת פורמט הגדרת המצב. רגיסטרים של פורט b ,aו:c - בתלות הכיוונים המקונפגים של הכניסה והיציאה הנדרכים ברגיסטר הבקרה, המעבד כותב או קורא נתונים אל ומאת הרגיסטרים של פורט .c,b,aלפורטים a ו b-יש רגיסטרים נפרדים שלכניסה ויציאה .במצב ,0הרגיסטר של פורט c מתפקד כמו אלה של פורטים aו .b-במצבים 1ו ,2-לרגיסטר של פורט cיש תפקיד מיוחד .לכתיבה לפורט cאין שום השפעה -חייבים לשנות את הביטים של הרגיסטר באופן אינדיווידואלי בעזרת הפורמט של ביט הדריכה/איפוס של פורט .cקריאת מצבם של הביטים בפורט cבמצבים 1או 2מספקת ל cpu -את מצב של אותות הבקרה והדגלים ,אולם המצבים וכיווני הפורטים יכולים להתערבב ביותר קומבינציות . פעולה :ה a8255-פועל בשלושת המצבים הבאים: .1מצב -0כניסה/יציאה בסיסי. .2מצב -1כניסה/יציאה במעקב. .3מצב -2אפיק דו-כיווני במעקב. מצב -0כניסה/יציאה בסיסי: מצב 0משמש לבצע קריאות פשוטות או כתיבות של אותות סטטיים יחסית, כמו מתגים או תצוגות מצב.ניתן לבצע קונפיגורציה )"לקנפג"( לפורטים b ,aו- cתחתון כיציאות או ככניסות מבלי לדרוש איתות של לחיצת-יד .נתונים שנכתבו ע"י ה cpu-לפורט שקונפג ביציאה נרשמים; נתונים שנקראו ע"י הcpu- מפורט שקונפג בכניסה לא נרשמים. מצב -1כניסה/יציאה במעקב: מצב זה משמש כדי לבצע קריאות וכתיבות של נתונים המבוקרים ע"י אותות לחיצת-יד .פורטים aו b-הם הפורטים של הנתונים ,מקונפגים באופן בלתי תלוי ככניסות או כיציאות .פורט cמספק את 3איתותי לחיצת היד עבור כל אחד מהפורטים של הנתונים .נתוני הכניסה והיציאה נרשמים. טבלה זו מראה כיצד איתותי לחיצת היד מקונפגים עבור כניסה במצב :1 קונפיגורציה של איתותי לחיצת -יד: שם סוג האיתות תיאור nstb כניסה ibf יציאה intr יציאה inte ביט בקרה פנימית במעקב .מאופשר לרגיסטר כניסה. דגל המציין זיכרון מלא. כשנידרך ,הוא מציין שהנתונים הועמסו לכניסת הרגיסטר .נידרך ע"י כך שה nstbיורד ,ומתאפס ע"י האות המופיע של כניסת ה- .nrd בקשת הפרעה .משמשת כאות הפרעה למעבד .עולה עם הופעת ה nstb -כאשר ה inte -גבוה. מתאפס ע"י הירידה של ה.nrd- מאפשר הפרעה .נידרך ע"י ביט דריכה ל pc-4 -עבור פורט aו- pc2עבור פורט .b טבלה זו מראה כיצד אותות לחיצת היד מקונפגים עבור יציאה ,מצב :1 שם סוג איתות תיאור nobf יציאה nack כניסה intr יציאה inte ביט בקרה פנימי דגל זיכרון מלא ביציאה .מציין שנתונים נכתבו לפורט .יורד עם הופעת ה ,nwr -ושב לגבוה כאשר מופיע אות ה.nack - אישור ,מציין שהפריפריה מוכנה לאחסן את נתוני היציאה. בקשת הפרעה .משמשת כאות הפרעה למעבד ,המציין שההתקן הפריפרלי אחסן את הנתונים),נעילה( .מתאפס עם ירידת ה ;nwr -נידרך עם הופעת nackוכאשר inteגבוה. מאפשר הפרעה )פסק( .נידרך ע"י ה pc-6 -עבור פורט aוpc-2- עבור פורט .b מצב -2אפיק דו-כיווני במעקב: מצב 2משמש לבצע קריאות וכתיבות של נתונים על האפיק הדו-כיווני המבוקר ע"י אותות לחיצת-יד .פורט aהוא פורט הנתונים היחידי המסוגל לפעול במצב 2 ,בזמן שפורט cמספק את 5אותות הבקרה עבור פורט נתונים זה .נתוני הכניסה והיציאה נרשמים. קונפיגורציית אפיק דו-כיווני: שם סוג האיתות תיאור nstb nack כניסה כניסה ibf יציאה nobf יציאה מעקב .מאפשר רגיסטר כניסה. אישור .מציין שהפריפריה מוכנה לנעול את נתוני היציאה .פועל כמאפשר תלת -מצבי עבור פורט .c דגל זיכרון כניסה מלא ,כשנידרך, מציין שהנתונים הועמסו לרגיסטר הכניסה .נידרך ע"י nstbיורד .ומתאפס ע"י הופעת כניסה ה.nrd- דגל זיכרון יציאה מלא .מציין שהנתונים נכתבו לפורט .a מתאפס עם הופעת ,nwrונידרך כאשר ה nack-יורד. _המשך הטבלה בעמוד הבא( המשך הטבלה: שם סוג האיתות תיאור intr יציאה inte1 ביט בקרה פנימי inte2 ביט בקרה פנימי בקשת פסק .משמשת כאות פסק )הפרעה( למעבד המציינת שהפריפריה נעלה את הנתונים. מתאפס עם ירידת ה nwr-או ה- .nrdנידרך עם עליית ה,nack- כאשר int1גבוה ,או עם עלייתו של ה nstb -כאשר inte2גבוה. מאפשר פסק .1נידרך ע"י דריכת ביט ל.pc-6 - מאפשר פסק .2נידרך ע"י דריכת ביט ל.pc-4 - – a8251 -ALTERAממשק תקשורת בר-תכנות. תכונות: .1פונקציה a8251המספקת ממשק בין מעבד וערוץ תקשורת טורי. .2מיועל עבור ארכיטקטורות .FLEX .3אורך מילה הניתן לתכנות ,ביטים של stopובדיקת שוויון. .4מציע אופן עבודה מחולק ב ,16 , 1-או .64 .5תומך בפעולה סינכרונית ואסינכרונית. .6משתמש בערך ב 528-אלמנטים של flex כולל: • זיהוי ביט התחלה שגוי/מזויף. • זיהוי שגיאות. • זיהוי אוטומטי של הפסקה. • זיהוי פנימי וחיצוני של אות סנכרון. .7מתבסס מבחינה פונקציונלית על התקן .a8251 תיאור כללי: פונקצית ה a8251-מספקת ממשק בין מעבד וערוץ תקשורת טורי .ה a8251-קולט ומשדר נתונים בכמה קונפיגורציות כולל מילים של 7או 8ביטים ,עם שוויון אי- זוגי ,זוגי או היעדר שוויון וביטים 1או 2של .stopניתן לתכנת את המקלט והמשדר לעבודה סינכרונית או אסינכרונית. פורטים של קלט/פלט של ה:a8251- :Clkקלט -כניסת שעון ראשית. Cndקלט -ברירת בקרה/נתונים .כאשר אות ה cnd -עולה המעבד בוחר בין נתוני מצב/בקרה ו-קריאה/כתיבה :אחרת ,המעבד בוחר נתוני מקלט/משדר ל- קריאה/כתיבה. ] :din[7..0קלט -כניסת נתונים מקבילה מהמעבד או התקני בקרה אחרים. :Extsyndקלט -קוטביות גבוהה-זיהוי סינכרון חיצוני ,בתכנותים מסונכרנים, כאשר אות ה extsyncd -מופיע ,ה a8251 -מתחיל לקלוט נתונים עם הופעת האות הבא של אות ה.nrxc - :Ncsקלט-קוטביות נמוכה -שבב בחירה מהמעבד. כאשר מופיע אות ה ,ncs-כל פעולות הכתיבה והקריאה מתאפשרות. :Nctcקלט -קוטביות נמוכה -נקי לשידור בדרך-כלל שם של אות מודם .כאשר אות ה nctc -מופיע ,ואם ביט ה txen -של רגיסטר הוראת ההפעלה דרוך ,שליחת נתונים מתאפשרת. המשך פורטים :a8251 :ndcrקלט -קוטביות נמוכה ,נקי לשידור ,בדרך-כלל שם של אות מודם .כאשר אות ה nctc-מופיע ,ואם ביט ה txen-של רגיסטר הוראת ההפעלה דרוך ,שליחת נתונים מתאפשרת. :ndsrקלט -קוטביות נמוכה ,סידרת נתונים מוכנה ,בדרך-כלל אות של מודם .מצבו של קלט זה יכול להיבדק ע"י קריאת רגיסטר סטטוס ביט .(dsr) 7 :nrdקלט -קוטביות נמוכה ,בקרת קריאה לרגיסטרים .כאשר אותות ה nrd -וה- ncsנמוכים ,המעבד קורא מתוך הרגיסטר. :nrxcקלט -קוטביות נמוכה ,שעון קליטה .מעבד המקלט דוגם את nrxdבהתבסס על מצבו של אות ה nrxc -וקצב פקטור הבאוד ברגיסטר. :ntxcקלט -קוטביות נמוכה ,שעון שידור .הנתונים נשלחים ל txd -עם ירידת אות ה.ntxc - :nwrקלט -קוטביות נמוכה ,בקרת כתיבה לרגיסטר .כאשר אות ה nwr -ואות ncs נמוכים ,המעבד כותב ברגיסטר. :nresetקלט -קוטביות נמוכה ,איפוס אסינכרוני של הרגיסטר והבקרה. :rxdקלט -נתוני קליטה .כניסה טורית מהמודם או הפריפריה. :doutיציאה -קוטביות נמוכה ,יציאת נתונים מקבילית ,למעבד או להתקני בקרה אחרים. :ndtrיציאה -קוטביות נמוכה ,מסוף נתונים מוכן .בדרך-כלל שם של אות מודם. ביט 1של הוראה הפקודה ברגיסטר דורך את אות ה.ndtr - :nenיציאה -קוטביות נמוכה ,אפשור יציאה עבור אפיק יציאת נתונים .כאשר מופיע אות ה ,nen -מתאפשרת יציאת נתונים על אפיק ה.dout - :nrtsיציאה -קוטביות נמוכה ,בקשה לשליחה ,בדרך-כלל שם של אות מודם .ביט 5 של רגיסטר ההוראות דורך את אות ה.nrts - :rxrdyיציאה -קוטביות גבוהה ,מקלט מוכן .אות ה rxrdy -מציין שהa8251- קיבל סימן שיש לקוראו ע"י המעבד. :sym-brkיציאה -קוטביות גבוהה ,זיהוי סנכרון/פסק ) .(breakבעבודה מסונכרנת, כאשר מופיע אות ה , extsyncd -ה a8251 -מתחיל לקלוט נתונים עם הופעת האות הבא של .nrxcבעבודה מסונכרנת syn-brk ,מציין מצב הפסקה ב.rxd - :txdיציאה -נתוני שידור .יציאה טורית למודם או פריפריה. המשך פורטים :a8251 :txemptyיציאה -קוטביות גבוהה ,משדר ריק .מציין שלמשדר אין יותר נתונים לשליחה. :txrdyיציאה -קוטביות גבוהה ,המשדר מוכן .כאשר מופיע אות זה ,הלוגיקה של המשדר מוכנה לקלוט ביט נתונים נוסף .יציאה זו מותנת במצב כניסת ה cts -וביט הפקודה של .txen תיאור פונקציונלי: ה a8251 -מכיל את הרגיסטרים הבאים: .1 .2 .3 .4 .5 .6 .7 הוראת מצב )אופן פעולה/ביצוע(. הוראת פקודה. מצב )סטטוס(. אות סנכרון אחד. אות סנכרון שתיים. זיכרון זמני משדר ).(buffer זיכרון זמני מקלט. רגיסטר הוראת מצב:(mir) : רגיסטר ה mir-תומך בעבודה סנכרונית ואסנכרונית .ביטים 0ו 1 -הם גורם קצב הבאוד וקובעים את היחס שבין קצב הנתונים והשעונים .אם ביטים 1ו 0 -מכוונים ללוגיקה נמוכה ,אז ה a8251 -מתוכנת לעבודה מסונכרנת ,אחרת ה a8251 -פועל באופן אסנכרוני. פעולה אסינכרונית :כאשר ה a8251 -מתוכנת לעבודה אסינכרונית ,ה mir -מכיל את הביטים שבטבלה זו: ביט שם האות 0 פקטור קצב הבאוד ).(b1 פקטור קצב הבאוד ).(b2 1 2 3 4 5 6 7 בורר אורך המילה ).(l1 בורר אורך המילה ).(l2 בורר שוויון .(pen) parity בורר שוויון .(ep) parity בורר ביט סטופ ).(s1 בורר ביט סטופ ).(s2 פקטור קצב הבאוד: ביט 1ו 0 -של ה mir -הם ביטים של פקטור קצב הבאוד ,הקובע את היחס שבין קצב הנתונים והשעונים .היחסים זהים בזמן שידור ובזמן קליטה .הביטים של פקטור קצב הבאוד מספקים גם אמצעי לתכנות ה a8251 -לעבודה מסונכרנת. טבלה זו מראה את הרמה הלוגית של הביטים של פקטור קצב הבאוד ואת הפונקציה המתוכנתת המקבילה. b1 b2 פונקציה מתוכנתת 0 0 0 1 1 0 1 1 עבודה מסונכרנת. מחולק ב .1-קצבי השעונים והנתונים זהים .לוגיק חיצוני אחראי לסנכרון אות ה rxd -לפי אות ה .nrxc -אות ה rxd -מודגם עם הופעת אות ה ,nrxc -ואות ה- txdמופיע עם ירידת אות הntxc - . מחולק ב .16 -קצב השעון הוא פי- 16מקצב הנתונים .עם זיהוי ביט ה rxd) start -נמוך( ,אות הrxd - מודגם עם העלייה ה 9 -של ה- .nrxcלאחר כתיבה לרגיסטר השידור ,אות ה txd -מופעל עם ירידת אות ה ntxc -וכל 16 הופעות שעון לאחר מכן. מחולק ב .64 -קצב השעון הוא פי- 64מקצב הנתונים .לאחר זיהוי ביט ה rxd) start -נמוך( ,אות ה- rxdמודגם עם ההופעה ה 33 -של ,nrxcלאחר כתיבה לרגיסטר )בהנחה שכתיבה מאופשרת( דורכים את ה txd -עם הירידה הראשונה של אות ה ntxc -וכל מתקף שעון ה 64 -לאחר מכן. בורר אורך המילה: ביטים 2ו 3-של ה mir -הם הביטים המציינים את אורך המילה ,המשמשים לבחירת האורך של הביט ) 8סיביות(. טבלה זו מראה את רמת הלוגיקה של בורר אורך המילה ואת אורך המילה המקביל. אורך המילה 5 6 7 8 l1 0 1 0 1 l2 0 0 1 1 בורר שוויון:(parity) - ביטים 4ו ,(pen ,ep) 5 -של ה mir -הם הביטים של בורר השוויון ,המשמשים לבחירת אופציית השוויון. טבלה זו מראה את רמת הלוגיקה של בחירת השוויון והשוויון המקביל. ep 0 0 1 1 pen 0 1 0 1 שוויון לא קיים אי-זוגי )לא שווה( לא קיים זוגי )שווה( בורר ביט עצור ):(stop ביטים 6ו (s3 ,s2) 7 -של ה mir -הם הביטים של ה ,stop -המשמשים לקבוע את מספרם של ה stop -ביטים . הטבלה הבאה מראה את רמת הלוגיקה של בחירת ביטים של stopואת המספר המתאים של ביטים ל.stop - מ"ס ביטים לstop - S1 S2 אסור ,לא תקף 1 1.5 2 0 1 0 1 0 0 1 1 בעבודה מסונכרנת: פקטור קצב הבאוד )מהירות עבודה(: כאשר התכנות הוא לעבודה מסונכרנת ,פקטור קצב הבאוד של ה mir -הוא תמיד לוגיקה נמוכה ) ביטים 0ו.(1 - בחירת אורך מילה: ביטים 2ו ,(l2 ,l1) 3 -של ה mir -הם הביטים הבוחרים את אורך המילה ,ומשמשים לבחירת אורך המילה של מילת הנתונים .ביטים אלה פועלים באופן זהה כאשר התכנות הוא לעבודה סינכרונית או אסינכרונית. בורר שוויון ):(parity ביטים 4ו (pen ,ep ) 5 -של ה mir -הם הביטים הבוחרים את ה , parity -ביטים אלה פועלים באופן זהה כאשר התכנות הוא לעבודה סינכרונית ו/או אסינכרונית. זיהוי אות סנכרון חיצוני: כאשר ביט ,(esd) 6של ה mir -הוא גבוה ,זיהוי סנכרון חיצוני משמש את ה- .a8251 אחרת המקלט אחראי לזיהוי הסנכרון. סנכרון ע"י אות בודד: כאשר ביט (scs) 7של ה mir -גבוה ,המקלט מחפש אות סנכרון בודד לפני שיתחיל בתהליך הסנכרון .אחרת המקלט מחפש אחר 2אותות סנכרון. רגיסטר הוראת פקודה: רגיסטר זה שולט בפעולות המשדר/מקלט. טבלה זו מראה את הפורמט ,שם האות ,והפונקציה של הביטים בנתוני רגיסטר הוראת הפקודה: ביט שם פונקציה 0 txen 1 dtr 2 rxe 3 sbrk לוגיקה גבוהה מאפשרת את המשדר. לוגיקה גבוהה מאלצת את אות ה ndtr -לרדת. לוגיקה גבוהה מאפשר את המקלט. לוגיקה גבוהה מאלצת את אות 4 שגיאה ) (er 5 בקשה לשליחה ) (rts 6 איפוס פנימי )(ir 7 eh ה txd -לרדת נמוך. לוגיקה גבוהה מאפסת את כל אותות השגיאה(pe,oe,fe). לוגיקה גבוהה מאלצת את אות ה nrts -לרדת מטה. לוגיקה גבוהה מאלצת מצב איפוס פנימי. לוגיקה גבוהה גורמת למקלט "לחפש" אחר אות סנכרון. מתעלמים מפקודת ה eh -בזמן עבודה מסונכרנת. רגיסטר סטטוס: רגיסטר זה מאפשר למעבד ,או להתקני בקרה אחרים ,לבחון את מצבו של ה- .a8251 הטבלה בעמוד הבא מראה את הפורמט ,שם האות והפונקציה של הביטים המתארים את נתוני מצב הרגיסטר. ביט שם פונקציה 0 משדר מוכן )(txrdy 1 מקלט מוכן )(rxrdy 2 משדר ריק )(txempty 3 שגיאת שוויון )(pe 4 שגיאת הדבקה ,שידור לפני קליטה )(oe 5 שגיאת מסגור )(fe 6 זיהוי סנכרון או הפסק )syn- (brk מציין שהמשדר מוכן לקבל ביט נתונים נוסף .בניגוד ליציאה המקבילה ,הביט הזה אינו תלוי בכניסת ה cts -וביט הפקודה של .txen ביט 1משקף את מצבו של אות ה.rxrdy - ביט 2משקף את מצבו של אות ה.txempty - כאשר גבוה ,ביט 3מציין שביט השוויון שנתקבל בכניסת ה- rxdלא מתאים לשוויון שחושב ע"י המקלט .אם לא נבחר מצב שוויון מסוים, שגיאה זו לא תתרחש. ביט 4מציין שהנתונים היו מוכנים לכתיבה לתוך הrbr - לפני שהתוכן הקודם של הרגיסטר ניקרא ע"י המעבד. ביט 5נידרך כאשר אות שניקלט לא מסתיים במ"ס הצפוי של סטופ ביטים ,דבר שנגרם בדרך-כלל עקב שגיאה בשידור . ביט 6משקף את המצב של יציאת ה.syn-brk - (brk סידרת נתונים מוכנה )(dsr 7 ביט 7משקף את ההיפך הלוגי של המצב של כניסת ה.ndsr - רגיסטר אות סנכרון אחד: רגיסטר זה מכיל את אות הסנכרון הראשון .המידע משמש את המקלט לצורך השוואת סינכרון ואת המשדר לצורך שידור אות הסנכרון. רגיסטר אות סנכרון שתיים: מכיל את הערך של אות הסנכרון השני .המידע משמש את המקלט לצורך השוואת סנכרון ואת המשדר לצורך שידור אות השידור. רגיסטר משדר זיכרון זמני ):(Buffer ה tbr -מכיל את נתוני המשדר ,שה a8251 -מפרמט ,מסדר בטור ,ומשדר ביציאת ה ,txd -ברגע שהנתונים הקיימים ברגיסטר ההיסט משודרים במלואם ,ה tbr -משדר נתונים חדשים לתוך רגיסטר ההיסט. רגיסטר מקלט זיכרון זמני: ה rbr -מכיל את הנתונים שנתקבלו מרגיסטר ההיסט ) .(shiftלאחר שרגיסטר ההיסט קולט מילת נתונים חדשה ,הוא מוכן לשלחה ל .rbr -אם הנתונים הקיימים ב rbr -כבר נקראו ע"י המעבד ,אז מתרחשת ההעברה .אם נתוני ה rbr -הקיימים לא נקרא ו ,מעלים את ביט ה ,oe -שגיאת ההדבקה – שידור לפני קליטה. פעולה: פעולת תכנות: את ה a8251 -חייבים לתכנת בסדר מסוים ומיד לאחר מצב של איפוס כללי או מצב איפוס פנימי .ראשית ,המעבד כותב ל . mir -כאשר בוחרים פעולה סינכרונית ב- , mirהמעבד כותב באות הסנכרון הראשון .אם נבחרים שני אותות סנכרון ב,mir - האות השני נכתב מיד לאחר הראשון .אם בוחרים רק אות סנכרון אחד ,על השני מדלגים .אולם ,כאשר בוחרים בעבודה סינכרונית קופצים על שני אותות הסנכרון. ברגע שהמעבד כותב ל mir -ולאותות הסנכרון ,להוראת הפקודה ,לסטטוס ,ולtbr - וה rbr -יש אפשרות לגשת אליהם. טבלה זו מתארת את רצף התכנות של ה a8251 -כולל את רמת הלוגיקה של אותות הבקרה: cnd nrd nwr ncs פעולה הערה 1 1 0 0 מעבד כותב ל- חייב לקרוא מיד mir 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 מעבד כותב את אות הסנכרון הראשון מעבד כותב את אות הסנכרון השני מעבד כותב לרגיסטר הוראת הפקודה מעבד כותב לתוך הtbr - מעבד קורא את רגיסטר הסטטוס מעבד קורא את הrbr - לאחר איפוס כללי או פנימי מתעלמים ממנו בפעולה מסונכרנת מדלגים עליו בעבודה מסונכרנת או אם ביט 7של ה mir -נמצא בלוגיקה גבוהה )עבודה מסונכרנת( גישה אקראית גישה אקראית גישה אקראית גישה אקראית פעולת מקלט אסינכרונית: כאשר ה a8251 -מתוכנת לעבודה אסינכרונית ,המקלט כולל את הפונקציות הבאות: .1 .2 .3 .4 .5 זיהוי ביט התחלה ).(start דיגום נתוני הביטים. זיהוי הביטים של ה.parity/stop - העברת זיכרון זמני של רגיסטר מקלט. זיהוי .break זיהוי ביט התחלה ):(start ה a8251 -מתחיל לקבל נתונים כאשר מזהים ביט ,startהביט הזה הוא לוגי נמוך ביציאת ה ,rxd -שעובר דגימה עם כל הופעת אות שעון של אות ה .nrxc -ברגע שה a8251 -מזהה לוגי נמוך ,הוא מתחיל לספור את מספר הדגימות של לוגי נמוך בהתאם לקצב שנקבע. לדוגמא :לאחר זיהוי של לוגי נמוך במצב של מחולק ב ,1 -ה a8251 -מניח שהנתונים זמינים עם הופעת האות הבא .אולם ,לאחר זיהוי של לוגי נמוך במצב של מחולק ב ,16-ה a8251 -סופר 8אותות nrxcודוגם שוב .הנתונים עדיין חייבים להיות לוגי נמוך .בנקודה זו ,ה a8251 -מניח שהנתונים והשעון מסונכרנים ודוגם נתונים כל 16אותות שעון מכאן והלאה .המצב של מחולק ב 64 -דומה לזה של ,16 כאשר ביט ה start -נידגם עם האות העולה הראשון וה 32-של ה .nrxc -הנתונים נידגמים כל 64אותות. דגימת ביט נתונים: לאחר שזיהה את ה start -ביט ,ה a8251 -דוגם ומזיז את הנתונים לתוך רגיסטר בהיסט .דגימת הביטים מתרחשת עם כל הופעה במצב של מחולק ב ,1 -עם כל 16 הופעות במצב של מחולק ב ,16 -וכל 64אותות במצב של מחולק ב .64 -בכל פעם שביט נידגם ,מחשבים את השוויון ) (parityלזיכרון של שגיאות נוספות. זיהוי ביט :parity/stop ה a8251 -סופר את מספר הביטים בנתונים ככל שהוא מסיט .כאשר המספר של הביטים שנקלטו מתאים למספר שרשום ברגיסטר הבקרה ,ה a8251 -מצפה לביט parityאו ל .stop -אם parityמאופשר ,ה a8251 -דוגם את ביט ה,parity - המעובד לצורכי שוויון אך לא מוסט לתוך רגיסטר ההיסט .לאחר ביט ה parity -או לאחר הביט האחרון אם השוויון לא מאופשר ,ה a8251 -מצפה לביט סטופ )לוגי גבוה( .אם דוגמים לוגי נמוך ,ביט ה fe -נידרך ברגיסטר הסטטוס. ה a8251 -מקבל נתונים עם ביט סטופ אחד או שניים .אם קובעים סטופ ביט 1 ברגיסטר הבקרה ,ה a8251-ייצפה לביט סטופ אחד לפני שיתחיל בתהליך הסנכרון. באופן דומה ,אם קובעים שני ביטים של סטופ ,תהליך הסנכרון יתחיל לאחר זיהוים של שני לוגי גבוהים. זיהוי שגיאות: שלוש שגיאות יכולות להופיע כאשר ה a8251 -קולט :מסגור ,הדבקה ושוויון. זיכרון זמני של רגיסטר מעבר :ברגע שמקבלים את ביט הסטופ האחרון ,או שמזהים שגיאות מסגרת ,הנתונים ברגיסטר ההיסט מועברים ל .rbr -בנקודה זו ,כל הביטים של הסטטוס הקשורים למילת נתונים זו נידרכים ,כולל ביט ה.rxrdy - תהליך הקליטה מסתיים כאשר המעבד קורא נתונים מתוך ה.rbr - זיהוי הפסקה ):(break בעבודה מסונכרנת ,אות ה syn-brk -מציין שהמקלט זיהה מצב של .breakמצב זה מוגדר ברגע בו אות ה rxd -כל הזמן נמוך ,כלומר ,עבור רצף שלם כולל ,סטרט, סטופ ושוויון. את ביט ה syn-brk -אפשר לאפס ע"י פעולת איפוס כוללת או ע"י כך שאות הrxd - חוזר למצב גבוה. פעולת משדר )אסינכרונית(: כאשר ה a8251 -מתוכנת לעבודה מסונכרנת ,המשדר כולל את הפונקציות הבאות: .1משדר נתוני רגיסטר כתיבה/העברה. .2משדר ביט סטרט. .3משדר נתונים. .4משדר ביט .parity .5משדר ביט סטופ. משדר נתוני רגיסטר כתיבה/העברה: לאחר פעולת איפוס כללי וכאשר ביט (txen) 1של רגיסטר הוראת הפקודה גבוה, מתחילה פעולת שידור כאשר מופיע אות ה .ncts -בנקודה זו ,ניתן לכתוב ביט נתונים ב ,tbr -אולם ,אם לא נכתבו שום נתונים ,אות ה txd-נעצר במצב של לוגי גבוה. בפעולת הכתיבה הראשונה ,אם רגיסטר ההיסט ריק ,הנתונים מועברים מיידית ופעולת מתחילה .אם פעולת ההיסט מתרחשת ,המעבד יכול לכתוב ל , tbr -אולם, הנתונים לא מועברים אל רגיסטר ההיסט עד שפעולת ההיסט הפעילה מסתיימת. כאשר ה tbr -מכיל נתונים שלא הועברו לרגיסטר ההיסט ,אות ה txrdy -וביט הסטטוס המתאימים יורדים לנמוך .ברגע שהנתונים מועברים לרגיסטר ההיסט וה- tbrריק ,אות ה txrdy -וסטטוס הביט המתאים נדרכים ,אם רגיסטר ההיסט וה- tbrמתרוקנים ,אות ה txempty -וביט הסטטוס המתאים נדרכים. סטרט ביט של המשדר: כאשר הנתונים מועברים לרגיסטר ההיסט ,סטרט ביט )לוגי נמוך( מוצב באות ה- txdעם ירידת אות ה ntxc -הבאה .ערך ביט הסטרט נותר אקטיבי עבור מספר מחזורי השעון שנקבע ב.mir - ביט ה parity -של המשדר: אם מאפשרים את השוויון ,הביט שבא לאחר ביט הנתונים האחרון הוא ביט השוויון .לביט השוויון יש ערך המאלץ את כל מילת הנתונים שיהיה לה השוויון הנכון לדוגמא,אם ה parity -נקבע לאי-זוגי ב ,mir -אז ביט השוויון מבטיח שלא יהיו מספר אי-זוגי של אחדים .אם הביט נקבע לזוגי ,אז ביט השוויון מבטיח שיהיה מספר זוגי של אחדים. ביט הסטופ של המשדר: לאחר שידור ביט השוויון ,או שלא מאפשרים את ביט הנתונים האחרון ,או שמשדרים אחד או שניים ביט של סטופ ביציאת ה .txd -היציאה נשארת אז גבוהה עד לתחילת שידורה של מילת הנתונים הבאה. פעולת המקלט )סינכרונית(: כאשר ה a8251 -מתוכנת לעבודה מסונכרנת ,הביטים של הסטרט או הסטופ לא נוספים למילת הנתונים .במקום זאת אות ה rxd -הוא סינכרוני לשעון הנקלט )אות ה , (nrxc -וזרימת הנתונים מסונכרנת לפי ה a8251 -הקולט ע"י הכרה באות סינכרון. סנכרון מתרחש בצורה פנימית או חיצונית .כאשר זיהוי סנכרון חיצוני נבחר ,תהליך הסנכרון נעשה כך: (1המעבד מוציא פקודת חיפוש ) (ehלרגיסטר הוראת הפקודות. (2מעגל זיהוי הסנכרון החיצוני מזהה את אות הextsyncd - הגבוה לפחות במשך מחזור nrxcאחד .ה extsynd -נידגם עם ירידת אות ה ,nrxc -שמאלץ את ה a8251 -להפסיק לחפש אחר אותות סנכרון .בנקודה זו ,ה a8251 -מתחיל לדגום את ה rxd -עם הופעת ה nrxc -הבא .אות הsyn- - brkוביט הסטטוס המתאים מועלים ומתאפסים באופן אוטומטי כאשר המעבד קורא את נתוני הסטטוס .כאשר בוחרים באופציית חיפוש הסנכרון הפנימי ,המקלט אחראי לזיהויים של אותות הסנכרון באות ה , rxd -הסדר הוא כזה: .1המעבד מוציא הוראת חיפוש ) (ehלרגיסטר הוראת הפקודות. .2קטע המקלט מתחיל לדגום אחר rxdעם הופעת ה.nrxc - כניסת ה rxd -מושוות עם סימני הסנכרון. .3עם זיהוי סימן הסנכרון ,ה a8251 -מתחיל לדגום אחר אות ה rxd -עם הופעת ה nrxc -הבא .יציאת הsyn-brk - וביט הסטטוס המתאים מועלים ומתאפסים אוטומטית ברגע המעבד קורא את נתוני הסטטוס. שגיאות שוויון והדבקה מזוהות כמו במצב פעולה אסינכרוני .פעולה סינכרונית נמשכת עד שהמעבד מוציא פקודת ehנוספת. פעולת משדר )סינכרונית(: פעולת משדר מתחילה כאשר המעבד כותב את הסימן הראשון ) בדרך-כלל אות סנכרון( ל.tbr - ברגע שאות ה ncts -מועלה ,ה a8251 -מתחיל להסיט את הנתונים החוצה עם .ntscשידור הנתונים מסונכרן לפי שעון ה .ntxc -כמו בפעולה סיום אות ה- (parityלכל מילת נתונים )בית( כדי לקבוע את ה- אסינכרונית ,מוסיפים ביט שוויון ) .parityאותות ה txrdy -וה txempty -פועלים באופן זהה כאשר הם מתוכנתים לעבודה סינכרונית או אסינכרונית .אולם ,כאשר המשדר מתרוקן ,ה 18251 -מחדיר באופן אוטומטי סימן סנכרון לתוך זרם הנתונים .אם אות ה- scsגבוה ,אות סנכרון בודדת מוחדרת .אחרת ,שני אותות סנכרון מוחדרים. פעולת איפוס ):(reset את ה a8251 -ניתן לאפס בשני אופנים: .1מצב איפוס כללי. .2מצב איפוס פנימי. איפוס כללי הוא פעולה אסינכרונית המושגת ע"י הפעלת כניסת האיפוס .כל הרגיסטרים הפנימיים ולוגיקת הבקרה מתאפסים באופן אסינכרוני למצבם ההתחלתי. איפוס פנימי מושג ע"י כתיבת גובה לוגי לביט (ir) 6של רגיסטר הוראות הפקודה, המאפס את כל הרגיסטרים הפנמיים ואת לוגיקת הבקרה למצבם ההתחלתי .איפוס פנימי מתרחש באופן סנכרוני עם הופעת אות ה .clk-אות השעון הראשי ) (clkחייב לפעול כדי לקבל איפוס פנימי. הבהרות: המאפיינים הבאים מבדילים את ה Altera-a8251 -מהתקן ה 8251A -של חברת "אינטל". .1ל a8251-יש ערוצי נתוני כניסה ויציאה נפרדים ,בזמן שלהתקן ה8251A- יש ערוץ נתונים דו כיווני. .2ל a8251 -יש אותות extsyncdו syn-brk -נפרדים ,בזמן שלאינטל יש אות brket/syndetדו -כיווני. .3במחזור הכתיבה ל ,a8251 -כניסת ה din[7..0] -חייבת להיות תפוסה עבור מחזור שעון אחד של ,ntxcלאחר הופעת אות ה.nwr - .4ל a8251 -יש כניסת איפוס פעילה-נמוכה .לאינטל יש כניסת איפוס פעילה- גבוהה.
© Copyright 2024