Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΔΙΑΣΥΝΔΕΣΗΣ USB ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Σπουδαστής: Τσιώγκας Παρασκευάς (493) Επιβλέπων καθηγητής: Δρ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΔΙΑΣΥΝΔΕΣΗΣ USB ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Σπουδαστής: Τσιώγκας Παρασκευάς (493) Επιβλέπων καθηγητής: Δρ."— Μεταγράφημα παρουσίασης:

1 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΔΙΑΣΥΝΔΕΣΗΣ USB ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Σπουδαστής: Τσιώγκας Παρασκευάς (493) Επιβλέπων καθηγητής: Δρ. Καλόμοιρος Ι.

2 Εισερχόμενο αναλογικό σήμα Μετατροπέας A/D: Μετατροπή αναλογικού σήματος σε ψηφιακό Τμήμα USB: Αποστολή A/D μετατροπής προς τον ξενιστή Host Application (M.Visual C++) – Εφαρμογή ελέγχου της συσκευής (HID), Λ. Σ. (Windows) - (Drivers), αρχεία.dll, συναρτήσεις (Application Programmer’s Interface). Συσκευή (HID) με τον απαραίτητο κώδικα (C++) FIRMWARE (.HEX αρχείο) Μικροελεγκτής PIC18F4550 Η/Υ Ξενιστής – Host με τις απαραίτητες θύρες USB ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΦΕΡΕΙΑΚΟΥ USB Πρωτόκολλο επικοινωνίας USB 2.0 (Full Speed) (Μεταδόσεις - ελέγχου και διακοπών) PIC18F4550 Η/Υ

3 USB (Universal Serial Bus) Πρώτες εταιρείες κατασκευής Intel Microsoft Philips US Robotics Εκδόσεις USB 1.0 (1995) USB 1.1 (1998) USB 2.0 (2000) USB 3.0 (2009) USB: Σύστημα σειριακού διαύλου επικοινωνίας ενός υπολογιστή με περιφερειακά συστήματα. Λόγοι χρήσης της USB Ευκολία χρήσης Ταχύτητα Αξιοπιστία Επιλογές μετάδοσης Κατανάλωση ισχύος Χαμηλό κόστος Διανεμητές (hubs) USB

4 USB (Universal Serial Bus) Δίαυλος USBΣύνδεσμοι – Θύρες USB Low Speed Full Speed High Speed Super Speed USB 1.1 & USB Mbps USB 1.1 & USB Mbps USB Mbps USB Gbps Ταχύτητες USB

5 ΣΥΣΚΕΥΕΣ & ΚΛΑΣΕΙΣ USB Συσκευές USB Βασικές κλάσεις USB συσκευών Συσκευές ήχου Συσκευές εικόνας Διανομέας (hub) Χειριστήρια (HIDs – Human Interface Device) Εκτυπωτές Μονάδες αποθήκευσης

6 ΠΡΩΤΟΚΟΛΛΟ USB – ΜΕΤΑΔΟΣΗ ΔΕΔΟΜΕΝΩΝ Απαρίθμηση (enumeration) Καταληκτικά σημεία (Endpoints) Επικοινωνιακός σωλήνας (pipe) Περιγραφείς (Descriptors) Πακέτα: Πακέτο κουπονιού - Token Packet, Πακέτο δεδομένων - Data Packet, Πακέτο χειραψίας - Handshake Packet. Ξενιστής: Εφαρμογή ελέγχου (Host Application) – Windows – Drivers – συναρτήσεις API – αρχεία.dll

7 ΤΡΟΠΟΙ ΜΕΤΑΔΟΣΗΣ ΔΕΔΟΜΕΝΩΝ Μετάδοση ελέγχου (Control Transfer): Απαρίθμηση (enumeration), διαμόρφωση, υποχρέωση υποστήριξης από όλα τα περιφερειακά. Συμπαγείς μεταδόσεις (Bulk Transfer): Μαζικές μεταδόσεις δεδομένων. Μεταδόσεις διακοπών (Interrupt Transfers): Μετάδοση μέσα σε στενά χρονικά όρια χωρίς καθυστέρηση. Ισόχρονες Μεταδόσεις (Isochronous Transfers): Μεταφορά δεδομένων συνεχούς ροής (streaming data).

8 PIC 18F4550 8bit Εταιρεία κατασκευής Microchip Οικονομική τιμή, υψηλή αντοχή, υψηλό επίπεδο σχεδίασης Αρχιτεκτονικής Harvard Μνήμη Flash 40 ακροδέκτες (PDIP) Program Memory 32 KB Μνήμη RAM 2,048 bytes EEPROM 256 bytes Το τμήμα μετατροπής A/D εύρους 10 bit USB 2.0 Βαθμίδες σειριακής και παράλληλης επικοινωνίας SPI, I2C, USART, SPP Εύρος τάσης λειτουργίας 2V - 5.5V Συχνότητα λειτουργίας έως 48MHz 75 εντολές προγραμματισμού

9 ΤΟ USB ΤΜΗΜΑ ΤΟΥ PIC 18F4550 Ιδιότητες Full Speed Transceiver USB 2.0 (12Mbit/s) 16 καταληκτικά σημεία USB RAM 1Κ byte (Banks από 4 – 7) Συχνότητα λειτουργίας 6 – 48MHz Internal Pull Up resistors (D+/D-) Καταχωρητές ελέγχου και διαχείρισης Καταχωρητής ελέγχου (UCON) Καταχωρητής διαμόρφωσης (UCFG) Καταχωρητής κατάστασης (USTAT) Καταχωρητής διεύθυνσης (UADDR) Καταχωρητής καταληκτικού σημείου (UEPn) Καταχωρητές αριθμού πλαισίου (UFRM)

10 A/D converter 10 bit 13 ch Καταχωρητές ελέγχου και διαμόρφωσης A/D μετατροπέα ADCON1 διαμόρφωση των ακροδεκτών ADCON2 διαμόρφωση πηγής ρολογιού, προγραμματισμός χρόνου απόκτησης σήματος, στοίχιση του αποτελέσματος της μετατροπής ADRESH:ADRESL αποθήκευση αποτελέσματος της μετατροπής (16bit) ADCON0 έλεγχος ενεργοποίησης και επιλογή καναλιού ΛειτουργίεςΠεριγραφή BusyADCεκτελείται κάποια μετατροπή αυτή τη στιγμή; CloseADCαπενεργοποίηση του A/D μετατροπέα ConvertADCενεργοποίηση του A/D μετατροπέα OpenADCδιαμόρφωση του A/D μετατροπέα ReadADC ανάγνωση των αποτελεσμάτων του A/D μετατροπέα SetChanADCεπιλογή του A/D καναλιού Έλεγχος και διαχείριση των καταχωρητών του A/D μετατροπέα πραγματοποιείται με τη βοήθεια των ειδικών λειτουργιών. Microchip MPLAB C18 {C:\MCC18}--> πηγαίος κώδικας των λειτουργιών.

11 ΠΑΡΑΔΕΙΓΜΑ ΔΙΑΜΟΡΦΩΣΗΣ A/D Converter OpenADC(ADC_FOSC_64 & ADC_LEFT_JUST & ADC_20_TAD, ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & ADC_VREFMINUS_VSS, 0b001); Delay10TCYx( 5 ); //Απαραίτητη χρονική καθυστέρηση ώστε ο μετατροπέας να λάβει σωστά όλες τις παραμέτρους της παραπάνω διαμόρφωσης ConvertADC(); // Έναρξη μετατροπής while( BusyADC() ); //Αναμονή για την ολοκλήρωση result = ReadADC(); //Ανάγνωση αποτελέσματος CloseADC(); //Απενεργοποίηση A/D μετατροπέα

12 ΑΠΑΡΑΙΤΗΤΑ ΕΡΓΑΛΕΙΑ MPLAB v8.2 MICROCIP C18 Compiler Student Edition PICSTART Plus MICROCHIP Microsoft Visual Studio Proteus Isis (Labcenter Electronics)

13 Η ΣΥΣΚΕΥΗ (HID)

14 ΚΩΔΙΚΑΣ FIRMWARE MCHPFSUSB Framework v2.3 - Microchip Solutions (αρχεία υλοποίησης πρωτοκόλλου USB) Jan Axelson - Generic HID (αρχεία διαμόρφωσης της συσκευής, περιγραφείς) Σύνολο αρχείων κώδικα FIRMWARE (modular) σπονδυλωτό πρόγραμμα

15 void ReportLoopBack(void)--(generic_hid.c): διαμόρφωση και έλεγχος του A/D μετατροπέα. Αποστολή και λήψη δεδομένων. void ProcessIO(void)--(generic_hid.c): έλεγχος ικανότητας αποστολής και λήψης δεδομένων. Επιθυμητή κατάσταση CONFIGURED_STATE. USBDeviceTasks();--(usb_device.c): ανταπόκριση στις απαιτήσεις USB επικοινωνίας, εξυπηρέτηση των καταστάσεων του διαύλου USB. SetConfigurationOptions(); - Διαμόρφωση συσκευής (UCFG). USBDeviceInit();--(usb_device.c): αρχικοποίηση, απαρίθμηση (enumeration), ενεργοποίηση τμήματος USB. ΒΑΣΙΚΟ ΠΡΟΓΑΜΜΑ (main) generic_hid.c

16 ReportLoopBack void ReportLoopBack(void) { BYTE count = 0; Ορισμός του ακροδέκτη RA0/AN0 σαν είσοδος του αναλογικού σήματος προς τον μετατροπέα. TRISAbits.TRISA0 = 1; Διαμόρφωση A/DC: συχνότητα λειτουργίας 48 MHz & αριστερή καταχώρηση αποτελέσματος & χρόνος απόκτησης 20 περίοδοι & επιλογή καναλιού, channel 0 & απενεργοποίηση διακοπής κατά την ολοκλήρωση της μετατροπής & τάση αναφοράς VDD και VSS (5V and GND) & διαμόρφωση A/D θυρών – όλα τα κανάλια είναι αναλογικής εισόδου. OpenADC(ADC_FOSC_64 & ADC_LEFT_JUST & ADC_20_TAD, ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & ADC_VREFMINUS_VSS, 0b001); Απαραίτητη χρονική καθυστέρηση ώστε ο μετατροπέας να λάβει σωστά όλες τις παραμέτρους της παραπάνω διαμόρφωσης. Delay10TCYx(5); Έναρξη μετατροπής. ConvertADC();

17 ReportLoopBack Έλεγχος και αποστολή δεδομένων με τη βοήθεια κατάλληλων μακροεντολών. switch (usb_state) { case 'r': { Έλεγχος για το εάν λαμβάνονται δεδομένα τη δεδομένη στιγμή. Όταν η σημαία UOWN του καταχωρητή κατάστασης BDnSTAT είναι ‘1’ έχουμε λήψη δεδομένων, διαφορετικά ‘0’ δεν έχουμε. if(HIDRxHandleBusy(lastOutTransmission) == 0) { Τα δεδομένα θα ληφθούν διαμέσου του καταληκτικού σημείου HID_EP, - το καταληκτικό σημείο HID_EP είναι διαμορφωμένο κατάλληλα, μέσω του περιγραφέα καταληκτικού σημείου, ώστε να ανταποκρίνεται στις απαιτήσεις των χειριστηρίων - και στη συνέχεια προς ένα πίνακα αποθήκευσης δεδομένων λήψης hid_report_out [], επίσης ορίζεται και το μέγεθος των byte που μπορεί να λάβει η συσκευή, στη περίπτωσή μας το μέγιστο είναι 64 byte. lastOutTransmission = HIDRxPacket(HID_EP, (BYTE*)&hid_report_out, 64); usb_state = 'p'; } break; }

18 ReportLoopBack case 'p': { Έλεγχος για το εάν λαμβάνονται δεδομένα τη δεδομένη στιγμή. if(HIDRxHandleBusy(lastOutTransmission) == 0) { Ο δείκτης CNT αποτελεί ένα μετρητή μεγέθους των δεδομένων. if (lastOutTransmission->CNT > 0) { Προετοιμασία προς αποστολή των ληφθέντων δεδομένων for (count; count <= HID_OUTPUT_REPORT_BYTES; count++) { Μεταφορά του αποτελέσματος της A/D μετατροπής στον πίνακα αποστολής δεδομένων προς τον ξενιστή. hid_report_out[count] = ADRESH; hid_report_in[count] = hid_report_out[count]; }

19 ReportLoopBack Τα δεδομένα είναι έτοιμα να αποσταλούν προς τον ξενιστή. usb_state = 't'; } else { usb_state = 'r'; } break; }

20 ReportLoopBack case 't': { Έλεγχος για το εάν αποστέλλονται δεδομένα τη δεδομένη στιγμή. if (HIDTxHandleBusy(lastTransmission) == 0) { Αποστολή δεδομένων του πίνακα hid_report_in με προκαθορισμένο μέγεθος δεδομένων HID_INPUT_REPORT_BYTES μέσω του καταληκτικού σημείου HID_EP. lastTransmission = HIDTxPacket(HID_EP, (BYTE*)&hid_report_in, HID_INPUT_REPORT_BYTES); usb_state = 'r'; } break; } default: { break; }

21 Host Application Παράθυρο διαλόγου συσκευής HID και Η/Υ. Εφαρμογή ελέγχου της συσκευής (HID) Γενική εφαρμογή (usbhidio) Jan Axelson Γλώσσα προγραμματισμού Microsoft Visual c++ (Microsoft Visual Studio). Τύπος μετάδοσηςμετάδοση ελέγχου και μετάδοση διακοπών

22 ΚΩΔΙΚΑΣ Host Application Πλήκτρο Find My Device: Αναζήτηση της συσκευής μας – διαδοχικές κλήσεις συναρτήσεων API μέχρι την ανίχνευση της επιθυμητής συσκευής. HidD_GetHidGuid SetupDiGetClassDevs SetupDiEnumDeviceInterfaces SetupDiGetDeviceInterfaceDetail CreateFile HidD_GetAttributes HidD_GetPreparsedData HidP_GetCaps Συναρτήσεις API: Απαρίθμησης συσκευών της κλάσης χειριστηρίων (HIDs) Συναρτήσεις API: Άνοιγμα της διαδρομής (DevicePath -> DeviceHandle) προς την επιθυμητή συσκευή (HID), ταυτοποίηση VID και PID. Συναρτήσεις API: Επιστροφή ιδιοτήτων της συσκευής μας

23 ΚΩΔΙΚΑΣ Host Application Ανάγνωση δεδομένων ReadFile (ReadHandle, InputReport, Capabilities.InputReportByteLength, &NumberOfBytesRead); Πλήκτρο ONCE: Ανταλλαγή δεδομένων Εγγραφή δεδομένων WriteFile (WriteHandle, OutputReport, Capabilities.OutputReportByteLength, &BytesWritten, NULL);


Κατέβασμα ppt "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΔΙΑΣΥΝΔΕΣΗΣ USB ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ Σπουδαστής: Τσιώγκας Παρασκευάς (493) Επιβλέπων καθηγητής: Δρ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google