Λύσεις — Μάθημα 3.10 · Σειριακή Επικοινωνία (Έλεγχος Γνώσεων ΚΑΙ Προβλήματα, σελ. 144-145)
Λύσεις των ασκήσεων του βιβλίου (συμπλήρωση κενών & δύο προβλήματα σειριακής). Οι υπολογισμοί επαληθεύτηκαν με κώδικα.
Συμπλήρωση κενών (1–3) (σελ. 144)
Ερώτηση: Συμπλήρωσε τα κενά (ερωτήσεις 1–3) για τη σειριακή επικοινωνία.
Λύση:
- 1. Τα δεδομένα μεταδίδονται με τη μορφή διαδοχικών bits.
- 2. Το bit με τιμή 1 → −12 V, το bit με τιμή 0 → +12 V (ανεστραμμένη λογική).
- 3. Ένα bit ίσο με 0 = bit εκκίνησης (Start) στην αρχή, και ένα ή περισσότερα bit τέλους (Stop) στο τέλος με τιμή 1.
Απάντηση: 1: διαδοχικών · 2: 1→−12V, 0→+12V · 3: 0/εκκίνησης, τέλους/1.
Πρόσεξε:
- Ανεστραμμένη λογική: 0→+12V (Space), 1→−12V (Mark).
Συμπλήρωση κενών (4–8) (σελ. 145)
Ερώτηση: Συμπλήρωσε τα κενά (ερωτήσεις 4–8) για τη σειριακή επικοινωνία.
Λύση:
- 4. Δύο τύποι βυσμάτων: D25 (25 ακίδων) και D9 (9 ακίδων).
- 5. Η γραμμή TD χρησιμοποιείται για την αποστολή των σειριακών δεδομένων.
- 6. Η γραμμή RD χρησιμοποιείται για τη λήψη των σειριακών δεδομένων.
- 7. Όταν ένα modem ανιχνεύσει άλλο modem, θέτει τη γραμμή CD (Carrier Detect).
- 8. Ο υπολογιστής ενημερώνει το modem ότι θα στείλει δεδομένα μέσω της RTS· το modem, όταν μπορεί να δεχθεί, έχει ενεργή την CTS.
Απάντηση: 4: D25 ΚΑΙ D9 · 5: TD · 6: λήψη · 7: CD · 8: RTS / CTS.
Πρόσεξε:
- RTS: ο PC ζητά αποστολή· CTS: το modem δηλώνει ότι είναι έτοιμο να δεχθεί.
Πρόβλημα 1 — χαρακτήρας 'Η' (σελ. 145)
Ερώτηση: Ο 'Η' έχει ASCII 72 = 01001000₂. Πόσο χρόνο χρειάζεται η σειριακή αποστολή του με 300 bps και με 9600 bps;
Λύση:
- Κάθε χαρακτήρας στέλνεται με 1 start + 8 data + 1 stop = 10 bits.
- Στην κυματομορφή TD: πρώτα το start bit '0' (+12V), μετά τα 8 bits του 'Η' (01001000, από LSB προς MSB), και στο τέλος stop bit '1' (−12V).
- Χρόνος = 10 / ρυθμός baud.
- @ 300 bps: 10/300 = 0,0333 s = 33,3 ms.
- @ 9600 bps: 10/9600 = 0,001042 s ≈ 1,042 ms.
Απάντηση: 10 bits/χαρακτήρα → 33,3 ms στα 300 bps και ≈1,042 ms στα 9600 bps.
Πρόσεξε:
- Μετράμε 10 bits (με start & stop), όχι μόνο τα 8 bits δεδομένων.
- Έλεγχος: 10/9600 s ≈ 1,042 ms ✓· ο μεγαλύτερος baud δίνει μικρότερο χρόνο.
Πρόβλημα 2 — αρχείο 400 kB (σελ. 145)
Ερώτηση: Πόσος χρόνος για μεταφορά αρχείου 400 kB μέσω null-modem στα 57600 bps;
Λύση:
- Κάθε byte στέλνεται σειριακά ως 10 bits (1 start + 8 data + 1 stop).
- Πλήθος bytes: 400 kB = 400 × 1024 = 409.600 bytes.
- Συνολικά bits: 409.600 × 10 = 4.096.000 bits.
- Χρόνος: 4.096.000 / 57.600 ≈ 71,1 s (≈ 1 λεπτό & 11 s).
Απάντηση: ≈ 71,1 δευτερόλεπτα (400×1024 bytes × 10 bits / 57600 bps).
Πρόσεξε:
- Χρησιμοποιούμε 10 bits/byte λόγω των start/stop bits (πλαισίωση).
- Αν αγνοήσουμε την πλαισίωση (8 bits/byte) → ≈ 56,9 s· αν 1 kB=1000 B → ≈ 69,4 s.