0
Αυτή είναι μια εργασία που έκανα για την σχολή, σκοπός της είναι η μελέτη, η σχεδίαση και η κατασκευή ενός συστήματος δειγματοληψίας αναλογικού σήματος, στο οποίο ο χρήστης θα έχει την δυνατότητα με την χρήση μικροδιακοπτών να αυξομειώνει τον χρόνο που μεσολαβεί ανάμεσα σε δύο διαδοχικές λήψεις δειγμάτων. Βασική λειτουργία του συστήματος είναι ο χρήστης να έχει την δυνατότητα να ελέγξει το πώς ο αριθμός και η συχνότητα λήψης δειγμάτων ενός συνεχούς σήματος συνεχούς χρόνου, επηρεάζει την πιστότητα του αντίστοιχου συνεχούς σήματος διακριτού χρόνου που προκύπτει όταν το αρχικό μας σήμα υπόκειται σε δειγματοληψία.
Το σύστημα δειγματοληψίας αποτελείται από τρία επιμέρους τμήματα. Το πρώτο τμήμα προσθέτει μια dc συνιστώσα στο σήμα μας ώστε αυτό να μπορεί να δοθεί ως είσοδος στον μικροελεγκτή. Το δεύτερο αποτελείται από τον μικροελεγκτή ο οποίος κάνει την δειγματοληψία του σήματος και αποτελεί το κεντρικό σημείο ελέγχου όλου του συστήματος και τέλος από έναν digital to analog converter από την έξοδο του οποίου λαμβάνουμε το σήμα μας. Το block διάγραμμα του συστήματος φαίνεται στην πρώτη εικόνα.
Έχουμε λοιπόν το σήμα εισόδου στο οποίο προστίθεται μια dc συνιστώσα 2,5 Volt ώστε αυτό να έρθει στην μέση της κλίμακάς μας και να μπορούμε να έχουμε μέγιστη αιώρηση από 0 ως 5 Volt. Ο μικροελεγκτής μετατρέπει το σήμα μας σε ψηφιακό με σταθερό χρόνο δειγματοληψίας, ο οποίος μπορεί να μεταβληθεί μέσω των 7 διακοπτών του κυκλώματος επιλογής καθυστέρησης. Τέλος η οκτάμπιτη λέξη που αντιπροσωπεύει την τιμή του σήματός μας μεταφέρεται σε έναν digital to analog converter ο οποίος επίσης ελέγχεται από τον μικροελεγκτή μέσω ενός control bit.
Κύκλωμα εισαγωγής dc συνιστώσας.
Σε αυτό το τμήμα του κυκλώματος χρησιμοποιώ τον τελεστικό TLC271 ώστε να προσθέσω στο σήμα μια dc συνιστώσα 2,5 Volt επιλέγουμε η dc αυτή τάση να είναι 2,5 Volt ώστε το σήμα μας να μπορεί να έχει μέγιστη αιώρηση, δηλαδή να μπορούμε να θέσουμε ως σήμα εισόδου, θεωρητικά τουλάχιστον, σήμα με τάση κορυφής ως και 2,5 Vpeak. Ο τελεστικός που επιλέγουμε να χρησιμοποιήσουμε είναι ο TLC271 και μάλιστα σε συνδεσμολογία High bias, επειδή παρουσιάζει κάποια ιδιαίτερα χαρακτηριστικά:
Είναι μοντελοποιημένος για να χρησιμοποιείται με μονοπολική αλλά και διπολική τροφοδοσία.
Χαμηλά επίπεδα θορύβου, μόλις 25 nV/ √Hz σε λειτουργία high bias.
Slew rate περίπου στα 3V/μsec.
Maximum output-swing bandwidth στα 320 kHz
Unity-gain bandwidth στα 1,7 Mhz.
VOH στα 4 Volt με τροφοδοσία 5 Volt.
το κύκλωμα φαίνεται στην δεύτερη εικόνα και η συνάρτηση μεταφοράς του είναι
Vout=-Vin+2.5V
Κύκλωμα μικροελεγκτή.
O μικροελεγκτής που επελέξα για την σχεδίαση του συστήματος είναι ο 16F887 της εταιρίας Microchip, ο οποίος λόγω των πολλών I/O pinς που διαθέτει, δίνει την δυνατότητα επικοινωνίας με όλα τα περιφερειακά τμήματα του συστήματος αλλά και την δυνατότητα επέκτασης του.
Για τον προγραμματισμό του μικροελεγκτή χρησιμοποιήθηκε η γλώσσα C-CCS
Το πρόγραμμα του μικροελεγκτή.
Ως dac επιλέχθηκε το ολοκληρωμένο tlc7226 της εταιρίας Texas Instruments το οποίο παραμετροποιήθηκε ώστε να λειτουργεί σε τάσεις από 0 ως 5 Volt ώστε να έχουμε πιστή αναπαράσταση του σήματος εισόδου. Επίσης βάσει του σχεδιασμού μπορούμε να επιλέξουμε το αν θα δούμε το σήμα στην έξοδο μαζί με την dc συνιστώσα ή χωρίς αυτή.#include <16F887.h>
#fuses XT
#byte PORTA=0x05
#byte PORTB=0x06
#byte PORTC=0x07
#use delay(clock=4000000) //επιλογή χρονισμού στα 4ΜΗz
void main()
{
int bit1,bit2;
set_tris_a(0x01); //ορισμός του pin RΑ0 ως είσοδο
set_tris_b(0xFF); //ορισμός της PORTB ως είσοδο
set_tris_c(0x00); //ορισμός της PORTD ως έξοδο
setup_adc_ports( sAN0 | VSS_VDD); //ορισμός του RA0 ως αναλογική είσοδο εύρους 0-5volt
setup_adc(ADC_CLOCK_DIV_; //επιλογή χρονισμού του ADC στα 2μsec
set_adc_channel(0); //επιλογή του RA0 ως κανάλι εισόδου του ADC
delay_us(40);
while(TRUE)
{
bit1=read_adc(); //έναρξη λήψης δείγματος από τον adc
read_adc(ADC_START_ONLY); //λήψη δείγματος μέχρι την ολοκλήρωσή της μετατροπής
bit_clear(PORTD,0); //κάνει το RD0=0, ενεργοποίηση του dac
PORTC=read_adc(ADC_READ_ONLY); //μεταφέρεται το αποτέλεσμα της μετατροπής στον dac
bit_set(PORTD,0); // κάνει το RD0=1, μανδάλωση των εισόδων του dac
bit2=PORTB; //λήψη επιθυμητού χρόνου καθυστέρησης
delay_us(bit2*2); //καθυστέρηση
}
}
Στις εικόνες που ακολουθούν φαίνονται:
1. To σχηματικό διάγραμμα του κυκλώματος.
2. Η πλακέτα του κυκλώματος.
3. Η θέση των εξαρτημάτων πάνω στην πλακέτα.
4. Οι συνδέσεις που έχουμε στην πλακέτα.
Μετρήσεις επί του κυκλώματος.
απο τις μετρήσεις που πήρα από το κύκλωμα κατά την λειτουργία του έχουμε τα εξής χαρακτηριστικά.
• Μέγιστη κυμάτωση του σήματος εισόδου : 3,2 Volt
• DC συνιστώσα : στην μη αναστρέφουσα είσοδο του τελεστικού έχουμε 1267mV συνεπώς προσθέτουμε στο σήμα μας μια dc συνιστώσα 2534mV.
• Μέγιστη συχνότητα λειτουργίας : 10ΚΗz ( 2δείγματα ανά περίοδο )
• Ελάχιστη καθυστέρηση δειγματοληψίας : 78μsec
• Μέγιστη καθυστέρηση δειγματοληψίας : 320msec
Επίσης ακολουθούν οι κυματομορφές που πήρα κατά την λειτουργία του κυκλώματος
1. Ελάχιστη καθυστέρηση δειγματοληψίας
2. Μέγιστη καθυστέρηση δειγματοληψίας
3. Λειτουργία με χαμηλή συχνότητα εισόδου (είναι εμφανής η πιστότητα του σήματος)
4. Λειτουργία σε υψηλή συχνότητα
5. Επιλογή της εξόδου που δεν αποκόπτει την dc συνιστώσα