Αρχική Σελίδα | Ομάδα Ανάπτυξης | Επικοινωνία

  




Κεντρική Σελίδα

Τεχνικά Αρθρα
   Κατά Κατηγορία
   Κατά Ημερομηνία

Πληροφορίες
Υποβολή Aρθρου
Επικοινωνία
Όροι Χρήσης
   

ΙΕΕΕ 1394 High Speed Serial Bus


Tεχνικά Aρθρα / Πρωτόκολλα Διασύνδεσης /

Θεματική Ενότητα :     Πρωτόκολλα Διασύνδεσης
Τίτλος Αρθρου :     ΙΕΕΕ 1394 High Speed Serial Bus
Ημερομηνία Δημοσίευσης :     Κυριακή, 13 Μαρτίου 2005
Συγγραφέας :     Μπροκαλάκης Ανδρέας, Καλογεράκης Παναγιώτης
Επικοινωνία :     mprokala@ceid.upatras.gr
Σχετιζόμενα Aρθρα :     -


Περίληψη

Ο IEEE 1394 δίαυλος εμφανίστηκε στο χώρο των υπολογιστών σαν ένας γρήγορος, φθηνός και εύκολος στη χρήση σειριακός δίαυλος για την διασύνδεση υπολογιστών και περιφεριακών συσκευών. Αν και ξεκίνησε από τον χώρο των υπολογιστών, ο δίαυλος αυτός υιοθετήθηκε από τις κορυφαίες εταιρίες κατασκευής καταναλωτικών ηλεκτρονικών συσκευών ως ο ψηφιακός τρόπος διασύνδεσης τους με στόχο την σύγκλιση και επικοινωνία όλων των οικιακών ηλεκτρονικών συσκευών και των υπολογιστών, καταλήγοντας να γίνει standard της ΙΕΕΕ στα μέσα της δεκαετίας του '90, ως ΙΕΕΕ 1394-1995. Το όνομα FireWire με το οποίο είναι ευρέως γνωστό το standard δεν είναι παρά το κατοχυρωμένο από την Apple όνομα της υλοποίησης της.

Βασικοί στόχοι στη σχεδίαση του standard είναι η παροχή στον χρήστη ενός χαμηλού κόστους υψηλής απόδοσης διαύλου διασύνδεσης ηλεκτρονικών συσκευών με plug and play δυνατότητες και εύκολη επεκτασιμότητα. Έτσι η φιλοσοφία του διαύλου βασίζεται στο σχηματισμό ενός peer -to- peer δικτύου με κάθε συσκευή να αποτελεί ένα ισότιμο κόμβο - οπότε δεν απαιτείται η παρουσία κάποιου κεντρικού σημείου (PC host) - ενώ η τοπολογία μπορεί να μεταβάλλεται δυναμικά καθώς συσκευές προστίθενται ή αφαιρούνται από το δίκτυο (dynamic plug and play, auto bus configuration). Για να ανταποκριθεί στις απαιτήσεις των ποικίλων εφαρμογών που απορρέουν από το πλήθος των διαφορετικών συσκευών που θα μπορούσαν να συνδεθούν μέσω του διαύλου (π.χ. audio/video συσκευές, μονάδες αποθήκευσης, περιφερειακά υπολογιστών κτλ) το IEEE 1394 προσφέρει υψηλές ταχύτητες μεταφοράς δεδομένων της τάξης των 100, 200 και 400 Mbits/s και δύο βασικούς τρόπους μεταφοράς πληροφορίας : ισόχρονες και ασύγχρονες μεταφορές.

Οι ισόχρονες μεταφορές χρησιμοποιούνται από εφαρμογές όπου απαιτείται εγγυημένη χρονική καθυστέρηση αλλά υπάρχει ανοχή στην αξιοπιστία των δεδομένων, όπως για παράδειγμα η μεταφορά video πληροφορίας. Αντίθετα οι ασύγχρονες μεταφορές χρησιμοποιούνται για την μεταφορά control πληροφορίας καθώς και δεδομένων όπου είναι απαραίτητη η εγγυημένη αξιοπιστία αλλά υπάρχει ελαστικότητα όσον αφορά τον χρόνο παράδοσης (π.χ. μεταφορά δεδομένων από σκληρό δίσκο).

Το standard περιγράφεται επίσημα από το IEEE 1394-1995 specification. Aυτό καθορίζει ρυθμούς μεταφοράς 100, 200 και 400 Mbps. Επειδή ορισμένες λεπτομέρειες υλοποίησης αφέθηκαν στην ευχέρεια των κατασκευαστών παρατηρήθηκαν ορισμένα προβλήματα συμβατότητας μεταξύ συσκευών που χρησιμοποιούσαν διαφορετικές υλοποιήσεις. Τούτο οδήγησε στην αναθεώρηση του standard το 2000 και στον καθορισμό της ΙΕΕΕ 1394a specification. Αυτή η αναθεωρημένη έκδοση του προτύπου περιγράφει με μεγαλύτερη αυστηρότητα τις προδιαγραφές του standard και προσθέτει κάποια νέα χαρακτηριστικά για την βελτίωση της απόδοσης του. Ήδη γίνεται εργασία για την επόμενη έκδοση του προτύπου (1394b) η οποία έχει ως στόχο την αύξηση του ρυθμού μεταφοράς σε 800, 1600 και 3200Mbps, την υποστήριξη μεταδόσεων σε μεγαλύτερες αποστάσεις μέσω καλωδίων συνεστραμένου ζεύγους (twisted pair) και οπτικών ινών, ενώ θα διατηρεί την προς τα πίσω συμβατότητα. Το παρόν κείμενο περιγράφει την 1394-1995 και 1394a προδιαγραφή.


Περιγραφή Προτύπου

Το 1394 πρωτόκολλο είναι ένα peer -to- peer δίκτυο. Κάθε κόμβος του δικτύου είναι μια συσκευή εξοπλισμένη με την απαραίτητη λειτουργικότητα ώστε να μπορεί να εκτελέσει configuration και control λειτουργίες. Καθένας από τους κόμβους του δικτύου μπορεί να έχει πολλαπλά ports (υποδοχές σύνδεσης με άλλες συσκευές) που λειτουργούν ως repeater. Δηλαδή ότι πακέτα λαμβάνονται σε κάποιο port ενός κόμβου προωθούνται σε όλα τα άλλα ports του ίδιου κόμβου.

Στο Σχήμα 1 μπορείτε να δείτε ένα παράδειγμα ενός πιθανού δικτύου 1394 οικιακών συσκευών :


Σχήμα 1.

Επειδή το 1394 είναι ένα peer -to- peer πρωτόκολλο, δεν απαιτείται η ύπαρξη ενός κεντρικού host στο bus. Οποιαδήποτε συσκευή υποστηρίζει το 1394 πρωτόκολλο μπορεί να προωθήσει δεδομένα προς οποιαδήποτε άλλη συσκευή του δικτύου.

Ο μέγιστος αριθμός συσκευών στο bus είναι 63. Σύμφωνα με την προδιαγραφή P1394.1 αν υπάρχει απαίτηση για σύνδεση περισσότερων συσκευών χρησιμοποιούνται bridges οπότε ο συνολικός αριθμός συσκευών που μπορεί να υπάρξει σε ένα 1394 δίκτυο είναι 65536 (64 κόμβοι σε κάθε bus και υποστήριξη μέχρι 1024 buses). Οι συσκευές στο bus συνδέονται με ένα daisy chained τρόπο, οπότε δεν υπάρχει κάποια μορφή hub συσκευής στο δίκτυο όπως σε ένα Ethernet ή USB δίκτυο και επιπλέον δεν επιτρέπεται η δημιουργία κύκλων. Κάθε κόμβος στο bus με 2 ή περισσότερα ports προωθεί όλη την κίνηση που δέχεται με αποτέλεσμα κάθε κόμβος που συμμετέχει στο δίκτυο να εκτίθεται σε όλη την κίνηση.

Το configuration του bus γίνεται αυτόματα οποτεδήποτε κάποια συσκευή συνδεθεί σε αυτό. Στόχος είναι να δημιουργηθεί ένα δένδρο. Η διαδικασία ξεκινά από τους κόμβους - φύλλα, δηλαδή τις συσκευές εκείνες που συνδέονται με μόνο μία άλλη συσκευή, και συνεχίζεται με τους γειτονικούς κόμβους. Σε ένα bus όπου συνδέονται τρεις ή περισσότερες συσκευές κάποιος κόμβος θα αναδειχθεί κάθε φορά που γίνεται configuration ως κόμβος - ρίζα του δικτύου. Σε αδρές γραμμές ο κόμβος αυτός επιφορτίζεται με την παραγωγή κάποιων σημάτων για τον συγχρονισμό των συσκευών στο bus και την διαιτησία για την πρόσβαση σε αυτό.

Ένα 1394 bus εμφανίζεται σαν ένας μεγάλος memory-mapped χώρος με κάθε κόμβο να καταλαμβάνει μια συγκεκριμένη περιοχή διευθύνσεων. Ο χώρος μνήμης βασίζεται στην IEEE 1212 Control and Status Register αρχιτεκτονική με κάποιες επεκτάσεις ειδικά για το 1394 πρότυπο. Κάθε κόμβος υποστηρίζει 48 bits χώρο διευθύνσεων (256 TeraBytes). Όπως έχει αναφερθεί κάθε bus μπορεί να υποστηρίξει μέχρι και 64 κόμβους και συνολικά το πρότυπο 1394 μέχρι 1024 buses, με αποτέλεσμα συνολικά να προκύπτουν 64 Bits διευθύνσεων, ή αλλιώς 16 ΕxaBytes χώρου μνήμης.

Η μεταφορά δεδομένων μεταξύ των συσκευών γίνεται με δύο τρόπους : ισόχρονα ή ασύγχρονα. Οι ισόχρονες μεταφορές γίνονται πάντα broadcast είτε με ένα πομπό και ένα δέκτη είτε με ένα πομπό και πολλούς δέκτες. Στις μεταφορές αυτές δεν γίνεται διόρθωση λαθών ούτε και επαναμετάδοση. Μέχρι το 80% του διαθέσιμου bandwidth του bus μπορεί να χρησιμοποιηθεί για τέτοιου είδους μεταφορές. Η κατανομή του bandwidth στις διάφορες συσκευές καθορίζεται από ένα κόμβο ο οποίος αναλαμβάνει το ρόλο του Isochronous Resource Manager (IRM). Έτσι το μέγιστο ποσοστό από το bandwidth που μπορεί να καταλάβει κάποια συσκευή περιορίζεται από τον αριθμό των υπόλοιπων συσκευών στις οποίες έχει ήδη ανατεθεί bandwidth από τον IRM.

Aπό την άλλη οι ασύγχρονες μεταφορές δεν γίνονται broadcast αλλά στοχεύουν πάντα σε ένα συγκεκριμένο κόμβο με μια ρητή (explicit) διεύθυνση. Στις μεταφορές αυτού του τύπου δεν είναι εγγυημένο ένα ποσοστό του bandwidth στο bus, αλλά είναι εγγυημένη η πρόσβαση στο bus με μια δίκαιη διαδικασία όταν επιτρέπονται ασύγχρονες μεταφορές. Για τις ασύγχρονες μεταφορές υπάρχει πάντα επιβεβαίωση και απάντηση από τον παραλήπτη. Αυτό επιτρέπει έλεγχο λαθών και την ύπαρξη μηχανισμών αναμετάδοσης.

Το 1394 standard ορίζει τέσσερα επίπεδα πρωτοκόλλων, το φυσικό (physical layer), το επίπεδο συνδέσμου (link layer), το επίπεδο συνδιαλλαγών (transaction layer) και το επίπεδο διαχείρισης του σειριακού διαύλου (serial bus management layer). Στο σχήμα (Σχήμα 2) που ακολουθεί παρουσιάζεται η στοίβα πρωτοκόλλων του 1394 standard :


Σχήμα 2.

Το φυσικό επίπεδο είναι τοποθετημένο στο χαμηλότερο κομμάτι της στοίβας και είναι εκείνο που αναλαμβάνει να παρέχει το ηλεκτρικό και μηχανικό interface προς το δίαυλο, κάνοντας εφικτή την μεταφορά πακέτων. Επίσης αναλαμβάνει την διαιτησία και το configuration του διαύλου. Υλοποιείται σε hardware και είναι συνήθως ένα αυτόνομο ολοκληρωμένο (αν και υπάρχει πληθώρα υλοποιήσεων που ενσωματώνουν στο ίδιο ολοκληρωμένο και το link επίπεδο).

Το επίπεδο συνδέσμου αναλαμβάνει την διαμόρφωση και αποδιαμόρφωση των πακέτων, τον έλεγχο λαθών και την προώθηση τους στα κατάλληλα επίπεδα της στοίβας. Επίσης χειρίζεται τις επιβεβαιώσεις και απαντήσεις των ασύγχρονων πακέτων. Υλοποιείται και αυτό σε hardware είτε σε ξεχωριστά ολοκληρωμένα είτε σε ολοκληρωμένα που περιλαμβάνουν και το φυσικό επίπεδο.

Το επίπεδο συνδιαλλαγών σχετίζεται με τις μεταφορές ασύγχρονων πακέτων. Υλοποιείται κυρίως σε software όπως και το επίπεδο διαχείρισης του σειριακού διαύλου. Το τελευταίο επιφορτίζεται με λειτουργίες που επεκτείνονται σε περισσότερους του ενός κόμβου και σχετίζονται με τον συγχρονισμό του διαύλου, την κατανομή των πόρων και γενικότερα την διαχείριση του διαύλου.

Πέρα από αυτά τα επίπεδα που ορίζονται στο standard του 1394 διαύλου υπάρχει και το επίπεδο εφαρμογής που τοποθετείται πάνω από την προαναφερθείσα αυτή στοίβα πρωτοκόλλων και είναι αυτό που γίνεται εμφανές στο χρήστη. Λόγω της ποικιλομορφίας των συσκευών που καλείται να διασυνδέσει ο δίαυλος, έχει αναπτυχθεί ένας πολύ μεγάλος αριθμός πρωτοκόλλων εφαρμογής που χωρίζονται σε δύο βασικές κατηγορίες : τα πρωτόκολλα που σχετίζονται με καταναλωτικές συσκευές και τα πρωτόκολλα που σχετίζονται με υπολογιστές. Ενδεικτικό του πλήθους των πρωτοκόλλων που έχουν εισαχθεί σε αυτό το επίπεδο είναι το παρακάτω σχήμα (Σχήμα 3) που παρουσιάζει ένα μέρος μόνο των πρωτοκόλλων αυτών :


Σχήμα 3.

Στο Σχήμα 3 τα διάφορα πρωτόκολλα που παρουσιάζονται έχουν ομαδοποιηθεί στις δύο κατηγορίες που προαναφέρθηκαν. Για παράδειγμα στην κατηγορία των πρωτοκόλλων για υπολογιστές μπορούμε να εντοπίσουμε πρωτόκολλα που σχετίζονται με drivers για κάρτες 1394 υπολογιστών (Open Host Controller Interface) ή για TCP/IP δικτύωση πάνω από 1394 (IP over 1394). Από την άλλη, πρωτόκολλα όπως DV (Digital Video) ή AV/C (Audio Video / Command) χρησιμοποιούνται για την διασύνδεση καταναλωτικών οπτικοακουστικών συσκευών.


Φυσικό Επίπεδο

Το φυσικό επίπεδο του 1394 πρωτοκόλλου περιλαμβάνει τα ηλεκτρικά σήματα, τους μηχανικούς συνδετήρες (connectors) και την καλωδίωση, τους μηχανισμούς διαιτησίας, και την σειριακή κωδικοποίηση και αποκωδικοποίηση των δεδομένων που αποστέλονται ή λαμβάνονται.

Το φυσικό μέσο που χρησιμοποιείται για την διασύνδεση των συσκευών είναι θωρακισμένο καλώδιο που περιλαμβάνει τρία ζεύγη συνεστραμένων αγωγών. Δύο από αυτά χρησιμοποιούνται για την μεταφορά δεδομένων και το τρίτο ζεύγος παρέχει ενέργεια στο δίαυλο. Οι συνδετήρες που χρησιμοποιούνται είναι μικρές συσκευές έξι ακροδεκτών, αν και σύμφωνα με το 1394a καθορίζονται επίσης και συνδετήρες τεσσάρων ακροδεκτών για αυτόνομες ενεργειακά συσκευές που όμως στο γράφο του σχηματιζόμενου 1394 bus είναι κόμβοι φύλλα. Στην τελευταία περίπτωση δεν περιλαμβάνονται οι ακροδέκτες τροφοδοσίας. Το μήκος των βασικών καλωδίων περιορίζεται στα 4.5 μέτρα. Διατίθενται και παχύτερα καλώδια που επιτρέπουν μεγαλύτερο μήκος.


Σχήμα 4.

Τα δύο συνεστραμένα ζεύγη που χρησιμοποιούνται για τη μετάδοση των σημάτων (ονομάζονται TPA και TPB) , είναι διπλής κατεύθυνσης και έχουν δυνατότητα τριών καταστάσεων. Το TPA χρησιμοποιείται για τη μετάδοση του σήματος strobe και την λήψη δεδομένων, ενώ το TPB για τη λήψη του σήματος strobe και τη μετάδοση δεδομένων. Δεν υπάρχει κάποια γραμμή που να μεταφέρει κάποιο ξεχωριστό σήμα χρονισμού. Για τον συγχρονισμό των συσκευών στο bus χρησιμοποιείται η τεχνική data strobe encoding. Σύμφωνα με την τεχνική αυτή η ανάκτηση του ρολογιού γίνεται μέσω των σειριακών δεδομένων και του σήματος strobe, με αποτέλεσμα να παρουσιάζεται αυξημένη ανοχή σε σχέση με κάποια παραδοσιακή μέθοδο ρολογιού / δεδομένων. Με την κωδικοποίηση data strobe , είτε τα δεδομένα , είτε το σήμα strobe (όχι όμως και τα δύο) αλλάζουν στη διάρκεια ενός bit. Επομένως, το ρολόι μπορεί να ανακτηθεί εκτελώντας τη λογική πράξη xor ανάμεσα στα δεδομένα και το σήμα strobe, όπως φαίνεται στο Σχήμα 5.


Σχήμα 5.

Το πρότυπο 1394 καθορίζει δύο ειδών σηματοδότηση , διαφορική (differential) και common mode. Η διαφορική σηματοδότηση χρησιμοποιείται κατά τις χρονικές περιόδους που στο bus γίνεται μετάδοση πακέτων, configuration, διαιτησία για την απόκτηση πρόσβασης και κατά τη διαδικασία επανεκκίνησης (reset) του διαύλου. Αντίθετα, η common mode χρησιμοποιείται για την ανίχνευση της σύνδεσης ή αποσύνδεσης κάποιας συσκευής, για speed signaling και Suspend/Resume signaling.

To φυσικό επίπεδο διαδραματίζει ένα σημαντικό ρόλο για το configuration του διαύλου και για τις φάσεις της διαιτησίας που ορίζει το πρότυπο. Το configuration του διαύλου συνίσταται στη μετατροπή μιας επίπεδης φυσικής τοπολογίας σε μία λογική δενδρική δομή με έναν κόμβο ρίζα. Ο δίαυλος επανεκκινείται (reset) και αναδιαμορφώνεται (reconfiguration) οποτεδήποτε μια συσκευή προστεθεί σ' αυτόν ή αφαιρεθεί από αυτόν. Η επανεκκίνηση μπορεί να ξεκινήσει και μέσω software. Η διαδικασία configuration αποτελείται από τρεις φάσεις :

1. Bus reset and initialization : Το reset σηματοδοτείται όταν ένας κόμβος οδηγήσει και τις δύο γραμμές (TPA και TPB) στο λογικό 1. Λόγω των ηλεκτρικών προδιαγραφών των drivers που χρησιμοποιούνται , το λογικό 1 γίνεται πάντα αντιληπτό από ένα port , ακόμα και αν o διπλής κατεύθυνσης driver του βρίσκεται σε κατάσταση μετάδοσης. Όταν ένας κόμβος ανιχνεύσει μια reset κατάσταση στους drivers του, τότε θα προωθήσει το σήμα προς όλα τα άλλα ports που διαθέτει. Στη συνέχεια ο κόμβος εισέρχεται σε κατάσταση αδράνειας (idle state) για καθορισμένο χρονικό διάστημα, ώστε να επιτραπεί η διάδοση της reset πληροφορίας σε όλους τους κόμβους του διαύλου. Το reset διαγράφει οποιαδήποτε τοπολογική πληροφορία υπάρχει στον κόμβο, αν και οι ισόχρονοι πόροι τείνουν να παραμένουν αναλλοίωτοι κατά τη διάρκεια του reset.

2. Tree Identification : Η διαδικασία tree identification καθορίζει την τοπολογία του διαύλου. Μετά τη διαδικασία reset και πριν την tree identification, ο δίαυλος έχει μια επίπεδη λογική τοπολογία , που αντικατοπτρίζει άμεσα τη φυσική τοπολογία. Μετά το τέλος του tree identification , ένας μοναδικός κόμβος θα έχει χαρακτηριστεί ως κόμβος ρίζα και η λογική τοπολογία του διαύλου θα είναι πλέον δενδρική. Το παράδειγμα που ακολουθεί δείχνει πως εφαρμόζεται η tree identification διαδικασία.

Έστω ότι έχουμε 6 συσκευές συνδεδεμένες με τον ακόλουθο τρόπο :


Σχήμα 6.

Οι συσκευές Α, B και C έχουν μόνο ένα port συνδεδεμένο, άρα είναι κόμβοι - φύλλα. Αμέσως μετά το reset, οι κόμβοι αυτοί θα στείλουν το σήμα Parent_Notify στα data και strobe καλώδια. Όταν κάποιος ενδιάμεσος κόμβος λάβει το σήμα αυτό σε ένα από τα ports του, τότε μαρκάρει το port εκείνο ότι έχει ένα παιδί και επιστρέφει το σήμα Child_Notify στα data και strobe καλώδια εκείνου του port. Όταν το σήμα αυτό ληφθεί από το κόμβο - φύλλο, τότε αυτός μαρκάρει το port ως parent port και σταματάει την εκπομπή του σήματος Parent_Notify ως ένδειξη της λήψης του σήματος Child_Notify. H κατάσταση του διαύλου στο σημείο αυτό απεικονίζεται στο Σχήμα 7.


Σχήμα 7.

Στο τέλος της παραπάνω διαδικασίας οι κόμβοι - φύλλα έχουν αναγνωριστεί, αλλά οι συσκευές D και F έχουν ακόμα ένα μόνο port που δεν έχει λάβει κάποιο Parent_Notify σήμα. Έτσι οι συσκευές αυτές θα στείλουν το σήμα Parent_Notify από τα ports τους που δεν το έχουν λάβει ακόμα. Έτσι η συσκευή E θα λάβει το σήμα Parent_Notify και στα δύο εναπομείναντα ports (1 και 3), και θα επιστρέψει το σήμα Child_Notify. Με τον τρόπο αυτό η συσκευή E θα έχει μαρκάρει όλα της τα ports ως περιέχοντα παιδιά και έτσι θα γίνει ο κόμβος ρίζα.


Σχήμα 8.

Στο τέλος της διαδικασίας αυτής θα μπορούσαν να ανταγωνίζονται για την ανάδειξη τους ως ρίζα του δένδρου περισσότεροι του ενός κόμβοι. Στην περίπτωση αυτή, εφαρμόζεται ένας τυχαίος χρονομετρητής οπισθοδρόμησης (back-off timer) για την ανάδειξη του κόμβου - ρίζα. Ένας κόμβος μπορεί να επιβάλλει την ανάδειξη του ως κόμβο - ρίζα καθυστερώντας την συμμετοχή του στην διαδικασία tree identification για κάποιο μικρό χρονικό διάστημα.

3. Self Identification : H διαδικασία αυτή έπεται της Tree-Identification διαδικασίας και συνίσταται στην ανάθεση φυσικών IDs σε κάθε κόμβο του διαύλου, στην ανταλλαγή πληροφορίας για την ταχύτητα μετάδοσης κάθε κόμβου και στην ενημέρωση όλων των κόμβων του διαύλου για την τοπολογία που έχει τελικά διαμορφωθεί. Η self-identification διαδικασία ξεκινά από τον κόμβο - ρίζα με την αποστολή του σήματος arbitration grant στο port με τον χαμηλότερο αριθμό. Στο σημείο αυτό όλοι οι κόμβοι στο δίαυλο έχουν τον self ID μετρητή μηδενισμένο. Όταν ένας ενδιάμεσος κόμβος λάβει το σήμα αυτό, το προωθεί στο χαμηλότερα αριθμημένο port του στο οποίο συνδέεται ένα παιδί. Όταν τελικά το σήμα αυτό ληφθεί από ένα κόμβο - φύλλο, δεν μπορεί να μεταδοθεί παρακάτω οπότε ο κόμβος αυτός αναθέτει στον εαυτό του το φυσικό ΙD 0 και στέλνει προς τα πάνω το self ID πακέτο. Το πακέτο αυτό μεταδίδεται σε όλους τους κόμβους του διαύλου οι οποίοι με την λήψη του αυξάνουν κατά ένα τον self ΙD μετρητή τους. Στο σημείο αυτό ο κόμβος - φύλλο θα αποστείλει το self ID done σήμα, για να πληροφορήσει τον κόμβο - πατέρα ότι όλοι οι κόμβοι από κάτω του έχουν ολοκληρώσει την self ΙD διαδικασία. Ο ενδιάμεσος κόμβος δεν θα προωθήσει το σήμα αυτό προς τις ανώτερες βαθμίδες του δένδρου παρά μόνο όταν όλες οι συσκευές που βρίσκονται συνδεδεμένες στα ports του έχουν ολοκληρώσει την self ID διαδικασία. Όταν συμβεί αυτό ο κόμβος θα αναθέσει στον εαυτό του το επόμενο φυσικό ID και θα στείλει το σήμα self ID done προς τον κόμβο στην ανώτερη βαθμίδα, ο οποίος θα συνεχίσει με τον ίδιο τρόπο την διαδικασία με τις συσκευές που βρίσκονται στο αμέσως επόμενο χαμηλότερα αριθμημένο port του. Τελικά η διαδικασία ολοκληρώνεται όταν ο κόμβος ρίζα έχει λάβει το σήμα self ID done από όλα τα ports του οπότε και αναθέτει στον εαυτό του το επόμενο φυσικό ID. Να σημειωθεί ότι με την διαδικασία αυτή ο κόμβος ρίζα θα είναι πάντα η συσκευή με το μεγαλύτερο φυσικό ID στο δίαυλο.

Κατά την διάρκεια της self ID διαδικασίας, οι γειτονικοί κόμβοι ανταλλάζουν πληροφορίες για τις μέγιστες ταχύτητες μετάδοσης που υποστηρίζουν. Έτσι οι κόμβοι μπορούν να μεταδίδουν με την ταχύτητα που υποστηρίζει η αργότερη συσκευή στο μονοπάτι μεταξύ αποστολέα και παραλήπτη.

Τέλος, κατά την διάρκεια της διαδικασίας αυτής, όλοι οι κόμβοι που επιθυμούν να αναλάβουν το ρόλο του Isochronous Resource Manager, θα το υποδείξουν μέσω των self ΙD πακέτων που αποστέλλουν. Ο κόμβος με το υψηλότερο φυσικό ID που επιθυμεί να γίνει IRM θα αναλάβει το ρόλο αυτό.

Στο φυσικό επίπεδο, εκτός από το configuration του διαύλου γίνονται και οι διαδικασίες διαιτησίας. Όλες οι διεργασίες στο δίαυλο χρονίζονται μέσω ενός βασικού ρολογιού 8kHz που παράγεται από τον cycle master κόμβο, που ταυτίζεται με τον κόμβο ρίζα. Έτσι η διάρκεια ενός κύκλου είναι 125μsec και η δομή του περιγράφεται από το Σχήμα 9.


Σχήμα 9.

Kάθε κύκλος ξεκινά με την μετάδοση από τον cycle master του πακέτου cycle start. Όλες οι συσκευές στο δίαυλο χρησιμοποιούν αυτό το πακέτο για να συγχρονίσουν τα ρολόγια τους. Αμέσως μετά την μετάδοση του cycle start πακέτου οι συσκευές που επιθυμούν να μεταδώσουν ισόχρονα πακέτα ανταγωνίζονται για την απόκτηση του διαύλου. Σύμφωνα με το σχήμα διαιτησίας που ακολουθείται όποτε επιθυμεί μια συσκευή να αποκτήσει τον δίαυλο στέλνει ένα σήμα στον κόμβο - πατέρα, ο οποίος με την σειρά του το προωθεί στους κόμβους στα ανώτερα στρώματα της δενδρικής δομής του διαύλου. Ο κόμβος ρίζα είναι τελικά εκείνος που θα πάρει την απόφαση για την παραχώρηση του διαύλου, με βάση την λογική ότι εξυπηρετείται η πρώτη αίτηση που θα ληφθεί. Έτσι είναι προφανές ότι οι συσκευές που βρίσκονται πιο κοντά στη ρίζα θα εξυπηρετηθούν πρώτες.

Σε κάθε συσκευή που θέλει να μεταδώσει ισόχρονα πακέτα, ο Isochronous Resource Manager αναθέτει κάποιο λογικό κανάλι. Σε κάθε κύκλο του διαύλου ένα κανάλι μπορεί να χρησιμοποιηθεί μόνο μία φορά. Έτσι εξασφαλίζεται ότι κάθε συσκευή στην οποία έχει παραχωρηθεί κάποιο κανάλι θα μεταδώσει κάποια στιγμή στην διάρκεια του κύκλου και επίσης εξασφαλίζεται ότι οι συσκευές που βρίσκονται πολύ κοντά στη ρίζα δεν θα μονοπωλούν το δίαυλο. Αν κάποια συσκευή έχει μεγάλες απαιτήσεις σε bandwidth και υπάρχουν διαθέσιμα κανάλια, τότε υπάρχει η δυνατότητα να της εκχωρηθούν περισσότερα του ενός κανάλια από τον IRM έτσι ώστε να μπορεί να μεταδώσει περισσότερα πακέτα σε κάθε κύκλο.

Όταν μεταδοθούν τα δεδομένα κάποιου ισόχρονου καναλιού, τότε ο δίαυλος παραμένει αδρανής περιμένοντας κάποιο άλλο ισόχρονο κανάλι να τον διεκδικήσει. Στην περίπτωση που δεν υπάρχει κάποιο κανάλι που μπορεί να μεταδώσει τότε ο δίαυλος θα παραμείνει αδρανής για χρονικό διάστημα μεγαλύτερο από εκείνο που μεσολαβεί μεταξύ δύο ισόχρονων μεταδόσεων (ο χρόνος αυτός ονομάζεται isochronous gap, έχει μικρή διάρκεια - 40 έως 50 nsec - και είναι ο χρόνος που απαιτείται για την διεκδίκηση και την ανάθεση του διαύλου). Αντίστοιχα με το isochronous gap ορίζεται και asynchronous ή subaction gap. Είναι ο χρόνος που μεσολαβεί ανάμεσα σε δύο ασύγχρονες υπομεταφορές (subactions) και είναι μεγαλύτερος από τον χρόνο του isochronous gap. Ως subaction ορίζεται η μετάδοση ενός ασύγχρονου πακέτου και η λήψη της επιβεβαίωσης του. Όταν ο χρόνος αδράνειας του διαύλου γίνει μεγαλύτερος από ένα subaction gap, τότε μπορούν οι συσκευές που επιθυμούν να μεταδώσουν ασύγχρονα πακέτα να διεκδικήσουν το δίαυλο. Το σχήμα διαιτησίας που ακολουθείται είναι ίδιο με εκείνο που ακολουθείται για τις ισόχρονες μεταφορές.

Σε σχέση με τις ισόχρονες μεταφορές, στις ασύγχρονες δεν υπάρχει κάποιος manager που εκχωρεί κανάλια μετάδοσης. Έτσι οι συσκευές που επιθυμούν να μεταδώσουν περισσότερα του ενός πακέτα στην διάρκεια του κύκλου, έχουν την δυνατότητα να διεκδικήσουν πολλές φορές το δίαυλο. Έτσι οι συσκευές που βρίσκονται κοντά στη ρίζα ή και η ίδια η ρίζα μπορούν να μονοπωλήσουν το δίαυλο. Για να αποφευχθεί αυτή η κατάσταση το πρωτόκολλο ορίζει το διάστημα fairness interval και το arbitration rest gap. Κάθε συσκευή που μεταδίδει ασύγχρονα πακέτα, διαθέτει ένα bit που ονομάζεται arbitration enable bit. Η τιμή του bit αυτού καθορίζει αν η συσκευή έχει δικαίωμα να διεκδικήσει τον δίαυλο κατά την διάρκεια του τρέχοντος κύκλου. Αρχικά η τιμή του bit αυτού είναι 1 και μόλις η συσκευή μεταδώσει κάποιο πακέτο μηδενίζεται. Με τον τρόπο αυτό, όλες οι συσκευές έχουν μια δίκαιη δυνατότητα πρόσβασης στο δίαυλο. Όταν όλες οι συσκευές που ζητούσαν πρόσβαση στο δίαυλο έχουν εξυπηρετηθεί, τότε ο δίαυλος θα παραμείνει αδρανής γιατί όλες οι συσκευές θα έχουν μηδενίσει το arbitration enable bit και έτσι δεν θα προσπαθούν να διεκδικήσουν πρόσβαση. Έτσι ο χρόνος αδράνειας του διαύλου θα υπερβεί το subaction gap και μόλις υπερβεί μια τιμή που ορίζεται ως arbitration rest gap, τότε οι συσκευές θα επαναθέσουν το arbitration enable bit και θα προσπαθήσουν να ξαναδιεκδικήσουν το δίαυλο.

Το φυσικό επίπεδο επιφορτίζεται και με κάποιες επιπλέον λειτουργίες από αυτές που αναλύθηκαν παραπάνω. Πιο συγκεκριμένα, στην περίπτωση που δεν υπάρχει υποστήριξη του link επιπέδου στη συσκευή, τότε το φυσικό επίπεδο λειτουργεί ως repeater πάνω στο δίαυλο. Επιπλέον το φυσικό επίπεδο επιφορτίζεται και με την διάγνωση ορισμένων λαθών που μπορούν να συμβούν, όπως η δημιουργία κύκλων στο δίαυλο και η πτώση ισχύος πάνω στο καλώδιο.


Επίπεδο Συνδέσμου

Το επίπεδο συνδέσμου αποτελεί το interface μεταξύ του φυσικού επιπέδου και του επιπέδου συνδιαλλαγών. Το επίπεδο αυτό είναι υπεύθυνο για τον έλεγχο των λαμβανόμενων CRCs (Cyclic Redundancy Code) καθώς και τον υπολογισμό και την προσάρτηση των CRCs στα μεταδιδόμενα πακέτα. Επίσης επειδή το επίπεδο συνδιαλλαγών δεν χρησιμοποιείται στις ισόχρονες μεταφορές, το επίπεδο συνδέσμου είναι άμεσα υπεύθυνο για την αποστολή και λήψη ισόχρονων δεδομένων. Τέλος, στο επίπεδο αυτό γίνεται ο έλεγχος της επικεφαλίδας των πακέτων ούτως ώστε να καθοριστεί ο τύπος της συνδιαλλαγής που βρίσκεται σε εξέλιξη για να πληροφορηθεί σχετικώς το επίπεδο συνδιαλλαγών.

Στο ΙΕΕΕ1394-1995 standard δεν καθορίζεται με αυστηρό τρόπο το interface μεταξύ του φυσικού επιπέδου και του επιπέδου συνδέσμου. Παρόλα αυτά, στην αναθεωρημένη έκδοση του standard (1394a) το interface μεταξύ των δύο επιπέδων αποτελεί μέρος του specification ώστε να αποτραπούν ασυμβατότητες μεταξύ των ολοκληρωμένων διαφορετικών κατασκευαστών.

Το interface των δύο επιπέδων αποτελείται από τουλάχιστον 17 σήματα που πρέπει να είναι είτε μαγνητικά είτε χωρητικά απομονωμένα. Τα κυριότερα από αυτά περιγράφονται στον πίνακα που ακολουθεί :

Σήμα Πηγή Σήματος Περιγραφή
LReq Επίπεδο Συνδέσμου Link request - χρησιμοποιείται για να ξεκινήσει μια αίτηση για αποστολή πακέτου, καθώς και μια αίτηση για απευθείας ανάγνωση κάποιου καταχωρητή του φυσικού επιπέδου.
SClk Φυσικό Επίπεδο 49.152MHz ρολόι που χρησιμοποιείται για τον συγχρονισμό της ανάγνωσης δεδομένων.
Data[0:7] Οποιοδήποτε από τα δύο Δεδομένα - η μεταφορά των δεδομένων γίνεται στα 50 Mbps οπότε οι γραμμές που απαιτούνται εξαρτώνται από την ταχύτητα που υποστηρίζεται :
100Mbps - D[0:1]
200Mbps - D[0:3]
400Mbps - D[0:7]
Oι γραμμές αυτές χρησιμοποιούνται επίσης από το φυσικό επίπεδο για την μεταφορά πληροφορίας κατάστασης προς το επίπεδο συνδέσμου.
Ctl[0:1] Οποιοδήποτε από τα δύο Control interface - καθορίζει την κατάσταση στην οποία βρίσκεται το interface.
LPS Επίπεδο Συνδέσμου Link power status - δείχνει αν το επίπεδο συνδέσμου τροφοδοτείται από ρεύμα.
Link On Φυσικό Επίπεδο Δείχνει ότι το φυσικό επίπεδο έχει αρχίσει να τροφοδοτείται από ρεύμα οπότε πρέπει και το επίπεδο συνδέσμου να αρχίσει να λειτουργεί.

Πέρα από τα σήματα αυτά, υπάρχουν και κάποια που σχετίζονται με την ειδικότερη υλοποίηση του φυσικού μέσου σε backplane.

Όπως έχει ήδη αναφερθεί, το επίπεδο συνδέσμου αναλαμβάνει να διαμορφώσει σε πακέτα τα δεδομένα που λαμβάνει από τα υψηλότερα επίπεδα και να τα στείλει στο φυσικό επίπεδο και αντίστροφα να αποδιαμορφώσει τα πακέτα που λαμβάνει από το φυσικό επίπεδο και να προωθήσει τα δεδομένα προς τα υψηλότερα επίπεδα. Υπάρχουν δύο ειδών πακέτα. τα ισόχρονα και τα ασύγχρονα.

Τα ασύγχρονα πακέτα έχουν την μορφή που παρουσιάζεται στο Σχήμα 10.


Σχήμα 10.

Το πακέτο χωρίζεται σε δύο βασικά μέρη : την επικεφαλίδα και το φορτίο. Στην επικεφαλίδα περιλαμβάνονται πληροφορίες όπως η διεύθυνση αποστολέα και παραλήπτη (Source_ID και Destination_ID), ο κωδικός που προσδιορίζει το είδος της συνδιαλλαγής (Transaction Code - tcode), η προτεραιότητα του πακέτου (Priority - Pri), η αρχική διεύθυνση καταχωρητή στο κόμβο παραλήπτη (Destination_offset), το μέγεθος σε bytes των δεδομένων στο φορτίο κ.ά. Στο φορτίο τοποθετούνται τα δεδομένα προς μετάδοση. Τόσο στην επικεφαλίδα όσο και στο φορτίο υπάρχει CRC πεδίο για έλεγχο λαθών.

Τα ισόχρονα πακέτα είναι πιο απλά στη δομή τους. Ένα τυπικό ισόχρονο πακέτο περιγράφεται στο Σχήμα 11.


Σχήμα 11.

Παρατηρείστε ότι σε σχέση με το ασύγχρονο πακέτο, το ισόχρονο δεν περιλαμβάνει κάποια διεύθυνση προορισμού. Το πακέτο απλά τοποθετείται στο δίαυλο σε κάποιο ισόχρονο κανάλι, και έτσι οποιοσδήποτε κόμβος επιλέξει να «ακούει» σε αυτό το κανάλι θα λάβει την πληροφορία αυτού του πακέτου.

Μια τυπική υλοποίηση του επιπέδου συνδέσμου περιλαμβάνει το interface με το φυσικό επίπεδο, ένα μηχανισμό παραγωγής και ελέγχου CRC, FIFO ουρές μετάδοσης και λήψης, interrupt καταχωρητές, ένα interface με τον host και τουλάχιστον ένα DMA κανάλι. Αυτόνομα ολοκληρωμένα επιπέδου συνδέσμου διατίθενται από πολλούς κατασκευαστές όπως η Texas Instruments, η Philips, η NEC, η SONY και η Fujitsu. Σε σχέση με τα ολοκληρωμένα που υλοποιούν το φυσικό επίπεδο, επειδή το επίπεδο συνδέσμου διαχειρίζεται άμεσα τα ισόχρονα πακέτα, συνήθως στα ολοκληρωμένα που το υλοποιούν συμπεριλαμβάνονται και κάποια επιπλέον χαρακτηριστικά, όπως copyright protection, interface με Α/V συσκευές κ.ά.


Επίπεδο Συνδιαλλαγών.

Το επίπεδο συνδιαλλαγών χρησιμοποιείται για τις ασύγχρονες μεταφορές. Το 1394 πρωτόκολλο χρησιμοποιεί ένα μηχανισμό αίτησης - απόκρισης, με επιβεβαιώσεις να παράγονται σε κάθε φάση. Επιτρέπονται αρκετοί τύποι συνδιαλλαγών, οι οποίοι συνοψίζονται στους παρακάτω :

  • Aπλές αναγνώσεις 4 byte (4 byte = 1 quadlet)
  • Aπλές εγγραφές 4 byte
  • Αναγνώσεις ποικίλου μήκους
  • Εγγραφές ποικίλου μήκους
  • Συνδιαλλαγές κλειδώματος (lock transactions)

Oι συνδιαλλαγές κλειδώματος χρησιμοποιούνται σαν ένας ασφαλής τρόπος για να ζητηθούν πόροι του διαύλου από ένα κόμβο διαχειριστή. Σε γενικές γραμμές, ένας κόμβος υποθέτει ότι κάποιος πόρος (π.χ. ένα ισόχρονο κανάλι) είναι διαθέσιμος, και στέλνει ένα lock request πακέτο για τον πόρο αυτό. Αν η υπόθεση αυτή του κόμβου είναι σωστή, τότε ο πόρος αυτός κλειδώνεται και κανένας άλλος κόμβος δεν μπορεί να τον αποκτήσει. Ο κόμβος διαχειριστής θα επιτρέψει την διάθεση και το κλείδωμα του πόρου μόνο αν κάποιος άλλος κόμβος δεν έχει ήδη ζητήσει τον ίδιο πόρο. Έτσι αν η υπόθεση του κόμβου που έστειλε το lock request πακέτο είναι λανθασμένη, τότε ο κόμβος διαχειριστής θα ενημερώσει τον κόμβο με ένα lock response πακέτο ότι ο πόρος δεν είναι διαθέσιμος.

Οι συνδιαλλαγές μπορεί να είναι χωρισμένες, συνενωμένες ή ενοποιημένες. Στην πρώτη περίπτωση, η συσκευή που δέχεται την αίτηση δεν είναι αρκετά γρήγορη για να απαντήσει άμεσα. Έτσι όταν μια αίτηση λαμβάνεται, ο κόμβος απαντά με ένα πακέτο επιβεβαίωσης. Για την αποστολή του πακέτου αυτού η συσκευή δεν χρειάζεται να διεκδικήσει τον δίαυλο. της εκχωρείται αυτόματα. Κατά την διάρκεια που η συσκευή επεξεργάζεται την αίτηση, άλλες συσκευές είναι ελεύθερες να χρησιμοποιήσουν το δίαυλο. Όταν η απάντηση είναι έτοιμη, η συσκευή πρέπει να διεκδικήσει το δίαυλο για την αποστολή της. Ο κόμβος που έχει κάνει την αρχική αίτηση παραλαμβάνει τα δεδομένα και επιστρέφει ένα πακέτο επιβεβαίωσης.

Στην περίπτωση που ο κόμβος είναι αρκετά γρήγορος, η όλη διαδικασία μπορεί να συνενωθεί. Δηλαδή αμέσως μετά την αποστολή του πακέτου επιβεβαίωσης μπορεί να ξεκινήσει η αποστολή του πακέτου απάντησης χωρίς να χρειαστεί η συσκευή να διεκδικήσει το δίαυλο.

Ο τρίτος τρόπος συνδιαλλαγής - η ενοποιημένη - εφαρμόζεται μόνο σε συνδιαλλαγές εγγραφής, όταν ο κόμβος παραλήπτης μπορεί να ικανοποιήσει την αίτηση εγγραφής άμεσα. Στην περίπτωση αυτή το πακέτο επιβεβαίωσης που στέλνεται περιέχει και ένα ειδικό κωδικό που χρησιμεύει και ως απάντηση ενημερώνοντας τον κόμβο αποστολέα ότι η εγγραφή έχει ολοκληρωθεί. Αυτού του τύπου οι συνδιαλλαγές δεν μπορούν να εφαρμοστούν σε συναλλαγές ανάγνωσης και κλειδώματος εφόσον το πακέτο επιβεβαίωσης δεν επιτρέπεται να περιλαμβάνει δεδομένα.

Το σχήμα που ακολουθεί (Σχήμα 12) παρουσιάζει γραφικά τους τρεις τύπους συνδιαλλαγών :


Σχήμα 12.

Για τις ασύγχρονες συνδιαλλαγές το 1394a specification προσθέτει και τρεις ακόμα τύπους διαιτησίας στο δίαυλο για να βελτιστοποιήσει την απόδοση. Ο πρώτος τύπος ονομάζεται acknowledged accelerated arbitration. Όταν ο κόμβος που αποκρίνεται έχει να στείλει κάποιο request πακέτο, τότε μπορεί να το μεταδώσει αμέσως μετά το acknowledge πακέτο χωρίς να χρειαστεί να διεκδικήσει το δίαυλο.

Ο δεύτερος τύπος ονομάζεται Fly-by arbitration και εφαρμόζεται τόσο σε ισόχρονα όσο και σε ασύγχρονα πακέτα που δεν απαιτούν επιβεβαίωση (acknowledge πακέτα). Χρησιμοποιείται από κόμβους που διαθέτουν πολλά ports και άρα λειτουργούν σαν repeaters. Ένας τέτοιος κόμβος μπορεί να συνενώσει ένα ίδιας ταχύτητας πακέτο με το τρέχον πακέτο που αναμεταδίδει κατά την προώθηση του προς την ρίζα. Πακέτα που μπορούν να συνενωθούν είναι μόνο πακέτα που δεν απαιτούν επιβεβαίωση και επίσης δεν μπορούν να συνενωθούν πακέτα διαφορετικού τύπου (ισόχρονα - ασύγχρονα).

Τέλος, υπάρχει και η token style arbitration. Η μέθοδος αυτή απαιτεί την ύπαρξη μιας ομάδας συνεργαζόμενων κόμβων. Όταν ο κόμβος της ομάδας αυτής που βρίσκεται πιο κοντά στο κόμβο ρίζα του διαύλου, αποκτήσει το δίαυλο, μπορεί να παραχωρήσει το δίαυλο στο κόμβο της ομάδας που βρίσκεται μακρύτερα από την ρίζα. Ο κόμβος αυτός θα στείλει ένα κανονικό πακέτο και όλοι οι οι υπόλοιποι συνεργαζόμενοι κόμβοι μπορούν να χρησιμοποιήσουν fly-by arbitration για να προσθέσουν τα πακέτα τους στο αρχικό πακέτο καθώς αυτό μετακινείται προς την ρίζα.


Διαχείρηση Διαύλου.

H διαχείριση ενός 1394 διαύλου περιλαμβάνει αρκετές διαφορετικές αρμοδιότητες που μπορεί να κατανέμονται σε περισσότερους του ενός κόμβους. Οι κόμβοι στο δίαυλο προϋποθέτουν την ύπαρξη ενός cycle master, ενός isochronous resource manager και ενός bus manager. Όπως και το επίπεδο συνδιαλλαγών, οι λειτουργίες του επιπέδου αυτού υλοποιούνται σε λογισμικό.

Ο cycle master είναι ο κόμβος εκείνος που ξεκινά τους κύκλους των 125μsec. Ο cycle master πρέπει να είναι αναγκαστικά ο κόμβος ρίζα και στην περίπτωση που αναδεικνύεται ως ρίζα ένας κόμβος που δεν έχει την δυνατότητα να αναλάβει τον ρόλο αυτό, τότε γίνεται reset στο δίαυλο και κάποιος κόμβος που έχει cycle master δυνατότητες αναγκάζεται να γίνει ρίζα. Ο cycle master σηματοδοτεί την έναρξη ενός κύκλου στο δίαυλο αποστέλλοντας ένα cycle start πακέτο κάθε 125μsec, εκτός και αν κάποια ασύγχρονη μεταφορά δεν έχει ολοκληρωθεί. Στην περίπτωση αυτή η έναρξη του κύκλου καθυστερεί και ο cycle master συμπεριλαμβάνει στο cycle start πακέτο το χρόνο αυτής της καθυστέρησης.

Μετά από ένα reset του διαύλου, όλοι οι κόμβοι που επιθυμούν να μεταδώσουν ισόχρονα πακέτα πρέπει να αποκτήσουν ένα κανάλι και να δεσμεύσουν κάποιο bandwidth. Ο ρόλος του Isochronous Resource Manager είναι να διαχειρίζεται αυτήν την πληροφορία. Η πληροφορία αυτή τοποθετείται σε δύο καταχωρητές στον IRM, οι οποίοι ονομάζονται Bandwidth Available και Channels Available. H κατανομή των καναλιών γίνεται μέσω του Channels Available καταχωρητή. Αυτός έχει μήκος 64 bits και κάθε bit του αντιστοιχεί σε ένα κανάλι. Ένα κανάλι είναι διαθέσιμο αν το αντίστοιχο bit έχει την τιμή 1. Ένας κόμβος που ζητά ένα ισόχρονα κανάλι θέτει το πρώτο διαθέσιμο bit στην τιμή 0 και χρησιμοποιεί το αριθμό του bit σαν το Channel_ID. Επιπλέον ο κόμβος πρέπει να ελέγξει και τον Bandwidth Available καταχωρητή για να προσδιορίσει πόσο bandwidth μπορεί να δεσμεύσει. Το bandwidth μετριέται μέσω allocation units, και κάθε allocation unit αντιστοιχεί στον χρόνο που χρειάζεται για την μετάδοση 4 bytes σε ταχύτητα 1600Mbps. Το συνολικό bandwidth που διατίθεται είναι 6144 allocation units και αν υπάρχουν συσκευές που επιθυμούν την μετάδοση ασύγχρονων πακέτων το συνολικό bandwidth που διατίθεται στις ισόχρονες μεταφορές είναι 4915 allocation units. Οι κόμβοι που επιθυμούν να χρησιμοποιήσουν κάποιο ποσοστό από το διαθέσιμο ισόχρονο bandwidth πρέπει να αφαιρέσουν το ποσό που χρειάζονται από τον Bandwidth Available καταχωρητή.

Ο bus manager επιφορτίζεται με πολλαπλές λειτουργίες, που περιλαμβάνουν την κοινοποίηση της λογικής τοπολογίας του διαύλου και χαρακτηριστικών ταχύτητας στους κόμβους, την διαχείριση της ισχύος και την βελτιστοποίηση της κίνησης στο δίαυλο. Η λογική τοπολογία του διαύλου μπορεί να χρησιμοποιηθεί από κόμβους με «έξυπνο» user interface ώστε να δοθούν οδηγίες στον χρήστη για την βέλτιστη συνδεσμολογία ώστε να επιτευχθεί το μέγιστο throughput μεταξύ των κόμβων. Η πληροφορία για τα χαρακτηριστικά ταχύτητας χρησιμοποιείται από τους κόμβους ώστε να καθορίσουν την ταχύτητα με την οποία μπορούν να επικοινωνούν μεταξύ τους.

Επίσης ο bus manager αναλαμβάνει να καθορίσει κατά πόσο ο κόμβος που έχει γίνει ρίζα μπορεί να αναλάβει καθήκοντα cycle master. Αν ο κόμβος ρίζα δεν έχει αυτή την δυνατότητα τότε ο bus manager αναζητά κάποιον άλλο κατάλληλο κόμβο και στη συνέχεια προκαλεί ένα reset στο δίαυλο ώστε να επιλεγεί ως ρίζα ο κόμβος που έχει προσδιορίσει. Στην περίπτωση που δεν βρεθεί κάποιος κατάλληλος κόμβος ορισμένες από τις λειτουργίες διαχείρισης αναθέτονται στον IRM.


Λογισμικό.

Η Apple, η εταιρεία πίσω από την πλατφόρμα υπολογιστών Macintosh, υπήρξε η εφευρέτης του 1394 και έτσι από πολύ νωρίς το λειτουργικό της (Mac OS) ενσωμάτωσε υποστήριξη για το standard αυτό. Στο χώρο των προσωπικών υπολογιστών με λειτουργικό σύστημα Windows το IEEE 1394 υποστηρίζεται από το νέο Windows Driver Model (WDM) που χρησιμοποιείται στις τελευταίες εκδόσεις των λειτουργικών αυτών. Η Microsoft σε συνεργασία με αρκετές εταιρίες που υποστηρίζουν το πρότυπο 1394 έχουν αναπτύξει την προδιαγραφή 1394 Open Host Controller Interface (OHCI). Η προδιαγραφή αυτή παρέχει έναν ελεγκτή επιπέδου συνδέσμου καθώς και λειτουργικότητα διαχείρισης διαύλου και γενικότερα μια συγκεκριμένη δομή υλοποίησης έτσι ώστε ένας standard driver που παρέχεται από την Microsoft να μπορεί να χρησιμοποιήσει τον ελεγκτή και να προγραμματίσει μεταφορές.

Επιπλέον η Microsoft παρέχει WDM streaming drivers για να υποστηρίξει audio / video συσκευές όπως DVD players, tuners, MPEG decoders και audio codecs. Για συσκευές αποθήκευσης, εκτυπωτές και σαρωτές υποστηρίζεται το SBP-2 πρωτόκολλο (Serial Block Protocol). Πέρα από τα πρωτόκολλα αυτά, ανάλογα με τις συσκευές που συνδέονται με το 1394 δίαυλο αναπτύσσονται διάφορα άλλα πρωτόκολλα που βρίσκονται σε μικρότερο ή μεγαλύτερο βαθμό ολοκλήρωσης αυτήν την στιγμή. Ενδεικτικά αναφέρουμε την ανάπτυξη του DV standard (Digital Video) και την ανάπτυξη του DPP (Direct Printing Protocol) standard για την άμεση διασύνδεση συσκευών εικόνας με εκτυπωτές.

Τέλος διάφορες εταιρίες έχουν αναπτύξει 1394 protocol stacks για embedded συστήματα. Το χαρακτηριστικό των περισσότερων υλοποιήσεων είναι ότι δεν εξαρτώνται από το λειτουργικό σύστημα.


          ΠΗΓΕΣ.

1. Embedded Systems Programming - FUNDAMENTALS OF FIREWIRE
          (http://www.embedded.com/1999/9906/9906feat2.htm)
2. Philips Semiconductors - 1394 Product Line - 1394 Tutorial with Speakers Notes, 2001
          (http://www-us.semiconductors.philips.com/buses/1394)
3. 1394a Trade Association
          (http://www.1394ta.org/Technology/About/TechTalk.htm)
4. IEEE 1394 Technology: What It Is, Why It's Important
          (http://www.zayante.com/html/documantation/WP_WhatWhy_Text.html)
5. Understanding FireWire: The IEEE 1394 Standards and Specifications
          (http://www.chipcenter.com/networking/ieee1394/main.html)









Αρχική Σελίδα | Αναζήτηση | Ομάδα Ανάπτυξης | Επικοινωνία | Όροι Χρήσης
TechArticles.GR @2005 | Some rights reserved