LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο...

212
Ζυγούρης Θ. Ευάγγελος Καλαντζόπουλος Γ. Αθανάσιος Βασσάλος Ε. Ευάγγελος LabVIEW to CCS Link Εσωτερική Αναφορά Εργαστήριο ής Τομέας Ηλεκτρονικής και Υπολογιστών Τμήμα Φυσικής Πανεπιστήμιο Πατρών Πάτρα 2007 Ηλεκτρονικ

Transcript of LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο...

Page 1: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

Ζυγούρης Θ. Ευάγγελος

Καλαντζόπουλος Γ. Αθανάσιος

Βασσάλος Ε. Ευάγγελος

LabVIEW to CCS Link

Εσωτερική Αναφορά

Εργαστήριο ής

Τοµέας Ηλεκτρονικής και Υπολογιστών Τµήµα Φυσικής

Πανεπιστήµιο Πατρών

Πάτρα 2007

Ηλεκτρονικ

Page 2: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του
Page 3: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link i

Περιεχόµενα 1. Εισαγωγή. ............................................................................................................................ 1 1.1 Link for Code Composer Studio Development Tools................................................ 1 1.2 Test Integration Toolkit for TI DSPs ......................................................................... 2 1.3 Τι είναι το LabVIEW to CCS Link; ........................................................................... 3 2. Περιγραφή των subVIs του LabVIEW to CCS Link .......................................................... 4 2.1 Ρύθµιση του CCS ....................................................................................................... 4 2.1.1 CCS_Setup_Open.vi....................................................................................... 4 2.1.2 CCS_Setup_Close.vi ...................................................................................... 5 2.1.3 CCS_Setup_Clear.vi....................................................................................... 6 2.1.4 CCS_Setup_Add_Board.vi............................................................................. 7 2.1.5 CCS_Setup_Rename_Board.vi ...................................................................... 8 2.1.6 CCS_Setup_Remove_Board.vi ...................................................................... 9 2.1.7 CCS_Setup_Rename_Processor.vi................................................................. 9 2.1.8 CCS_Setup_Boards_&_Processors.vi.......................................................... 10 2.1.9 CCS_Setup_Save.vi ..................................................................................... 11 2.2 Αυτοµατοποίηση του CCS ....................................................................................... 12 2.2.1 CCS_Open.vi................................................................................................ 13 2.2.2 CCS_Close.vi ............................................................................................... 13 2.2.3 CCS_Open_Project.vi .................................................................................. 14 2.2.4 CCS_Close_Project.vi.................................................................................. 15 2.2.5 CCS_Connect.vi ........................................................................................... 16 2.2.6 CCS_Disconnect.vi ...................................................................................... 17 2.2.7 CCS_Build_All.vi ........................................................................................ 18 2.2.8 CCS_Build_Result.vi ................................................................................... 19 2.2.9 CCS_Download.vi........................................................................................ 20 2.2.10 CCS_Reset.vi ............................................................................................... 21 2.2.11 CCS_Run.vi.................................................................................................. 22 2.2.12 CCS_Restart.vi ............................................................................................. 23 2.2.13 CCS_Halt.vi ................................................................................................. 24 2.2.14 CCS_Is_DSP_Running.vi ............................................................................ 25 2.2.15 CCS_RTDX_Enable.vi ................................................................................ 26 2.2.16 CCS_RTDX_Disable.vi ............................................................................... 27 2.2.17 CCS_RTDX_Logfile_Configuration.vi ....................................................... 28 2.3 Επικοινωνία µε το CCS............................................................................................ 29 2.3.1 RTDX_Channel_Disable.vi ......................................................................... 29 2.3.2 RTDX_Channel_Enable.vi........................................................................... 30 2.3.3 RTDX_Channel_Status.vi............................................................................ 31 2.3.4 RTDX_Read.vi............................................................................................. 32 2.3.5 RTDX_Write.vi............................................................................................ 48 2.3.6 MEM_Get_Address.vi ................................................................................. 65 2.3.7 MEM_Read.vi .............................................................................................. 66 2.3.8 MEM_Write.vi ............................................................................................. 89 2.3.9 Leds_Read_(DSK6713).vi ......................................................................... 111 2.3.10 Leds_Write_(DSK6713).vi ........................................................................ 112

Page 4: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

ii Περιεχόµενα

2.3.11 Switshes_Read_(DSK6713).vi................................................................... 113 3. Χρησιµοποιώντας το LabVIEW to CCS Link ................................................................ 115 3.1 Ρύθµιση του CCS ................................................................................................... 115 3.1.1 Ρύθµιση του CCS για την χρησιµοποίηση µιας κάρτας ............................. 115 3.1.2 Ρύθµιση του CCS για την χρησιµοποίηση πολλαπλών καρτών................. 116 3.2 Αυτοµατοποίηση του CCS ..................................................................................... 118 3.2.1 Αυτοµατοποίηση του CCS για τον έλεγχο ενός DSP ................................ 118 3.2.2 Αυτοµατοποίηση του CCS για τον έλεγχο περισσότερων του ενός DSP .. 121 3.3 Επικοινωνία µε το CCS.......................................................................................... 122 3.3.1 Απευθείας προσπέλαση της µνήµης του DSP............................................ 123 3.3.2 Χρήση της RTDX τεχνολογίας .................................................................. 125 4. Εφαρµογές ....................................................................................................................... 127 4.1 Γραφικός ισοσταθµιστής τριών περιοχών.............................................................. 127 4.1.1 Γενικά για τους γραφικούς ισοσταθµιστές................................................. 127 4.1.2 Προδιαγραφές............................................................................................. 130 4.1.3 Σχεδίαση και έλεγχος του γραφικού ισοσταθµιστή µε το MATLAB ........ 130 4.1.4 Υλοποίηση του γραφικού ισοσταθµιστή µε το CCS.................................. 137 4.1.5 Υλοποίηση ενός VI για τον έλεγχο του γραφικού ισοσταθµιστή .............. 140 4.1.6 Αποτελέσµατα – Συµπεράσµατα................................................................ 146 4.2 Εφαρµογή στην ψηφιακή επεξεργασία εικόνας ..................................................... 149 4.2.1 Ανίχνευση ακµών ...................................................................................... 150 4.2.2 Ευθύς και αντίστροφος διακριτός µετασχηµατισµός συνηµιτόνου ........... 154 4.2.3 Κωδικοποίηση και αποκωδικοποίηση σύµφωνα µε το πρότυπο JPEG ..... 170 4.2.4 Ισοστάθµιση Ιστογράµµατος...................................................................... 180 4.2.5 Υλοποίηση ενός VI για τον έλεγχο της εφαρµογής ................................... 192 4.2.6 Αποτελέσµατα – Συµπεράσµατα................................................................ 205 5. Βιβλιογραφία ................................................................................................................... 208

Page 5: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 1 1. Εισαγωγή Η συνεχής ανάπτυξη των DSPs οδήγησε µεγάλες εταιρείες όπως η The Mathworks και η National Instruments να εξοπλίσουν τα προϊόντα τους µε εργαλεία για την διασύνδεση µε αναπτυξιακές πλατφόρµες που περιέχουν επεξεργαστές ψηφιακού σήµατος (Digital Signal Processors–DSPs). Επειδή η Texas Instruments κατέχει το µεγαλύτερο µέρος της παγκόσµιας αγοράς των DSPs η The Mathworks και η National Instruments (NI) έχουν δώσει ιδιαίτερη έµφαση στους DSPs της Texas Instruments (TI) και στο αναπτυξιακό περιβάλλον της Code Composer Studio (CCS).

1.1 Link for Code Composer Studio Development Tools Η The Mathworks στην προσπάθειά της να ακολουθήσει την ανάπτυξη των DSPs δηµιούργησε το Link for Code Composer Studio Development Tools, το οποίο επιτρέπει στο MATLAB και στο Simulink να συνδεθούν µε το αναπτυξιακό περιβάλλον Code Composer Studio (CCS) και µε τους DSPs της ΤΙ. Το Link for Code Composer Studio Development Tools είναι ένα σύνολο συναρτήσεων του MATLAB µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του MATLAB και του CCS µέσω αυτή της σύνδεσης είναι εφικτός ο έλεγχος του CCS και κατά επέκταση του DSP, όπως φαίνεται στο Σχήµα 1. Χρησιµοποιώντας το παραπάνω σύνολο συναρτήσεων είναι δυνατή η µεταφορά δεδοµένων από την µνήµη ή τους καταχωρητές του DSP. Η µεταφορά δεδοµένων από την µνήµη του DSP στο MATLAB και αντίστροφα πραγµατοποιείται είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε αξιοποιώντας την RTDX (Real-Time Data Exchange) τεχνολογία της ΤΙ. Το Link for Code Composer Studio Developments Tools v2.1 απαιτεί την ύπαρξη του CCS v3.1 ή µεταγενέστερη έκδοση και του MATLAB R2006b ή µεταγενέστερη έκδοση.

MATLAB and Simulink

Link for Code Composer Studio

C2000 C5000 C6000 OMAP

Code Composer Studio

Σχήµα 1. Σύνδεση του MATLAB µε το CCS Για την δηµιουργία γραφικών περιβαλλόντων αλληλεπίδρασης µε τον χρήστη (Graphical User Interfaces–GUIs) το MATLAB διαθέτει το GUIDE (GUI Development Environment), που παρέχει ένα σύνολο εργαλείων για την δηµιουργία ενός GUI. Αυτά τα εργαλεία απλοποιούν κατά πολύ την διαδικασία της σχεδίασης και προγραµµατισµού του GUI. Χρησιµοποιώντας το GUIDE σε συνδυασµό µε το Link for Code Composer Studio

Page 6: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

2 1. Εισαγωγή Development Tools ο χρήστης µπορεί να δηµιουργήσει GUIs που θα ελέγχουν και θα επικοινωνούν µε εφαρµογές των DSPs της ΤΙ που έχουν υλοποιηθεί µε το CCS.

1.2 Test Integration Toolkit for TI DSPs Για να πραγµατοποιηθεί η διασύνδεση του LabVIEW µε το CCS η National Instrument (ΝΙ) διαθέτει ένα toolkit µε όνοµα DSP Test Integration Toolkit for TI DSP v2.0. Όταν εγκατασταθεί το παραπάνω toolkit το LabVIEW αποκτά ένα σύνολο από subVIs µε τα οποία µπορεί να ελεγχθεί και να αυτοµατοποιηθεί το CCS προγραµµατιστικά καθώς και να µεταφέρονται δεδοµένα από το CCS στο LabVIEW και αντίστροφα είτε µε απευθείας ανάγνωση και εγγραφή της µνήµης του DSP είτε µε χρήση της RTDX τεχνολογίας που υποστηρίζουν οι DSPs της TI. Τα βασικά VIs που περιέχει το toolkit χωρίζονται σε δύο µεγάλες κατηγορίες : • Αυτοµατοποίηση του CCS (CCS Automation VIs): Τα VIs που ανήκουν σε αυτή την

κατηγορία χρησιµοποιούνται για τον έλεγχο του CSS.και κατά επέκταση του DSP. • Επικοινωνία µε το CCS (CCS Communication VIs): Τα VIs αυτής της κατηγορίας

χρησιµοποιούνται για την µεταφορά δεδοµένων από το DSP στο LabVIEW και αντίστροφά, είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε χρησιµοποιώντας την RTDX τεχνολογία.

Στον Πίνακα 1 παρουσιάζεται το εικονίδιο και το όνοµα κάθε VI του Test Integration Toolkit for TI DSPs σύµφωνα µε την κατηγορία που ανήκει.

Αυτοµατοποίηση του CCS Επικοινωνία µε το CCS Εικ. Ονοµασία Εικ. Ονοµασία

CCS Open Project.vi

CCS RTDX Read.vi

CCS Build.vi

CCS RTDX Write.vi

CCS Download Code.vi

CCS RTDX Enable.vi

CCS Run.vi

CCS RTDX Enable Channel.vi

CCS Halt.vi

CCS RTDX Disable.vi

CCS Close Project.vi

CCS RTDX Disable Channel.vi

CCS Window Visibility.vi

CCS Memory Read.vi

CCS Reset.vi

CCS Memory Write.vi

CCS Symbol to Memory Address.vi

Πίνακας 1. Τα VIs του Test Integration Toolkit for TI DSPs της ΝΙ

Το toolkit της NI απαιτεί την ύπαρξη του LabVIEW 7.0 ή µεταγενέστερη έκδοση και του Code Composer Studio v2.2 ή µεταγενέστερη έκδοση. Το toolkit της ΝΙ δεν υποστηρίζει την εγγραφή και ανάγνωση αριθµών και πινάκων κινητής υποδιαστολής µε απευθείας

Page 7: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 3

προσπέλαση της µνήµης του DSP. ∆εν υποστηρίζει την εγγραφή και ανάγνωση µη προσηµασµένων ακέραιων είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε µε την χρήση της RTDX τεχνολογίας. Το toolkit της NI δεν υποστηρίζει τις νέες δυνατότητες του CCS v3.1 όπως η δυναµική σύνδεση και αποσύνδεση της κάρτας µε αποτέλεσµα να µην µπορεί να ελεγχθεί αποτελεσµατικά το CCS µέσω του LabVIEW.

1.3 Τι είναι το LabVIEW to CCS Link; Ακολουθώντας την φιλοσοφία του Test Integration Toolkit for TI DSPs της National Instrument και µε σκοπό να καλύψουµε τις αδυναµίες του, δηµιουργήσαµε από την αρχή ένα νέο toolkit που το ονοµάσαµε LabVIEW to CCS Link. Το νέο toolkit έχει την δυνατότητα να ελέγχει πλήρως το Code Composer Studio v3.1 και να επικοινωνεί µε τους DSPs της Texas Instruments (TI). Στο Σχήµα 2 παρουσιάζεται η σύνδεση του LabVIEW µε το CCS χρησιµοποιώντας το LabVIEW to CCS Link Επιπρόσθετα παρέχει την δυνατότητα να ελεγχθεί το CCStudio Setup v3.1 ώστε να είναι δυνατό να οριστεί προγραµµατιστικά µέσω του LabVIEW το υλικό (hardware) µε το οποίο θα επικοινωνεί το CCS. Το LabVIEW to CCS Link υποστηρίζει την εγγραφή και ανάγνωση αριθµών και πινάκων όλων των τύπων (κινητής υποδιαστολής απλής ή διπλής ακρίβειας και ακέραιων µε ή χωρίς πρόσηµο των 1-, 2- ή 4-bytes) καθώς και γραµµατοσειρών (strings) µε απευθείας προσπέλαση της µνήµης του DSP. Υποστηρίζει την µεταφορά αριθµών και πινάκων (κινητής υποδιαστολής απλής ή διπλής ακρίβειας και ακέραιων µε ή χωρίς πρόσηµο των 1-, 2- ή 4-bytes) µε την RTDX τεχνολογία από και προς τον DSP.Το LabVIEW to CCS Link απαιτεί την ύπαρξη του LabVIEW 7.1 ή µεταγενέστερης έκδοσης και του Code Composer Studio v3.1 ή µεταγενέστερης έκδοσης.

C2000

LabVIEW to CCS Link

C5000 C6000 OMAP

Σχήµα 2. Σύνδεση του LabVIEW µε το CCS

Mε το LabVIEW to CCS Link είναι δυνατό να δηµιουργηθούν εύκολα και γρήγορα VIs που θα λειτουργούν ως γραφικά περιβάλλοντα αλληλεπίδρασης µε τον χρήστη (Graphical User Interfaces–GUIs) για τον έλεγχο και την διαχείριση εφαρµογών µε DSPs. Το LabVIEW to CCS Link είναι ένα πολύ χρήσιµο εργαλείο τόσο για εκπαιδευτικούς σκοπούς όσο και για σχεδιαστές DSP συστηµάτων λόγο του µικρού χρόνου ανάπτυξης των GUIs που οφείλεται στον γραφικό προγραµµατισµό του LabVIEW αλλά και στις δυνατότητες του LabVIEW to CCS Link. Με τον συνδυασµό των δυνατοτήτων του LabVIEW και του toolkit ο χρήστης µπορεί να δηµιουργήσει GUIs για εφαρµογές µε DSPs, µε πολύ µεγάλες δυνατότητες τόσο για τον έλεγχο των εφαρµογών του όσο και για την περαιτέρω επεξεργασία των αποτελεσµάτων ή για την προεπεξεργασία των δεδοµένων.

Page 8: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

4 2. Περιγραφή των subVIs του LabVIEW to CCS Link 2. Περιγραφή των subVIs του LabVIEW to CCS Link Τα subVIs του LabVIEW to CCS Link χωρίζονται σε τρεις κατηγορίες σύµφωνα µε την χρησιµότητα τους: • Ρύθµιση του CCS • Αυτοµατοποίηση του CCS • Επικοινωνία µε το CCS

2.1 Ρύθµιση του CCS Τα subVIs που ανήκουν στην κατηγορία Ρύθµιση του CCS ελέγχουν το CCStudio Setup v3.1 ή µεταγενέστερη έκδοση ώστε να είναι δυνατό προγραµµατιστικά να οριστεί η κάρτα ή οι κάρτες που θα επικοινωνήσει το CCS. Με τον όρο κάρτα πέρα από τις αναπτυξιακές πλατφόρµες εννοούµε και τους εξοµοιωτές. Το CCS δεν υποστηρίζει ταυτόχρονα την ύπαρξη πέραν του ενός εξοµοιωτή, υποστηρίζει όµως την ταυτόχρονη ύπαρξη ενός εξοµοιωτή και µιας ή περισσότερες αναπτυξιακές πλατφόρµες. Τα subVIs αυτής της κατηγορίας παρουσιάζονται στον Πίνακα 2.

Εικ. Ονοµασία Εικ. Ονοµασία

CCS_Setup_Open.vi

CCS_Setup_Remove_ Board.vi

CCS_Setup_Close.vi

CCS_Setup_Rename_ Processor.vi

CCS_Setup_Clear.vi

CCS_Setup_Boards_&_ Processors.vi

CCS_Setup_ Add_Board.vi

CCS_Setup_Save.vi

CCS_Setup_Rename_ Board.vi

Πίνακας 2. Τα VIs της κατηγορίας Ρύθµιση του CCS

2.1.1 CCS_Setup_Open.vi Το subVI CCS_Setup_Open.vi που φαίνεται στο Σχήµα 3 φορτώνει το CCStudio Setup και δηµιουργεί µια αναφορά στο CCStudio Setup.

CCSetup Outerror out

Visibleerror in

Σχήµα 3. Το CCS_Setup_Open.vi

Η είσοδος “Visible” είναι Boolean τύπου και ελέγχει αν θα γίνει ορατό στο χρήστη το παράθυρο του CCStudio Setup (True). Η προκαθορισµένη τιµή της είναι True.

Page 9: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 5

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Αν συµβεί κάποιο σφάλµα πριν την εκτέλεση του συγκεκριµένου VI δεν θα γίνει καµία ενέργεια από το VI και το περιεχόµενο της εισόδου “error in” θα περάσει στην έξοδο “error out”. Αυτό το VI θα λειτουργήσει φυσιολογικά µόνο αν δεν έχει προκύψει κάποιο σφάλµα νωρίτερα. Η προκαθορισµένη τιµή αυτής της εισόδου είναι η κατάσταση “no error”. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου. Η τιµή της είναι False ( ) αν δεν είχε προκύψει κάποιο σφάλµα πριν την εκτέλεση του VI ή True ( ) αν είχε προκύψει κάποιο σφάλµα νωρίτερα. Η προκαθορισµένη τιµή της είναι False.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος. Αν η είσοδος “status” έχει τιµή True τότε η είσοδος “code” θα έχει µια µη µηδενική τιµή που θα αντιπροσωπεύει το συγκεκριµένο σφάλµα, διαφορετικά θα έχει την τιµή µηδέν. Η προκαθορισµένη τιµή της είναι µηδέν.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα. Αν δεν έχει προκύψει κάποιο σφάλµα η τιµή της είναι ένα κενό String. Η προκαθορισµένη τιµή της είναι το κενό String.

Η έξοδος “CCSetup Out” είναι µια αναφορά στο CCStudio Setup.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Αν η είσοδος “error in” δείχνει ότι είχε προκύψει κάποιο σφάλµα πριν από την εκτέλεση του VI τότε το περιεχόµενο της εξόδου “error out” θα είναι ίδιο µε το περιεχόµενο της εισόδου “error in”, διαφορετικά θα περιγράφει το σφάλµα που µπορεί να προέκυψε κατά την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου. Η τιµή της είναι False ( ) αν δεν έχει προκύψει κάποιο σφάλµα , διαφορετικά είναι True ( ).

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος. Αν η έξοδος “status” έχει τιµή True τότε η έξοδος “code” θα έχει µια µη µηδενική τιµή που θα αντιπροσωπεύει το συγκεκριµένο σφάλµα, διαφορετικά θα έχει την τιµή µηδέν.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα. Αν δεν έχει προκύψει κάποιο σφάλµα η τιµή της είναι ένα κενό String.

2.1.2 CCS_Setup_Close.vi Το subVI CCS_Setup_Close.vi που φαίνεται στο Σχήµα 4 κλείνει το CCStudio Setup και την αναφορά σε αυτό που είχε δηµιουργήσει το CCS_Setup_Open.vi.

error outCCSetup In

e

rror in

Σχήµα 4. Το CCS_Setup_Close.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Page 10: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

6 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφα µάος “error

λ των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “s

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Το subVI CCS_Setup_Clear.vi που φαίνεται στο Σχήµα 5 σβήνει τις ρυθµίσεις που είχαν γίνει στο CCStudio Setup.

p Outerror out

CCSeterror in

2.1.3 CCS_Setup_Clear.vi

CCSetuup In

Σχήµα 5. Το CCS_Setup_Clear.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Η είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCSetup Out” είναι µια αναφορά στο CCStudio Setup.

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα µά

ος “errorλ των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “s

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 11: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 7

Setup_Add_Board.vi που φαίνεται στο Σχήµα 6 προσθέτει στο CStudio Setup την κάρτα της οποίας οι οδηγοί (αρχείο µε επέκταση .ccs) δηλώνονται στην

είσοδο “Driver Path”.

CCSetup In

error in

2.1.4 CCS_Setup_Add_Board.vi Το subVI CCS_C

CCSetup Outerror outDriver Path

Options

Σχήµα 6. Το CCS_Setup_Add_Board.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Η είσοδος“Driver Path” είναι η πλήρης διαδροµή του αρχείου (µε επέκταση .ccs) των

tudio v3.1 εφόσον έχει εγκατασταθεί στην προκαθορισµένη διαδροµή είναι C:\CCStudio_v3.1\drivers\import\*.ccs (όνοµα αρχείου).

οδηγών για την κάρτα που θα προστεθεί. Τα αρχεία οδηγών για τις κάρτες που υποστηρίζει το Code Composer S

Η α α ις που παρουσιάζονται στον Πίνακα

είσοδος “Options” είναι έν κέραιος των 32 bits µε συγκεκριµένες καταστάσε 3.

Τι ή µ Κατάσταση Περιγραφή

0 CLEAR_ORIGINAL Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί ακόµα και µε άλλο όνοµα. Αν υπάρχει τότε την αντικαθιστά δίνοντας το προκαθορισµένο της όνοµα

1 NO_DUPLICATES Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί σύµφωνα µε το όνοµα της. Αν υπάρχει τότε δεν προσθέτει την συγκεκριµένη κάρτα

2 REPLACEΕντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να

της. Αν υπάρχει τότε την αντικαθιστά δίνοντας το προκαθορισµένο της όνοµα

_DUPLICATES προστεθεί σύµφωνα µε το όνοµα

3 RENAME_DUPLICATES Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί σύµφωνα µε το όνοµα της. Αν υπάρχει τότε την προσθέτει δίνοντας της ένα διαφορετικό όνοµα.

Πίνακας 3. Οι καταστάσεις της εισόδου “Options”

Η ε ο

που πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ up Out” είναι µια αναφορά στο CCStudio Setup.

ος “CCSet

Η έξοδ t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά ίναι:

ος “error ouτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” ε

Page 12: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

8 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.1.5 CCS_Setup_Rename_Board.vi

Το subVI CCS_Setup_Rename_Board.vi που φαίνεται στο Σχήµα 7 δίνει στην κάρτα που δείχνει η είσοδος “Board” το όνοµα που περιέχει η είσοδος “New Name”. Για να χρησιµοποιηθεί το CCS_Setup_Rename.vi θα πρέπει να έχει οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup.

CCSetup In

error in

CCSetup Outerror outBoard

New Name

Σχήµα 7. Το CCS_Setup_Rename_Board.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Η είσοδος “Board” είναι ένα ακέραιος των 32 bits που δείχνει ποια κάρτα από αυτές που έχουν οριστεί στο CCStudio Setup θα µετονοµαστεί. Αν έχουν οριστεί N κάρτες τότε η είσοδος “Board” µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετικά θα

προκύψει κάποιο σφάλµα. Η προκαθορισµένη τιµή της εισόδου “Board” είναι µηδέν.

αθορίζει το νέο όνοµα που θα πάρει η κάρτα.

Η είσοδος “New Name” είναι τύπου String και κ

Η ε οπου πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ up Out” είναι µια αναφορά στο CCStudio Setup.

ος “CCSet

Η έξοδ t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά ίναι:

ος “error ouτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” ε

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 13: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 9

Το subVI CCS_Setup_Remove_Board.vi που φαίνεται στο Σχήµα 8 αποµακρύνει από τις τρέχουσες ρυθµίσεις του CCStudio Setup τη κάρτα που δείχνει η είσοδος “Board”. Για να χρησιµοποιηθεί το CCS_Set ει οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup.

CCSetup In

2.1.6 CCS_Setup_Remove_Board.vi

ν up_Remove_Board.vi θα πρέπει να έχ

CCSetup Outerror out

error inBoard

Σχήµα 8. Το CCS_Setup_Remove_Board.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

ακρυνθεί. Αν έχουν οριστεί N κάρτες

τότε η προκύψ σφάλµα. Η προκαθορισµένη τιµή της εισόδου “Board” είναι µηδέν.

Η είσοδος “Board” είναι ένα ακέραιος των 32 bits που δείχνει ποια κάρτα από αυτές που έχουν οριστεί στο CCStudio Setup θα αποµ

είσοδος “Board” µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετικά θα ει κάποιο

Η είσο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ τοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα σ

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξ δ

ο ος “CCSetup Out” είναι µια αναφορά στο CCStudio Setup.

Η έ οδ ροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πλη

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.1.7 CCS_Setup_Rename_Processor.vi Το subVI CCS_Setup_Rename_Processor.vi που φαίνεται στο Σχήµα 9, δίνει στον επεξεργαστή που δηλώνουν οι είσοδοι “Processor” και “Board” το όνοµα που περιέχει η είσοδος “ProcName”. Η είσοδος “Board” καθορίζει την κάρτα που περιέχει τον συγκεκριµένο επεξεργαστή, ενώ η είσοδος “Processor” καθορίζει τον επεξεργαστή. Για να χρησιµοποιηθεί το CCS_Setup_Rename_ Processor.vi θα πρέπει να οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup.

έχει

Page 14: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

10 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Board

CCSetup Outerror out

CCSetup In

error inProcessor

ProcName

Σχήµα 9. Το CCS_Setup_Rename_Processor.vi

H είσοδος “ProcName” είναι τύπου String και περιέχει το όνοµα που θα πάρει ο

επεξεργαστής

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

ικά θα προκύψει κάποιο σφάλµα. Η προκαθορισµένη τιµή της εισόδου “Board” είναι µηδέν.

Η είσοδος “Board” είναι ένα ακέραιος των 32 bits που δείχνει την κάρτα της οποίας θα µετονοµαστεί ο επεξεργαστής. Αν έχουν οριστεί N κάρτες στο CCStudio Setup τότε η είσοδος “Board” µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετ

ον επεξεργαστή που θα µετονοµαστεί

(που δ“Proce εί να πάρει τιµές από 0 έως και Μ-1, διαφορετικά θα προκύψει κάποιο

Η είσοδος “Processor” είναι ένας ακέραιος των 32 bits που δείχνει τον επεξεργαστή που θα µετονοµαστεί. Αν η κάρτα που περιέχει τ

ηλώνεται από την είσοδο “Board”) διαθέτει Μ επεξεργαστές τότε η είσοδος ssor” µπορ σφάλµα. Η προκαθορισµένη τιµή της εισόδου “Processor” είναι µηδέν.

Η ε ο το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος

Η έξοδ Out” είναι µια αναφορά στο CCStudio Setup.

ος “CCSetup

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.1.8 CCS_Setup_Boards_&_Processors.vi Τ χήµα 10 επιστρέφει να ίν υσες ρυθµίσεις του CS ud

ο subVI CCS_Setup_Boards_&_Processors.vi που φαίνεται στο Σ π ακα στην έξοδο “Boards & Processors” που δείχνει τις τρέχοέ

C t io Setup.

Page 15: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 11

CCSetup OutCCSetup In

error outerror in Boards & Processors

Σχήµα 10. Το CCS_Setup_Rename_Processor.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

CSetup Out” είναι µια αναφορά στο CCStudio Setup. Η έξοδος “C

Η έξοδος “Boards & Processors” είναι ένας δύο διαστάσεων πίνακας µε στοιχεία τύπου String που δείχνει τις τρέχουσες ρυθµίσεις στο CCStudio Setup. Το

επόµενπουτρεις ε της γραµµής του “cpu1”, το τρίτο στοιχείο της γραµµής θα περιέχει το “cpu2” και το τέταρτο στοιχείο θα περιέχει

πρώτο στοιχείο κάθε γραµµής του παραπάνω πίνακα περιέχει το όνοµα της κάρτας ενώ τα

α στοιχεία κάθε γραµµής του πίνακα περιέχουν το όνοµα κάθε επεξεργαστή περιέχει η συγκεκριµένη κάρτα. Για µια κάρτα µε όνοµα my_board που διαθέτει

πεξεργαστές µε ονόµατα cpu1, cpu2 και cpu3, το πρώτο στοιχείο πίνακα θα περιέχει το “my_board”, το δεύτερο στοιχείο θα περιέχει το

το “cpu3”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” String και περιγράφει το σφάλµα.

.1.

Ταποθήκ

είναι τύπου

2

9 CCS_Setup_Save.vi

ο subVI CCS_Setup_Save.vi που φαίνεται στο Σχήµα 11 αναλαµβάνει την ευση των ρυθµίσεων στο CCStudio Setup.

CCSetup In CCSetup Outerror outerror in

Σχήµα 11. Το CCS_Setup_Save.vi

Η είσοδος “CCSetup In” είναι µια αναφορά στο CCStudio Setup.

Page 16: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

12 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

οποίτα α αποτελείται η είσοδος “error in” είναι: ς “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδο

σφάλµα. ode” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος “c

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCSetup Out” είναι µια αναφορά στο CCStudio Setup.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλ ς. µατο Η έξοδος “source” String και περιγράφει σφάλµα.

2.2 Αυτοµατοποίηση του CCS Τα subVIs που ανήκουν Αυτο ατοποίηση του CCS έχουν ως σκοπό τον έλεγχο του Code C mpo 3.1 ή µεταγε έ ση και κατά επέκταση του DSP. Στον Πίνακα 4 παρουσιάζονται τα subVIs αυτής της κατηγορίας.

είναι τύπου το

στην κατηγορίαo v

µo ser Studi ν στερη έκδο

Εικ. Ονοµασία Εικ. Ονοµασία

CCS_Open.vi

CCS_Reset.vi

CCS_Close.vi

CCS_Run.vi

CCS_Open_ Project.vi

CCS_Restart.vi

CCS_Close_ Project.vi

CCS_Halt.vi

CCS_Is_DSP_ Running.vi

CCS_Connect.vi

CCS_Disconnect.vi

CCS_RTDX_Enable.vi

CCS_Build_All.vi

CCS_RTDX_Disable.vi

CCS_Build_ Result.vi

CCS_RTDX_Logfile_ Configuration.vi

CCS_Download.vi

s της κατηγορίας ΑυτοµατοποίησηΠίνακας 4. Τα VI του CCS

Page 17: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 13 2.2. Τ

CCS Visible Is CCS Visible

1 CCS_Open.vi

ο subVI CCS_Open.vi που φαίνεται στο Σχήµα 12 φορτώνει το CCS.

CCS Out

error outerror in

Σχήµα 12. Το CCS_Open.vi

Η ε ο

Para leπερ σκάρτα ug Window του C

ίσ δος “CCS Visible” είναι Boolean τύπου και ελέγχει αν θα γίνει ορατός ο l l Debug Manager (PDM) όταν το CCS έχει ρυθµιστεί ώστε να υποστηρίζει ισ ότερες από µια κάρτες. Όταν το CCS έχει ρυθµιστεί να υποστηρίζει µόνο µια

τότε η είσοδος “CCS Visible” καθορίζει αν θα γίνει ορατό το Deb C S. Η προκαθορισµένη τιµή της είναι True.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

έξοδ

Η ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ δMan g ρισσοτέρων από ια οριστεί η υποστήριξη µόνο µιας κάρτας).

ξο ος “Is CCS Visible” είναι Boolean τύπου και δείχνει αν o Parallel Debug er είναι ορατόa ς (εφόσον έχει οριστεί η ταυτόχρονη υποστήριξη πε

µ ς κάρτας) ή αν το Debug Window του CCS είναι ορατό (εφόσον έχει

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” ε ιγράφει το σφάλµα.

.2.2 Ταναφορ

CCS In

ίναι τύπου String και περ

2 CCS_Close.vi

ο subVI CCS_Close.vi που φαίνεται στο Σχήµα 13 κλείνει το CCS και τις σχετικές ές.

error outerror in

Σχήµα 13. Το CCS_Close.vi

Page 18: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

14 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

Η “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύ

που και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.3 CCS_Open_Project.vi

Τδηλώνε ια τον επεξεργαστή της άρτας που δείχνει η είσοδος “Boards & Processor”.

ο subVI CCS_Open_Project.vi που φαίνεται στο Σχήµα 14 ανοίγει το project που ι η είσοδος “Project Path” στο Debug Window του CCS γ

κ

error out

CCS In

error in

Project Path In C n u

Board & Processor

C S_Eve t_Notif_O tCCS Out

Debug Window Visible

Σχήµα 14. Το CCS_Open_Project.vi

Η ε οproject

ίσ δος “Project Path In” είναι τύπου String και δηλώνει την πλήρη διαδροµή του (αρχείο µε επέκταση .pjt) που πρόκειται να φορτωθεί.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

θεί για την υλοποίηση του project. Η

είσοδος

Η είσοδος “Board & Processors” είναι µια οµάδα εισόδων που δείχνει τον επεξεργαστή και την κάρτα που θα χρησιµοποιη

“Board & Processor” αποτελείται από τα παρακάτω στοιχεία: “Processor” είναι ένας µη προσηµασµένος ακέραιος των 8 bits που Η είσοδος

δηλώνει τον επεξεργαστή που θα χρησιµοποιηθεί. Η προκαθορισµένη τιµή της είναι µηδέν.

Η είσοδος “Board” είναι ένας µη προσηµασµένος ακέραιος των 8bits που δηλώνει την κάρτα που θα χρησιµοποιηθεί. Η προκαθορισµένη τιµή της είναι

µηδέν.

Page 19: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 15

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η ε ο

ορατό ndow του CCS για την συγκεκριµένη κάρτα και επεξεργαστή. Η προ θ

ίσ δος “Debug Window Visible” είναι Boolean τύπου και ελέγχει αν θα γίνει το Debug Wi

κα ορισµένη τιµή της είναι True.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες υ µπορεί να συµβούν στο CCS. σχετικές µε τα γεγονότα πο

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

.2.4 CCS_Close_Project.vi διαγρά

2

Το subVI CCS_Close_Project.vi που φαίνεται στο Σχήµα 15 κλείνει το Project και φει τις π ρλη οφορίες που σχετίζονται µε αυτό.

CCS In

CCS_Event_Notif_InCCS Out

error outerror in

Σχήµα 15. Το CCS_Close_Project.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές

µε τα γεγονότα που µπορεί να συµβούν στο CCS.

είσοδ

Η ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η ε οπου ιθ στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέπ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος.

Page 20: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

16 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” ράφει το σφάλµα.

.2. ΤσυνδεθσύνδεσCCS_ConneεξοµοιωCCS.

CCS In CCS Out

είναι τύπου String και περιγ

2 5 CCS_Connect.vi

ο subVI CCS_Connect.vi που φαίνεται στο Σχήµα 16 δίνει εντολή στο CCS να εί µε την κάρτα. Στην πραγµατικότητα αξιοποιεί την δυνατότητα της δυναµικής ης µε την κάρτα του CCS v3.1. ∆εν έχει νόηµα να χρησιµοποιείται το

ct.vi όταν το CCS έχει ρυθµιστεί να χρησιµοποιήσει κάποιον από τους τές, αφού σε αυτή την περίπτωση η δυναµική σύνδεση δεν υποστηρίζεται από το

error outerror inTimeout Connection Status

Σχήµα 16. Το CCS_Connect.vi

Η είσοδ In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS

Η είσο ” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστη ριµένου VI µέχρι να επιτευχθεί η σύνδεση µε την κάρτα. Στην περίπτωση που περάσει αυτό το

ι ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την

ηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

δος “Timeoutµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκ

χρονικό διάστηµα και δεν έχει επιτευχθεί η σύνδεση µε την κάρτα τότε δηµιουργείτα

επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξ

Η “e ια ο υ περιγράφει το σφάλµα που ιν τη στοιχεία από τα οία απ ς “e

είσοδος rror in” είναι µ µάδα (Cluster) εισόδων πο πιθανόν ρνα προέκυψε π ν εκτέλεση του συγκεκριµένου VI. Ταοπ οτελείται η είσοδο rror in” είναι: Η είσοδος αι κάποιο

σφάλµ “status” είν Boolean τύπου και δείχνει αν προέκυψε

α. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ ut” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS O

Page 21: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 17

Η έ οδ υγκεκριµένες καταστάσεις που παρουσιάζονται στον Πίνακα 5.

ξ ος “Connection Status” είναι ένας ακέραιος των 32 bits µε σ

Τιµή Κατάσταση Περιγραφή 0 CONNECTED Η κάρτα συνδέθηκε µε το CCS 1 CONNECTING Εκτελείται η διαδικασία σύνδεσης της κάρτας 2 DISCONNECTED Η κάρτα αποσυνδέθηκε από το CCS 3 DISCONNECTING Εκτελείται η διαδικασία αποσύνδεσης της κάρτας

Πίνακας 5. Οι καταστάσεις της εισόδου “Connection Status”

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” its που δείχνει τον κώδικα του είναι ένας ακέραιος των 32 b

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.6 ΤαποσυναποσύνCCS_Dξοµοιω νδεση δεν υποστηρίζεται από το

CCS_Disconnect.vi

ο subVI CCS_Disconnect.vi που φαίνεται στο Σχήµα 17 δίνει εντολή στο CCS να δέσει την κάρτα. Στην πραγµατικότητα αξιοποιεί την δυνατότητα της δυναµικής δεσης της κάρτας που διαθέτει το CCS v3.1. ∆εν έχει νόηµα να χρησιµοποιείται το isconnect.vi όταν το CCS έχει ρυθµιστεί να χρησιµοποιήσει κάποιον από τους τές, αφού σε αυτή την περίπτωση η δυναµική αποσύε

CCS.

CCS In CC

error outerror in

S OutTimeout Connection Status

Σχήµα 17. Το CCS_Disconnect.vi

Η ε οδ το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

οσύνδεση τότε δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ κάρτα ι από τον υπολογιστή που χρήστης µπορεί σε ορι ένες πε πρέπ ς εισόδου “Timeout”. Η προκαθορισµ ναι 10

µέχρι να επιτευχθεί η αποσύνδεση της κάρτας. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει επιτευχθεί η απ

ε την εξαρτώντα διαθέτει oσµ ριπτώσεις να ει να αυξηθεί η τιµή τη

ένη τιµή της εί sec (10000 msec).

Η ια ο σφάλµα που πιθανόν ν . Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

είσοδος “error in” είναι µ µάδα (Cluster) εισόδων που περιγράφει τοα προέκυψε πριν την εκτέλεση του συγκεκριµένου VI

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Page 22: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

18 2. Περιγραφή των subVIs του LabVIEW to CCS Link

ς.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατο

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έ δ ε το CCS. ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ

Η έξοδος “Connection Status” είναι ένας ακέραιος των 32 bits µε συγκεκριµένες υσιάζονται στον Πίνακα 6. καταστάσεις που παρο

Τιµή Κατάσταση Περιγραφή

0 CONNECTED Η κάρτα συνδέθηκε µε το CCS 1 CONNECTING Εκτελείται η διαδικασία σύνδεσης της κάρτας 2 DISCONNECTED Η κάρτα αποσυνδέθηκε από το CCS 3 DISCONNECTING Εκτελείται η διαδικασία αποσύνδεσης της κάρτας

Πίνακας 6. Οι καταστάσεις της εισόδου “Connection Status”

Η έξοδος “error out” την πληροφορία των

σφαλµάτων. Τα στοιχεία “error out” είναι: είναι µια οµάδα εξόδων που περιέχει από τα οποία αποτελείται η έξοδος

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποισφάλµα.

ο

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

CCS_Build_All.vi

ο subVI CCS_Build_All.vi που φαίνεται στο Σχήµα 18 δίνει εντολή να κτιστεί και να εί το εκτελέσιµο αρχείο (µε επέκτ

2.2.7 Τηµιουργηθ αση .out) για το project και την κάρτα που ερ ρά

δπ ιγ φεται από τις πληροφορίες παρέχει η είσοδος “CCS In”.

CCS In

error outerror inTimeout

CCS Out

Σχήµα 18. Το CCS_Close_Project.vi

Η ε οδ το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

µα. ειδή

κάρτα ι από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περι τώτιµή τη c (100000 msec).

µέχρι να ολοκληρωθεί το κτίσιµο του project. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί το κτίσιµο δηµιουργείται ένα σφάλΕπ πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την

εξαρτώνταπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

ς είναι 100 se

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Page 23: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 19

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” ts που δείχνει τον κώδικα του είναι ένας ακέραιος των 32 biσφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.8 Τc_buil τυχόν λάθη, προειδοποιήσεις ή παρατηρήσεις που δηµιουργήθηκαν ετά το ατα

CCS CCS_Bείσοδοςπου ενηµερ ν

CCS_Build_Result.vi

ο subVI CCS_Build_Result.vi που φαίνεται στο Σχήµα 19 ελέγχει το αρχείο d_Debug.log γιαc

µ κτίσιµο του project. Το αρχείο cc_build_Debug.log δηµιουργείται αυτόµ από το όταν ολοκληρώνεται η διαδικασία του κτισίµατος κάποιου project. Αν το uild_Result.vi εντοπίσει κάποιο λάθος ή προειδοποίηση ή παρατήρηση και εφόσον η “Ignore Errors From Build” είναι False εξάγει στην έξοδο “error out” ένα σφάλµα

ώ ει τα subVIs που ακολουθούν.

error outerror inIgnore Errors From Build

CCS In CCS OutRemarksWarningsErrors

Build Result

Σχήµα 19. Το CCS_Build_Result.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

om Build” είναι Boolean τύπου. Η προκαθορισµένη τιµή της είναι False. Αν η είσοδος “Ignore Errors From Build” είναι False και εντοπιστεί Η είσοδος “Ignore Errors Fr

κάποια ανωµαλία (λάθος ή προειδοποίηση ή παρατήρηση) κατά το κτίσιµο του project τότε θα εξαχθεί ένα σφάλµα από την έξοδο “error out” που θα ενηµερώνει τα VIs που το ακολουθούν.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 24: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

20 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδ είναι τύπου String και δείχνει τον αριθµό των λαθών που προέκυψαν κατά τοBuild”

ος “Error” κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου “Ignore Errors From

Η έξοδος “Warnings” είναι τύπου String και δείχνει τον αριθµό των προειδοποιήσεων που προέκυψαν κατά το κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου

uild” “Ignore Errors From B

Η έξοδος “Remarks” είναι τύπου String και δείχνει τον αριθµό των προειδοποιήσεων που προέκυψαν κατά το κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου “Ignore Errors From Build”

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Build Result” είναι τύπου String και δείχνει το αποτέλεσµα του κτισίµατος

του project ανεξάρτητα από την τιµή τις εισόδου “Ignore Errors From Build”

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” ναι: εί

Η έξοδος “status δείχνει αν προέκυψε κάποιο σφάλµα.

” είναι Boolean τύπου και

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

.2. Τφορτώσδηµιουµε του CCS) δαρχείο

2 9 CCS_Download.vi

ο subVI CCS_Download.vi που φαίνεται στο Σχήµα 20 δίνει εντολή στο CCS να ει το εκτελέσιµο αρχείο (µε επέκταση .out) στον DSP. Θα πρέπει κατά την ργία του project στο CCS να έχει οριστεί, ως όνοµα του εκτελέσιµου αρχείου το ίδιο project και ότι θα αποθηκευτεί στον φάκελο Debug (προκαθορισµένες ρυθµίσεις του ιαφορετικά το CCS_Download.vi δεν θα είναι σε θέση να εντοπίσει το συγκεκριµένο και θα προκύψει κάποιο σφάλµα.

error o

CCS In

error in

CCS OutTimeout

CCS_Event_Notif_OutCCS_Event_Notif_In

ut

Σχήµα 20. Το CCS_Download.vi

Η είσο ent_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές

µε τα γδος “CCS_Evεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

I µέχρι να ολοκληρωθεί η µεταφορά του εκτελέσιµου αρχείου στον DSP. Στην διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου V

Page 25: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 21

νται µε CC

διαθέτε ς µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισό ο

περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η µεταφορά δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζοτο S και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που

ι o χρήστηδ υ “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η ε ο ι το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφε

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” ναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα πο CCS.

είυ µπορεί να συµβούν στο

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

CCS_Reset.vi

ο subVI CCS_Reset.vi που φαίνεται

2.2.10

Τ στο Σχήµα 21 δίνει εντολή στον DSP, µέσω του CS ν

C , α επανέλθει στην αρχική του κατάσταση (Reset).

CCS In

CCS_Event_Notif_OutCCS_Event_Notif_In

error in

CCS OutTimeout

Σχήµα 21. Το CCS_Reset.vi

Η ε ο ίες σχετικές

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορµε τα γεγονότα που µπορεί να συµβούν στο CCS.

ίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

ω

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η επαναφορά του DSP στην αρχική του κατάσταση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρ θεί η επαναφορά του DSP στην αρχική του κατάσταση δηµιουργείται ένα σφάλµα. Επειδή

Page 26: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

22 2. Περιγραφή των subVIs του LabVIEW to CCS Link

πολλέςεξαρτώ ν υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περ τώ καθορισµένη τιµή της είναι 10 sec (10000 msec).

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από το

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προ

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” µάδα που περιέχει πληροφορίες είναι µια οσχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2. ΤοCCS, να ξεκιν

CCS Out

11 CCS_Run.vi

su Vb I CCS_Run.vi που φαίνεται στο Σχήµα 22 δίνει εντολή στον DSP, µέσω του ήσει την εκτέλεση του προγράµµατος.

error outerror inTimeoutCCS In

Σχήµα 22. Το CCS_Run.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

είσοδιάστη c, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρ νπεράσε χρονικό διάστηµα και δεν έχει ξεκινήσει η εκτέλεση του προγρά διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να

ς εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε mse

ι α ξεκινήσει η εκτέλεση του προγράµµατος από τον DSP Στην περίπτωση που ι αυτό το µµατος από τον DSP δηµιουργείται ένα σφάλµα. Επειδή πολλές

αυξηθεί η τιµή τη

Page 27: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 23

ση του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλε

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” ε bits που δείχνει τον κώδικα του ίναι ένας ακέραιος των 32σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

CCS_Restart.vi

.2.12

ΤProgram

CCS_Event_Notif_Outent_Notif_In

2

ο subVI CCS_Restart.vi που φαίνεται στο Σχήµα 23 µέσω του CCS επαναφέρει τον Counter του DSP στην αρχική του τιµή.

CCS_Ev

error out

CCS In CCS OutTimeouterror in

Σχήµα 23. Το CCS_Restart.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές

µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό άστηµ σε συγκεκριδι α msec, από την στιγµή που ξεκίνησε η εκτέλεση του µένου VI

µέ α ολοκληρωθεί η επαναφορά του Program Counter στην αρχική του τιµή. Στην χρι νπερί τωεπαν φΕπειδή ωνία µε την κάρτα σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

0 sec (10000 msec).

π ση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η α ορά του Program Counter στην αρχική του τιµή δηµιουργείται ένα σφάλµα.

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί

τιµή της είναι 1

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Page 28: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

24 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” ριγράφει το σφάλµα. είναι τύπου String και πε

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίεσχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

ς

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατ ς. ο Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.13 Το subVI CCS_Halt.vi που φαίνεται στο Σχήµα 24 δίνει εντολή στον DSP µέσω του CCS σταµα ήσCCS_Halt.vi σταµατήσει την εκτέλεση του προγράµµατος ενώ είναι σταµατηµένος

CCS_Halt.vi

τ ει την εκτέλεση του προγράµµατος. Στην περίπτωση που δοθεί εντολή από το στον DSP να η εντολή απλά αγνοείται χωρίς να προκύψει κάποιο σφάλµα.

CCS In CCS Out

Timeouteerror in rror out

Σχήµα 24. Το CCS_Halt.vi

Η είσοδ In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS

Η είσο ” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστη κριµένου VI µέχρι να σταµατήσει η εκτέλεση του προγράµµατος από τον DSP Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει σταµατήσει η εκτέλεση του

δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον

εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

δος “Timeoutµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκε

προγράµµατος από τον DSP

υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της

Η είσοδος “error in” που περιγράφει το σφάλµα που πιθανόν να προέκ ριµένου VI. Τα στοιχεία από

είναι µια οµάδα (Cluster) εισόδωνυψε πριν την εκτέλεση του συγκεκ

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα.

Page 29: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 25

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ ut” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS O

Η έξοδ t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά αι:

ος “error ouτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είν

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.14 CCS_Is_DSP_Running.vi

Τεκτελεί

ο subVI CCS_Is_DSP_Running.vi που φαίνεται στο Σχήµα 25 ελέγχει αν ο DSP

κάποιο πρόγραµµα.

CCS In CCS Out

error outerror in

DSP_StateRunning

Σχήµα 25. Το CCS_Is_DSP_Running.vi

Η ε οδ ε το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να προέκυψε

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίε σχετικές µε το CCS.

ς

Η έξοδος “DSP_State” είναι ένας ακέραιος των 32 bits που δείχνει την κατάσταση του ι

χαθεί η σύνδεση την κάρτας µε το CCS. Η τιµή 0 σηµαίνει ότι ο DSP έχει σταµατήσει

DSP. Η τιµή -1 σηµαίνει ότι o DSP βρίσκεται σε απροσδιόριστη κατάσταση ή έχε

την εκτέλεση κάποιου προγράµµατος και η τιµή 1 σηµαίνει ότι ο DSP εκτελεί κάποιο πρόγραµµα.

Η έ δπρόγρα

ξο ος “Is CCS Visible” είναι Boolean τύπου και δείχνει αν ο DSP εκτελεί κάποιο µµα (True).

Η έξοδσφαλµά ελείται η έξοδος “error out” είναι:

ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των των. Τα στοιχεία από τα οποία αποτ

Page 30: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

26 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

των 32 bits που δείχνει τον κώδικα του Η έξοδος “code” είναι ένας ακέραιος σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2. ΤRTDX

15 CCS_RTDX_Enable.vi

ο subVI CCS_RTDX_Enable που φαίνεται στο Σχήµα 26 ενεργοποιεί και ρυθµίζει την τεχνολογία.

error out

CCS In

error in

CCS OutRTDX Settings

Timeout

Σχήµα 26. Το CCS_RTDX_Enable.vi

ι πληροφορίες σχετικές µε το CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχε

Η είσο X Settings” είναι µια οµάδα εισόδων που περιέχει πληροφορίες για τηνπαρακά

δος “RTD ρύθµιση της RTDX τεχνολογίας. Η είσοδος “RTDX Settings” αποτελείται από τα

τω στοιχεία: Η είσοδος “Mode” είναι ένας ακέραιος των 32 bits µε συγκεκριµένες

καταστάσεις, που δηλώνει την µέθοδο που θα ακολουθήσει η RTDX

τιµή 1 σηµαίνει την χρήση της Continuous µεθόδου. Η προκαθορισµένη τιµή τεχνολογία. Η τιµή 0 σηµαίνει την χρήση της Non Continuous µεθόδου ενώ η

της είναι µηδέν (Non Continuous). Η είσοδος “Buffer Size” είναι ένας ακέραιος των 32 bits, που δηλώνει τo

ισµένη τιµή της είναι 1024. µέγεθος σε bytes κάθε buffer που χρησιµοποιεί η RTDX τεχνολογία. Η προκαθορ

Η είσοδος “Num of Buffers” είναι ένας ακέραιος των 32 bits, που δηλώνει τoν αριθµό των buffers που χρησιµοποιεί η RTDX τεχνολογία. Η προκαθορισµένη τιµή της είναι 4.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

ν στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ενεργοποιηθεί η RTDX τεχνολογία Στην περίπτωση που περάσει αυτό το

µα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να υξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της

διάστηµα σε msec, από τη

χρονικό διάστηµα και δεν έχει ενεργοποιηθεί η RTDX τεχνολογία δηµιουργείται ένα σφάλ

α είναι 10 sec (10000 msec).

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµ

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία απα ό

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα.

Page 31: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 27

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

αι η έξοδος “error out” είναι:

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείτ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.2.16 CCS_RTDX_Disable.vi Τ RTDX τεχνολογία.

ο subVI CCS_RTDX_Disable.vi που φαίνεται στο Σχήµα 27 απενεργοποιεί την

CCS In CCS Outerror outerror in

Timeout

Σχήµα 27. Το CCS_RTDX_Enable.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να απενεργοποιηθεί η RTDX τεχνολογία Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει απενεργοποιηθεί η RTDX τεχνολογία δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία απΗ είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

ό τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδσφαλµά ι η έξοδος “error out” είναι:

ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των των. Τα στοιχεία από τα οποία αποτελείτα

Page 32: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

28 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

γράφει το σφάλµα.

2.2.17 S l Τ 8 ρυθµίζει ις ιδιότητες του Logfile αρχείου (*µε επέκταση .rtd) που χρησιµοποιεί η RTDX τεχνολογία ότα επ

Η έξοδος “source” είναι τύπου String και περι

CC _RTDX_Logfi e_Configuration.vi

ο subVI CCS_RTDX_Logfile_Configuration.vi που φαίνεται στο Σχήµα 2τ

ν ιλεχθεί η Non Continuous µέθοδος.

CCS In

error out

CCS OutLogfile Parameters

error inLogfile Path

Σχήµα 28. Το CCS_RTDX_Enable.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Logfile Parameters” είναι µια οµάδα εισόδων που περιέχει πληροφορίες

meters” για την ρύθµιση των παραµέτρων του Logfile που θα χρησιµοποιηθεί από την RTDX τεχνολογία αν επιλεχθεί η Non Continuous µέθοδος. Η είσοδος “Logfile Paraαποτελείται από τα παρακάτω στοιχεία:

ς “FileSize” είναι ένας ακέραιος των 32 bits, που καθορίζει το Η είσοδοµέγεθος του Logfile σε bytes. Η προκαθορισµένη τιµή της είναι 32768 bytes.

ileFullMode” είναι ένας ακέραιος των 32 bits µε συγκεκριµένες gfile αρχείο.

Η τιµή 0 αντιστοιχεί στην µέθοδο Discard που είναι και η προκαθορισµένη. Η τιµή 1 αντιστοιχεί στην µέθοδο Circular.

Η είσοδος “Fκαταστάσεις, που δηλώνει τον τρόπο που θα δηµιουργείται το Lo

Η είσοδος “FileOpenMode” είναι ένας ακέραιος των 32 bits µε συγκεκριµένες ώνει τον τρόπο που θα ανοίγει το Logfile αρχείο. Η τιµή

0 αντιστοιχεί στην µέθοδο RTDX_Read_Only. Η τιµή 1 αντιστοιχεί στην καταστάσεις, που δηλ

µέθοδο RTDX_Append και η τιµή 2 αντιστοιχεί στην µέθοδο RTDX_Over_ Write που είναι και η προκαθορισµένη τιµή .

Η είσοδος “Logfile Path” που είναι τύπου String, καθορίζει την διαδροµή στην οποία

θα δηµιουργηθεί το Logfile αρχείο. Η προκαθορισµένη τιµή της είναι C:\CCStudio_v3.1\cc\bin\logfile.rtd (προκαθορισµένες ρυθµίσεις του CCS εφόσον έχει εγκατασταθεί στην που προτείνεται κα ατάσταση).

διαδροµή τά την εγκ

Η είσοδος “ ror µια οµάδα (Cluste που περιγράφει το σφάλµα που πιθανόν να προέκυψε την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία απο ελείτ “error in” είναι

er in” είναι r) εισόδων πρινοδοςτ αι η είσ :

Η είσοδος “status” είναι Boolean και δείχνει αν προέκυψε κάποιο σφάλ α.

τύπουµ

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλ ατοςµ .

Η είσοδος “source” είναι τύπου String και το σφάλµα. περιγράφει

Page 33: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 29

Η έξοδος “CCS Out” είναι µια οµάδα που περι ρίες σχετικές µε το CCS.

έχει πληροφο

Η έξοδος “error o ι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. α στ ό τα οποία αποτελείται η έξοδος “error out” είναι:

ut” είναΤ οιχεία απ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

.3 Επικοινωνία µε το CCS Τα subVIs που ανήκουν στην κατηγορία Επικοινωνία µε το CCS χρησιµοποιούντα για την ανταλλαγή δεδοµένων µεταξύ του LabVIEW και του CCS. Με τα subVIs αυτής της κατηγορίας ο χρήστης µπορ τέλνουν και θα λαµβάνουν εδοµένα από τον DSP είτε µ του DSP είτε αξιοποιώντας

T

2

εί να δηµιουργήσει VIs που θα σε απευθείας προσπέλαση της µνήµηςδ

την R DX τεχνολογία. Τα subVIs αυτή της κατηγορίας παρουσιάζονται στον Πίνακα 7.

Εικ. Ονοµασία Εικ. Ονοµασία

RTDX_ChDisable.vi

annel_

MEM_Read.vi

RTDX_Channel_ Enable.vi

MEM_Write.vi

Status.vi RTDX_Channel_

ds_Read_ (DSK6713).vi Le

Leds_Write_ (DSK6713).vi

RTDX_Read.vi

Switches_Read_ (DSK6713).vi

RTDX_Write.vi

MEM_Get_ Address.vi

Πίνακας 7. Τα subVIs της κατηγορίας Επικοινωνία µε το CCS

2.3.1 RTDX_Channel_Disable.vi Το subVI RTDX_Cha το

κανάλι

error in

CCS Out

nnel_Disable.vi που φαίνεται στο Σχήµα 29 απενεργοποιεί που περιγράφει η είσοδος “Channel”. RTDX

CCS In

Channel error out

Σχήµα 29. Το RTDX_Channel_Disable.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Page 34: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

30 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “Channel” όνοµα του RTDX καναλιού που είναι τύπου String, καθορίζει τοπου θα απενεργοποιηθεί.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ οδ φορία των ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροσφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

2.3.2 RTDX_Channel_Enable.vi

Το subVI RTDX_Channel_Enable.vi που φαίνεται στο Σχήµα 30 ενεργοποιεί το RTDX nnel”.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

κανάλι που περιγράφει η είσοδος “Cha

error out

CCS In

error in

CCS OutChannel

Σχήµα 30. Το RTDX_Channel_Enable.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” όνοµα του RTDX καναλιού που είναι τύπου String, καθορίζει τοπου θα ενεργοποιηθεί.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Page 35: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 31

Η έ οδ φορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληρο

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Channel_Status.vi

2.3.3

Το subVI RTDX_Channel_Enable.vi που φαίνεται στο Σχήµα 31 δείχνει την κατάσταση του T

R DX καναλιού που περιγράφει η είσοδος “Channel”.

CCS In CCS Out

error outerror inChannel ChannelStatus

Σχήµα 31. Το RTDX_Channel_Status.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού που θα ελεγχθεί η κατάσταση του.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σ µα. φάλ

Η ε σο ακέραιος τ ι τον κώδικα του σφάλµατος.

ί δος “code” είναι ένας ων 32 bits που δείχνε

Η ε οδ τύπου String κ µα.

ίσ ος “source” είναι αι περιγράφει το σφάλ

Η έξοδος “ C µάδα που περιέ ικές µε το CCS.

C S Out” είναι µια ο χει πληροφορίες σχετ

Η έξοδος “C ένας ακέραιος ε συγκεκριµένες καταστάσεις π τάσταση του υ καναλιού. Η τιµή 0 που αντιστοιχεί στην κατάσταση RTDX_Channel_Enabled δείχνει ότι το κανάλι είναι εν γο τιµή 1 ο την κατάσταση RTDX_Channel_Disable δείχνει ότι το κανάλι είναι απενεργοποιηµένο και η τιµή 2 που αντιστ ιχε Unknown δ ί προσδιοριστεί η κατάσταση του καναλιού.

hannelStatus” είναιου δείχνει την κα

των 32 bits µγκεκριµένου RTDX σ

ερ ποιηµένο. Η π υ αντιστοιχεί σ

ο ί στην κατάσταση ε χνει ότι δεν µπορεί να

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτω Τ αποτελε t” είναι: ν. α στοιχεία από τα οποία ίται η έξοδος “error ou

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “co που δείχνει τον κώδικα του σφάλµατος.

de” είναι ένας ακέραιος των 32 bits

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 36: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

32 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Το subVI RTDX_Read.vi είναι ένα πολυµορφικό VI που διαβάζει πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβεια ακέραιους µε ή χωρίς πρόσηµο των 8- , 16- και 32-bit από ένα RTDX κανάλι από ένα σύνολο subVIs ου θα περιγραφούν στην συνέχ οµαστικά στον Πίνακα 8.

2.3.4 RTDX_Read.vi

ς, . Το RTDX_Read.vi αποτελείται

εια και που παρουσιάζονται ονπ

Εικ. Ονοµασία Εικ. Ονοµασία

RTDX_Read_F4.vi RTDX_Read_SA_F4.vi

RTDX_Read_F8.vi

RTDX_Read_SA_F8.vi

RTDX_Read_I1.vi

RTDX_Read_SA_I1.vi

RTDX_Read_I2.vi

RTDX_Read_SA_I2.vi

RTDX_Read_I4.vi

RTDX_Read_SA_I4.vi

RTDX_Read_UI1.vi

RTDX_Read_SA_UI1.vi

RTDX_Read_UI2.vi

RTDX_Read_SA_UI2.vi

RTDX_Read_UI4.vi RTDX_Read_SA_UI4.vi

Πίνακας 8. Τα subVIs του RTDX_Read.vi

TDX_Read_F4.vi

Το subVI RTDX_Read_F4.vi που φαίνεται στο Σχήµα 32 διαβάζει αριθµούς κινητής υπο αείσοδος

R

δι στολής µονής ακρίβειας των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η

“Channel”.

error out

CCS In CCS OutChannel DataTimeouterror in

Σχήµα 32. Το RTDX_Read_F4.vi

Η ε οδ ε το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ

Η είσοδος “Channel” από το οποίο θα

που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

Page 37: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 33

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

ό τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία απ

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας αριθµός κινητής υποδιαστολής µονής ακρίβειας των 32 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

TDX_Re _

Τ ποδιασ η εί δ

R

ad F8.vi

υ

ο subVI RTDX_Read_F8.vi που φαίνεται στο Σχήµα 33 διαβάζει αριθµούς κινητήςτολής διπλής ακρίβειας των 64 bits (8 bytes) από το RTDX κανάλι που προσδιορίζει

σο ος “Channel”.

error out

CCS In CCS OutChannel DataTimeouterror in

Σχήµα 33. Το RTDX_Read_F8.vi

Η εί οδ CCS. σ ι µια οµάδα που περιέχει πληροφορίες σχετικές µε τοος “CCS In” είνα

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

θα αναγνωστούν τα δεδοµένα . από το οποίο

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µ το CCS και την επικοινωνία µε την κάρτα

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

ε

Page 38: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

34 2. Περιγραφή των subVIs του LabVIEW to CCS Link

εξαρτώνται από τον υπ χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

ολογιστή που διαθέτει o

τιµή της είναι 10 sec (10000 msec).

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” που είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 64

bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

που περιέχει την πληροφορία των σφαλµάΗ έξοδος “error out” είναι µια οµάδα εξόδων

των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: “status” που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος

σφάλµα. de” που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα Η έξοδος “co

του σφάλµατος. Η έξοδος “source” που είναι τύπου String και περιγράφει το σφάλµα.

T X

Το α 34 διαβάζει ακέραιους αριθµούς ε π ό

Timeout

R D _Read_Ι1.vi

subVI RTDX_Read_Ι1.vi που φαίνεται στο Σχήµ µ ρ σηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS In CCS OutChannel Data

error outerror in

Σχήµα 34. Το RTDX_Read_Ι1.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που τύπου String, καθορίζει το όνοµα του RTDX καναλιού από

το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή πο διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

υ αυξηθεί η τιµή της εισόδου

Page 39: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 35

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

ι: που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είνα

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ς αριθµός µε πρόσηµο των 8 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδος “Data” είναι ένας ακέραιο

αι η έξοδος “error out” είναι:

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείτ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

R

T X

Τε πρό νάλι που προσδιορίζει η είσοδος Ch nn

Timeout

D _Read_Ι2.vi

ο subVI RTDX_Read_Ι2.vi που φαίνεται στο Σχήµα 35 διαβάζει ακέραιους αριθµούς σηµο των 16 bits (2 bytes) από το RTDX καµ

“ a el”.

error out

CCS In CCS OutChannel Data

error in

Σχήµα 35 Το RTDX_Read_Ι2.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. τ περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί ιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που την επικοινωνία µε την κάρτα

ς η

Σ ην η δηµ

σχετίζονται µε το CCS και ανάγνωση

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένεπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµέντιµή της είναι 10 sec (10000 msec).

Page 40: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

36 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

.

Η έξοδος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά

ος “errorτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “sσφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

TDX

Τµε πρό είσοδος“Channel”.

R

_Read_Ι4.vi

ο subVI RTDX_Read_Ι4.vi που φαίνεται στο Σχήµα 36 διαβάζει ακέραιους αριθµούς σηµο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η

CCS In CCS Out

error outerror in

Channel DataTimeout

Σχήµα 36. Το RTDX_Read_Ι4.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

από το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ο ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

ς περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

λοκληρωθεί η ανάγνωση δηµιουργείται

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένε

τιµή της είναι 10 sec (10000 msec).

Page 41: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 37

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

πρόσηµο των 32 bits που δείχνει το περιεχό

Η έξοδος “Data” είναι ένας ακέραιος αριθµός µεµενο του συγκεκριµένου RTDX καναλιού.

Η έ οδσφαλµά χεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των των. Τα στοι

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

T X Ταριθµο χωρείσοδος “Chan

error inTimeout

R D _Read_UΙ1.vi

ο subV RI TDX_Read_UΙ1.vi που φαίνεται στο Σχήµα 37 διαβάζει ακέραιους ύς ίς πρόσηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η

nel”.

error out

CCS In CCS OutChannel Data

Σχήµα 37. Το RTDX_Read_UΙ1.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

από το οποίο θα αναγνωστούν τα δεδο ένα .

µ

Η είσοδος “Timeout” π καθορίζει το µέγιστο χρονικό I ό

έτει o χρήστης µπορεί σε ορισµένες

ου είναι ακέραιος των 32 bits,διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου Vµέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικδιάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 42: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

38 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ ut” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS O

Η έξοδ αι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει το περιεχό

ος “Data” είνµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_ Το s V ι ακέραιους

µούς χ ρ οσδιορίζει η ίσοδος “Channel”.

CCS In CCS Out

UΙ2.vi

ub I RTDX_Read_UΙ2.vi που φαίνεται στο Σχήµα 38 διαβάζεω ίς πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι που πραριθ

ε

error out

error in

Channel DataTimeout

Σχήµα 38. Το RTDX_Read_UΙ2.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνω

στούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

ωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγν

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 43: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 39

του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

“source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος

Η έξοδ είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS Out”

Η έξοδος “Data” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_

Το subVI RTDX_Read_UΙ4.vi που φαίνεται στο Σχήµα 39 διαβάζει ακέραιους των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η

ίσοδος “Channel”.

error in

ata

Η έξοδος “source”

UΙ4.vi αριθµούς χωρίς πρόσηµοε

e

CCS In CCS OutChannel DTimeout rror out

Σχήµα 39. Το RTDX_Read_UΙ4.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 44: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

40 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένα ακέραιος αριθ ός χωρίς πρόσηµο των 32 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

ς µ

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος

σφάλµατος. urce” είναι τύπου String και περιγράφει το σφάλµα.

TDX_Read_SA_F4.vi

Το subVI RTDX_Read_SA_F4.vi που φαίνεται στο Σχήµα 40 διαβάζει πίνακες που

Η έξοδος “so

R αποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

error out

CCS In

error in

CCS OutChannel DataTimeout

Σχήµα 40. Το RTDX_Read_SA_F4.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

από το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 45: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 41

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_SA_F8.vi Το subVI RTDX_Read_SA_F8.vi που φαίνεται στο Σχήµα 41 διαβάζει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS In

e

CCS OutChannel DataT

error outrror in

imeout

Σχήµα 41. Το RTDX_Read_SA_F8.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

από το οποίο θα αναγνωστούν τα δεδοµένα .

που διαθέτει o χρήστης µπορεί σε ορισµένες

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 46: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

42 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής

υποδιαστολής διπλής ακρίβειας των 64 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα µά

ος “errorλ των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “s

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

. σφάλµατος Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Το subVI RTDX_Read_SA_Ι1.vi που φαίνεται στο Σχήµα 42 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

T

RTDX_Read_SA_Ι1.vi

error outhannel Dataimeout

CCS In

error in

CCS OutC

Σχήµα 42. Το RTDX_Read_SA_Ι1.vi

έχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περι

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 47: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 43

Η είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε

πρόσηµο των 8 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού.

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα µά

ος “errorλ των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “s

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

. σφάλµατος Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Το subVI RTDX_Read_SA_Ι2.vi που φαίνεται στο Σχήµα 43 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρ ηµο των 16 bits (2 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος

Timeout

RTDX_Read_SA_Ι2.vi

όσ “Channel”.

CCS In CCS Out

Channel Dataerror out

error in

Σχήµα 43. Το RTDX_Read_SA_Ι2.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

. Στην περίπτωση που περάσει αυτό το χρονικό

τιµή η

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωσηδιάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περι τώπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

τ ς είναι 10 sec (10000 msec).

Page 48: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

44 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η ε οπου πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ούς µε

όσηµκαναλι

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµπρ ο των 16 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX

ού.

Η έξοδ t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά ίναι:

ος “error ouτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” ε

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_SA_Ι4.vi Το subVI RTDX_Read_SA_Ι4.vi που φαίνεται στο Σχήµα 44 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS In

error in

CCS Out

error outChannel DataTimeout

Σχήµα 44. Το RTDX_Read_SA_Ι4.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

όδου “Timeout”. Η προκαθορισµένη τιµή η

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισ

τ ς είναι 10 sec (10000 msec).

Page 49: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 45

Η ε οπου πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ούς µε

όσηµκαναλι

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµπρ ο των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX

ού.

Η έξοδ t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά ίναι:

ος “error ouτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” ε

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_SA_UΙ1.vi Το subVI RTDX_Read_SA_UΙ1.vi που στο Σχήµα 45 διαβάζει πίνακες που ποτελούνται από ακέραιους bits (1 byte) από το RTDX αν ι

φαίνεταιακ

αριθµούς χωρίς πρόσηµο των 8 άλ που προσδιορίζει η είσοδος “Channel”.

CCS In

error in

CCS OutChannel DataTimeout error out

Σχήµα 45. Το RTDX_Read_SA_UΙ1.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

ραιος των 32 bits, καθορίζει το µέγιστο χρονικό

εξα ώπερ τώτιµή η

Η είσοδος “Timeout” που είναι ακέδιάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τ ς είναι 10 sec (10000 msec).

Page 50: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

46 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

έξοδ

Η ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ δπρόσηµ s και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καν ι

ξο ος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς ο των 8 bit

αλ ού.

Η έξοδος “error ouσφαλµάτων. Τα στο

t” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των ιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_SA_UΙ2.vi Το subVI RTDX_Read_ µα 46 διαβάζει πίνακες που ποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι

error in

Data

SA_UΙ2.vi που φαίνεται στο Σχήα

που προσδιορίζει η είσοδος “Channel”.

CCS In CCS OutChannelTimeout error out

Σχήµα 46. Το RTDX_Read_SA_UΙ2.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα .

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

η δηµιουργείται ένα σφάλµα. Επειδή πολλέςεξαρτώ τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περ τώτιµή τη (10000 msec).

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωσ

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη ς είναι 10 sec

Page 51: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 47

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδ ut” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS O

Η έξοδ αι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµ ένου RTDX καναλιού.

ος “Data” είνο των 16 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµ

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

RTDX_Read_SA_UΙ Το subVI R DX i που φαίνετα ζει πίνακες που αποτελούνται από ακέραιους χωρίς πρόση ο από το RTDX κανάλι που προσδιορίζει

Timeout

4.vi

T

_Read_SA_UΙ4.v αριθµούς

ι στο Σχήµα 47 διαβά των 32 bits (4 bytes) µ

η είσοδος “Channel”.

error in

error out

CCS InChannel

CCS OutData

Σχήµα 47. Το RTDX_Read_SA_UΙ4.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, αθορίζει το όνοµα του RTDX καναλιού από το οποίο θ δεδοµένα .

κα αναγνωστούν τα

Η είσοδος “Timeout θορίζει το µέγιστο χρονικό διάστηµα σε msec, α εση του συγκεκριµένου VI

ληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

ή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

” που είναι ακέραιος των 32 bits, καπό την στιγµή που ξεκίνησε η εκτέλ

µέχρι να ολοκ

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµ

Page 52: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

48 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “error in” είν ων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

αι µια οµάδα (Cluster) εισόδ

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος “CCS Out” είναι µια οµάδα

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς

πρόσηµο των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX

καναλιού.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.3.5 RT X Το subV αι αριθµούς ινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8- , 16-

2- α περιγραφούν νακα

D _Write.vi

I RTDX_Write.vi είναι ένα πολυµορφικό VI που γράφει πίνακες κκκαιθ

3 bit σε ένα RTDX κανάλι. Το RTDX_Write.vi αποτελείται από ένα σύνολο subVIs που στην συνέχεια και που παρουσιάζονται ονοµαστικά στον Πί 9.

Εικ. Ονοµασία Εικ. Ονοµασία

RTDX_Write_F4.vi RTDX_Write_SA_ .v

F4 i

RTDX_Write_F8.vi

RTDX_Write_SA_F8.vi

RTDX_Write_I1.vi

RTDX_Write_SA_I1.vi

RTDX_Write_I2.vi

RTDX_Write_SA_I2.vi

RTDX_Write_I4.vi

RTDX_Write_SA_I4.vi

RTDX_Write_UI1.vi

RTDX_Write_SA_UI1.vi

RTDX_Write_UI2.vi

RTDX_Write_SA_UI2.vi

RTDX_Write_UI4.vi

RTDX_Write_SA_UI4.vi

Page 53: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 49

Πίν .vi

T X Τπεριέχοκανάλι

ακας 9. Τα subVIs του RTDX_Write

R D _Write_F4.vi

ο subVI RTDX_Write_F4.vi που φαίνεται στο Σχήµα 48 γράφει πίνακες που υν αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) στο RTDX

που προσδιορίζει η είσοδος “Channel”.

CCS In CCS Out

ChannelData

Timeout

error out

error in

Σχήµα 48. Το RTDX_Write_F4.vi

ος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

Η είσοδος “Timeout” που είναι ακέραι

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδ In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS

Η είσο ” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο

δος “Channel οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data”που είναι ένας αριθµός κινητής υποδιαστολής απλής ακρίβειας των

32 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

σφάλµα υ πιθ

τα οποί ίται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το πο ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

α αποτελε Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου και περιγράφει το σφάλµα. String

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” its που δείχνει τον κώδικα του

σφάλµατος. είναι ένας ακέραιος των 32 b

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 54: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

50 2. Περιγραφή των subVIs του LabVIEW to CCS Link

RTDX Τυποδιαίσοδο

_Write_F8.vi

ο subVI RTDX_Write_F8.vi που φαίνεται στο Σχήµα 49 γράφει αριθµούς κινητής στολής διπλής ακρίβειας των 64 bits (8 bytes) στο RTDX κανάλι που προσδιορίζει η ς “Channel”. ε

Timeout

error out

CCS In

error in

CCS OutChannel

Data

Σχήµα 49. Το RTDX_Write_F8.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

δηµιουργείται ένα σφάλµα. Επειδή πολλέςεξαρτώ τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περ τώτιµή τη (10000 msec).

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη ς είναι 10 sec

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

είσο64 bits δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η δος “Data”που είναι ένας αριθµός κινητής υποδιαστολής απλής ακρίβειας των , περιέχει τα

Η είσο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο α. σφάλµ

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 55: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 51

RTDX Τε πρό ανάλι που προσδιορίζει η είσοδος “Channel”.

_Write_Ι1.vi

ο subVI RTDX_Write_Ι1.vi που φαίνεται στο Σχήµα 50 γράφει ακέραιους αριθµούς σηµο των 8 bits (1 byte) στο RTDX κµ

Timeout

error out

CCS In

error in

CCS OutChannel

Data

Σχήµα 50. Το RTDX_Write_Ι1.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

δηµιουργείται ένα σφάλµα. Επειδή πολλέςεξαρτώ τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περ τώτιµή τη (10000 msec).

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη ς είναι 10 sec

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

είσοδεδοµέ εγγραφούν στο RTDX κανάλι.

Η δος “Data”που είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits, περιέχει τα να που θα

Η είσο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοσφάλµ

δος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του ατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία οδος “error out” είναι:

από τα οποία αποτελείται η έξ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 56: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

52 2. Περιγραφή των subVIs του LabVIEW to CCS Link RTDX

Το subVI RTDX_Write_Ι2.vi που φαίνεται στο Σχήµα 51 γράφει ακέραιους αριθµούς µε π ό

CCS Out

Data

_Write_Ι2.vi

ρ σηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS InChannel

Timeout

error out

error in

Σχήµα 51. Το RTDX_Write_I2.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διάστηπολλέςεξαρτώπερ τώ αθορισµένη τιµή της

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκ είναι 10 sec (10000 msec).

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX κανα ιού

ο οπολ

στ ίο θα εγγραφούν τα δεδοµένα .

Η ε οτα δεδο

ίσ δος “Data”που είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits, περιέχει µένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status δείχνει αν προέκυψε κάποιο σφάλµα.

” είναι Boolean τύπου και

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 57: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 53 RTDX

Το subVI RTDX_Write_Ι4.vi που φαίνεται στο Σχήµα 52 γράφει ακέραιους αριθµούς µε π ό

CCS Out

Data

_Write_Ι4.vi

ρ σηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS InChannel

Timeout

error outerror in

Σχήµα 52. Το RTDX_Write_I4.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διάστηπολλέςεξαρτώπερ τώ αθορισµένη τιµή της

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκ είναι 10 sec (10000 msec).

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX κανα ιού

ο οπολ

στ ίο θα εγγραφούν τα δεδοµένα .

Η ε οτα δεδο

ίσ δος “Data”που είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits, περιέχει µένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” ε περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία “error out” είναι:

ίναι µια οµάδα εξόδων που από τα οποία αποτελείται η έξοδος

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 58: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

54 2. Περιγραφή των subVIs του LabVIEW to CCS Link

TDX_Write_UΙ1.vi

Το subVI RTDX_Write_UΙ1.vi που φαίνεται στο Σχήµα 53 γράφει ακέραιους αριθµούς χωρίς π

error in

Timeout

R

ρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που προσδιορίζει η είσοδος “Channel”.

error out

CCS In CCS OutChannel

Data

Σχήµα 53. Το RTDX_Write_UΙ1.vi

διάστη η συγκεκριµέχρι νδιάστηπολλές την κάρτα εξαρτώνται ορισµένες

Η ε οίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε msec, από την στιγµή που ξεκίνησε εκτέλεση του µένου VI α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε

από τον υπολογιστή που διαθέτει o χρήστης µπορεί σεπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένητιµή της είναι 10 sec (10000 msec).

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

είσο το α

στο

Η δος “Channel” που είναι τύπου String, καθορίζει όνοµ του RTDX καναλιού οποίο θα εγγραφούν τα δεδοµένα .

Η ε ο bits, περιέχει τα δεδο

ίσ δος “Data”που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 µένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” εί περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία οδος “error out” είναι:

ναι µια οµάδα εξόδων που από τα οποία αποτελείται η έξ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 59: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 55

TDX_Write_UΙ2.vi

Το subVI RTDX_Write_UΙ2.vi που φαίνεται στο Σχήµα 54 γράφει ακέραιους αριθµούς χωρίς “Chann

Data

R

πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος el”.

CCS In CCS OutChannel

Timeout

error outerror in

Σχήµα 54. Το RTDX_Write_UΙ2.vi

Η εί ο

διάστηµέχρι νδιάστη µα. Επειδή πολλές την κάρτα

σ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλδιαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένεςπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένητιµή της είναι 10 sec (10000 msec).

Η ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. είσοδ

Η εί οστο πο

σ δος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού ο ίο θα εγγραφούν τα δεδοµένα .

Η είσοδος των 16 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

“Data”που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “sou φει το σφάλµα. rce” είναι τύπου String και περιγρά

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 60: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

56 2. Περιγραφή των subVIs του LabVIEW to CCS Link RT X

Το subVI RTDX_Write_UΙ4.vi που φαίνεται στο Σχήµα 55 γράφει ακέραιους αριθµούς χωρίς “Chann

Timeout

D _Write_UΙ4.vi

πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος el”.

error out

CCS In

error in

CCS OutChannel

Data

Σχήµα 55. Το RTDX_Write_UΙ4.vi

Η εί οδιάστη ριµένου VI µέχρι να το χρονικό

σ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκ

ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρταεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

ή τητιµ ς είναι 10 sec (10000 msec).

Η εί οδ

σ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η ε ο καναλιού στο

ίσ δος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data”που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 32 bits,

α που θα εγγραφούν στο RTDX κανάλι. περιέχει τα δεδοµέν

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” ε φορίες σχετικές µε το CCS. ίναι µια οµάδα που περιέχει πληρο

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 61: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 57

TDX_Write_SA_F4.vi Τ φαίνεται στο Σχήµα 56 γράφει πίνακες που ποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) στο

RTDX

CCS Out

R

ο subVI RTDX_Write_SA_F4.vi που α

κανάλι που προσδιορίζει η είσοδος “Channel”.

Timeout

error outerror in

ChannelData

CCS In

Σχήµα 56. Το RTDX_Write_SA_F4.vi

Η ε οδιάστηµέχρι ν το χρονικό διάστηµ µα. Επειδή

ίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό α και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλ

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρταεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένεςπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

είσοδ σχετικές

Η ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες µε το CCS.

Η εί οστο

σ δος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής

υποδιαστολής µονής ακρίβειας των 32 bits και περιέχει τα δεδοµένα που θα DX κανάλι. εγγραφούν στο RT

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “cod s που δείχνει τον κώδικα του σφάλµατος.

e” είναι ένας ακέραιος των 32 bit

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας

ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 62: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

58 2. Περιγραφή των subVIs του LabVIEW to CCS Link RT X

Το subVI RTDX_Write_SA_F8.vi που φαίνεται στο Σχήµα 57 γράφει πίνακες που απο λRTDX

D _Write_SA_F8.vi

τε ούνται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) στο

κανάλι που προσδιορίζει η είσοδος “Channel”.

CCS In CCS Out

ChannelData

Timeout

error outerror in

Σχήµα 57. Το RTDX_Write_SA_F8.vi

Η ε ο το χρονικό διάστηµ µένου VI

ένες

τι ή τη

ίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγισα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκρι

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικόδιάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµ περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

µ ς είναι 10 sec (10000 msec).

Η εί οδ

σ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος DX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα .

“Channel” που είναι τύπου String, καθορίζει το όνοµα του RT

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής

υποδιαστολής διπλής ακρίβειας των 64 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits ου δείχνει τον κώδικα του σφάλµατος.

π

Η είσοδος “sou φει το σφάλµα. rce” είναι τύπου String και περιγρά

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 63: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 59 RT X

Το subVI RTDX_Write_SA_Ι1.vi που φαίνεται στο Σχήµα 58 γράφει πίνακες που απο λπροσδι

D _Write_SA_Ι1.vi

τε ούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που

ορίζει η είσοδος “Channel”.

CCS In CCS Out

ChannelData

Timeout

error outerror in

Σχήµα 58. Το RTDX_Write_SA_Ι1.vi

Η ε ο το χρονικό διάστηµ µένου VI

ένες

τι ή τη

ίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγισα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκρι

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικόδιάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµ περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

µ ς είναι 10 sec (10000 msec).

Η εί οδ

σ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος DX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα .

“Channel” που είναι τύπου String, καθορίζει το όνοµα του RT

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε

πρόσηµο των 8 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα τοσφάλµατος.

υ

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 64: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

60 2. Περιγραφή των subVIs του LabVIEW to CCS Link RT X

Το subVI RTDX_Write_SA_Ι2.vi που φαίνεται στο Σχήµα 59 γράφει πίνακες που απο λπου πρ

D _Write_SA_Ι2.vi

τε ούνται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι

οσδιορίζει η είσοδος “Channel”.

Timeout

error outChannel

Data

CCS In

error in

CCS Out

Σχήµα 59. Το RTDX_Write_SA_Ι2.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

και εξαρ ώπερι τώτιµή η

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

στηδιά µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS την επικοινωνία µε την κάρτα

τ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες π σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τ ς είναι 10 sec (10000 msec).

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 16 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “cod που δείχνει τον κώδικα του e” είναι ένας ακέραιος των 32 bitsσφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα τοσφάλµατος.

υ

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 65: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 61 RT X

Το subVI RTDX_Write_SA_Ι4.vi που φαίνεται στο Σχήµα 60 γράφει πίνακες που απο λπου πρ

D _Write_SA_Ι4.vi

τε ούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι

οσδιορίζει η είσοδος “Channel”.

Timeout

error outChannel

Data

CCS In

error in

CCS Out

Σχήµα 60. Το RTDX_Write_SA_Ι4.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

και εξαρ ώπερι τώτιµή η

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

στηδιά µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS την επικοινωνία µε την κάρτα

τ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες π σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τ ς είναι 10 sec (10000 msec).

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκ ριµένου VI. Τα στοιχεία από τα οποία αποτελείται η

υψε πριν την εκτέλεση του συγκεκ είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

άδα εξόδων που περιέχει την πληροφορία των Η έξοδος “error out” είναι µια οµσφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 66: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

62 2. Περιγραφή των subVIs του LabVIEW to CCS Link RT X Τ ι στο Σχήµα 61 γράφει πίνακες που αποτελούνται που προσδιορί ος “Channel”.

Data

Timeout

D _Write_SA_UΙ1.vi

ο subVI RTDX_Write_SA_UΙ1.vi που φαίνετααπό ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι ζει η είσοδ

error out

CCS In CCS OutChannel

error in

Σχήµα 61. Το RTDX_Write_SA_UΙ1.vi

συγκεκρι

µέχρ νδιάστηπολλές ε την κάρτα εξαρτώνται ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

0000 msec).

Η δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του µένου VI είσο

ι α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ

από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε

τιµή της είναι 10 sec (1

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς

πρόσηµο των 8 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων ου περιγράφει το σφάλµα που πιθανόν να προέκυψε µένου VI. Τα στοιχεία από τα οποία αποτελείται η

π πριν την εκτέλεση του συγκεκρι

είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

άδα εξόδων που περιέχει την πληροφορία των Η έξοδος “error out” είναι µια οµσφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 67: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 63 RT X Τ ι στο Σχήµα 62 γράφει πίνακες που αποτελούνται κανάλι που προσδιορίζει η είσοδος “Channel”.

Data

Timeout

D _Write_SA_UΙ2.vi

ο subVI RTDX_Write_SA_UΙ2.vi που φαίνετααπό ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) στο RTDX

error out

CCS In CCS OutChannel

error in

Σχήµα 62. Το RTDX_Write_SA_UΙ2.vi

συγκεκρι

µέχρ νδιάστηπολλές ε την κάρτα εξαρτώνται ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του µένου VI είσο

ι α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ

από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 68: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

64 2. Περιγραφή των subVIs του LabVIEW to CCS Link RT X

Ταποτελκανάλι

D _Write_SA_UΙ4.vi

ο subVI RTDX_Write_SA_UΙ4.vi που φαίνεται στο Σχήµα 63 γράφει πίνακες που ούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (4 bytes) στο RTDX που προσδιορίζει η είσοδος “Channel”.

CCS In CCS Out

Timeout

error outerror in

ChannelData

Σχήµα 63. Το RTDX_Write_SA_UΙ4.vi

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό στηδιά µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

έχρι α ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό µ νδιάστηπολλέςεξα ώ ορισµένες περιπτώσεις µένη τιµή της είναι 10 sec (10000 msec).

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισ

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Channel” που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού

στο οποίο θα εγγραφούν τα δεδοµένα .

Η είσοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι.

Η είσοδ rror in” οµάδα (C er) εισόδ ριγράφει το σφάλµα

που πιθ να προέκ εκτέλ του συγκ VI. Τα στοιχεία από τα οποία αποτε είναι:

ος “eανόν

είναι µια υψε πριν την

lustεση

ων που πεεκριµένου

λείται η είσοδος “error in” Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS Out” οµάδα που περιέχει µε το CCS.

είναι µια πληροφορίες σχετικές

Η έξοδος “ r ια οµάδα εξ δω ν πληροφορία των σφαλµάτων. Τα οποία αποτελείται είναι:

er or out” είναι µ ό ν που περιέχει τη στοιχεία από τα η έξοδος “error out”

Η έξ δ ι Boolean ύπ προέκυψε κάποιο σφάλµα.

ο ος “status” είνα τ ου και δείχνει αν

Η έξ δ ας ακέραι τ ει τον κώδικα του σφάλ ατος.

οµος “code” είναι έν ος ων 32 bits που δείχν

Η έξοδ String κα µα.

ος “source” είναι τύπου ι περιγράφει το σφάλ

Page 69: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 65 2.3.6 MEM_Get_Address.vi

Το subVI MEM_Get_Address.vi που φαίνεται στο Σχήµα 64 εντοπίζει την σελίδα και νήµη του DSP που είναι αποθηκευµένο το σύµβολο που περιγράφει η

ίσοδος “Symbol Name”. Ο όρος σύµβολο σηµαίνει µια µεταβλητή ή ένα πίνακα

ut

CCS In

erro

CCS OutSymbol N Address

την διεύθυνση στην µεοποιουδήποτε τύπου που έχει οριστεί στο project του CCS. Αν πρόκειται για πίνακα το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένο το πρώτο στοιχείο του πίνακα. Το σύµβολο προτείνεται να είναι γενικό (global).

error or iname Page &

Σχήµα 64. Το MEM_Get_Address.vi

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Symbol Name” που είναι τύπου String, καθορίζει το όνοµα του συµβόλου.

Το σύµβολο θα πρέπει να έχει οριστεί στο project του CCS διαφορετικά θα δηµιουργηθεί κάποιο σφάλµα.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ δκαι την που δείχνει η είσοδος “Symbol Name”. Η έξοδος “Page & Address” αποτελείται από τα

ξο ος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένο το σύµβολο

παρακάτω στοιχεία: Η έξοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP στην οποία είναι αποθηκευµένο το σύµβολο. Η έξοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP που

είναι αποθηκευµένο το σύµβολο.

Η έ οδ φορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληρο

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 70: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

66 2. Περιγραφή των subVIs του LabVIEW to CCS Link 2.3. Τ φικό VI που έχει την δυνατότητα να ιαβάζει σειρές αλφαριθµητικών χαρακτήρων (Strings), πίνακες και αριθµούς κινητής υπο αbit από τελείται από ένστον Πίνακα 1

7 MEM_Read.vi

ο subVI MEM_Read.vi είναι ένα πολυµορδ

δι στολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8- , 16- και 32- την µνήµη του DSP µε απευθείας προσπέλαση της. Το MEM_Read.vi αποα σύνολο subVIs που θα περιγραφούν στην συνέχεια και παρουσιάζονται ονοµαστικά

0.

Εικ. Ονοµασία Εικ. Ονοµασία

MEM_Read_F4.vi MEM_Read_A_F4.vi

MEM_Read_F8.vi

MEM_Read_A_F8.vi

MEM_Read_I1.vi

MEM_Read_A_I1.vi

MEM_Read_I2.vi MEM_Read_A_I2.vi

MEM_Read_I4.vi

MEM_Read_A_I4.vi

MEM_Read_UI1.vi

MEM_Read_A_UI1.vi

MEM_Read_UI2.vi

MEM_Read_A_UI2.vi

MEM_Read_UI4.vi

MEM_Read_A_UI4.vi

MEM_Read_String.vi

Πίνακας 10. Τα subVIs του MEM_Read.vi

MEM_ Τυποδιαδιεύθυνπροσπέ

Read_F4.vi

ο subVI MEM_Read_F4.vi που φαίνεται στο Σχήµα 65 διαβάζει αριθµούς κινητής στολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την ση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας λαση της µνήµης.

error out

CCS In

error in

CCS OutTimeout Data

Page & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

Σχήµα 65. Το MEM_Read_F4.vi

Η είσο ικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετ

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Page 71: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 67

ε η εκτέλεση του συγκεκριµένου VI

µέχρι νδιάστη έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλέςεξαρτώ ν υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περ τώ αθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησ

α ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό µα και δεν διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα νται από το

ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκ

έχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η Η είσοδος “Page & Address” είναι µια οµάδα που παρ

είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

οποίτα α αποτελείται η είσοδος “error in” είναι: ς “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδο

σφάλµα. ode” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος “c

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας αριθµός ν τής υποδιαστολής µονής ακρίβειας των 32 bits που δείχνει το περιεχόµενο της µ του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “

κι ηνή ηςµ

Page & Number”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Read_F8.vi

ο subVI MEM_Read_F8.vi που φαίνεται στο Σχήµα 66 διαβάζει αριθµούς κινητής στολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την ση µνήµης του DSP που δείχνει

MEM_ Τυποδιαιεύθυν η είσοδος “Page & Address” µε απευθείας ροσπέλαση της µνήµης. δπ

Page 72: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

68 2. Περιγραφή των subVIs του LabVIEW to CCS Link

CCS In CCS Out

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Timeout DataPage & Address

Σχήµα 66. Το MEM_Read_F8.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η ε οδ

ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η ε οδιάστη από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι ν το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

της µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

ίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό µα σε msec, α ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήσ

τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η εί ο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που ιθ στοιχεία από τα οποία

σ δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

αποτελείται η είσοδος “error in” είναι: Η είσοδος

σφάλ “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

µα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας διπλής ακρίβειας των 64 bits που δείχνει το περιεχ εκινώντας από την θέση µνήµης

αριθµός κινητής υποδιαστολήςόµενο της µνήµης του DSP ξ

που καθορίζει η είσοδος “Page & Number”.

που περιέχει την πληροφορία των Η έξοδος “error out” είναι µια οµάδα εξόδων σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Page 73: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 69

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Read_Ι1.vi

ο subVI MEM_Read_Ι1.vi που φαίν

MEM_

Τ εται στο Σχήµα 67 διαβάζει ακέραιους αριθµούς ε όδείχνει

µ πρ σηµο των 8 bits (1 byte) από την σελίδα και την διεύθυνση µνήµης του DSP που

η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

error out

error inPage & Address

CCS In CCS Out

Timeout

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

Σχήµα 66. Το MEM_Read_Ι1.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδ In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS

Η είσο ” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστη ριµένου VI

ό

επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

δος “Timeoutµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκ

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτ το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένητιµή της είναι 10 sec (10000 msec).

µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στηνείσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

κή αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδι

Η είσο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

Η είσσφάλ

οδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο µα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 74: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

70 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “CCS_Event_Notif_Out” µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που

είναι µπορεί να υµβούν στο CCS. σ

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

πρόσηµο των 8 bits που δείχνει το Η έξοδος “Data” είναι ένας ακέραιος αριθµός µε

περιεχόµενο της θέσης µνήµης του DSP που καθορίζει η είσοδος “Page & Number”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

EM_Read_I2.vi Τµε πρό θυνση µνήµης του DSP που δε ν

M

ο subVI MEM_Read_I2.vi που φαίνεται στο Σχήµα 68 διαβάζει ακέραιους αριθµούς σηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύ

ίχ ει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

error out

error inPage & Address

CCS In CCS Out

Timeout Data

CCS_Event_Notif_In CCS_Event_Notif_Out

Σχήµα 68. Το MEM_Read_Ι2.vi

Η εί ο που περιέχει µε τα γ

σ δος “CCS_Event_Notif_In” είναι µια οµάδα πληροφορίες σχετικές εγονότα που µπορεί να συµβούν στο CCS.

Η ε οδ το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

msec).

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρταεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσ ς “Page & Address” αποτελείται από τα παρακάτω στοιχεία: οδο

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Page 75: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 71

Η είσοδος “erπου πιθανόν να

ror in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

την θέση µνήµης που καθορίζει η

Η έξοδος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας απόείσοδος “Page & Number”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

EM_Read_I4.vi Τµε πρό θυνση µνήµης του DSP που δε ν

M

ο subVI MEM_Read_I4.vi που φαίνεται στο Σχήµα 69 διαβάζει ακέραιους αριθµούς σηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύ

ίχ ει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS In CCS Out

CCS_Event_Notif_In CCS_Event_Notif_Out

error out

error inPage & Address

Timeout Data

Σχήµα 69. Το MEM_Read_Ι4.vi

Η είσο Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γ

δος “CCS_εγονότα που µπορεί να συµβούν στο CCS.

Η ε οδ το CCS. ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

Page 76: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

72 2. Περιγραφή των subVIs του LabVIEW to CCS Link

τιµή της είναι 10 sec (10000 msec).

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

για την λίδα

είσοδος Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες σε και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η

“Page & Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από λείται η είσοδος “error in” είναι:

που πιθανόν νατα οποία αποτε

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event α που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

_Notif_Out” είναι µια οµάδ

πληροφορίες σχετικές µε το CCS. Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει

Η έξοδος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η

είσοδος “Page & Number”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_ Το suχωρίς πρόσηµδείχνει η εί δ

Read_UΙ1.vi

bVI MEM_Read_UΙ1.vi που φαίνεται στο Σχήµα 70 διαβάζει ακέραιους αριθµούς ο των 8 bits (1 byte) από την σελίδα και την διεύθυνση µνήµης του DSP που

σο ος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS In CCS Out

Timeout DataPage & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Σχήµα 66. Το MEM_Read_UΙ1.vi

Page 77: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 73

Η είσο ent_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γ

δος “CCS_Evεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

I µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

ιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου V

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογ

τιµή της είναι 10 sec (10000 msec).

είσοδοςσελίδα στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος

Η “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την και την διεύθυνση “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

age” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την Η είσοδος “Pσελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. δεκαεξα

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event α που περιέχει πληροφορίες σχετικές µε τα γεγονότα

_Notif_Out” είναι µια οµάδπου µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει τ

περιεχόµενο της θέσης µνήµης του DSP που καθορίζει η είσοδος “Page & Number”. ο

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 78: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

74 2. Περιγραφή των subVIs του LabVIEW to CCS Link ME _ Τ έραιους αριθµούς χωρίς πρόσηµτου DSP που δ ress” µε απευθείας προσπέλαση της µνήµης.

CCS Out

M Read_UI2.vi

ο subVI MEM_Read_UI2.vi που φαίνεται στο Σχήµα 71 διαβάζει ακο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης είχνει η είσοδος “Page & Add

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Timeout DataPage & Address

CCS In

Σχήµα 71. Το MEM_Read_UΙ2.vi

Η ε οµε τα γ πορεί να συµβούν στο CCS.

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές εγονότα που µ

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

ηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθ

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξ

για την λίδα

είσοδος

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες σε και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η

“Page & Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη τουπρόσηµο σε

DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα τουπου πιθανόν να προέκυψε πριν την εκτέλεση συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Page 79: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 75

Η έξοδος “Data” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Rea _ Το suωρίς πρόσηµ µης ου S

ge & Address

d UI4.vi

bVI MEM_Read_UI4.vi που φαίνεται στο Σχήµα 72 διαβάζει ακέραιους αριθµούς ο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήχ

τ D P που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS_Event_Notif_In CCS_Event_Notif_Out

error inerror out

CCS In CCS OutTimeout Data

Pa

Σχήµα 72. Το MEM_Read_UΙ4.vi

Η “CCS_Event_Notif_In” εί ι µια οµ που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. είσοδος να άδα

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ορίζει το µέγιστο χρονικό

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

είναι 10 sec (10000 msec).

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθδιάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η οδοείσ ς “Page & Address” αποτελείται από τα παρακάτω στοιχεία: ς “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την Η είσοδο

σελίδα της µνήµης του DSP. Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

υ DSP. Η είσοδος “δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη το

Η είσοδος “erro

που πιθανόν να r in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι:

Page 80: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

76 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας µο των 32 bits που δείχνει

το περιεχόµενο της µνή ν θέση µνήµης που καθορίζει

ακέραιος αριθµός χωρίς πρόσηµης του DSP ξεκινώντας από τη

η είσοδος “Page & Number”.

που περιέχει την πληροφορία των Η έξοδος “error out” είναι µια οµάδα εξόδων σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Read_String.vi

ο subVI MEM_Read_String.vi που

MEM_ Τ φαίνεται στο Σχήµα 73 διαβάζει µια σειρά από λφαριθµητικούς χαρακτήρες (String) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του Sπλήθος

α D P που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης. Το

των αλφαριθµητικών χαρακτήρων καθορίζεται από την είσοδο “Size”.

CCS In

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Timeout DataPage & Address

CCS Out

Size

Σχήµα 73. Το MEM_Read_String.vi

µε τα γ

Η εί οδ “CCS_Event_Notif_In” σ ος είναι µια οµάδα που περιέχει πληροφορίες σχετικές εγονότα που µπορεί να συµβούν στο CCS.

Η ε οδ

ίσ ος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η ε ο το χρονικό

θεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

ίσ δος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγισδιάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

Page 81: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 77

τιµή της είναι 10 sec (10000 msec).

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η ε οπου πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” που είναι ένας ακέραιος των 32 bits και δείχνει πλήθος των

αλφαριθµητικών χαρακτήρων που θα αναγνωστούν.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να µβούν στο CCS.

συ

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το

ο “Size”.

Η έξοδος “Data” είναι τύπου String και δείχνει το

πλήθος των χαρακτήρων που περιέχει η έξοδος “Data” καθορίζεται από την είσοδ

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

ME _ Ταποτελούνται ξεκινώντας π& Address” µαθορίζεται απ

M Read_A_F4.vi

ο su V Σχήb I MEM_Read_A_F4.vi που φαίνεται στο µα 74 διαβάζει πίνακες που από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes)

α ό την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page ε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα ό την είσοδο “Size”. κ

Page 82: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

78 2. Περιγραφή των subVIs του LabVIEW to CCS Link

CCS In CCS Out

TimeoutPage & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Size

Data

Σχήµα 74. Το MEM_Read_A_F4.vi

Η ε ο χετικές

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σµε τα γεγονότα που µπορεί να συµβούν στο CCS.

άδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικόδιάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικέ ε τα γεγονότα που µπορεί να συµβούν στο CCS.

ς µ

Η έξοδος “CCS Out” είν οφορίες σχετικές µε το CCS. αι µια οµάδα που περιέχει πληρ

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits και δείχνει το περιεχόµενο της µνήµης του

ο DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Τπλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

Page 83: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 79

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

E _ Ταποτελξεκινώντας π& Address” µκαθορίζετα απ

M M Read_A_F8.vi

ο subVI MEM_Read_A_F8.vi που φαίνεται στο Σχήµα 75 διαβάζει πίνακες που ούντ ι υποδιαστολήςα από αριθµούς κινητής µονής ακρίβειας των 64 bits (8 bytes)

α ό την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page ε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα

ι ό την είσοδο “Size”.

CCS In CCS Out

Timeout DataPage & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Size

Σχήµα 75. Το MEM_Read_A_F8.vi

Η ε ο ίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορ

άδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

ς µνήµης του DSP.

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα τη

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Page 84: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

80 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “status” που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα λµατος. του σφά

Η είσοδος “source” που είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα υ πληροφορίες σχετικές µε το CCS.

π περιέχειο

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από αριθµούς κινητής

ζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

υποδιαστολής διπλής ακρίβειας των 64 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορί

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Read_A_I1.vi

EM_

Ταποτελσελίδααπευθείας οτην είσοδο i

M

ο subVI MEM_Read_A_I1.vi που φαίνεται στο Σχήµα 76 διαβάζει πίνακες που ούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) ξεκινώντας από την και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε

πρ σπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από “S ze”.

error out

CCS In

error in

CCS OutTimeout Data

Page & Address

Size

CCS_Event_Notif_In CCS_Event_Notif_Out

Σχήµα 76. Το MEM_Read_A_I1.vi

Η είσο ent_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές

µε τα γδος “CCS_Evεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

Page 85: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 81

είται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργ

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

τιµή της είναι 10 sec (10000 msec).

υ θα γίνει η ανάγνωση. Η

είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπο

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

κή αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδι

Η είσο ” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

δος “error in π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα

Η είσοδσφάλµα.

ος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

“CCS Out”

Η έξοδος “Data” είναι ι από ακέραιους αριθµούς µε πρόσηµο των 8 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από

ένας πίνακας που αποτελείτα

την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 86: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

82 2. Περιγραφή των subVIs του LabVIEW to CCS Link ME _ Τ άζει πίνακες που αποτελούνται σελίδα και τη P που δείχνει η είσοδος “Page & Address” µε απευθείας οτην είσοδο “Si

Size

M Read_A_I2.vi

ο subVI MEM_Read_A_I2.vi που φαίνεται στο Σχήµα 77 διαβαπό ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την ν διεύθυνση µνήµης του DS

πρ σπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από ze”.

error outerror in

CCS In CCS Out

TimeoutPage & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

Σχήµα 77. Το MEM_Read_A_I2.vi

Η ε ο ίες σχετικές

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορµε τα γεγονότα που µπορεί να συµβούν στο CCS.

άδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικόδιάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδήπολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα τη

ς µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

ροέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να π

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί.

Page 87: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 83

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε

πρόσηµο των 16 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Rea _

Το subV που πο λσελίδααπευθετην είσ

Size

d A_ 4.vi

I MEM_Read_A_I4.vi που φαίνεται στο Σχήµα 78 διαβάζει πίνακες

I

α τε ούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την

και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε ίας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από οδο Siz“ e”.

CCS In CCS Out

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Page & AddressTimeout Data

Σχήµα 78. Το MEM_Read_A_I4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

ισµένη ή τη

εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορτιµ ς είναι 10 sec (10000 msec).

Page 88: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

84 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η ε ο ρίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η

ddress” αποτελείται από τα παρακάτω στοιχεία:

ίσ δος “Page & Address” είναι µια οµάδα που παρέχει πληροφο

είσοδος “Page & A Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου και περιγράφει το σφάλµ .

String α

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων

του πίνακα που θα αναγνωστεί.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

άδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “error out” είναι µια οµ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

String και περιγράφει το σφάλµα.

EM_Read_

Ταποτελσελίδααπευθείας οτην είσοδο i

Η έξοδος “source” είναι τύπου

M

A_UI1.vi

ο subVI MEM_Read_A_UI1.vi που φαίνεται στο Σχήµα 79 διαβάζει πίνακες που ούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) ξεκινώντας από την και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε

πρ σπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από “S ze”.

Page 89: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 85

CCS In

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Size

CCS OutTimeout Data

Page & Address

Σχήµα 79. Το MEM_Read_A_UI1.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι ν ο πουα λοκληρωθεί η ανάγνωση. Στην περίπτωση περάσει αυτό το χρονικό διά µα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή

διαδικασστη

πολλέςεξαρ ώπερι τώ µένη τιµή η

ίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα τ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

σεις να πρέππ ει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισ τ ς είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµά l ster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε µένου VI. Τα στοιχεία από τα οποία αποτελείται η

δα (C u πριν την εκτέλεση του συγκεκρι

είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων

του πίνακα που θα αναγνωστεί.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

Page 90: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

86 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδ εξόδων που περιέχει την πληροφορία των σφαλµά

ος “error out” είναι µια οµάδατων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ποιο σφάλµα. Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κά

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Rea _ Το su V που ποτελούντ ι νώντας από ηναπε εην είσ

t

Size

d A_UI2.vi

b I MEM_Read_A_UI2.vi που φαίνεται στο Σχήµα 80 διαβάζει πίνακεςα από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) ξεκια

τ σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε υθ ίας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από

οδο “Size”. τ

CCS In CCS Out

CCS_Event_Notif_In CCS_Event_No if_Out

error outerror in

Page & AddressTimeout Data

Σχήµα 80. Το MEM_Read_A_UI2.vi

ιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περ

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσο που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµέχρι ν θεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστη λµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

δος “Timeout” µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI α ολοκληρω

µα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφά

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η ddress” αποτελείται από τα παρακάτω στοιχεία: είσοδος “Page & A

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία τελείται error in” ι: απο η είσοδος “ είνα

Page 91: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 87

Η είσοδος “status” είναι Boolean τύπου και προέκυψε κάποιο σφάλµα

δείχνει αν.

Η είσ ακέραιος τ ει τον κώδικα του σφάλµατος.

οδος “code” είναι ένας ων 32 bits που δείχν

Η είσ δ τύπου String κ λµα.

ο ος “source” είναι αι περιγράφει το σφά

Η είσοδος “ i έραιος των 2 θος των στοιχείων του πίνακα που θα αναγνωστεί.

S ze” είναι ένας ακ 3 bits που δείχνει πλή

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα ορεί να συµ ού

γεγονότα που µπ β ν στο CCS.

Η έξοδος “CC άδα που π ριέ ικές µε το CCS.

S Out” είναι µια οµ ε χει πληροφορίες σχετ

Η έξοδος “Da κας που α οτ ς αριθµούς χωρίς πρόσηµο τω 16 bits το περιεχόµενο ξεκινώντας από την θέση µνή ει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα από την είσοδο

ta” είναι ένας πίνακαι δείχνει

π ελείται από ακέραιου της µνήµης του DSP ν

µης που καθορίζ καθορίζεται “Size”.

Η έξοδος “ r µάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία οτελείται η έξοδος “error out” είναι:

er or out” είναι µια οαπ

Η έξοδος “s χνει αν προέκυψε κάποιο σφάλµα.

tatus” είναι Boolean τύπου και δεί

Η έξοδσφάλµ

ος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του ατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Read_A_UI4.vi Το subVI MEM_Read_A_UI4.vi που φαίνεται στο Σχήµα 81 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρί µο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µ είσοδος “Page & Address” µε πευθείας προσπέλαση της µνήµ του πίνακα καθορίζεται από

Page & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

ς πρόσηνήµης του DSP που δείχνει ηης. Το πλήθος των στοιχείωνα

την είσοδο “Size”.

error in

Size

error out

CCS In CCS OutTimeout Data

Σχήµα 81. Το MEM_Read_A_UI4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

Page 92: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

88 2. Περιγραφή των subVIs του LabVIEW to CCS Link

µε την κάρτα εξα ώπεριπτώ τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή η

µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία

ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες σεις να πρέπει να αυξηθεί η

τ ς είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

ς “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

Η είσοδοδεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η ε ο το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Size” είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων

του πίνακα που θα αναγνωστεί.

οφορίες

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληρσχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξ δ

ο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ δ ιθµούς χωρίς πρόσηµο των 32 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο “Size”.

ξο ος “Data” είναι ένας πίνακας που αποτελείται από ακέραιους αρ

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

α. σφάλµ Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 93: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 89 2.3.8 MEM_Write.vi Το subVI MEM_Write.vi είναι ένα πολυµορφικό VI που έχει την δυνατότητα να γράφει σειρές αλφαριθµητικών χαρακτήρων (Strings), πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8- , 16- και 32-bit στην µνήµη του DSP µε απευθείας προσπέ i αποτελείται από ένα σύνολο ubVIs που θα περιγραφούν στην συνέχεια και παρουσιάζονται ονοµαστικά στον Πίνακα 11.

λαση της. Το MEM_Write.vs

Εικ. Ονοµασία Εικ. Ονοµασία

MEM_Write_F4.vi

MEM_Write_A_F4.vi

MEM_Write_F8.vi

MEM_Write_A_F8.vi

MEM_Write_I1.vi

MEM_Write_A_I1.vi

MEM_Write_I2.vi

MEM_Write_A_I2.vi

MEM_Write_I4.vi

MEM_Write_A_I4.vi

MEM_Write_UI1.vi

MEM_Write_A_UI1.vi

MEM_Write_UI2.vi

MEM_Write_A_UI2.vi

MEM_Write_UI4.vi MEM_Write_A_UI4.vi

MEM_Write_String.vi

MEM_ Το subVI MEM_Write_F4.vi που φαίνεται στο Σχήµα 82 γράφει αριθµούς κινητής υποδιαστολής διεύθυνση µν SP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλασ τη

error in

Πίνακας 11. Τα subVIs του MEM_Write.vi

Write_F4.vi

µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την ήµης του D

η ς µνήµης.

CCS In CCS Out

TimeoutPage & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

error out

Data

Σχήµα 82. Το MEM_Write_F4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές

µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Page 94: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

90 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσο που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµέχρι ν θεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστη λµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

δος “Timeout” µα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI α ολοκληρω

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφά

εξαρτώνται απόπεριπτώσεις νατιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ό

τα οποία αποτελείται η είσοδος “error in” είναι: που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία απ

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

του DSP ξεκινώντας από την θέση µνήµης που

καθορίζει η είσοδος “Page & Number”.

Η είσοδος “Data” είναι ένας αριθµός κινητής υποδιαστολής µονής ακρίβειας των 32 bits που θα εγγραφεί στην µνήµη

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδ που περιέχει πληροφορίες σχετικές µε το CCS.

ος “CCS Out” είναι µια οµάδα

Η έξοδ των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “source”

Page 95: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 91 ME _

Το subVI MEM_Write_F8.vi που φαίνεται στο Σχήµα 83 γράφει αριθµούς κινητής υπο α ιεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προ πέ

M Write_F8.vi

δι στολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την

δσ λαση της µνήµης.

CCS_Event_Notif_In CCS_Event_Notif_Out

error outTimeout

Page & Address

CCS In

error in

CCS Out

Data

Σχήµα 83. Το MEM_Write_F8.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να “Timeout”. Η προκαθορισµένη

πο διαθέτει o

αυξηθεί η τιµή της εισόδουυ

τιµή της είναι 10 sec (10000 msec).

που παρέχει πληροφορίες για την ς

Η είσοδος “Page & Address” είναι µια οµάδα σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδο“Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η “source” είναι τύπου String και περιγράφει το σφάλµα. είσοδος

Η ε οbits οκαθορί

ίσ δος “Data” είναι ένας αριθµ κινητής υποδιαστολής µονής ακρίβειας των 64 π υ θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που ζει η είσοδος “Page & Number”.

ός

Page 96: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

92 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ οδσφαλµά χεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των των. Τα στοι

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

ME _

Τ ρό ηµ ίσο ο

Data

M Write_I1.vi ο subVI MEM_Write_I1.vi που φαίνεται στο Σχήµα 84 γράφει ακέραιους αριθµούς µε

σ ο των 8 bits (1 byte) στην σελίδα και στην διεύθυνση µνήµης του DSP που δείχνει ηπε δ ς “Page & Address” µε απευθείας προσπέλαση της µνήµης.

tCCS In CCS Out

CCS_Event_Notif_In CCS_Event_No if_Out

error outerror in

Page & AddressTimeout

Σχήµα 84. Το MEM_Write_I1.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή

χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

εγγραφή. Στην περίπτωση

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o

τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Page 97: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 93

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

δος “Page & Number”.

Η είσοδος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits που θα εγγραφεί στην θέση µνήµης του DSP, που καθορίζει η είσο

Η έξο _Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχε κέ

δος “CCSτι ς µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έ δ ε το CCS. ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

E _ Τπρόσηµ 1που δείχνει ε

error in

TimeoutPage & Address

Data

M M Write_I2.vi

ο subVI MEM_Write_I2.vi που φαίνεται στο Σχήµα 85 γράφει ακέραιους αριθµούς µε ο των 6 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP

η ίσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS In CCS Out

CCS_Event_Notif_In CCS_Event_Notif_Out

error out

Σχήµα 85. Το MEM_Write_I2.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµ σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι ν ί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει υργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

α α ολοκληρωθε

ολοκληρωθεί η εγγραφή δηµιο

Page 98: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

94 2. Περιγραφή των subVIs του LabVIEW to CCS Link

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

υ String και περιγράφει το σφάλµα.

Η είσοδος “source” είναι τύπο

Η είσο θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η

δος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που

είσοδος “Page & Number”.

οµάδα που περιέχει πληροφορίες σχε κέ

Η έξοδος “CCS_Event_Notif_Out” είναι µιατι ς µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έ δ

ξο ος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έ οδ φορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

ξ ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληρο

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

E _

Τπρόσηµ οπου δείχνει η ε

Data

M

M Write_I4.vi

ο subVI MEM_Write_I4.vi που φαίνεται στο Σχήµα 86 γράφει ακέραιους αριθµούς µε ο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης τ υ DSP

ίσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS_Event_Notif_In CCS_Event_Notif_Out

error out

CCS In CCS OutTimeout

Page & Addresserror in

Σχήµα 86. Το MEM_Write_I4.vi

Page 99: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 95

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα ριέχει πληροφορίες σχετικές µε το CCS.

που πε

Η είσοδος “Timeout” πο , καθορίζει το µέγιστο χρονικό

δηµιουργείται ένα σφάλµα. Επειδή α ς

υ είναι ακέραιος των 32 bitsδιάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένεπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

τα ο οί

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ ό π αν ν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. του Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

εγγρ φείσοδος

Η είσοδος “Data” είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits που θα α εί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η

“Page & Number”.

Η ο ληροφορίες σχε κέ

έξ δος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πτι ς µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

µια οµάδα εξόδων που περιέχει την πληροφορία των Η έξοδος “error out” είναι

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 100: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

96 2. Περιγραφή των subVIs του LabVIEW to CCS Link MEM_ rite_ Το subVχωρίς πρόσηµ (1 byte) στην σελίδα και στην διεύθυνση µνήµης του DSP που δείχνει η εί δ

CCS OutTimeout

_Event_Notif_In CCS_Event_Notif_Out

W UI1.vi

I MEM_Write_UI1.vi που φαίνεται στο Σχήµα 87 γράφει ακέραιους αριθµούς ο των 8 bits

σο ος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS

error outerror in

Page & Address

Data

CCS In

Σχήµα 87. Το MEM_Write_UI1.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές το CCS.

µε

Η είσοδος “Timeout” πο , καθορίζει το µέγιστο χρονικό

δηµιουργείται ένα σφάλµα. Επειδή α ς

υ είναι ακέραιος των 32 bitsδιάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτεξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένεπεριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι

ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

τα ο οί

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που ιθ ό π αν ν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. του Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

εγγρ φ

Η ε οίσ δος “Data” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που θα α εί στην θέση µνήµης του DSP, που καθορίζει η είσοδος “Page & Number”.

Η οσχε κέ

έξ δος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες τι ς µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Page 101: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 97

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

ME _ Τ ubVχωρίς πρόσηµτου DSP που δ

ge & Address

M Write_UI2.vi

ο s I MEM_Write_UI2.vi που φαίνεται στο Σχήµα 88 γράφει ακέραιους αριθµούς ο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης είχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

error out

CCS In

error in

CCS OutTimeout

Pa

Σχήµα 88 Το MEM_Write_UI2.vi

Η είσοδος “CCS_Event_Notif_In” είναι ια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν CCS.

µστο

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

ό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits,

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικ

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

παρακάτω στοιχεία:

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσο α (Cluster) εισόδων που περιγράφει το σφάλµα

που ιθτα οποί

δος “error in” είναι µια οµάδ π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

α αποτελείται η είσοδος “error in” είναι:

Page 102: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

98 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

“source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος

Η είσο ίναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που θα εγγρ φ ι η είσοδος “Page & Number”.

δος “Data” εα εί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζε

τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. είναι τύπου String και περιγράφει το σφάλµα.

MEM_Wri e_

Το subVI MEM_Write_UI4.vi που φαίνεται στο Σχήµα 89 γράφει ακέραιους αριθµούς ωρίς πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης ου DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

CCS_Event_Notif_In CCS_Event_Notif_Out

Η έξοδος “source”

t UI4.vi χτ

error out

CCS In

error in

CCS OutTimeout

Page & Address

Data Σχήµα 89 Το MEM_Write_UI4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

ση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή

α εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτω

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτ

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 103: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 99

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

ου περιγράφει το σφάλµα που ιθτα οποί r in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων π π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

α αποτελείται η είσοδος “erro Η είσοδος “status” που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα

του σφάλµατος. Η είσοδος “source” που είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος

εγγραφ νήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος

“Data” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που θα εί στην µ “Page & Number”.

Η ο ληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

έξ δος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει π

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_ rite_ Το su Vαλφαριθµητικο µνήµης ου DSP που δ νήµης.

CCS Outent_Notif_In CCS_Event_Notif_Out

W String.vi

b I MEM_Write_String.vi που φαίνεται στο Σχήµα 90 γράφει µια σειρά από ύς χαρακτήρες (String) ξεκινώντας από την σελίδα και την διεύθυνσηείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µτ

CCS_Ev

error outerror in

TimeoutPage & Address

Data

CCS In

Σχήµα 90 Το MEM_Write_String.vi

Page 104: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

100 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η είσοδος “CCS_Event_ περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Notif_In” είναι µια οµάδα που

σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

ι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Η είσοδος “Page & Address” είνα

“Page & Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσο λµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφά

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η ε ο ραφεί στην

µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page &

ίσ δος “Data” είναι µια σειρά αλφαριθµητικών χαρακτήρων που θα εγγ

Number”.

άδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµ

ρίες σχετικές µε το CCS. Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφο

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

ς.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατο

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 105: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 101

η της µνήµης.

MEM_Write_A_F4.vi Το subVI MEM_Write_A_F4.vi που φαίνεται στο Σχήµα 91 γράφει ένα πίνακα που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλασ

error out

CCS In

error in

CCS OutTimeout

Page & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

Σχήµα 91 Το MEM_Write_A_F4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Data” που είναι ένας πίνακας από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”.

Page 106: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

102 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Write_A_F8.vi

Το subVI MEM_Write_A_F8.vi που φαίνεται στο Σχήµα 92 γράφει ένα πίνακα που

t

CCS In

er

CCS OutTimeout

Page & Add

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

αποτελείται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

error ouror inress

Σχήµα 92 Το MEM_Write_A_F8.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η ε οσελίδα η του DSP που θα γίνει η εγγραφή. Η είσοδος “Pa &

ίσ δος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την και την διεύθυνση στην µνήµ

ge Address” αποτελείται από τα παρακάτω στοιχεία: την

σελίδα της µνήµης του DSP. Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Page 107: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 103

Η είσοδοςπου πιθ πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

“error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέκυψε

π α αποτελείται η είσοδος “error in” είναι: status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος “

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Data” που είναι ένας πίνακας από αριθµούς κινητής υποδιαστολής διπλής

ακρίβειας των 64 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το

Η έξοδ out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα µά

ος “errorλ των. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: tatus” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος “s

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

ος. σφάλµατ Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

i που φαίνεται στο Σχήµα 93 γράφει ένα πίνακα που ποτελείται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

t

CCS In

er

CCS OutTimeout

Page & Add

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

MEM_Write_A_I1.vi Το subVI MEM_Write_A_I1.vα

error ouror inress

Σχήµα 93 Το MEM_Write_A_I1.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

Page 108: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

104 2. Περιγραφή των subVIs του LabVIEW to CCS Link

που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή

τιµή της είναι 10 sec (10000 msec).

έχει πληροφορίες για την σελίδα“Page & παρακάτω στοιχεία:

Η είσοδος “Page & Address” είναι µια οµάδα που παρ και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος

Address” αποτελείται από τα Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

εισόδων που περιγράφει το σφάλµα που ιθτα οποί ίται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) π ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

α αποτελε Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

ς από ακέραιους αριθµούς µε πρόσηµο των 8

bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που

Η είσοδος “Data” που είναι ένας πίνακα

καθορίζει η είσοδος “Page & Number”.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

έξοδ

σφαλµά από τα οποία αποτελείται η έξοδος “error out” είναι: Η ος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

των. Τα στοιχεία Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

i που φαίνεται στο Σχήµα 94 γράφει ένα πίνακα που ποτελείται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µνήµης.

MEM_Write_A_I2.vi Το subVI MEM_Write_A_I2.vα

Page 109: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 105

CCS_Event_Notif_Out

error out

CCS In CCS OutTimeout

CCS_Event_Notif_In

error inPage & Address

Data

Σχήµα 94 Το MEM_Write_A_I2.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διάστηπολλέςεξα ώπεριπτώ ένη

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµτιµή της είναι 10 sec (10000 msec).

“Pa &

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος

ge Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς π

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη τουρόσηµο σε DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Data” που είναι ένας πίνακας από ακέραιους αριθµούς µε πρόσηµο των 16 ts, θα θbi εγγραφεί στην µνήµη του DSP ξεκινώντας από την έση µνήµης που

καθορίζει η είσοδος “Page & Number”.

Η έ οσχετ κέ

ξ δος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες ς µε τα γεγονι ότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Page 110: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

106 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Write_A_I4.vi Το subVI MEM_Write_A_I4.vi που φαίνεται στο Σχήµα 95 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µν σοδος “Page & Address” µε πευθείας προσπέλαση της µνήµης.

S_Event_Notif_Out

ήµης του DSP που δείχνει η εία

CCS_Event_Notif_In CC

error outTimeout

Page & Address

CCS In

error in

CCS Out

Data

Σχήµα 95 Το MEM_Write_A_I4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα πολλέςεξα ώπερ τώτιµή τη

ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη

ς είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Page 111: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 107

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Data” που είναι ένας πίνακας από ακέραιους αριθµούς µε πρόσηµο των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που

καθορίζει η είσοδος “Page & Number”.

Η έ οσχετικέ ότα που µπορεί να συµβούν στο CCS.

ξ δος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες ς µε τα γεγον

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των οιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: σφαλµάτων. Τα στ

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Write_A_UI1.vi

Το subVI MEM_Write_A α 96 γράφει ένα πίνακα που πο λσελίδαπευθε

α

_UI1.vi που φαίνεται στο Σχήµτε είται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) ξεκινώντας από την

και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε ίας προσπέλαση της µνήµης. α

CCS_Event_Notif_In CCS_Event_Notif_Out

error out

CCS In

error in

CCS OutTimeout

Page & Address

Data

Σχήµα 96 Το MEM_Write_A_UI1.vi

ύν στο CCS.

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβο

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

ορίζει το µέγιστο χρονικό

διάστηµέχρι ν Στην περίπτωση που περάσει αυτό το χρονικό διάστηπολλές ρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI α ολοκληρωθεί η εγγραφή.

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κά

περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Page 112: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

108 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η ε οσελίδα θυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Pa &

ίσ δος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την και την διεύ

ge Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η εί ο

8 bits, στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθ ί

σ δος “Data” που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς πρόσηµο των θα εγγραφεί

ορ ζει η είσοδος “Page & Number”.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες πορεί να συµβούν στο CCS. σχετικές µε τα γεγονότα που µ

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία

αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

MEM_Write_A_UI2.vi Το subVI MEM_Write_A_UI2.vi που φαίνεται στο Σχήµα 97 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απευθείας προσπέλαση της µν

S Out

ξεκινώντας

ήµης.

CCS In CC

Timeout

CCS_Event_Notif_In CCS_Event_Notif_Out

error outerror in

Page & Address

Data

Σχήµα 97 Το MEM_Write_A_UI2.vi

Page 113: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 109

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

eout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

και την επικοινωνία µε την κάρτα εξα ώπεριπτώ ρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή η

Η είσοδος “Tim

µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS

ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες σεις να π

τ ς είναι 10 sec (10000 msec).

Η ε ο ίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος

ίσ δος “Page & Address” είναι µια οµάδα που παρέχει πληροφορ

“Page & Address” αποτελείται από τα παρακάτω στοιχεία: Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την

σελίδα της µνήµης του DSP. Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε

δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

κεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγ

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

ς.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατο

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η ε ο πρόσηµο των 16 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος “Page & Number”.

ίσ δος “Data” που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι:

Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 114: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

110 2. Περιγραφή των subVIs του LabVIEW to CCS Link ME _

Το subVI MEM_Write_A_UI4.vi που φαίνεται στο Σχήµα 98 γράφει ένα πίνακα που απο λ ό ην σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος “Page & Address” µε απε ε

M Write_A_UI4.vi

τε είται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (8 bytes) ξεκινώντας απ

τυθ ίας προσπέλαση της µνήµης.

error out

CCS In

error in

CCS OutTimeout

Page & Address

CCS_Event_Notif_In CCS_Event_Notif_Out

Data

Σχήµα 98 Το MEM_Write_A_UI4.vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

ές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι ν ολοκληρωθεα ί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό

µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα σφάλµα. Επειδή διάστηπολλέςεξα ώπερ τώ αθορισµένη τιµή η

διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα ρτ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες ιπ σεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκ τ ς είναι 10 sec (10000 msec).

Η είσοδος “Page & Address” είναι µια οµάδα που παρέχει πληροφορίες για την

σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος “Page & Address” αποτελείται από τα παρακάτω στοιχεία:

Η είσοδος “Page” που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP.

Η είσοδος “Address” που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

Η εί ο

πουτα ο οί

σ in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

α αποτελείτα

δος “error

π ι η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι έν

σφάλµατος. ας ακέραιος των 32 bits που δείχνει τον κώδικα του

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η είσοδος “Data” που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση νήµης που καθορίζει η είσοδος “Page & Number”.

µ

Page 115: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 111

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει ον κώδικα του

σφάλµατος. τ

Η έξοδος “source” το σφάλµα.

.3.9

Το “Le _του αTMS32 Ητεσσάρψηφίο φωτοδίθεωρείτιµή τη Value”, σε δεκαδική αναπαράσταση, είναι 10 συνεπάγεται ότι µόνο οι ωτοδί .

είναι τύπου String και περιγράφει

2 Leds_Read_(DSK6713).vi

subVI Leds_Read_(DSK6713).vi που φαίνεται στο Σχήµα 99 επιστρέφει στην έξοδοds Value”, σε δεκαδική αναπαράσταση, την κατάσταση των τεσσάρων φωτοδιόδων (leds)

ναπτυξιακού DSK C6713 της Spectrum Digital που είναι βασισµένο στον 0C6713 DSP της Texas Instruments. κατάσταση των τεσσάρων φωτοδιόδων εκφράζεται ως ένας δυαδικός αριθµός των ων ψηφίων, όπου κάθε ένα ψηφίο αντιστοιχεί σε µια φωτοδίοδο. Το πλέον σηµαντικό αντιστοιχεί στην φωτοδίοδο 3 και το ελάχιστα σηµαντικό ψηφίο αντιστοιχεί στην οδο 0. Κάθε φωτοδίοδος θεωρείται ότι έχει την τιµή 1όταν φωτοβολεί διαφορετικά ται ότι έχει τιµή 0. Εποµένως η έξοδος “Leds_Value” παίρνει τιµές από 0 έως 15. Αν η ς εξόδου “Leds_οδοι 1 και 3 φωτοβολούνφ

error outerror inTimeout Leds_ValueCCS In

CCS_Event_Notif_In CCS_Event_Notif_OutCCS Out

Σχήµα 99. Το Leds_Read_(DSK6713).vi

Η ε ο ίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

ίσ δος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορ

ίες σχετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

π α µ έ διαδικασίες

που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον

10 sec

µέχρι να ολοκληρωθεί η ανάγνωση της κατάστασης των φωτοδιόδων. Στην περίπτωση που εράσει υτό το χρονικό διάστη α και δεν χει ολοκληρωθεί η ανάγνωση της κατάστασης των φωτοδιόδων δηµιουργείται ένα σφάλµα. Επειδή πολλές

υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι(10000 msec).

Page 116: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

112 2. Περιγραφή των subVIs του LabVIEW to CCS Link

Η ε οπου πιθ κυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα ο οί

ίσ δος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα ανόν να προέ

π α αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Leds_Value” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει την κατάσταση των φωτοδιόδων του DSK C6713 σε δεκαδική αναπαράσταση. Η έξοδος “Leds_Value” παίρνει τιµές από 0 έως 15.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

2.3.10 Leds_Write_(DSK6713).vi Το subVI Leds_Write_(DSK6713).vi που φαίνεται στο Σχήµα 100 αλλάζει την κατάσταση των τεσσάρων φωτοδιόδων (leds) του DSKC6713 σύµφωνα µε την τιµή της εισόδου “Leds_Value”. Η είσοδος “Leds_Value” παίρνει τιµές από 0 έως 15. Η κατάσταση των τεσσάρων φωτοδιόδων εκφράζεται ως ένας δυαδικός αριθµός των τεσσάρων ψηφίων, όπου κάθε ψηφίο αντιστοιχεί σε µια φωτοδίοδο. Το πλέον σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 3 και το ελάχιστα σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 0. Κάθε φωτοδίοδος θεωρείται ότι έχει την τιµή 1όταν φωτοβολεί διαφορετικά θεωρείται ότι έχει τιµή 0. Αν η τιµή της εισόδου “Leds_Value”, σε δεκαδική αναπαράσταση, γίνει 12 το Leds_Write_(DSK6713) θα αλλάξει την κατάσταση των φωτοδιόδων ώστε να ανάψουν µόνο οι φωτοδίοδοι 2 και 3 ανεξάρτητα από την προηγούµενη κατάστασή τους.

error out

CCS In

error in

CCS OutTimeout

Leds_Value

CCS_Event_Notif_In CCS_Event_Notif_Out

Σχήµα 100. Το Leds_Write_(DSK6713).vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Page 117: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 113

χετικές µε το CCS. Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σ

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η αλλαγή της κατάστασης των φωτοδιόδων. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η αλλαγή της κατάστασης των φωτοδιόδων δηµιουργείται ένα σφάλµα. Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “Leds_Value” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που

καθορίζει την νέα κατάσταση των φωτοδιόδων του DSK C6713 σε δεκαδική αναπαράσταση. Η είσοδος “Leds_Value” παίρνει τιµές από 0 έως 15.

Η είσοδος “error in”

που πιθανόν να προέκ είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα υψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από

τα οποία αποτελείται η είσοδος “error in” είναι: Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

σφάλµα. Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα πο

σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. υ περιέχει πληροφορίες

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error out” είναι: Η έξοδος “status”

σφάλµα. είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Το subVI Switches_Read_(DSK6713).vi που φαίνεται στο Σχήµα 101 επιστρέφει στην ξοδο

ψηφίο αντιστοιχεί στον ιακόπτη 0. Κάθε διακόπτης θεωρείται ότι έχει την τιµή 1όταν είναι ανοικτός (κατάσταση

τιµ ως 15. Αν η τιµή της εξόδου “Switches_Value”, σε δεκαδική αναπαράσταση,

2.3.11 Switches_Read_(DSK6713).vi έ “Switches_Value”, σε δεκαδική αναπαράσταση, την κατάσταση των τεσσάρων διακοπτών του αναπτυξιακού DSK C6713 Η κατάσταση των τεσσάρων διακοπτών εκφράζεται ως ένας δυαδικός αριθµός των τεσσάρων ψηφίων, όπου κάθε ένα ψηφίο αντιστοιχεί σε ένα διακόπτη. Το πλέον σηµαντικό ψηφίο αντιστοιχεί στον διακόπτη 3 και το ελάχιστα σηµαντικό δOFF) διαφορετικά θεωρείται ότι έχει τιµή 0. Εποµένως η έξοδος “Switches_Value” παίρνει

ές από 0 έ

Page 118: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

114 2. Περιγραφή των subVIs του LabVIEW to CCS Link

κλε

t_V

otif_In CCS_Event_Notif_Out

είναι 5 συνεπάγεται ότι οι διακόπτες 0 και 2 είναι ανοικτοί ενώ οι διακόπτες 1 και 3 είναι ιστοί.

CCS_Event_N

error out

CCS In CCS OuTimeout Switches alueerror in

Σχήµα 101. Το Switches_Read_(DSK6713).vi

Η είσοδος “CCS_Event_Notif_In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η είσοδος “CCS In” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η είσοδος “Timeout” που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό

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

κεράσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η αν

των διακοπτών, δηµιουργείται ένα σφάλµα. Επειδή πολλέςπου σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου “Timeout”. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

Η είσοδος “error in” είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα

που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος “error in” είναι:

Η είσοδος “status” είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµα.

Η είσοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµατος.

Η είσοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Η έξοδος “CCS_Event_Notif_Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

Η έξοδος “CCS Out” είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

Η έξοδος “Switches_Value” είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits

που δείχνει την κατάσταση των διακοπτών του DSK C6713 σε δεκαδική αναπαράσταση. Η έξοδος “Switches_Value” παίρνει τιµές από 0 έως 15.

Η έξοδος “error out” είναι µια οµάδα εξόδων που περιέχει την πληροφορία των

σφαλµάτων ut” είναι:

. Τα στοιχεία από τα οποία αποτελείται η έξοδος “error o Η έξοδος προέκυψε κάποιο ει αν “status” είναι Boolean τύπου και δείχν

σφάλµα. Η έξοδος “code” είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

σφάλµατος. Η έξοδος “source” είναι τύπου String και περιγράφει το σφάλµα.

Page 119: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 115

έγχουν και θα επικοινωνούν µε εφαρµογές για DSPs.Θα

ουθούν γίνεται µια προσπάθεια να κατανοηθεί ο τρόπος που πορούν να χρησιµοποιηθούν τα subVIs που περιλαµβάνει το LabVIEW to CCS Link σ φωνα µε την κατηγορία που ανήκουν και τις δυνατότητες που έχουν.

ο µ ίσ

ώντας το παράθυρο “Available Boards” είτε εισάγοντας το αρχείο

Όλα τα παραπάνω βήµατα µπορούν να υλοποιηθούν προγραµµατιστικά µε το LabVIEW αξιοποιώντας τα subVIs που περιέχει η κατηγορία Ρύθµιση του CCS, του LabVIEW to CCS Link. Εποµένως σε ένα κενό VI του LabVIEW ο χρήστης θα πρέπει να τοποθετήσει τα subVIs της παραπάνω κατηγορίας που αντιστοιχούν στα βήµατα που θα έκανε χειροκίνητα. Η επιλογή των κατάλληλων subVIs γίνεται µε το παρακάτω σκεπτικό: • Το 1o βήµα ήταν να ανοίξει το CCStudio Setup αυτό το αναλαµβάνει το CCSetup_

Open.vi.

3. Χρησιµοποιώντας του LabVIEW to CCS Link Με το LabVIEW και το LabVIEW to CCS Link ο χρήστης µπορεί να δηµιουργήσει εύκολα και γρήγορα VIs που θα ελπρέπει να γίνει σαφές ότι τα VIs που δηµιουργούνται µε το LabVIEW και το LabVIEW to CCS Link δεν δηµιουργούν κώδικα για τον DSP αλλά επικοινωνούν και ελέγχουν εφαρµογές µε DSPs. Εποµένως πρώτα θα πρέπει να αναπτυχθεί η αντίστοιχη εφαρµογή µε το Code Composer Studio και στην συνέχει να δηµιουργηθεί το VI που θα την διαχειρίζεται. Σε αυτό το σηµείο δίνεται έµφαση στον τρόπο δηµιουργίας ενός VI που θα ελέγχει µια εφαρµογή. Στις παραγράφους που ακολµύµ

3.1 Ρύθµιση του CCS Τα subVIs της κατηγορίας Ρύθµιση του CCS που παρουσιάστηκαν παραπάνω, δίνουν την δυνατότητα στον χρήστη να καθορίσει προγραµµατιστικά, µέσα από ένα VI, την κάρτα ή τον DSP που θα χρησιµοποιήσει το CCS. Στην πραγµατικότητα τα subVIs αυτής της κατηγορίας ελέγχουν το CCStudio Setup. Στην συνέχεια θα παρουσιαστεί ο τρόπος που µπορεί κάποιος να καθορίσει την ύπαρξη ενός ή περισσότερων DSPs µέσα από ένα VI.

3.1.1 Ρύθµιση του CCS για την χρησιµοποίηση µιας κάρτας Για να µπορέσει κάποιος να δηµιουργήσει ένα VI που θα ρυθµίσει το CCS ώστε να χρησιµοποιήσει το DSKC6713 αρχικά θα πρέπει να σκεφτεί ένα προς ένα τα βήµατα που θα έκανε χρησιµοποιώντας το CCStudio Setup χειροκίνητα. Τα βήµατα που θα έκανε κάποιος χειροκίνητα για να καθορίσει την ύπαρξη του DSKC6713 είναι: • Να ανοίξει το CCStudio Setup • Να σβήσει τις πρ ηγού ενες ρυθµ εις • Να επιλέξει και να προσθέσει την κάρτα που επιθυµεί, στην συγκεκριµένη περίπτωση το

DSKC6713, είτε χρησιµοποι των οδηγών της κάρτας ή του εξοµοιοωτή (αρχείο µε επέκταση .ccs) επιλέγοντας

File Import και δίνοντας την διαδροµή και το όνοµα του αρχείου. • Να αποθηκεύσει τις ρυθµίσεις που έκανε. • Τέλος να κλείσει το CCStudio Setup.

Page 120: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

116 3. Χρησιµοποιώντας του LabVIEW to CCS Link • Το 2o βήµα ήταν να σβήσει τις προηγούµενες ρυθµίσεις του CCStudio Setup αυτό το

αναλαµβάνει το CCSetup_Clear.vi. • Το 3o βήµα ήταν να επιλεγεί και να προστεθεί η κάρτα αυτό το αναλαµβάνει το

CCSetup_Add_Board.vi. • Το 4o βήµα είναι να αποθηκευτούν οι ρυθµίσεις αυτό το αναλαµβάνει το

CCSetup_Save.vi. • Το 5o βήµα είναι να κλείσει το CCSetup Studio αυτό το αναλαµβάνει το

CCSetup_Close.vi. Εφόσον τοποθετηθούν παραπάνω subVIs στο κενό VI, ο χρήστης θα πρέπει να τα συνδέσει µεταξύ τους και να προσθέσει τους απαραίτητους ελεγκτές (controls), ενδείκτες (indicators) και σταθερές (constants) ώστε να µπορέσει να λειτουργήσει το VI. Θα πρέπει να σηµειωθεί ότι οι είσοδοι των subVIs που µένουν ασύνδετες παίρνουν τις προκαθορισµένες τιµές τους. Στο Σχήµα 102 παρουσιάζεται η τελική µορφή του block diagram του VI που καθορίζει µέσω του CCStudio Setup την ύπαρξη του DSKC6713.

en.vi είναι ροαιρετικός αφού έχει αξία αν το συγκεκριµένο VI χρησιµοποιηθεί ως subVI. Η σταθερά

οδηγών του DSKC6713. Αν το χ ένη διαδροµή τότε κατάλληλα

α πρέπει

Σχήµα 102. Το block diagram του VI που καθορίζει την ύπαρξη του DSKC6713.

Η Boolean σταθερά µε τιµή False που συνδέθηκε στην είσοδο “Visible” του CCSetup_ Open.vi καθορίζει ότι το CCStudio Setup θα ανοίξει αλλά δεν θα είναι ορατό στον χρήστη. Ο ελεγκτής “error in” που συνδέθηκε στην αντίστοιχη είσοδο του CCSetup_Opπ“Driver Path” περιέχει την πλήρη διαδροµή του αρχείου των CCS έ ει εγκατασταθεί σε διαφορετική από την προκαθορισµθ να τροποποιηθεί το περιεχόµενο της σταθεράς “Driver Path” που συνδέεται στην αντίστοιχη είσοδο του CCSetup_Add_ Board.vi. Τέλος ο ενδείκτης “error out” θα ενηµερώσει τον χρήστη αν προέκυψε κάποιο σφάλµα κατά την εκτέλεση του VI.

Σχήµα 103. Το παράθυρο του CCStudio Setup όσον εκτελεστεί εφτο VI που καθορίζει την ύπαρξη του DSKC6713.

Page 121: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 117

θα παρατηρήσετε ι ίηση του DSKC6713, αφού το CCStudio

του Σχήµατος 103.

.1.2

Ακολουθώντας την λογική που αναφέρθηκε στην παράγραφο 3.1.1 δηµιουργήθηκε το ρουσιάζεται

οκ ρ υ εξοµοιωτή C6713 Device Cycle Accurate Simulator. Επίσης

κ ρ

Αν εκτελεστεί το παραπάνω VI και µετά ανοίξετε το CCStudio Setup ότ έχει γίνει η ρύθµιση του CCS για την χρησιµοποSetup θα έχει την µορφή

3 Ρύθµιση του CCS για την χρησιµοποίηση πολλαπλών καρτών Το CCS έχει την δυνατότητα να χρησιµοποιεί ταυτόχρονα περισσότερες από µια κάρτες ή συνδυασµό διαφόρων καρτών και ενός εξοµοιωτή. ∆εν επιτρέπει την χρησιµοποίηση περισσότερων του ενός εξοµοιωτή. VI µε όνοµα CCS_Setup_for_multiple_boards.vi του οποίου το block diagram παστ Σχήµα 104. Αυτό το VI καθορίζει την ταυτόχρονη ύπαρξη της κάρτας DSKC6713, της ά τας DSKC6711 και τοαλλάζει το όνοµα της κάρτας DSKC6711 σε my_board και το όνοµα του επεξεργαστή της ά τας DSKC6713 σε my_CPU.

Σχήµα 104. Το block diagram του CCS_Setup_for_multiple_boards.vi

ορα ύ η προκαθορισµένη τιµή της εισόδου “Visible” του σ

είχε etup και το CCS_Setup_Add_Board.vi εισάγει την κάρτα που αντιστοιχεί ο

DS CCSetup_Rename_Board.vi αλλάζει το όνοµα της κάρτας που εισάχθηκε λαδή σε

my_board”. Το CCS_Setup_Add_Board.vi χρησιµοποιείται ξανά για να εισαχθεί η κάρτα ης ο

µοιωτή του οποίου η διαδροµή του των οδηγών του καθορίζεται από την ταθερά “Driver Path2”. Η σταθερά “Driver

Path2” περιέχει την διαδροµή του αρχείου των οδηγών του C6713 Device Cycle Accurate ulator ε θµίσεις θα

ποθηκευτούν µε την εκτέλεση του CCSetup_Save.vi. Τέλος η εκτέλεση του

To CCS_Setup_for_multiple_boards.vi αρχικά ανοίγει το CCStudio Setup που γίνεται τό στον χρήστη αφο

CCSetup_Open.vi είναι True. Στην συνέχεια το CCSetup_Clear.vi βήνει τις ρυθµίσεις που το CCStudio S

στ αρχείο των οδηγών που δείχνει η σταθερά “Driver Path”. Η κάρτα που εισάγεται είναι το KC6713. Το

(δηλαδή του DSKC6713) σε αυτό που περιέχει η σταθερά “New Name” δη“τ ποίας η διαδροµή του αρχείου των οδηγών της καθορίζεται από την σταθερά “Driver Path1”. Η σταθερά “Driver Path1” περιέχει την διαδροµή του αρχείου των οδηγών του DSKC6711 που χρησιµοποιεί την SPP378 διεύθυνση της παράλληλης θύρας εποµένως η κάρτα που εισάγεται τώρα είναι το DSKC6711. Το CCSetup_Rename_Processor.vi αλλάζει το όνοµα του επεξεργαστή της κάρτας που εισάχθηκε (δηλαδή του DSKC6711) σε αυτό που περιέχει η σταθερά “ProcName” δηλαδή σε “my_CPU”. Το CCS_Setup_Add_Board.vi που ρησιµοποιείται για µια ακόµα φορά, εισάγει τον εξοχαρχείου σ

Simα

ποµένως θα εισαχθεί ο εξοµοιωτής του TMS320C6713 DSP. Οι νέες ρυ

CCS_Setup_for_multiple_boards.vi ολοκληρώνεται µε το κλείσιµο του CCStudio Setup που προκαλεί το CCSetup_Close.vi.

Page 122: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

118 3. Χρησιµοποιώντας του LabVIEW to CCS Link Με την ολοκλήρωση της εκτέλεσης του CCS_Setup_for_multiple_boards.vi οι ρυθµίσεις έχουν πλέον αποθηκευτεί και το CCS είναι έτοιµο να χρησιµοποιήσει το DSKC6713 µε το νέο του όνοµα, το DSKC6711 µε το νέο όνοµα του επεξεργαστή και τον εξοµοιωτή C6713 Device Cycle Accurate Simulator. Το CCStudio Setup θα έχει πλέον την µορφή του Σχήµατος 105.

Σχήµα 105. Το παράθυρο του CCStudio Setup µετά την εκτέλεση του CCS_Setup_for_multiple_boards.vi

3.2 Αυτοµατοποίηση του CCS Τα subVIs της κατηγορίας Αυτοµατοποίηση του CCS που παρουσιάστηκαν παραπάνω, δίνουν την δυνατότητα στον χρήστη ελέγξει προγραµµατιστικά, µέσα από ένα VI, το Code

ompose Studio και κατά επέκταση τον DSP. Στην συνέχεια θα παρουσιαστεί ο τρόπος που πορεί κάποιος δηµιουργήσει ένα VI που θα ελέγχει έναν ή περισσότερούς DSPs.

Να ανοίξει το CCS. • Να ανοίξει το project που επιθυµεί στο CCS. • Να κτίσει το project. • Να δώσει εντολή στο CCS να συνδεθεί µε τον DSP. • Να δώσει εντολή στον DSP να επανέλθει στην αρχική του κατάσταση (Reset). • Να φορτώσει - κατεβάσει το πρόγραµµα (αρχείο µε επέκταση .out) στον DSP. • Να ενεργοποιήσει την RTDX τεχνολογία αν το project που φόρτωσε την αξιοποιεί.

3.2.1 Αυτοµατοποίηση του CCS για τον έλεγχο ενός DSP Για να µπορέσει κάποιος να δηµιουργήσει ένα VI που ελέγξει έναν DSP της TI µέσω του CCS αρχικά θα πρέπει να σκεφτεί ένα προς ένα τα βήµατα που θα έκανε χρησιµοποιώντας το CCS χειροκίνητα. Τα βήµατα που θα έκανε κάποιος χειροκίνητα για να ελέγξει ένα DSP µέσω του CCS (εφόσον το project του CCS που θα χρησιµοποιηθεί έχει δηµιουργηθεί νωρίτερα) είναι: •

Page 123: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 119 • Να δώσει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. • Εφόσον ο DSP ολοκληρωθεί η διαδικασία που επιθυµεί ο χρήστης, θα πρέπει να δοθεί

εντολή στον DSP να σταµατήσει την εκτέλεση του προγράµµατος. • Εφόσον έχει ενεργοποιηθεί η RTDX τεχνολογία θα πρέπει ο χρήστης να την

απενεργοποιήσει. • Να δώσει εντολή στο CCS να αποσυνδέσει την κάρτα. • Να κλείσει το project που είχε ανοίξει στο CCS. • Να κλείσει το CCS.

Όλα τα παραπάνω ιστικά µε το LabVIEW

Τ

S_Halt.vi. Τ

Is στο κενό VI, ο χρήστης θα πρέπει να τα

τιµές τους. Στο Σχήµα 106 παρουσιάζεται το block diagram ενός τυπικού I που ελέγχει το CCS και κατά επέκταση έναν DSP.

βήµατα µπορούν να υλοποιηθούν προγραµµαταξιοποιώντας τα subVIs που περιέχει η κατηγορία Αυτοµατοποίηση του CCS, του LabVIEW to CCS Link. Εποµένως σε ένα κενό VI του LabVIEW ο χρήστης θα πρέπει να τοποθετήσει τα subVIs της παραπάνω κατηγορίας που αντιστοιχούν στα βήµατα που θα έκανε χειροκίνητα. Η επιλογή των κατάλληλων subVIs γίνεται µε το παρακάτω σκεπτικό: • To 1o βήµα ήταν να ανοίξει το CCS, αυτό το αναλαµβάνει το CCS_Open.vi. • To 2o βήµα ήταν να ανοιχτεί το επιθυµητό project στο CCS, αυτό το αναλαµβάνει το

CCS_Open_Project.vi. • Το 3o βήµα ήταν να κτιστεί το συγκεκριµένο project, αυτό το αναλαµβάνει το

CCS_Build_All.vi. Αν είναι ο χρήστης επιθυµεί να βλέπει και τα αποτελέσµατα του κτισίµατος στο VI που θα δηµιουργήσει θα πρέπει να χρησιµοποιήσει και το CCS_Build_ Result.vi

• Το 4ο βήµα ήταν να συνδεθεί το CCS µε τον DSP, αυτό το αναλαµβάνει το CCS_ Connect.vi.

• Το 5o βήµα ήταν να επανέλθει ο DSP στην αρχική του κατάσταση (Reset), αυτό το αναλαµβάνει το CCS_Reset.vi.

• Το 6ο βήµα ήταν να φορτωθεί το πρόγραµµα (αρχείο µε επέκταση .out) στον DSP, αυτό το αναλαµβάνει το CCS_Download.vi.

• ο 7ο βήµα ήταν η ενεργοποίηση της RTDX τεχνολογίας αυτό το αναλαµβάνει το CCS_RTDX_Enable.vi.

• Το 8ο βήµα ήταν εκκίνηση της εκτέλεση του προγράµµατος από το DSP, αυτό το αναλαµβάνει το CCS_Run.vi.

• To 9o βήµα ήταν το σταµάτηµα της εκτέλεσης του προγράµµατος από τον DSP, αυτό το αναλαµβάνει το CC

• ο 10ο βήµα ήταν η απενεργοποίηση της RTDX τεχνολογίας, αυτό το αναλαµβάνει το CCS_Disable_RTDX.vi.

• To 11o βήµα ήταν η αποσύνδεση της κάρτας, αυτό το αναλαµβάνει το CCS_ Disconnect.vi.

• Το 12ο βήµα ήταν το κλείσιµο του project, αυτό το αναλαµβάνει το CCS_Close_ Project.vi.

• To 13o βήµα ήταν το κλείσιµο του CCS, αυτό το αναλαµβάνει το CCS_Close.vi. Εφόσον τοποθετηθούν παραπάνω subVσυνδέσει µεταξύ τους και να προσθέσει τους απαραίτητους ελεγκτές (controls), ενδείκτες (indicators), σταθερές (constants) και δοµές (structures) ώστε να µπορέσει να λειτουργήσει το VI. Θα πρέπει να σηµειωθεί ότι οι είσοδοι των subVIs που µένουν ασύνδετες παίρνουν τις προκαθορισµένεςV

Page 124: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

120 3. Χρησιµοποιώντας του LabVIEW to CCS Link

Σχήµα 106. Το block diagram ενός τυπικού VI που ελέγχει έναν DSP µέσω του CCS Στο τυπικό block diagram του Σχήµατος 106 η σταθερά “Project Path” που συνδέεται στην είσοδο “Project Path In” του CCS_Open_Project.vi θα πρέπει να περιέχει την πλήρη διαδροµή του project (αρχείο µε επέκταση .pjt) που πρόκειται να ανοιχτεί στο CCS. Ο ενδείκτης “Build Result” συνδέεται µε την έξοδο “Build Result” του CCS_Build_Result.vi και δείχνει το αποτέλεσµα του κτισίµατος του project. Μεταξύ του CCS_Run.vi και του CCS_Halt.vi παρεµβάλλεται µια δοµή While στην οποία θα πρέπει να τοποθετηθεί ο κυρίως κώδικας του VI. Ο κυρίως κώδικας θα πρέπει να πραγµατοποιεί την επεξεργασία και την µεταφορά των δεδοµένων από και προς τον DSP. Ο τρόπος µε τον οποίο ο κυρίως κώδικας µπορεί να ανταλλάξει δεδοµένα µε τον DSP θα παρουσιαστεί σε επόµενη παράγραφο. Η δοµή While όπως παρουσιάζεται στο Σχήµα 106, σταµατάει να εκτελείται αν προκύψει κάποιο σφάλµα ή αν ο ελεγκτής “Stop” πάρει την τιµή True. Όσο εκτελείται η δοµή While δεν µπορούν να εκτελεστούν τα subVIs που την ακολουθούν, το γεγονός αυτό διασφαλίζει ότι ο D θα συνεχίσει την εκτέλεση του προγράµµατός του, µέχρι αυτό να ολοκληρωθεί ή µέχρι ο ελεγκτής “Stop” να πάρει την τιµή True. Θα πρέπει να τονιστεί αν το CCS έχει ρυθµιστεί για την χρησιµοποίηση κάποιου από τους εξοµοιωτές, δεν θα πρέπει στο block diagram να τοποθετηθούν τα CCS_Connect.vi και CCS_Disconnect.vi, αφού η δυναµική σύνδεση και αποσύνδεση έχει νόηµα µόνο για τις κάρτες και όχι για τους εξοµοιωτές. Αν το CCS έχει ρυθµιστεί για την χρησιµοπο

SP

ίηση κάποιας κάρτας τότε υποχρεωτικά α κλπ. θα να επιτευχθεί η σύνδεση του CCS µε

ην κάρτα. Επίσης πριν τα subVIs που προκαλούν το κλείσιµο του project και του CCS και ετά

ας θα µπορούσε να χρησιµοποιηθεί και το CS_RTDX_Logfile_Configuration.vi εφόσον οι προκαθορισµένες ρυθµίσεις του logfile δεν

υ χρήστη. ∆εν έχει νόηµα η χρησιµοποίηση του i αν χρησιµοποιείται η Continuous µέθοδος της RTDX

πριν τ subVIs που σχετίζονται µε τον DSP όπως τα CCS_Run.vi, CCS_ Reset.vi πρέπει να έχει τοποθετηθεί το CCS_Connect.vi ώστε τµ από τα subVIs που σχετίζονται µε τον DSP, θα πρέπει να τοποθετηθεί το CCS_ Disconnect.vi ώστε να αποσυνδεθεί η κάρτα από το CCS. Στην περίπτωση που το project του CCS δεν κάνει χρήση της RTDX τεχνολογίας είναι άσκοπη η χρήση και η τοποθέτηση των subVIs που σχετίζονται µε την RTDX τεχνολογία όπως τα CCS_ RTDX_Enable.vi, CCS_RTDX_Disable.vi κλπ. Αν γίνεται χρήση της Non Continuous µεθόδους της RTDX τεχνολογίCανταπεξέρχονται στις απαιτήσεις το

CS_RTDX_Logfile_Configuration.vCτεχνολογίας, αφού σε αυτή την περίπτωση δεν γίνεται χρήση του logfile. Η επιλογή της RTDX µεθόδου γίνεται από το CCS_RTDX_Enable.vi.

Page 125: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 121

α 107 παρουσιάζεται το παράθυρο του PDM όταν έχει οριστεί στο CCStudio Setup χρησιµοποιηθούν τα DSK C6713 και C6711.

3.2.2 Αυτοµατοποίηση του CCS για τον έλεγχο περισσότερων του ενός DSP Το CCS έχει την δυνατότητα µέσω του Parallel Debug Manager (PDM) να διαχειριστεί ταυτόχρονα περισσότερες από µια κάρτες ή συνδυασµό καρτών και ενός εξοµοιωτή. Ο PDM εµφανίζεται µόνο όταν µέσω του CCStudio Setup έχει οριστεί η ύπαρξη τουλάχιστον δύο καρτών ή µιας κάρτας και ενός εξοµοιωτή. Στο Σχήµ

ότι θα

Σχήµα 107. Το παράθυρο του Parallel Debug Manager Για την ταυτόχρονη διαχείριση των CPU που περιέχουν οι κάρτες, το CCS έχει την δυνατότητα να ανοίγει ένα Debug Window για κάθε µια CPU. Αυτό παρέχει την δυνατότητα στον χρήστη να προγραµµατίσει και να διαχειριστεί κάθε κάρτα ανεξάρτητα. Το LabVIEW to CCS Link µε τα subVIs της κατηγορίας Αυτοµατοποίηση του CCS

διαφ Boards & τα

πορούν να χρησιµοποιηθούν πολλές φορές VI µπορεί να χρησιµοποιεί δύο ή περισσότερες φορές το

ανοίξει περισσότερα από ένα Debug Windows. Θα πρέπει χρήστης

Window για το DSK C6711 (Board 0) και φορτώνει το project, του οποίου η διαδροµή

παρέ τητα στον χρήστη να ελέγχει διαφορετικά Debug Window εποµένως και χει την δυνατό

ορετικ σόδου τουές κάρτες. Το subVI CCS_Open_Project.vi σύµφωνα µε την τιµή της ει Processors”, καθορίζει ποια κάρτα και ποιον επεξεργαστή της θα διαχειριστούν“

subVIs που το ακολουθούν. Η είσοδος “Boards & Processors” είναι µια οµάδα εισόδων που αποτελείται από δύο εισόδους την “Board” και την Processor” που δέχονται ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits. Η είσοδος “Board” δηλώνει την κάρτα που θα ελεγχθεί και η είσοδος “Processor” δηλώνει τον επεξεργαστή της κάρτας που θα ελεγχθεί. Για να ανοίξει το Debug Window του DSK C6713 στην περίπτωση που ο PDM έχει την µορφή του χήµΣ ατος 107 θα πρέπει η είσοδος “Boards” να έχει την τιµή 1 και η είσοδος “Processor” να

έχει την τιµή 0. Εποµένως η έξοδος CCS_Out του CCS_Open_Project.vi θα περιείχε ένα σύνολο πληροφοριών που θα σχετίζονταν µε το Debug Window του DSK C6713, συνεπώς όποια subVIs θα συνδεθούν άµεσα ή έµµεσα µε αυτή την έξοδο θα αναφέρονται στο DSKC6713. Όµοια και η έξοδος “CCS_Event_Notif_Out” σύνολο πληροφοριών που σχετίζονται µε τα γεγονότα που συµβαίνουν στο Debug Window του DSK C6713.

Τα subVIs του LabVIEW to CCS Link µ µέσα σε ένα VI. Εποµένως έναCCS_Open_Project.vi µε σκοπό ναο , πριν συνδέσει κάποιο subVI µε µια έξοδο “CCS_Out” ή “CCS_Event_Notif_Out”, να προσέχει σε πιο Debug Window και κατά επέκταση σε ποια CPU αναφέρεται η συγκεκριµένη έξοδος. Στο Σχήµα 108 παρουσιάζεται το block diagram ενός VI που ελέγχει ταυτόχρονα δύο κάρτες. Οι κάρτες που θα διαχειριστεί το VI εξαρτάται από την µορφή που έχει ο PDM. Στην περίπτωση που ο PDΜ έχει την µορφή του Σχήµατος 107 το VI θα ελέγχει ταυτόχρονα τα DSK C6711 (Board 0) και C6713 (Board 1). Στο block diagram του Σχήµατος 108 το CCS_Open_Project.vi που δέχεται ως είσοδο την σταθερά “Project Path” ανοίγει το Debug

Page 126: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

122 3. Χρησιµοποιώντας του LabVIEW to CCS Link

ι η αυτοµατοποίηση και ο έλεγχος του CCS όταν χρησιµοποιείται µια κάρτα πως

φέρονται στο

καθορίζεται από την σταθερά “Project Path”. Τα VIs που το ακολουθούν βασίζονται στην λογική που γίνεταό παρουσιάστηκε στην παράγραφο 3.2.1. Το CCS_Open_Project.vi που δέχεται ως είσοδο την σταθερά “Project Path1”ανοίγει το Debug Window του DSK C6713 (Board 1) και φορτώνει το project του οποίου την διαδροµή περιγράφει η σταθερά “Project Path1” εποµένως τα VIs που το ακολουθούν αναDSK C6713.

του VI που ελέγχει δύο DSPs µέσω του CCS

, αποτελούν τµήµα του κυρίως κώδικα του VI που υτοµατοποιεί το CCS όπως παρουσιάστηκε στην παράγραφο 3.2. ∆ηλαδή τα subVIs της

µέσα στην δοµή While των επικοινωνία µε το CCS και τον DSP.

ο την εκτέλεση του προγράµµατος, για µεγάλα χρονικά διαστήµατα, ώστε να ολοκληρωθεί

η µεταφορά των δεδοµένων. Το µειονέκτηµα αυτής της µεθόδου είναι ότι απαιτείται η τροποποίηση του C κώδικα ενός project στο CCS που δεν υποστήριζε την µεταφορά

Σχήµα 108. Το block diagram Ακολουθώντας την λογική που παρουσιάστηκε παραπάνω µπορούν να δηµιουργηθούν εύκολα VIs που θα διαχειρίζονται ταυτόχρονα περισσότερες από µια κάρτες.

3.3 Επικοινωνία µε το CCS Για την ανταλλαγή δεδοµένων ενός VI και ενός DSP έχουν δηµιουργηθεί τα subVIs της κατηγορίας Επικοινωνία µε το CCS. Τα subVIs που ασχολούνται µε την επικοινωνία υποστηρίζουν την εγγραφή και ανάγνωση δεδοµένων στην µνήµη του DSP µε απευθείας προσπέλασή της και την ανταλλαγή δεδοµένων µε την αξιοποίηση της RTDX τεχνολογίας που υποστηρίζουν οι DSPs της TI. Τα subVIs που αναλαµβάνουν την επικοινωνία µε το CCS και κατά επέκταση µε τον DSPακατηγορίας Επικοινωνία µε το CCS συνήθως τοποθετούνταιχηµάτων 106 και 108 ώστε να διασφαλίζεται η συνεχήΣ

Η µεταφορά δεδοµένων µε απευθείας προσπέλαση της µνήµης του DSP έχει το πλεονέκτηµα ότι δεν απαιτεί την τροποποίηση του κώδικα ενός project στο CCS. Το µεγάλο µειονέκτηµα της µεταφοράς δεδοµένων µε απευθείας προσπέλαση της µνήµης είναι ότι ο DSP διακόπτει την εκτέλεση του προγράµµατος που εκτελεί, µέχρι να ολοκληρωθεί η µεταφορά των δεδοµένων. Το χρονικό διάστηµα της διακοπής της εκτέλεσης του προγράµµατος του DSP κατά την µεταφορά των δεδοµένων εξαρτάται από τον όγκο των δεδοµένων. Η TI µε την RTDX τεχνολογία που δηµιούργησε και που ενσωµάτωσε στους DSPs της ατάφερε να επιτύχει µεγαλύτερη ταχύτητα µεταφοράς δεδοµένων και να µην διακόπτεικ

DSP

Page 127: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 123 δεδοµένων µε την RTDX τεχνολογία. Η µεταφορά δεδοµένων µε την RTDX τεχνολογία είναι πολύ χρήσιµη στις εφαρµογές πραγµατικού χρόνου.

3.3.1 Απευθείας προσπέλαση της µνήµης του DSP Η µεταφορά δεδοµένων µε απευθείας προσπέλαση της µνήµης του DSP δίνει την δυνατότητα στον χρήστη να µπορεί να διαβάσει και να γράψει δεδοµένα σε οποιαδήποτε θέση µνήµης του DSP. Αυτό είναι πολύ σηµαντικό για τον έλεγχο µιας υπάρχουσας εφαρµογής αφού δεν απαιτεί την τροποποίηση του κώδικα της εφαρµογής στο CCS, η µοναδική απαίτηση που υπάρχει είναι οι µεταβλητές του project που περιέχουν τα προς µεταφορά δεδοµένα να είναι γενικές (global).

Ανάγνωση από την µνήµη του DSP Για να αναγνωστεί η τιµή µιας µεταβλητής τύπου double θα πρέπει να χρησιµοποιηθεί το MEM_Read.vi και να επιλεχτεί το MEM_Read_F8, στην είσοδο “Page & Address” θα πρέπει να δοθεί η σελ όπου θα ξεκινήσει η νάγνωση. Αν ο χρ αι αποθηκευµένη η εταβ

ίδα και η διεύθυνση στην µνήµη του DSP απόήστης δεν γνωρίζει την θέση µνήµης που είνα

µ λητή θα πρέπει να χρησιµοποιήσει το MEM_Get_Address.vi και να ορίσει στην είσοδο “Symbol Name” το όνοµα της µεταβλητής. Το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένη η µεταβλητή. Η έξοδος “Data” του MEM_Read.vi θα περιέχει την τιµή της µεταβλητής που θα αναγνωστεί. Στο Σχήµα 109(a) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να ετατ ιµ ραπεί ώστε να πραγµατοποιείτα η ανάγνωση της τιµής µιας µεταβλητής τύπου double

(αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 8 bytes) που βρίσκεται στην διεύθυνση 8000C1FD (hex) της σελίδας 0 της µνήµης του DSP

(a) (b) Σχήµα 109. Ανάγνωση µιας µεταβλητής

(a) γνωρίζοντας την σελίδα και τηντύπου double µε απευθείας προσπέλαση της µνήµης του DSP

διεύθυνση της, (b) γνωρίζοντας µόνο το όνοµα της

Στο Σχήµα 109(b) παρουσιάζεται η δοµ hile του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πρα αβλητής τύπου double

ή W

γµατοποιείται η ανάγνωση της τιµής µιας µετ

Page 128: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

124 3. Χρησιµοποιώντας του LabVIEW to CCS Link

µός κινητής υποδιαστολής διπλής ακρίβειας των 8 bytes) συµφωνά µε την διεύθυνση και την σελίδα, της µνήµης του DSP που εντοπίζει το MEM_Get_Address.vi χρησιµοποιώντας το όνοµα της µεταβλητής. Με την διαδικασία που αναφέρθηκε παραπάνω µπορεί να πραγµατοποιηθεί η ανάγνωση των δεδοµένων µιας µεταβλητής οποιουδήποτε τύπου. Για να αναγνωστεί κάποιος πίνακας ή µια σειρά αλφαριθµητικών χαρακτήρων από την µνήµη του DSP ακολουθείται η διαδικασία που παρουσιάστηκε παραπάνω µε την διαφορά ότι στην είσοδο “Size” του MEM_Read.vi θα πρέπει να δοθεί το πλήθος των στοιχείων του πίνακα ή το πλήθος των αλφαριθµητικών χαρακτήρων της σειράς.

Εγγραφή στην µνήµη του DSP Για να πραγµατοποιηθεί η εγγραφή δεδοµένων σε µια µεταβλητή τύπου integer (int) θα πρέπει να χρησιµοποιηθεί το MEM_Write.vi και να επιλεχτεί το MEM_Write_I4, στην είσοδο “Page & Address” θα πρέπει να δοθεί η σελίδα και η διεύθυνση στην µνήµη του DSP από όπου θα ξεκινήσει η εγγραφή. Αν ο χρήστης δεν γνωρίζει την θέση µνήµης που είναι αποθηκευµένη η µεταβλητή θα πρέπει να χρησιµοποιήσει το MEM_Get_ Address.vi και να ορίσει στην είσοδο “Symbol Name” το όνοµα της µεταβλητής. Το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένη η µεταβλητή. Η είσοδος “Data” του MEM_Write.vi περιέχει τα δεδοµένα που θα εγγραφούν στην µεταβλητή. Στο Σχήµα 110(a) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής “Data” σε µια µεταβλητή τύπου integer (ακέραιος αριθµός µε πρόσηµο των 4 bytes) που βρίσκεται στην διεύθυνση 8000FFE0 (hex) της σελίδας 0 της µνήµης του DSP. Στο Σχήµα 110(b) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής “Data” σε µια µεταβλητής τύπου integer (ακέραιος αριθµός µε πρόσηµο των 4 bytes) συµφωνά µε την διεύθυνση και την σελίδα της µνήµης του DSP που εντοπίζει το MEM_Get_Address.vi χρησιµοποιώντας το όνοµα της µεταβλητής.

(αριθ

(a) (b) Σχήµα 110. Εγγραφή µιας µεταβλητής τύπου integer µε απευθείας προσπέλαση της µνήµης του DSP

(a) γνωρίζοντας την σελίδα και την διεύθυνση της, (b) γνωρίζοντας µόνο το όνοµα της

Page 129: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 125

ία που αναφέρθηκε παραπάνω µπορεί να πραγµατοποιηθεί η εγγραφή οµ οποιουδήποτε τύπου ή σε κάποιο πίνακα ή σε µια σειρά

λφαριθµητικών χαρακτήρων που είναι αποθηκευµένη στην µνήµη του DSP.

TDX τεχνολογία επιτρέπει την µεταφορά δεδοµένων από και προς των DSP χωρίς την ιακοπή της εκτέλεσης του προγράµµατος του DSP για µεγάλα χρονικά διαστήµατα.

µένως στις εφαρµογές πραγµατικού χρόνου γίνεται απαραίτητη η χρήση της RTDX όγκου.

µε το CCS δίνεται η

Λήψη δεδοµένων µέσω ενός RTDX καναλιού.

Τα RTDX κανάλια που δηλώνονται στο CCS ορίζονται ως κανάλια εισόδου και

Με την διαδικασεδ ένων σε µια µεταβλητήδα

3.3.2 Χρήση της RTDX τεχνολογίας Η RTDX τεχνολογία που υποστηρίζουν οι DSPs της ΤΙ επιτυγχάνει την ταχύτερη µεταφορά των δεδοµένων σε σχέση µε την απευθείας προσπέλαση της µνήµης. Επίσης η RδΕποτεχνολογίας κυρίως για την µεταφορά δεοµένων µεγάλου

Με τα subVIs που ανήκουν στην κατηγορία Επικοινωνία δυνατότητα στον χρήστη να µεταφέρει δεδοµένα από και προς τον DSP αξιοποιώντας την RTDX τεχνολογία καθώς και να ελέγξει προγραµµατιστικά τα RTDX κανάλια. Στην συνέχεια θα παρουσιαστεί ο τρόπος που µπορούν να παραληφθούν και να αποσταλούν δεδοµένα µέσω των RTDX καναλιών ανεξάρτητα µε την µέθοδο (Continuous ή Non Continuous) της RTDX τεχνολογίας που χρησιµοποιείται.

κανάλια εξόδου. Τα κανάλια εισόδου µεταφέρουν δεδοµένα στον DSP ενώ τα κανάλια εξόδου µεταφέρουν δεδοµένα από τον DSP. Τα δεδοµένα ενός RTDX καναλιού εξόδου θα αναγνωστούν από το LabVIEW µε την χρήση του RTDX_Read.vi. Το RTDX_Read.vi είναι ένα πολυµορφικό VI το οποίο έχει την δυνατότητα να διαβάσει αριθµούς και πίνακες όλων των τύπων από το κανάλι εξόδου που περιγράφει η είσοδος “Channel”. Επειδή τα RTDX κανάλια δεν είναι αµφίδροµα θα πρέπει το κανάλι που περιγράφει η είσοδος “Channel” να έχει οριστεί στο CCS ως κανάλι εξόδου διαφορετικά θα προκύψει κάποιο σφάλµα.

Σχήµα 111. Ανάγνωση δεδοµένων από ένα RTDX κανάλι

Page 130: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

126 3. Χρησιµοποιώντας του LabVIEW to CCS Link

κτής που θα περιέχει το όνοµα του αναλιού εξόδου (δηλαδή Out_chan) που µεταφ

6 όπως θα πρέπει να ετατρ

γράψει µούς και πίνακες όλων των τύπων στο κανάλι εξόδου που περιγράφει η είσοδος

“Channel”. Επειδή τα RTDX κανάλια δεν είναι αµφίδροµα θα πρέπει το κανάλι που περιγράφει η είσοδος “Channel” να έχει οριστεί στο CCS ως κανάλι εξόδου διαφορετικά θα προκύψει κάποιο σφάλµα. Για να εγγραφεί ένας πίνακας µε στοιχεία τύπου unsigned short (ακέραιοι αριθµοί χωρίς πρόσηµο των 2 bytes) σε ένα κανάλι εισόδου µε όνοµα “In_chan” θα πρέπει να χρησιµοποιηθεί το RTDX_Write.vi και να επιλεχτεί RTDX_Write_SA_UI2. Στην είσοδο “Channel” θα πρέπει να συνδεθεί µια σταθερά ή ένας ελεγκτής που θα περιέχει το όνοµα του καναλιού εισόδου (δηλαδή In_chan) που θα µεταφέρει τον πίνακα. Στο Σχήµα 112 παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής “Data” στο RTDX κανάλι “In_chan”.

Για να αναγνωστεί ένας πίνακας µε στοιχεία τύπου float (αριθµοί κινητής υποδιαστολής µονής ακρίβειας των 4 bytes) από ένα κανάλι εξόδου µε όνοµα “Out_chan” θα πρέπει να χρησιµοποιηθεί το RTDX_Read.vi και να επιλεχτεί RTDX_Read_SA_F4. Στην είσοδο “Channel” θα πρέπει να συνδεθεί µια σταθερά ή ένας ελεγκ έρει τον πίνακα. Στο Σχήµα 111 παρουσιάζεται η δοµή While του Σχήµατος 10µ απεί ώστε να πραγµατοποιείται η ανάγνωση των δεδοµένων που περιέχει το RTDX κανάλι “Out_chan”.

Αποστολή δεδοµένων µέσω ενός RTDX καναλιού Τα RTDX κανάλια εισόδου µεταφέρουν δεδοµένα στον DSP. Με την χρήση του RTDX_Write.vi είναι εφικτή η εγγραφή δεδοµένων από το LabVIEW σε ένα RTDX κανάλι ο RTDX_Write.vi είναι ένα πολυµορφικό VI το οποίο έχει την δυνατότητα ναΤ

αριθ

Σχήµα 112.Εγγραφή δεδοµένων σε ένα RTDX κανάλι

Page 131: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 127 4. Εφαρµογές

ντίστοιχο VI, που έχει δηµιουργηθεί µε το abVIEW αξιοποιώντας τις δυνατότητες που προσφέρει το LabVIEW to CCS Link.

Στις παραγράφους που ακολουθούν θα γίνει µια γενική αναφορά στους γραφικούς ισοσταθµιστές και θα παρουσιαστεί συνοπτικά σχεδιασµός και η υλοποίηση ενός γραφικού ισοσταθµιστή τριών περιοχών µε το MATLAB και το CCS. Έµφαση θα δοθεί στην δηµιουργία του VI που θα µατα του γραφικού ισοσταθµιστή.

4.1.1 Γενικά για τους γραφικούς ισοσταθµ Η διαδικασία της ισοστάθµισης ενός σήµατος συνίσταται στην ενίσχυση και στην εξασθένιση ορισµένων περιοχών συχνοτήτων ου σήµατος. Η διαδικασία της ισοστάθµισης

πτώσεις που ορισµένες περιοχές συχνοτήτων που έχουν εξασθενίσει πες και πρέπει να ενισχυθούν (όπως συµβαίνει στην µετάδοση ενός

κουσ κ µ

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

οσταθµ τυγχά διαίρεση ε διάφορες περιοχές συχνοτή ιµοπ σύν βατά φίλτρα. Ένα

φίλτρο, τρέπει των συ υ βρίσ ρω τρική συχνότητα, αποκ ς υπόλοιπες . ,

Για την καλύτερη κατανόηση των δυνατοτήτων του LabVIEW to CCS Link θα παρουσιαστεί η ανάπτυξη δύο ολοκληρωµένων εφαρµογών, ενός γραφικού ισοσταθµιστή τριών περιοχών και µιας εφαρµογής ψηφιακής επεξεργασίας εικόνας. Οι εφαρµογές έχουν υλοποιηθεί µε το CCS και το DSKC6713. Ο έλεγχος και η ανάδειξη των αποτελεσµάτων κάθε εφαρµογής πραγµατοποιείται από το αL

4.1 Γραφικός ισοσταθµιστής τριών περιοχών

ο

ελέγχει και θα αναδεικνύει τα αποτελέσ

ιστές

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

Οι γραφικοί ισ ιστές επιτων χρησ

νουν την οιώντας ένα

του φάσµατοςολο από ζωνοδια

νός σήµατος σε

ιδανικό ζωνοδιαβατό επιενώ

τη διέλευσηόπτει πλήρως τι

χνοτήτων πο συχνότητες

κονται γύΣτην πράξηαπό µια κεν

Σχήµα 113. Απόκριση συχνότητας ζωνοδιαβατού φίλτρου

Page 132: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

128 4. Εφαρµογές

υσιάζεται στο Σχήµα 113. Ο αράγοντας Q κάθε φίλτρου ορίζεται ως ο λόγος της κεντρικής του συχνότητας ω0 προς το εύρος ζώνης του , ∆ω=ω -ω , και δίνεται από την σχέση:

δεν είναι δυνατόν να υλοποιηθεί ένα τέτοιο ιδανικό φίλτρο. Η απόκριση των φίλτρων που χρησιµοποιούνται σε ένα γραφικό ισοσταθµιστή παροπ

2 1

12

00

ωωω

ωω

−∆

Η έξοδος του ισοσταθµιστή είναι το άθροισµα των εξόδων των φίλτρων. Η νίσχυση ή η εξασθένιση κάθε περιοχής συχνοτήτων επιτυγχάνεται πολλαπλασιάζοντας την

τα κέρδους G (Gain). Στην περίπτωση που ο αράγοντας αυτός είναι µεγαλύτερος από τη µονάδα, η συγκεκριµένη περιοχή συχνοτήτων

του ισοσταθµιστή αλλά και από την υχνότητα δειγµατοληψίας του σήµατος (στην περίπτωση που αυτό είναι ψηφιακό).

==Q (1)

Ο παράγοντας Q δείχνει πόσο απότοµη είναι η απόκριση του φίλτρου. Χρησιµοποιώντας Ν ζωνοδιαβατά φίλτρα, το φάσµα των συχνοτήτων του σήµατος χωρίζεται σε Ν περιοχές. Τα φίλτρα αυτά είναι συνδεδεµένα παράλληλα, όπως φαίνεται στο Σχήµα 114. εέξοδο του αντίστοιχου φίλτρου µε έναν παράγονπενισχύεται, διαφορετικά (G<1) εξασθενεί. Η κεντρική συχνότητα κάθε φίλτρου αλλά και το πλήθος των φίλτρων, εξαρτάται από την εφαρµογή σ

Filter 1

Filter 2

Filter 3

Filter N

A/D D/A

Gain 3

Gain 2

Gain 1

Gain N

Gain 0

Σχήµα 114. Ψηφιακός ισοσταθµιστής Ν περιοχών διαδοχικών φίλτρων διαφέρουν κατά µια οκτάβα (το ένα τα από το άλλο). Για τα ακουστικά σήµατα (όπου χρ ποιούνται συνήθως δέκα φίλτρα (δ τητες ξεκινούν από τα 31 Hz και φ παρουσιάζονται οι αποκρίσεις των δέκα ζωνοδιαβατών φ ιστή. Τα φίλτρα αυτά είναι IIR φίλτρα 2ης τάξης. Όπως φ και από το Σχήµα 115, υπάρχει αλληλοεπικάλυψη στις αποκρίσεις των φίλτρων

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

Συνήθως οι κεντρικές συχνότητες δύο έχει διπλάσια κεντρική συχνότη

ησιµοποιούνται κατά κόρον οι ισοσταθµιστές) χρησιµον οι κεντρικές συχνόέκα περιοχές συχνοτήτων) των οποίω

115 τάνουν στα 16 kHz. Στο Σχήµαοσταθµίλτρων ενός τέτοιου ισ

αίνεται επειδή δεν είναι ιδανικά. Εποµένως, ότανόνλες οι υπόλοιπες συχνότητες. Η διαφορά είναι ότι οι σιάβασης) έχουν ήδη υποστεί µιαποτέλεσµα φαίνεται να ενισχύοντς µη ιδανικότητας τωπόκριση

Page 133: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 129

Σχήµα 115. Αποκρίσεις φίλτρων ισοσταθµιστή 10 περιοχών

Τα ζωνοδιαβατά φίλτρα ενός ισοσταθµιστή τ

συνήθως είναι IIR επειδή για την υλοποίησή ο ς απαιτούνται λιγότεροι συντελεστές σε σχέση µε τα αντίστοιχα FIR φίλτρα. Επιπλέον σ δή αποτελούνται από µόνο ένα biquad (Σχήµα 116), µε α πολλαπλασιασµοί και 2 αθροίσεις για κάθε φίλτρο. Η εξ

υυνήθως είναι δεύτερης τάξης, δηλαοτέλεσµα να απαιτούνται µόνο 5 πίσωση µεταφοράς ενός τέτοιου biquad είναι:

( ) 22

111 − −− zazai

22

110

−− ++=

zbzbbzH (2)

Η χει ως αποτέλεσµα την µείωση του χρόνου που απαιτείται δειγµάτων του σήµατος εξόδου από τον επεξεργαστή.

χρησιµοποίηση των IIR φίλτρων 2ης τάξης έ για την παραγωγή των

x(n)

z

z

b0

b1

b2-a2

-a1

y(n)

-1

-1

Σχήµα 116. Βαθµίδα 2ης τάξης (biquad)

Page 134: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

130 4. Εφαρµογές 4.1.2 Προδιαγραφές Ο γραφικός ισοσταθµιστή των τριών περιοχών που θα υλοποιηθεί στην συνέχεια αποτελείται από τρία IIR φίλτρα 2ης τάξης. Οι προδιαγραφές των τριών φίλτρων παρουσιάζονται στον Πίνακα 12.

Είδος φίλτρου Τάξη του φίλτρου

Μέθοδος σχεδιασµού

Συχνότητα δειγµατοληψίας Ζώνη διέλευσης

Βαθυπερατό (Low-Pass) Butterworth 2ης ∆ιγραµµικός

µετασχηµατισµός Fs = 48 kHz < 5.5 kHz

Υψηπερατό (High-Pass) Butterw

ης ∆ιγρα µικός kHz orth 2 µετασχηµατισµός Fs = 48 kHz 5.5 – 11 µ

Ζωνοδιαβατό (Band-Pass) Butterworth 2ης ∆ιγραµµικός

µετασχηµ ισµός Fs = 48 kHz > 11 kHz ατ

Πίνακας 1 περιοχών

την σύνθεση τριών ηµιτόνων µε συχνότητες 200Hz, 7kHz και 14kHz ντίστοιχα. Το υποθετικό σήµα θα χρησιµοποιηθεί για τον έλεγχο του ισοσταθµιστή µε το

τελεσµάτων µε αυτά που θα προκύψουν από την λοποίηση του ισοσταθµιστή µε το CCS.

χος του γραφικού ισοσταθµιστή µε το MATLAB

Η σχεδίαση του ισοσταθµιστή µε το MATLAB περιλαµβάνει κυρίως τον υπολογισµό τω εστών των φίλτρων σύµφωνα µε τις προδιαγραφές που έχουν δοθεί. Ο έλεγχος του ισ τή θα πραγµατοποιηθεί µε ένα υποθετικό σήµα που θα δηµιουργηθεί στο MATLAB.

Υπολογισµός των συντελεστών των φίλτρων. ον υπολογισµό των συντελεστών των IIR φίλτρων που περιλαµβάνει ο ισ µιουργηθεί το παρακάτω m-file.

2. Οι προδιαγραφές του γραφικού ισοσταθµιστή των τριών Ο γραφικός ισοσταθµιστής θα δέχεται ένα υποθετικό σήµα που θα δηµιουργηθεί µε το MATLAB απόαMATLAB και την σύγκριση των απου Ο έλεγχος του ισοσταθµιστή που θα υλοποιηθεί µε το CCS για το DSKC6713, θα γίνεται µέσω ενός VI που θα δηµιουργηθεί µε το LabVIEW αξιοποιώντας τις δυνατότητες του LabVIEW to CCS Link. Η επικοινωνία του VI µε το CCS και το DSKC6713 θα πραγµατοποιηθεί κάνοντας χρήση της RTDX τεχνολογίας.

4.1.3 Σχεδίαση και έλεγ

ν συντελοσταθµισ

Για τοσταθµιστής έχει δη

clear all; close all; n=1; %Ο αριθµός των Biquads για κάθε ένα φίλτρο fs = 48000; %Συχνότητα δειγµατοληψίας %Αρχικοποίηση του πίνακα των συντελεστών scoefs = zeros(3*n,6);

Page 135: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 131

%Όρια αξόνων nxmin = 10; nxmax = fs/2; nymin = -50; %log scale nymax = 10; %log scale %Υπολογισµός και αναπαράσταση του βαθυπερατού φίλτρου [b,a]=butter(2*n,2*5500/fs); scoefs(1:n,:)= tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); figure semilogx(20*log10(abs(h))) axis([nxmin nxmax nymin nymax]) %Υπολογισµός και αναπαράσταση του ζωνοδιαβατού φίλτρου [b,a]=butter(n,[2*5500/fs 2*11000/fs]); scoefs((n+1):2*n,:) = tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); hold on

semilogx(20*log10(abs(h))) %Υπολογισµός και αναπαράσταση του υψηπερατού φίλτρου [b,a]=butter(2*n,2*11000/fs,'high'); scoefs((2*n+1):3*n,:) = tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); hold on

); title('frequency response (dB)') semilogx(20*log10(abs(h)) coefs(:,1) = -scoefs(:,5); % -a1 coefs(:,2) = -scoefs(:,6); % -a2 coefs(:,3) = scoefs(:,1); % b0 coefs(:,4) = scoefs(:,2); % b1 coefs(:,5) = scoefs(:,3); % b2 %Αποθήκευση των συντελεστών των φίλτρων σε ένα .cof αρχείο save_equ_coefs(coefs,n);

µµα 1. To m-file που υπολογίζει τους συντελεστές των IIR φίλτρων του ισοσταθµιστή

Στο παραπάνω m-file καλείται η συνάρτηση save_equ_coefs() η οποία αποθηκεύει τους συντελεστές των φίλτρων σε εί ο χρήστης. Στην συνέχεια αρουσιάζεται η συνάρτηση save_equ_coefs().

Πρόγρα

ένα .cof αρχείο µε όνοµα που επιθυµπ

function save_equ_coefs(coefs,SOS); [filename,pathname,filterindex]=uiputfile('*.cof','Save the equalizer cofficients'); if (filterindex ~= 0 ) fid=fopen([pathname,filename],'w'); fprintf(fid,'/* Equalizer coefficients in float format */\r\n'); fprintf(fid,'\r\n#define sections %d \r\n',SOS);

Page 136: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

132 4. Εφαρµογές

for i=1:1:size(coefs,1)/SOS fprintf(fid,'\r\nfloat coefs%d[%d] = \r\n',i-1,5*SOS); fprintf(fid,'{\r\n'); for j=1:1:SOS fprintf(fid,'\t%6d\t,\t%6d\t,\t%6d\t,\t%6d\t,\t%6d,\t\r\n',... coefs((i-1)*SOS+j,1),coefs((i-1)*SOS+j,2),coefs((i-1)*SOS+j,3),... coefs((i-1)*SOS+j,4),coefs((i-1)*SOS+j,5)); end fprintf(fid,'};\r\n'); end fclose(fid); end

Πρόγραµµα 2. Η συνάρτηση save_equ_coefs()

θυρο ιαλόγου που θα ζητήσει το όνοµα του αρχείου που θα δηµιουργήσει και θα περιέχει τους

Όταν εκτελεστεί το παραπάνω m-file (Πρόγραµµα 1) θα εµφανιστεί ένα παράδσυντελεστές των φίλτρων. Αν στο αρχείο των συντελεστών των φίλτρων του ισοσταθµιστή δοθεί το όνοµα equalizer.cof. θα πάρει την µορφή του Σχήµατος 117. Επίσης το m-file θα σχεδιάσει την απόκριση των φίλτρων του ισοσταθµιστή (Σχήµα 118).

Σχήµα 117. Το αρχείο των συντελεστών των φίλτρων του ισοσταθµιστή µε όνοµα equalizer.cof

Σχήµα 118. Η απόκριση των φίλτρων του ισοσταθµιστή

Page 137: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 133 α του ισοσταθµιστή πληρούν τις προδιαγραφές.

∆ ετικού σήµατος της λειτουργίας του ισοσταθµιστή θα χρησιµοποιηθεί ένα υποθετικό σ µίτονα µε συχνότητες 200Hz, 7kHz και 14kHz α ητα δειγµατοληψίας του υποθετικού σήµατος θα είναι 48kHz. Το m-file π ι στην συνέχεια δηµιουργεί το υποθετικό σήµα, αναπαριστά το σήµα, υπολογίζει σηµείων του σήµατος. Τέλος αποθηκεύει σε ένα α σήµατος για να χρησιµοποιηθεί για τον έλεγχο του ισ

Από το Σχήµα 118 συµπεραίνεται ότι τα φίλτρ

ηµιουργία του υποθ

Για τον έλεγχοήµα που θα αποτελείται από τρία ηντίστοιχα. Η συχνότου παρουσιάζετα

και αναπαριστά τον FFT 512 ρχείο µε επέκταση .h, 512 σηµεία του οσταθµιστή µε το CCS.

close all; clear all; f1=200; f2=7000; f3=14000; %Οι συχνότητες των ηµιτόνων fs = 48000; %Συχνότητα δειγµατοληψίας %∆ηµιουργία του υποθετικού σήµατος t = 0:1/fs:1; x1 = sin(2*pi*t*f1); x2 = sin(2*pi*t*f2); x3 = sin(2*pi*t*f3); xtot = (x1 + x2 +x3)/3; xs = xtot(1:512); xq = round(xs*(2^15-1)); %Αναπαράσταση του σήµατος figure(1) plot(xq) axis([0 512 -inf inf]) %Υπολογισµός και αναπαράσταση του FFT y = abs(fft(xq)); figure(2) plot(y) axis([0 512 -inf inf]) %Αποθήκευση του σήµατος save_signal(xq)

Πρόγραµµα 3. Το m-file που δηµιουργεί το υποθετικό σήµα

Για την αποθήκευση των 512 σηµείων του υποθετικού σήµατος στο αρχείο .h µε όνοµα που επιλέγει ο χρήστης από το παράθυρο διαλόγου που θα εµφανιστεί ησιµοποιείται η συνάρτηση save_signal() ιάζεται στην συνέχεια (Πρόγραµµα 4).

χρ. Η συνάρτηση save_signal() παρουσ

Page 138: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

134 4. Εφαρµογές

function save_signal(data); [filename,pathname,filterindex]=uiputfile('*.h','Save the signal'); if (filterindex ~= 0 ) fid=fopen([pathname,filename],'w'); signal_size = length(data); fprintf(fid,'/* Signal data*/\r\n'); fprin ,sitf(fid,'\r\nshort signal[%d] = \r\n' gnal_size); fprintf(fid,'{\r\n'); for i=1:(signal_size) fprintf(fid,'\t%6d,\r\n', data(i)); end fprintf(fid,'};\r\n'); fclose(fid); end

Πρόγραµµα 4. Η συνάρτηση save_signal()

Όταν εκτελεστεί το παραπάνω m-file (Πρόγραµµα 3) θα εµφανιστεί ένα παράθυρο δ ει το µα τ περιέχει τα 512 σ σήµατος. Αν ί το όνοµα signal_200_7k_14k.h. θ πάρει την µορφή του Σχήµατος 119.

ιαλόγου που θα ζητήσ όνο ου αρχείου που θα δηµιουργήσει και θαηµεία του υποθετικού σε αυτό το αρχείο δοθεα

119. Το αρχείο signal_200_7k_14k.h που περιέχει τα 512 σηµεία του υποθετικού σήµατος Τ ου θα δηµιουργήσει το m-file παρουσιάζεται στο Σχήµα 120. Ο FFT 512 σ σήµατος παρουσιάζεται στο Σχήµα 121 από το οποίο διαπιστώνεται ό ρά συχνότητες (200Hz, 7kHz και 1 z)

Σχήµα

ο υποθετικό σήµα πν του υποθετικούηµείω

τι π γµατι το σήµα που δηµιουργήθηκε περιέχει τρεις4kH

Page 139: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 135

0. Το υποθετικό σήµα

Σχήµα 12

Σχήµα 121. Ο FFT 512 σηµείων του υποθετικού σήµατος

Α α του ισοσταθµιστή µε το MATLAB Το m-file που παρουσιάζεται παρακάτω υπολογίζει και αναπαριστά την έξοδο κάθε φ ο µα του Σχήµατος 120.

ποτελέσµατ

ίλτρ υ του ισοσταθµιστή όταν ως είσοδο δοθεί το σή

close all; clear all; f1=200; f2=7000; f3=14000; %Οι συχνότητες των ηµιτόνων fs= 00 ; %Συχνότητα δειγµατοληψίας 48 0 %∆ηµιουργία του υποθετικού σήµατος t = 0:1/fs:10; x1 = sin(2*pi*t*f1); x2 = in(2 s *pi*t*f2); x3 = in(2 s *pi*t*f3); xtot = round(((x1 + x2 +x3)/3)*(2^15-1)); xs = xtot(1:(10*fs)); xs1= xtot(1:512); %Φιλτράρισµα µε το βαθυπερατό φίλτρο [b,a]=butter(2,2*5500/fs); y1=filter(b,a,xs1); figure; plot(y1);

Page 140: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

136 4. Εφαρµογές

%Φιλτράρισµα µε το ζωνοδιαβατό φίλτρο [b,a]=butter(1,[2*5500/fs 2*11000/fs]); y2=filter(b,a,xs1); figure; plot(y2); %Φιλτράρισµα µε το υψηπερατό φίλτρο [b,a]=butter(2,2*11000/fs,'high'); y3=filter(b,a,xs1); figure; plot(y3);

Πρόγραµµα 5. Το m-file που υπολογίζει την έξοδο των φίλτρων

Οι έξοδοι των φίλτρων του ισοσταθµιστή παρουσιάζονται στα Σχήµατα 122, 123 και 124 αντιστοιχούν στην έξοδο του ισοσταθµιστή όταν η ενίσχυση της περιοχής συχνοτήτων του κάθε φίλτρου είναι 1 ενώ η ενίσχυση των υπόλοιπων περιοχών είναι 0

Σχήµα 122. Η έξοδος του βαθυπερατού φίλτρου

Σχήµα 123. Η έξοδος του ζωνοδιαβατού φίλτρου

Σχήµα 124. Η έξοδος του υψηπερατού φίλτρου

Page 141: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 137 .1.4 Υλοποίηση του γραφικού ισοσταθµιστή µε το CCS

C6713 θα δέχεται ς είσοδο το υποθετικό σήµα που δηµιουργήθηκε στην παράγραφο 4.1.3. Το υποθετικό σήµα ρησ

ί ον γραφικό ισοσταθµιστή των τριών περιοχών.

4 Ο γραφικός ισοσταθµιστής που θα υλοποιηθεί µε το CCS για το DSKωχ ιµοποιείται για να είναι εφικτή η σύγκριση των αποτελεσµάτων του ισοσταθµιστή µε αυτά που προέκυψαν από το MATLAB ώστε για να αποδειχτεί η ορθή λειτουργία του. Επίσης µε την χρήση του υποθετικού σήµατος γίνεται πιο κατανοητή η λειτουργία του ισοσταθµιστή στον χρήστη – φοιτητή. Στην συνέχεια παρουσιάζεται ο C κώδικας του αρχείου sim_equ3_rtdx.c που υλοποιετ

// Includes #include <rtdx.h> // Defines RTDX target API calls #include "target.h" // Defines TARGET_INITIALIZE() #include "equalizer.cof" // Filters coefficients #include "signal_200_7k_14k.h" // Input signal // Defines #define sgain 32768 // Compensates for the out sample shifting #define S 512 // Length of input signal // Global variables float f0_dly[2*sections] = {0.0}; // 1st filter delay line float f1_dly[2*sections] = {0.0}; // 2nd filter delay line float f2_dly[2*sections] = {0.0}; // 3rd filter delay line short gains[3] = {0, 0, 0}; int fsignal[S]; // Functions float iir_cas5(float input, float *c, float *d, int n) { float k0; float temp; int i; temp = input; for (i=0; i<n; i++) { k0 = temp + c[5*i+1]*(d[2*i+1]) + c[5*i+0]*(d[2*i+0]); temp = c[5*i+4]*(d[2*i+1]) + c[5*i+3]*(d[2*i+0]) + (c[5*i+2]*k0); d[2*i+1] = d[2*i+0]; d[2*i+0] = k0; } return temp*sgain;

Page 142: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

138 4. Εφαρµογές

} //Defines RTDX channels RTDX_CreateOutputChannel( signal_chan ); RTDX_CreateOutputChannel( fsignal_chan ); RTDX_CreateInputChannel( gains_chan ); // Main void main() { float input_sample; int j; int data_out[3]; int data_sum; TARGET_INITIALIZE(); RTDX_enableInput(&gains_chan); RTDX_enableOutput(&fsignal_chan); RTDX_enableOutput(&signal_chan); fsignal[0]=0; while(1) { RTDX_read( &gains_chan, gains, sizeof(gains)); for (j=1; j<S; j++) { input_sample = (float)(signal[j]/10); data_out[0] = (int)(gains[0]*iir_cas5(input_sample, coefs0, f0_dly, sections)); data_out[1] = (int)(gains[1]*iir_cas5(input_sample, coefs1, f1_dly, sections)); data_out[2] = (int)(gains[2]*iir_cas5(input_sample, coefs2, f2_dly, sections)); data_sum = data_out[0] + data_out[1] + data_out[2]; fsignal[j] =(int)(((data_sum)>>15)); } RTDX_write( &signal_chan, signal, sizeof(signal) ); RTDX_write( &fsignal_chan, fsignal, sizeof(fsignal) ); } }

Πρόγραµµα 5. Ο C κώδικας του αρχείου sim_equ3_rtdx.c

Στο πρόγραµµα 5 αρχικά συµπεριλαµβάνονται τα αρχεία rtdx.h , target.h, equalizer.cofκαι signal_200_7k_ συναρτήσεων που χετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της

14k.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των

σ

Page 143: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 139

ν η

ποιώντας την

συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο equalizer.cof περιέχει τους συντελεστές των φίλτρων του ισοσταθµιστή όπως υπολογίστηκαν από το MATLAB. Το αρχείο signal_200_7k_14k.h δηµιουργήθηκε µε το MATLAB και περιέχει το σήµα των τριών συχνοτήτων που θα χρησιµοποιηθεί ως είσοδος του ισοσταθµιστή. Πριν από την δήλωση της συνάρτησης main() ορίζονται τα RTDX κανάλια που θα µεταφέρουν πληροφορία από και προς τον DSP. Το κανάλι “gains_chan” µεταφέρει στον DSP έ α πίνακα τριών αριθµών που εκφράζει τ ν ενίσχυση κάθε περιοχής συχνοτήτων. Τα κανάλια “fsignal_chan” και “signal_chan” µεταφέρουν στο VI που θα ελέγχει τον DSP το σήµα εξόδου και το σήµα εισόδου του ισοσταθµιστή. Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP, η ενεργοποίηση της RTDX τεχνολογίας και η ενεργοποίηση των RTDX καναλιών. Μέσα στην δοµή while αφού αναγνωστεί το περιεχόµενο του καναλιού “gains_chan” υπολογίζεται για κάθε δείγµα του σήµατος εισόδου η έξοδος των φίλτρων του ισοσταθµιστή µε την κλήση της συνάρτησης iir_cas5(). Οι έξοδοι των φίλτρων αφού ενισχυθούν κατάλληλα προστίθενται ώστε να υπολογιστεί το αντίστοιχο δείγµα του σήµατος εξόδου του ισοσταθµιστή. Εφόσον υπολογιστούν 512 δείγµατα του σήµατος εξόδου γίνεται η εγγραφή των 512 δειγµάτων του σήµατος εξόδου και εισόδου στα αντίστοιχα RTDX κανάλια. Το project που θα δηµιουργηθεί για την υλοποίηση του ισοσταθµιστή µε το CCS εκτός από το αρχείο sim_equ3_rtdx.c που παρουσιάστηκε παραπάνω πρέπει να περιέχει και τα αρχεία intvecs.asm, rtdx_buf.c και rtdx.cmd. Στο αρχείο rtdx_buf.c ορίζεται το µέγεθος του buffer που θα χρησιµοποιήσει ο DSP για την µεταφορά των δεδοµένων αξιοRTDX τεχνολογία. Στην συγκεκριµένη περίπτωση το µέγεθος αυτού του buffer θα πρέπει να είναι µεγαλύτερο από 512*4 + 8 =2056 bytes. Τα αρχεία intvecs.asm, rtdx_buf.c και rtdx.cmd έχουν δηµιουργηθεί από την TI και περιλαµβάνονται στο CCS. Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Στο Σχήµα 125 παρουσιάζεται το View Window του project στο CCS.

Σχήµα 125. Το View Window του CCS για το project του ισοσταθµιστή

Page 144: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

140 4. Εφαρµογές

ί έχει υλοποιηθεί ένα VI µε όνοµα

4.1.5 Υλοποίηση ενός VI για τον έλεγχο του γραφικού ισοσταθµιστή Για τον έλεγχο του γραφικού ισοσταθµιστεEqualizer.vi. Αυτό το VI αυτόµατα ρυθµίζει ελέγχει και επικοινωνεί µε το CCS µε αποτέλεσµα να παρέχει την δυνατότητα στον χρήστη να µεταβάλλει την ενίσχυση κάθε περιοχής συχνοτήτων χωρίς να διακόπτεται η λειτουργία του ισοσταθµιστή. Επίσης ο χρήστης µπορεί ανά πάσα στιγµή να παρατηρεί την είσοδο και την έξοδο του ισοσταθµιστή.

Το front panel του Equalizer.vi Στο Σχήµα 126 παρουσιάζεται το front panel του Equalizer.vi που ελέγχει τον ισοσταθµιστή.

Σχήµα 126. Το front panel του Equalizer.vi που ελέγχει τον γραφικό ισοσταθµιστή

ront panel lizer.vi υπάρχουν τρεις sliders µε ο “Low_pass”, Ba χής υχνοτήτων. Ακριβώς κάτω από τους sliders έχει τοποθετηθεί ένας πίνακας µε τρία στοιχεία ου ο

Στο f του Equa νόµατα “ nd_pass” και “High_pass” που καθορίζουν την ενίσχυση της αντίστοιχης περιοσπ νοµάζεται “gains”. Κάθε στοιχείο του πίνακα “gains” αντιστοιχεί στην τιµή ενός slider. Κάτω από κάθε slider έχει τοποθετηθεί ένα Radio Button που όταν επιλεχθεί θα µηδενίζει την τιµή του αντίστοιχου slider και θα τον απενεργοποιεί Τα ονόµατα των Radio Buttons είναι “Low_pass_mute”, “Band_pass_mute” και “High_pass_mute”. Το κουµπί “Stop” όταν πατηθεί τερµατίζει την λειτουργία του VI. Ο ενδείκτης (indicator) “Build Result” δείχνει το αποτέλεσµα του κτισίµατος του project στο CCS. Ο ενδείκτης “Input_signal” απεικονίζει το ήµασ εισόδου του ισοσταθµιστή, ο ενδείκτης “Output_signal” απεικονίζει το σήµα εξόδου του ισοσταθµιστή. Ο ενδείκτης “Output & Input signals” απεικονίζει ταυτόχρονα το σήµα εισόδου (µε πράσινο χρώµα) και το σήµα εξόδου (µε κόκκινο χρώµα).

Page 145: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 141 ο bΤ lock diagram του Equalizer.vi

Tο block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 127 έχει χωριστεί σε τέσσερις φάσεις ώστε να γίνει περισσότερο κατανοητή η λειτουργία του.

Σχήµα 127. Το block diagram του Equalizer.vi Στην πρώτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 128 γίνεται η ρύθµι η του CCS ώστε να χρησιµοποιηθεί το DSKC6713.

σ

Σχήµα 128. Η πρώτη φάση του block diagram του Equalizer.vi To subVI CCS_ Setup_Open.vi φορτώνει το CCStudio Setup χωρίς να γίνεται ορατό στον χρήστη επειδή στην είσοδο Visible του subVI έχει συνδεθεί µια Boolean σταθερά µε τιµή False. To CCS_Setup_ Clear.vi σβήνει τις προηγούµενες ρυθµίσεις του CCStudio Setup. Το CCS_Setup_Add_ Board.vi φορτώνει στο CCStudio Setup τους οδηγούς του DSKC6713 σύµφωνα µε την διαδροµή που δηλώνει η σταθερά “Path” αφού συνδέεται µε την είσοδο “Driver Path” του subVI. Το CCS_Setup_Save.vi αποθηκεύει τις ρυθµίσεις που επιλέχτηκαν και το CCS_ Setup_Close.vi κλείνει το CCStudio Setup.vi. Στο σηµείο αυτό έχει ολοκληρωθεί η πρώτη φάση του block diagram του Equalizer.vi. Εποµένως µε την

Στην δεύτερη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 129 αυτοµατοποιούνται οι ενέργειες που πρέπε να γίνουν ώστε το DSKC6713 να ξεκινήσει την εκτέλεση του πρ

ολοκλήρωση της πρώτης φάσης το CCS έχει ρυθµιστεί για την χρησιµοποίηση του DSKC6713.

ι ογράµµατος (δηλαδή του ισοσταθµιστή).

Page 146: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

142 4. Εφαρµογές

Σχήµα 129. Η δεύτερη φάση του block diagram του Equalizer.vi Το Equalizer.vi πρέπει να έχει αποθηκευτεί στο φάκελο που έχει αποθηκευτεί το project του CCS (αρχείο µε επέκταση .pjt) ώστε να υπολογιστεί σωστά η διαδροµή του project. Η διαδροµή του project υπολογίζεται σε σχέση µε την διαδροµή που έχει αποθηκευτεί το

ualizer.vi. Το Current VI’s Path.vi εξάγει την διαδροµή του Equalizer.vi που δίνεται ως είσοδος στο Strip Path.vi. Η έξοδος “stripped path” του Strip Path.vi περιέχει την διαδροµή που δόθηκε ως είσοδος χωρίς το τελευταίο µέρος της. ∆ηλαδή αν η διαδροµή του Equalizer.vi ήταν C:\dsp_applications\DSKC6713\ sim_equ3_rtdx\Equalizer.vi τότε η έξοδος “striped path” του Strip Path.vi θα περιείχε την διαδροµή C:\dsp_applications\DSKC6713\ sim_equ3_rtdx. Η έξοδος “striped path” του Strip Path.vi συνδέεται µε την είσοδο “Base Path” του Build Path .vi. Στην είσοδο “name or relative path” του Build path .vi συνδέεται η string σταθερά “project name” που περιέχει το όνοµα του project στο CCS δηλαδή το sim_equ3_rtdx.pjt. Το Build Path.vi στην έξοδο “appended path” εξάγει µια νέα διαδροµή η οποία αποτελείται από το περιεχόµενο της εισόδου “Base Path” και το περιεχόµενο της εισόδου “name or relative path”. Αν το περιεχόµενο της εισόδου “Base Path” είναι C:\dsp_applications\DSKC6713\ sim_equ3_rtdx τότε το περιεχόµενο της εξόδου “appended path” θα είναι το C:\dsp_applications\DSKC6713\ sim_equ3_rtdx\ sim_equ3_rtdx.pjt. Η έξοδος “appended path” του Build Path.vi µετατρέπεται σε string χρησιµοποιώντας το Path to String.vi. Η έξοδος του Path to String.vi συνδέεται µε την είσοδο “Project Path IN” του CCS_Open_Project.vi. Με τον τρόπο αυτό το CCS_Open_Project.vi παίρνει την είσοδο του project του CCS εφόσον το Equalizer.vi έχει αποθηκευτεί στον ίδιο φάκελο µε το project του CCS. Αυτή η τακτική ακολουθείται σε VIs που χρησιµοποιούν διαδροµές ρχείων ώστε να µπορούν να µεταφέρονται σε .

Το CCS_Open.vi φορτ ject.vi φορτώνει το project ου

ο

ίσει το project που φορτώθηκε ώστε να δ ιουργήσει το εκτελέσιµο αρχείο (αρχείο µε επέκταση .out). Όταν ολοκληρωθεί το κτίσιµο του project το CCS_Build_Result.vi εξάγει αποτέλεσµα του κτισίµατος στον ενδείκτη

lt”. Εφόσον ν προκύψει λάθη κατά το κτίσιµο το CCS_Download.vi δίνει εντολή στο κάνει ρήση της µίζει της αρα

“Num Of Buffers” καθορίζει το θος των host buffers που θα είναι 4 και η σταθερά “Mode” καθορίζει την RTDX µέθοδο

Eq

α διαφορετικούς υπολογιστές χωρίς τροποποιήσειςώνει το CCS και το CCS_Open_Pro

τ CCS σύµφωνα µε την διαδροµή που περιέχει η είσοδός “Project Path In”. ΤοCCS_Connect.vi δίνει εντολή στο CCS να συνδεθεί µε την κάρτα δηλαδή µε το DSKC6713.Το CCS_DSP_Reset.vi δίνει εντολή να επανέλθει η κάρτα στις αρχικές τις ρυθµίσεις. Τ

CS_Build.vi δίνει εντολή στο CCS να κτCηµ

το“Build Resu δεν έχου

CCS να φορτώσει τον εκτελέσιµ κώδικα στον DSP. Επειδή το project RTDX τεχνολογίας χρησιµοποιείται το CCS_RTDX_Enable.vi που ρυθ

οχπ µέτρους της και την ενεργοποιεί. Η οµάδα σταθερών “RTDX Settings” που συνδέεται µε την αντίστοιχη είσοδο του CCS_RTDX_Enable.vi και περιέχει τις ρυθµίσεις που σχετίζονται µε την RTDX τεχνολογία. Η σταθερά “Buffer Size” καθορίζει το µέγεθος του host buffer που

χρησιµοποιηθεί και θα είναι 2056 bytes, η σταθεράθαπλή

Page 147: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 143 που θα χρησιµοποιηθεί και θα είναι η Non Continuous. Τέλος η δεύτερη φάση του block diagram ολοκληρώνεται µε το CCS_Run.vi το οποίο µέσω του CCS, δίνει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. Η τρίτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 130 αποτελεί τον κυρίως κώδικα του VI. Η τρίτη φάση στην πραγµατικότητα είναι το περιεχόµενο της δοµής While που επιτρέπει την συνεχή επικοινωνία του VI µε τον DSP µέχρι να προκύψεικάποιο σφάλµα ή να πιέσει ο χρήστης το κουµ “Stop”.

πί

Σχήµα 130. Η τρίτη φάση του b k diagram του Equalizer.vi Τα τερµατικά εικον _pass”, “Band_pass” και High_pass” συνδέονται στο Build Array.vi που δηµιουργεί ένα πίνακα (πίνακας των sliders) ε τρ

Τα Radio Buttons “Low_pass_mute”, “Band_pass_mute” και “High_pass_mute” όταν έχουν τιµή True (δηλαδή έχουν επιλεχθεί στο front panel από τον χρήστη) θα πρέπει να προκαλούν τον µηδενισµό της τιµής του αντίστοιχου slider στον πίνακα των sliders και την απενεργοποίηση του αντίστοιχου slider. Όταν τα Radio Buttons έχουν τιµή False (δεν έχουν επιλεχθεί) δεν πρέπει να προκαλούν την αλλαγή της τιµής του αντίστοιχου slider στον πίνακα των sliders ενώ πρέπει να προκαλούν την ενεργοποίηση του αντίστοιχου slider αν είναι απενεργοποιηµένος. Επειδή η λειτουργία των Radio Buttons είναι ίδια θα αναλυθεί ηλειτουργία του Radio Button “Low_pass_mute”.

loc

ίδια (terminals) των sliders “Low“µ ία στοιχεία. Το πρώτο στοιχείο του πίνακα περιέχει την τιµή του slider “Low_pass”, το δεύτερο στοιχείο του πίνακα περιέχει την τιµή του slider “Band_pass” και το τρίτο στοιχείο του πίνακα περιέχει την τιµή του slider “High_pass”.

Page 148: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

144 4. Εφαρµογές

ow_pass_mu έεται µε την είσοδο ελέγχου της αντίσ οµής Case που παρουσιάζεται στο rue (δηλαδή έχει επιλεχτεί από τον της δοµής Case την οποία το πρώτο στοιχείο του πίνακα των sliders που αντιστοιχεί στον slider “Low_pass” α πά

νεται η

Το “L te” συνδ τοιχης δ Σχήµα 131. Όταν η τιµή του “Low_pass_mute” είναι Tχρήστ η True ης στο front panel) θα εκτελεστεί η περίπτωσ

σθ ρει την τιµή 0 και η ιδιότητα “Disabled” του slider θα πάρει την τιµή 2. Η τιµή του στοιχείου του πίνακα των sliders αλλάζει µε την χρησιµοποίηση του Replace Array Subset.vi. Όταν η τιµή του “Low_pass_mute” είναι False (δηλαδή δεν έχει επιλεχτεί) θα εκτελεστεί ηπερίπτωση False της δοµής Case στην οποία o πίνακας των sliders δεν επηρεάζεται και η ιδιότητα “Disabled” του slider “Low_pass” θα πάρει την τιµή 0. Η ιδιότητα “Disabled” των sliders καθορίζει αν θα ενεργοποιηθεί ή αν θα απενεργοποιηθεί ο αντίστοιχος slider. Αν η ιδιότητα “Disabled” πάρει την τιµή 0 θα ενεργοποιηθεί ο αντίστοιχος slider ενώ αν πάρει την τιµή 2 θα απενεργοποιηθεί και θα γίνει γκρίζος. Με αυτόν τον τρόπο επιτυγχάλειτουργία του Radio Button “Low_pass_mute” µε τον ίδιο τρόπο επιτυγχάνεται και η λειτουργία των υπόλοιπων Radio Buttons.

(a) (b)

Σχήµα 131. ∆οµή case που ελέγχεται από το Low_pass_mute (a) περίπτωση True (b) περίπτωση False Ο ενδείκτης “gains” αναπαριστά τον πίνακα των sliders έχοντας ληφθεί υπόψη οι τιµές των Radio Butto s. Ο πίνακας των sliders αφού πολλαπλασιαστεί µε την σταθερά δέκα ρησ

n

ούν την ενίσχυση κάθε περιοχής συχνοτήτων του ισοσταθµιστή. Η µεταφορά των δεδοµένων από το VI στον DSP και αντίστροφα πραγµατοποιείται

Flat Sequence δοµή. Στο πρώτο Frame της δοµής έχει τοποθετηθεί το RTDX_Write.vi π πει την αποστολή πινάκων που ελο Στην είσοδο “Data” του

TDX

χ ιµοποιώντας το Multiply.vi µετατρέπεται σε πίνακα µε στοιχεία που είναι ακέραιοι αριθµοί µε πρόσηµο των 2 bytes (16 bits) χρησιµοποιώντας το To Word Integer.vi. Η έξοδος του To Word Integer.vi πλέον περιέχει τα δεδοµένα που θα µεταφερθούν στον DSP και ναπαριστα

στηνστο ο οίο έχει επιλεχτεί το RTDX_Write_SA_I2 που επιτρέποτ ύνται από ακέραιους αριθµούς µε πρόσηµο των 2bytes. α

R _Write.vi συνδέεται η έξοδος του To Word Integer.vi που περιέχει τα προς αποστολή δεδοµένα. Η string σταθερά “Channel” που συνδέεται στο RTDX_Write.vi δηλώνει ότι για την µεταφορά των δεδοµένων θα χρησιµοποιηθεί το RTDX κανάλι “gains_chan”. Στο δεύτερο Frame της Flat Sequence δοµής προκαλείται µια καθυστέρηση κατά την λειτουργία του Equalizer.vi της τάξης των 1500 msec. Σε αυτό το χρονικό διάστηµα ο DSP πρέπει να λάβει τα δεδοµένα, να τα επεξεργαστεί και να στείλει τα αποτελέσµατα της επεξεργασίας στο VI µέσω των αντίστοιχων RTDX καναλιών. Η ταχύτητα µεταφοράς των δεδοµένων από και προς τον DSP (που είναι και η πιο χρονοβόρα διαδικασία) εξαρτάται από τις δυνατότητες του υπολογιστή εποµένως το παραπάνω χρονικό διάστηµα θα µπορούσε να ειωθ τουµ εί. Η καθυστέρηση της λειτουργίας VI επιτυγχάνεται µε την χρήση του Wait(ms).vi. Η αριθµητική σταθερά που συνδέεται στην είσοδο “milliseconds to wait” καθορίζει το µέγεθος της καθυστέρησης του VI. Στo τρίτο Frame της δοµής Flat Sequence γίνεται η λήψη των δεδοµένων που στέλνει ο DSP και η αναπαράστασή τους. Το RTDX_Read.vi στο οποίο έχει επιλεχτεί το

Page 149: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 145

σόδου. Η έξοδος “Data” του

απούν σε ακέραιους αριθµούς µε πρόσηµο των 4 bytes. Το RTDX_Read.vi αλείται ξανά αλλά επιλέγεται το RTDX_Read_SA_I4 ώστε να διαβάσει τα δεδοµένα του TDX καναλιού που δείχνει η string σταθερά “Channel1” δηλαδή τα δεδοµένα που περιέχει ο RTDX κανάλι “fsignal”. Το RTDX κανάλι “fsignal” µεταφέρει ένα πίνακα µε 512 στοιχεία

αριθµούς µε πρόσηµο των 4 bytes) που αναπαριστά το σήµα εξόδου του οσταθµιστή. Η έξοδος “Data” του RTDX_Read.vi συνδέεται µε τον ενδείκτη

Output_signal” ώστε να αναπαρασταθεί το σήµα εξόδου. Επίσης η έξοδος “Data” του TDX_Read.vi και η έξοδος του To Long Integer.vi συνδέονται στις εισόδους του Build

Array.vi. Το Build Array.vi σχηµατίζει ένα πίνακα δύο διαστάσεων και η έξοδος του Output & Input signals” ώστε να αναπαρασταθούν ταυτόχρονα τα

ήµατα εισόδου και εξόδου του ισοσταθµιστή.

ι

εποµένως η έξοδος του Or.vi

RTDX_Read_SA_I2 διαβάζει τα δεδοµένα που περιέχει το RTDX κανάλι που δείχνει η string σταθερά “Channel” δηλαδή τα δεδοµένα που περιέχει το RTDX κανάλι “signal_chan”. Το RTDX κανάλι “signal_chan” περιέχει ένα πίνακα µε 512 στοιχεία (ακέραιους αριθµούς µε πρόσηµο των 2 bytes) που αναπαριστά το σήµα ειRTDX_Read.vi συνδέεται στον ενδείκτη “Input_signal” που αναπαριστά το σήµα εισόδου. Επίσης η έξοδος “Data” συνδέεται στην είσοδο του “To Long Integer” ώστε τα στοιχεία του πίνακα να µετατρκRτ(ακέραιουςισ“R

συνδέεται µε τον ενδείκτη “σ Αφού ολοκληρωθεί και το τρίτο Frame της δοµής Flat Sequence γίνεται έλεγχος αν προέκυψε κάποιο σφάλµα ή αν πατήθηκε το κουµπί “Stop” ώστε να τερµατιστεί η λειτουργία της δοµής While δηλαδή της τρίτης φάσης του block diagram του Equalizer.vi. Γ α τον σκοπό αυτό η έξοδος “Status” της οµάδας εξόδων “error out” που επιστρέφεται από την δοµή Flat Sequence και το τερµατικό εικονίδιο του κουµπιού “Stop” συνδέονται στις εισόδους του Or.vi. Το Or.vi λειτουργεί ακριβώς όπως η πύλη OR στα ψηφιακά δηλαδή η έξοδός της είναι True αν τουλάχιστον µια από τις εισόδους της είναι True, γίνεται True αν προκύψει κάποιο σφάλµα ή αν πιεστεί το κουµπί “Stop”. Η έξοδος του Or.vi συνδέεται µε την συνθήκη τερµατισµού της δοµής While, εποµένως αν η έξοδος του Or.vi γίνει True η δοµή While δεν θα εκτελεστεί ξανά διαφορετικά θα επαναληφθεί η διαδικασία που περιγράψαµε. Στο σηµείο αυτό ολοκληρώθηκε η τρίτη φάση του block diagram του Equalizer.vi αλλά και ο κυρίως κώδικας του VI. Στην τέταρτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 132 γίνεται ο τερµατισµός της εφαρµογής του DSP και του CCS.

Σχήµα 132. Η τέταρτη φάση του block diagram του Equalizer.vi

του CCS να σταµατήσει την

ση του block i gram και η περιγραφή του Equalizer.vi.

Το CCS_DSP_Halt.vi δίνει εντολή στον DSP µέσω

εκτέλεση του προγράµµατος. Το CCS_RTDX_Disable.vi απενεργοποιεί την RTDX τεχνολογία. Το CCS_Close_Project.vi κλείνει το project που είχε ανοιχτεί στο CCS και το

CS_Close.vi κλείνει το CCS. Στο σηµείο αυτό ολοκληρώνεται η τέταρτη φάCd a

Page 150: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

146 4. Εφαρµογές 4 τουργίας του γραφικού ισοσταθµιστή θα γίνει σύγκριση του σ όπως αναπαρίσταται στο Equalizer.vi για διάφορες τιµές των sliders µε την έξ MATLAB. ται το front panel του Equalizer.vi όταν λειτουργεί και έχει επιλεχτεί µηλών συχνοτήτων είναι 1 ενώ η ενίσχυση των µεσαίων και τω

.1.6 Αποτελέσµατα – Συµπεράσµατα

Για τον έλεγχο της λειήµατος εξόδουοδο των αντίστοιχων φίλτρων στο

Στο Σχήµα 133 παρουσιάζε ότι η ενίσχυση των χα

ν υψηλών συχνοτήτων είναι 0.

Σχήµα 133. Το front panel του Equalizer.vi ρουσιάζει το σήµα εισόδου του ισοσταθµιστή όπως αναπαρίσταται µε στο ο MATLAB. Από το Σχήµα 135 συµπεραίνεται ότι το σήµα εισόδου εί α ίδιο και στις δύο περιπτώσεις.

Το Σχήµα 135 πα Equalizer.vι ακριβώς το

i και στν

(a) (b)

εισόδου του ισοσταθµιστή (a) στο Equalizer.vi (b) στο MATLAB Ό υση των χαµηλών συχνοτήτων να είναι 1 ενώ η ενίσχυση των υ οι η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του β πε ται και στο Σχήµα 135.

Σχήµα 134. Το σήµα

ταν επιλεχτεί η ενίσχπόλ πων περιοχών να είναι 0αθυ ρατού φίλτρου όπως φαίνε

Page 151: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 147

(b)

µα εξόδου του ισοσταθµιστή στο Equalizer.vi του βαθυπερατού φίλτρου στο MATLAB

Σ ουσιάζεται το front panel του Equalizer.vi όταν λειτουργεί και έχει επ ενίσχυση των χαµηλών και τω υψηλών συχνοτήτων είναι 0.

(a)

Σχήµα 135. (a) Το σή(b) Η έξοδος

το Σχήµα 136 παριλεχτεί ότι η ενίσχυση των µεσαίων συχνοτήτων είναι 1 ενώ ην

Σχήµα 136. Το front panel του Equalizer.vi να είναι 1 ενώ η ενίσχυση των υπόλοιπων περιοχών να είναι 0 η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του ζωνοδιαβατού φίλτρου όπως φαίνεται και στο Σχήµα 137.

Όταν επιλεχτεί η ενίσχυση των µεσαίων συχνοτήτων

(a) (b)

Σχήµα 137. (a) Το σήµα εξόδου του ισοσταθµιστή στο Equalizer.vi (b) Η έξοδος του ζωνοδιαβατού φίλτρου στο MATLAB

Page 152: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

148 4. Εφαρµογές Στο Σχήµα 138 παρουσιάζεται το front panel του Equalizer.vi όταν λειτουργεί και έχει επιλεχτεί ότι η ενίσχυση των υψηλών συχνοτήτων είναι 1 ενώ η ενίσχυση των χαµηλών και των µεσαίων συχνοτήτων είναι 0.

Σχήµα 138. Το front panel του Equalizer.vi ηλών συχνοτήτων να είναι 1 ενώ η ενίσχυση των υ εριοχών να είναι 0 η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του υψηπερατού φίλτρου όπως φαίνεται και στο Σχήµα 139.

Όταν επιλεχτεί η ενίσχυση των υψπόλοιπων π

(a) (b)

. (a) Το σήµα εξόδου του ισοσταθµιστή στο Equalizer.vi οδος του υψηπερατού φίλτρου στο MATLAB

πάνω σχήµατα βγαίνει εύκολα το συµπέρασµα ότι ο γραφικός ισ στηκε και παραπάνω λειτουργεί σύµφωνα µε τις προδιαγραφές το π του Equalizer.vi ταυτίζονται µε τα αποτελέσµατα του MATLAB. γραφικού ισοσταθµιστή δέκα ή περισσότερων περιοχών µε το M εί να µετατραπεί το m-file που υπολογίζει τους συντελεστές των φ σ να υπολογίζει τους συντελεστές των φίλτρων που ορίζουν οι ν δηµιουργία του αρχείου που θα περιέχει τους συντελεστές των φ η συνάρτηση save_equ_coefs() χωρίς καµία µετατροπή. υ ός γραφικού ισοσταθµιστή δέκα ή περισσότερων περιοχών µε το CCS του project (που παρουσιάστηκε στην παράγραφο 4.1.4) να ο κάθε ι αντίστοιχες καθυστερήσεις (f0_dly, f1_dly, f2_dly κλπ) επίσης οι ut θα πρέπει να έχουν τόσο στοιχεία όσες και οι περιοχές του

Σχήµα 139(b) Η έξ

Παρατηρώντας τα παρασ ς ιάοσταθµι τή που παρουσ

υ αφού τα α οτελέσµατα Για τον σχεδιασµό ενός

ATLAB , αρχικά θα πρέπίλτρων του ι οσταθµιστή ώστεέες προδιαγραφές. Για τηνίλτρων θα χρησιµοποιηθεί

Για την λοποίηση ενθα πρέπει, στον C κώδικα

ριστούν για φίλτρο ο πίνακες gains και data_o

Page 153: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 149 ισ έναν ισοσταθµιστή δέκα περιοχών θα πρέπει να έχουν δέκα σ σ υ υλοποιεί τα IIR φίλτρα είναι η iir_cas5() και δεν χρειάζεται κ όµως να καλείται στην main συνάρτηση τόσες φορές όσες και οι περιοχές του ισοσταθµιστή. Ο υπολογισµός κάθε δείγµατος εξόδου του ισοσταθµιστή είναι το άθροισµα των αποτελεσµάτων των φίλτρων (δηλαδή των αποτελεσµάτων της συνάρτησης

r_cas5()). Για τον έλεγχο ενός γραφικού περισσότερων περιοχών µε το

ών.

4.2 Εφαρµογή ψηφιακής επεξεργασίας εικόνας Η εφαρµογή στην ψηφιακή επεξεργασία εικόνας που θα αναλυθεί στην συνέχεια έχει ως σκοπό την παρουσίαση κάποιων απλών εφαρµογών ψηφιακής επεξεργασία µε το DSKC6713 που ελέγχονται από ένα GUI που έχει δηµιουργηθεί µε το LabVIEW. Στην συγκεκριµένη εφαρµογή σε µια έγχρωµη (color) εικόνα µπορεί να πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος, ενώ σε µια εικόνα κλίµακας του γκρι (grayscale) είναι δυνατό να πραγµατοποιηθεί η ανίχνευση των ακµών της ή η εφαρµογή του ευθύ και του αντίστροφου διακριτού µετασχηµατισµού συνηµιτόνου (Discrete Cosine Transform – DCT ) ή η κωδικοποίηση και η αποκωδικοποίηση της σύµφωνα µε το JPEG πρότυπο. Η εικόνα, το είδος της (έγχρωµη ή ασπρόµαυρη) και ο αλγόριθµος επεξεργασίας επιλέγεται από το GUI. Για κάθε αλγόριθµο επεξεργασίας έχει δηµιουργηθεί ένα project στο CCS εποµένως µέσα από το GUI επιλέγεται πιο project θα φορτωθεί στο CCS και ποιού project ο εκτελέσιµος κώδικας θα φορτωθεί και θα εκτελεστεί από τον DSP. Η εικόνα φορτώνεται στον DSP κατά το κτίσιµο µέσω ενός ή τριών αρχείων µε επέκτασ .h ανάλογα µε το είδος της εικόνας, εποµένως µε επέκταση .h ου θα περιέχει ταση .h που θα εριέχουν τις R,G και B συνιστώσες της έγχρωµης εικόνας. Το αποτέλεσµα της επεξεργασίας εταφέρεται στο GUI αξιοποιώντας την RTDX τεχνολογία.

ct στο CCS για υργία του GUI

οσταθµιστή (δηλαδή για τοιχεία). Η υνάρτηση ποαµία µετατροπή, θα πρέπει

ii ισοσταθµιστή δέκα ή LabVIEW θα πρέπει να τροποποιηθεί κατάλληλα του Equalizer.vi που παρουσιάστηκε στην παράγραφο 4.1.5. Στο front panel του Equalizer.vi θα πρέπει ο αριθµός των sliders, των Radio Buttons και των στοιχείων του πίνακα “gains” να είναι ίσος µε τον αριθµό των περιοχών του ισοσταθµιστή. Στο block diagram θα πρέπει η λογική που παρουσιάστηκε για τον slider “Low_pass” και το Radio Button “Low_pass_mute” να επαναληφθεί για κάθε slider και Radio Button. Με τις αλλαγές που παρουσιάστηκαν πιο πάνω, ο γραφικός ισοσταθµιστής των τριών περιοχών µπορεί να µετατραπεί εύκολα σε ένα γραφικό ισοσταθµιστή δέκα ή περισσότερων εριοχπ

η το GUI θα πρέπει να δηµιουργήσει το αντίστοιχο αρχείο

την εικόνα σε κλίµακα του γκρι ή τρία αρχεία µε επέκππµ Στις παραγράφους που ακολουθούν αναλύεται η δηµιουργία του projeάθε αλγόριθµο επεξεργασίας. Επίσης στην συνέχεια θα αναλυθεί και η δηµιοκ

µε το LabVIEW.

Page 154: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

150 4. Εφαρµογές

ών εικονοστοιχείων (pixels) µιας εικόνας. Η

4.2.1 Ανίχνευση ακµών Μια από τις πιο απλές επεξεργασίες σε µία εικόνα είναι η λεγόµενη ανίχνευση των ακµών της (edge detection). Οι ακµές εντοπίζονται σε σηµεία στα οποία υπάρχει µεγάλη διαφορά φωτεινότητας µεταξύ γειτονικανίχνευση των ακµών, πραγµατοποιείται µε συνέλιξη της εικόνας µε κάποιο γραµµικό φίλτρο, το οποίο να αποτελεί προσέγγιση της 1ης παραγώγου. Αφού αν κανείς υπολογίσει την 1η παράγωγο κατά µήκος της εικόνας και εντοπίσει τα σηµεία στα οποία αυτή παρουσιάζει µέγιστο, τότε τα σηµεία αυτά θα αντιστοιχούν στις ακµές της Εποµένως η ανίχνευση των ακµών σε κάθε διεύθυνση, πραγµατοποιείται µε συνέλιξη της εικόνας µε κάποιο γραµµικό φίλτρο. Το φίλτρο αυτό δεν είναι τίποτα άλλο παρά ένα παράθυρο 3x3 (ή µάσκα) το οποίο σαρώνει διαδοχικά όλη την επιφάνεια της εικόνας. Με δεδοµένο ότι οι ακµές υπολογίζονται σε δύο διευθύνσεις (οριζόντια και κατακόρυφη) απαιτούνται δύο µάσκες 3x3, µία για κάθε διεύθυνση. Η πλέον γνωστή µέθοδος ανίχνευσης ακµών είναι µε χρήση των λεγόµενων τελεστών Sobel. Πρόκειται για δύο µάσκες διαστάσεων 3x3 (σχήµα 140) η συνέλιξη των οποίων µε την εικόνα θα δώσει τις υπάρχουσες σε αυτήν ακµές.

-1 -1

0 0 0

-2 -1

-1

0

0 2

1

1 12 -1 0 1

(a) (b)

Σχήµα 140 Μάσκες Sobel για την ανίχνευση των ακµών µιας εικόνας:

(a) κατά την κατακόρυφη διεύθυνση (Gy) και (b) κατά την οριζόντια διεύθυνση (Gx)

Υλοποίηση της ανίχνευσης ακµών µε τους τελεστές Sobel

ι C Στην συνέχεια παρουσ άζεται ο κώδικας του αρχείου DSP_Sobel_rtdx.c που υλοποιεί την ανίχνευση ακµών µε τους τελεστές Sobel σε µια εικόνα κλίµακας του γκρι.

#include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE */ #define IMAGE_SIZE 65536 #define H 256 #define W 256 #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 #include "scenary.h" /* contains input image as a 1D array */ #pragma DATA_SECTION (image_in, "IM_in")

Page 155: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 151

#pragma DATA_SECTION (image_out,"IM_out") #pragma DATA_SECTION (Gx, "Gx_var") #pragma DATA_SECTION (Gy, "Gy_var") #pragma DATA_SECTION (message, "msg_var") unsigned char image_in[IMAGE_SIZE]; unsigned char image_out[IMAGE_SIZE]; unsigned char Gx[IMAGE_SIZE]; unsigned char Gy[IMAGE_SIZE]; unsigned char message[MAX_ELEMENTS]; RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ // Find Sobel edges void Sobel_edges() { int i; int w00, w01, w02; int w10, w12; int w20, w21, w22; int x_edge, y_edge; int f_edge ; for(i=0; i<IMAGE_SIZE; i++) // Clear arrays { Gx[i] = 0; Gy[i] = 0; image_out[i] = 0; } for (i=0; i<(W*(H-2)-2); i++) { w00 = image_in[i]; w01 = image_in[i+1]; w02 = image_in[i+2]; w10 = image_in[W+i]; w12 = image_in[W+i+2]; w20 = image_in[(2*W)+i]; w21 = image_in[(2*W)+i+1]; w22 = image_in[(2*W)+i+2]; x_edge = - w00 - 2*w10 - w20 + w02 + 2*w12 + w22 ; y_edge = - w00 - 2*w01 - w02 + w20 + 2*w21 + w22 ; f_edge = (abs(x_edge) + abs(y_edge))/2 ; if (f_edge>255) f_edge = 255; if (f_edge<0) f_edge = 0; image_out[i+1] = f_edge; if (x_edge>255) x_edge = 255; // View Gx & Gy edges if (x_edge<0) x_edge = 0; if (y_edge>255) y_edge = 255; if (y_edge<0) y_edge = 0;

Page 156: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

152 4. Εφαρµογές

i+1] = x_edge; Gx[ Gy i+1] = y_edge; [ } // end for loop } // Main program voi a () d m in{ int i, j; TARGET_INITIALIZE(); // Target initialization for RTDX Sobel_edges(); RTDX_enable // Enable the Output(&ochan); output channel, "ochan" for (i=0; i<IMAGE_SIZE; i+=MAX_ELEMENTS) { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) image_out[j]; //write one row (256 elements) } if (!RTDX_write( &ochan, message, sizeof(message))) //Send the data to the host { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } puts("\n Program Completed!"); } // End main program

rtdx.h , αρχείο των σ υ σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δ ση της E() η οποία αρχικοποιεί τον DSP και εν ο ιε τι ι ο ς ώστε να εν ry.h π 256 εικονοστοιχεία. Με τις ν π π δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι “ochan” που θ αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µ από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την εικόνα. ηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση της µές της εικόνας µε την χρησιµοποίηση της συνάρτησης Sobel_edges() που ορίζεται ακριβώς πριν την συνάρτηση main(). Στην συνέχεια

Πρόγραµµα 6. Ο C κώδικας του αρχείου DSP_Sobel_rtdx.c

Στο πρόγραµµα 6 αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, td rts io.h, target.h, και scenary.h. Το dx.h περιέχει τις δηλώσεις

υναρτήσεων ποήλω συνάρτησης TARGET_INITIALIZεργ πο ί ς δ ακ πέ εργοποιηθεί η RTDX τεχνολογία. Το αρχείο scenaεριέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x τιρεκτίβες #pragma καθορίζονται οι περιοχές της µνήµης στις οποίες θα αποθηκεύονται οιίνακες που σχετίζονται µε την εικόνα. Η κατανοµή της µνήµης του DSP σε περιοχέςραγµατοποιείται στο αρχείο rtdx_sobel.cmd (Πρόγραµµα 7)

Πριν από τα ρει το

την α µε φέ

ρει εταφέ τελικήΣτην συνάρτ

RTDX τεχνολογίας. Έπειτα εντοπίζονται οι ακ

Page 157: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 153 εν ό “oc όνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φ µή της εικόνας δηλαδή ένας πίνακας των 2 θµών.

εργοποιείται το RTDX κανάλι εξ δου han” και γίνεται η µεταφορά της εικ

ορά εγγράφεται στο RTDX κανάλι µόνο µια γραµ56 αρι

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RT X_iD nterrupt_mask = ~0x000001808; MEMORY { VECS: o=00000000h l=00000200h /* interrupt vectors */ PMEM: o=00000200h l=0000FE00h /* Internal RAM (L2) mem */ BMEM: o=80000000h l=01000000h /* CE0, SDRAM, 16 Mbytes */ } SECTIONS { .intvecs > 0h .text > BMEM .rtdx_text > BMEM .far > BMEM .stack > BMEM .bss > BMEM .cinit > BMEM .pinit > PMEM .cio > BMEM .const > BMEM .data > BMEM .rtdx_data > BMEM .switch > BMEM .sysmem > BMEM IM_in > BMEM IM_out > BMEM Gx_var > BMEM Gy_var > BMEM msg_var > BMEM }

Πρόγραµµα 7. Το rtdx_sobel.cmd

Το project που θα δηµιουργηθεί για την ανίχνευση των ακµών µιας εικόνας σε κλίµακα του γκρι µε όνοµα RTDX_Sobel εκτός από τα αρχεία DSP_Sobel_rtdx.c και rtdx_sobel.cmd που αραπάνω πρέπει να περιέχει και το αρχείο intve

_edges.pjt, παρουσιάστηκαν π cs.asm

που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για το αρχείο

Page 158: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

154 4. Εφαρµογές DSP_Sobel_rtdx.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Στο Σχήµα 141 παρουσιάζεται το View Window του project στο CCS.

DX_Sobel_edges.pjt

4 Ευθύς και αντίστροφος διακριτός µετασχηµατισµός συνηµιτόνου µ sine Transform) ή DCT α ή επιλογή µετασχηµατισµού µιας εικόνας από το πεδίο των pixels (s a των συχνοτήτων (frequency domain), εξαιτίας των ιδιοτήτων που π ” ενέργειας (energy compaction). Για αυτό το λόγο έχει υ α πρότυπα κωδικοποίησης που αφορούν τόσο την ακίνητη ει ακολουθία εικόνων (video) από τα π π PEG-1, MPEG-2 και MPEG-4.

Έ τηριστικά του DCT µετασχηµατισµού είναι η “συµπύκνωση” εν σηµαίνει ότι κατά την εφαρµογή του σε κάθε 8 λοκ της εικόνας, το µεγαλύτερο ποσοστό της ενέργειας συγκεντρώνεται στις χαµηλές συχνότητες (low frequencies) και ιδιαίτερα στον 1ο συντελεστή κάθε µπλοκ που καλείται DC

. Οι υπόλοιποι 63 συντελεστές καλούνται AC συντελεστές και περιέχουν πολύ µικρό ποσοστό ενέργειας σ η των DCT συντελεστών νός 8x8 µπλοκ φαίνεται στο σχήµα 142.

σ

κ µιας εικόνας, η

Σχήµα 141. Το View Window του CCS για το RT

.2.2

O διακριτός µετασχη ατισµός του συνηµιτόνου (Discrete Coποτε εί ίσως την πιο συχν

main) στο πεδίολ

parti l doαρουσιάζει όπως η “συµπύκνωσηιοθετηθεί από τα περισσότερκόνα, όπως το JPEG και το ΜPEG-7, όσο και τηνρότυ α M

να από τα χαρακέργειας (energy compaction). Πρακτικά αυτό

x8 µπ

συντελεστήςε σχέση µε τον DC συντελεστή. Η διάταξ

ε Οι χαµηλές συχνότητες (low frequencies) εντοπίζονται την άνω αριστερή γωνία του 8x8 µπλοκ, ενώ οι υψηλές συχνότητες (high frequencies) στην κάτω δεξιά γωνία αντίστοιχα. Με δεδοµένο το γεγονός ότι η ενέργεια ενός DCT συντελεστή αντιστοιχεί ουσιαστικά στην πληροφορία που αυτός περικλείει, ο DC συντελεστής είναι αυτός που περιέχει το µεγαλύτερο ποσοστό πληροφορίας του εκάστοτε 8x8 µπλοκ, ενώ οι AC συντελεστές περιέχουν πολύ µικρό ποσοστό πληροφορίας που αντιστοιχεί στις λεπτοµέρειες του 8x8 µπλοκ της εικόνας. Εποµένως, εφαρµόζοντας τον DCT µετασχηµατισµό σε κάθε 8x8 µπλο

Page 159: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 155 νέργεια (και κατά συνέπεια η πληροφορία) του εκάστοτε µπλοκ βρίσκεται συγκεντρωµένη λέον στις χαµηλές συχνότητες, δηλαδή τον DC και µερικούς γύρο άπω αυτόν AC υντελεστές (AC01, AC10, AC11, κτλ). Συνεπώς οι υπόλοιποι AC συντελεστές, κυρίως στις υψηλές συχνότητες, αποτελούν πλεονάζουσα πληροφορία και µπορούν να αποµακρυνθούν (δ ν) κατά τη διαδικασία της κβάντισης.

επσ

ηλαδή να µηδενιστού

64 DCT coefficients

DC

AC

AC AC AC

AC AC

ACAC 02

12

2221

11

01

20

10

των DCT συντελεστών σε κάθε 8x8 µπλόκ α είναι ένας αρκετά απαιτητικός α ι µεγάλο πλήθος υπολογισµών (πολλαπλασιασµών, προσθέσεων και α ση του 2D-DCT σε µια εικόνα µε βάση το δυνατό να εκτελεστεί σε πραγµατικό χρόνο Για το λόγο αυτό επιλέχτηκε αρχικά η υλοποίηση του 2D-DCT µε εφαρµογή του µ στήλες κάθε 8x8 µπλοκ τη όνας. Η υλοποίηση αυτή θεωρείται αργή γενικά (της τάξεως του sec), αλλά παρόλα α ε από την απευθείας εφαρµογή του 2D-DCT βάσει του ο τη συνέχεια, παρουσιάζεται µια βέλτιστη σε επίπεδο αλγορίθµου υλοποίηση του D ον αλγόριθµο του McGovern. αλγορίθµων, εκτός από τον ευθύ µ rse) µετασχηµατισµός (IDCT). Ο D α (orthogonal) µετασχηµατισµούς, των οποίων µία από τις β . Αυτό σηµαίνει ότι εκφράζοντας τον µ , δηλαδή D΄ = W*D (όπου W ο πίνακας µ ηµατισµού, D ο πίνακας µε τα δεδοµένα) και πολλαπλασιάζοντας έπειτα µε τον ανάστροφο πίνακα µετασχηµατισµού WT (αντίστροφος µετασχηµατισµός), λαµβάνεται ξανά αρχικός πίνακας D. Έτσι, εφαρµόζοντας πρώτα τον ευθύ µετασχηµατισµό DCT και έπειτα

αντίστροφο µετασχηµ ναι η ανακατασκευή της ρχικ

1D-DCT

Για την υλοποίηση του 2D-DCT µε χρήση του 1D-DCT έχουν δηµιουργηθεί τα αρχεία D c, dct_main.h, Dct.c, Idct.c και rtdx_DCTslow.cmd που παρουσιάζονται στην σ γραµµα 8 παρουσιάζεται ο C κώδικας του αρχείου Dct_Main_rtdx.c, στο οποίο α ιλαµβάνονται τα αρχεία stdlib.h, time.h, rtdx.h , stdio.h, target.h, dct_main.h και scenary.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης

Σχήµα 142 ∆ιάταξη

Ο διδιάστατος µετασχηµατισµός DCT σε µια εικόνλγόρ θµος, αφού απαιτείφαιρέσεων). Αντιλαµβάνεται κανείς ότι η υλοποίη

σµό (σχέση 9.1) δεν έχει νόηµα, αφού δεν είναιν ορι.

ονοδιάστατου DCT (1D-DCT) πρώτα στις γραµµές και έπειτα στις ς εικυτά ίναι αρκετά πιο γρήγορηρισµού. ΣCT, η οποία βασίζεται στ

Για τον έλεγχο της σωστής λειτουργίας τωνετασχηµατισµό DCT, εφαρµόζεται και ο αντίστροφος (inveCT νήκει στους ορθογώνιουςασικές ιδιότητες είναι η αντιστρεπτότητα

ηµατισµό DCT υπό µορφή γινοµένου πινάκωνετασχσχετα

οτονα

ατισµό στην εικόνα, το αποτέλεσµα θα είής εικόνας.

λοποίηση του 2D-DCT µε χρήση τουΥ

ct_Main_rtdx.υνέχεια.

Στο Πρόρχικά συµπερ

Page 160: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

156 4. Εφαρµογές T οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να εν ρχείο dct_main.h περιέχει τις δηλώσεις ορισµένων σταθερών (constants), όπως είναι οι IMAGE_LEN και BLOCK_LEN και παρουσιάζεται στο Π Το αρχείο scenary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. Με τις ντιρεκτίβες #pragma καθορίζονται οι περιοχές της µνήµης στις ο ο πί νοµή της µνήµης του πε χείο r α 13) πό τη main( “ochan” που θ εταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µ φέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από τη όνα. main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση τη χ . Σε κάθε µπλοκ 8x8 της εικόνας εφαρµόζεται ο ευθύς DCT µε την κ ν και ο αντίστροφος DCT µε την κλήση της συνάρτησης idct(). Οι σ () θα παρουσιαστούν στην συνέχεια. Έπειτα ενεργοποιείται το R ” και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µ ας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο R ή της εικόνας δηλαδή ένας πίνακας των 256 αριθµών.

ARGET_INITIALIZE() ηεργοποιηθεί η RTDX τεχνολογία. Το α

ρόγραµµα 9

ποίες θα απ θηκεύονται οι νακες που σχετίζονται µε την εικόνα. Η κατα DSP σε ριοχές πραγµατοποιείται στο αρ tdx_DCTslow.cmd (ΠρόγραµµΠριν α την δήλωση ς συνάρτησης ) ορίζεται το RTDX κανάλι

α µταεν τελική εικ

Στην συνάρτησης RTDX τε νολογίαςλήση της συ άρτησης dct()υναρτήσεις dct() και idctTDX κανάλι εξόδου “ochanεταφορά της τελικής εικόνTDX κανάλι µόνο µια γραµµ

#include <stdlib.h> #include time.h> <#include <rtdx.h> // RTDX_Data_Read #include <stdio.h> // printf #include "target.h" // TARGET_INITIALIZE #define DSK6711_cps 150000000 //150 MHz C6711 CPU clock (cps -> Clocks Per Second) #include "dc main.h" t_ //Includes and Constants used #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #include "scenary.h" as a 1D array //An h file containing input image unsigned char image_out[IMAGE_SIZE]; short block[BLOCK_SIZE]; clock_t start, stop; double duration; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); //Channel to use to write data #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[MAX_ELEMENTS]; //Q12 DCT coefficients (actual coefficient x 2^12 ) const short coe[8][8]= { 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,

Page 161: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 157

5681, 4816, 3218, 1130, - 1130, -3218, -4816, -5681, 5352, 2217, -2217, -5352, -5352, -2217, 2217, 5352, 4816, -1130, -5681, -3218, 3218, 5681, 1130, -4816, 4096, -4096, -4096, 4096, 4096, -4096, -4096, 4096, 3218, -5681, 1130, 4816, -4816, -1130, 5681, -3218, 2217, -5352, 5352, -2217, -2217, 5352, -5352, 2217, 1130, -3218, 4816, -5681, 5681, -4816, 3218, -1130 }; //FUNCTIONS USED void dct(void); // dct.c void idct(void); // idct.c //MAIN FUNCTION void main() { int row, col, x, y; int i,j; TARGET_INITIALIZE(); //Target initialization for RTDX start = clock(); //FORWARD DCT/ INVERSE DCT // block by block processing for (row=0; row<IMAGE_LEN; row+=BLOCK_LEN) { for (col=0; col<IMAGE_LEN; col+=BLOCK_LEN) { for (y=0, i=0; y<BLOCK_LEN; y++) // get the block from the input image { for (x=0; x<BLOCK_LEN; x++, i++) block[i] = (short) image_in[(col+x)+(row+y)*IMAGE_LEN]; } dct(); //perform FDCT on this block idct(); //perform IDCT on this block for (y=0, i=0; y<BLOCK_LEN; y++) // store block to output image { for (x=0; x<BLOCK_LEN; x++, i++) { //Quick fix for errors occurring due to negative a values if(block[i]<0) //occurring after IDCT!*/ image_out[(col+x)+(row+y)*IMAGE_LEN]=(unsigned char) (-block[i]); else image_out[(col+x)+(row+y)*IMAGE_LEN]=(unsigned char) block[i]; } } } } stop = clock(); duration = (double) (stop - start) / DSK6711_cps; RTDX_enableOutput(&ochan); // Enable the output channel, "ochan"

Page 162: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

158 4. Εφαρµογές

ZE; i+=MAX_ELEMENTS) for (i=0; i<IMAGE_SI { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) image_out[j]; //Write one row (256 elements) } if (!RTDX_write( &ochan, message, sizeof(message) ) ) //Send the data to the host { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } puts("\nProgram Completed!"); printf( "\n %s ", " The algorithm implementation completed in"); printf( "%5.5f %s \n\n", duration, "seconds" ); puts(" Completed Successfully!\n"); }

ικας του αρχείου dct_Main_rtdx.c

Σ γ αµµα 9 παρο ιάζετ ποίο περιέχει τις δηλώσεις ο έ α ερών όπ αι BLOCK_LEN, µε τιµές 256 και 8 αντίστοιχα. Επιπλέον δηλώνονται οι σταθερές IMAGE_SIZE και BLOCK_SIZE (µ µ ) που αντιστοιχούν η µεν πρώτη στο µέγεθος της εικόνας κ χρησιµοποιείται.

Πρόγραµµα 8. Ο C κώδ

το πρό ρ υσ αι το αρχείο dct_main.h, το ορισµ νων στ θ (constants), ως είναι οι IMAGE_LEN κ

ε τι ές 65536 και 64 αντίστοιχααι η δεύτερη στο µέγεθος του µπλοκ που

#ifndef DCT_MAIN_H #define IMAGE_LEN 256 #define IMAGE_SIZE (IMAGE_LEN*IMAGE_LEN) #define BLOCK_LEN 8 #define BLOCK_SIZE (BLOCK_LEN*BLOCK_LEN) #endif

dct_main.h

Σ Dct.c, το οποίο περιέχει την συνάρτηση

d , µε χρήση του ο ες image_in κ age_out (που περιέχουν τα δεδοµένα της αρχικής και της ανακατασκευασµένης εικόνας α το ιχεία που α ο χει τις 64 τι των ό

Πρόγραµµα 9. To αρχείο

το πρόγραµµα 10 παρουσιάζεται το αρχείοct() που υλοποιεί τον διδιάστατο DCT (2D-DCT) σε ένα 8x8 µπλοκ της εικόνας

µ νο ιάστατου DCT (1D-DCT). Στην αρχή δηλώνονται ως extern οι πίνακδι imαντίσ ιχα), καθώς και οι πίνακες block και coe. Ο πίνακας block περιέχει 64 στο

ύν στους 64 DCT συντελεστές ενός 8x8 µπλοκ, ενώ ο πίνακας coe περιέντιστ ιχοµές ρων ( ) ( )[ ]1612cos' πkikC + , πολλαπλασιασµένες µε το 212 (Q-12 format).

βλητή δηλώνεται µε την λέξη κλειδί extern, όταν αυτή πρέπει να είναι “ορατή ι από άλλα αρχεία κώδικα που συµπεριλαµβάνονται στο ίδιο project. Αυτό γίνεται σ ρίπτωση που µία µεταβλητή καλείται σε περισσότερα του ενός αρχεία κώδικα C του

Γενικά µία µετα” κα

την πε

Page 163: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 159 ίδ ίπτωση οι τέσσερις πίνακες που έχουν δηλωθεί ως extern γί ο ό τα αρχεία Dct.c, Ιdct.c και D t

ιου project. Στην προκειµένη περν νται ορατοί (και εποµένως µπορούν να χρησιµοποιηθούν) απc _Main.c.

#include "dct_main.h" extern unsigned char image_in[IMAGE_SIZE]; extern unsigned char image_out[IMAGE_SIZE]; extern short block[BLOCK_SIZE]; extern const short coe[8][8]; void dct(void) { int i,j,x,y; int value[8]; for(j=0;j<8;j++) //perform 1D DCT on the columns { for(y=0;y<8;++y) { value[y]=0; for(x=0;x<8;++x) value[y] += (int)(coe[y][x]*block[j+(x*8)]); } for(y=0;y<8;++y) block[j+(y*8)] = (short)(value[y]>>12); } for(i=0;i<64;i+=8) // perform 1D DCT on the resulting rows { fo y=0;y ;++y) r( <8 { value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[y][x]*block[i+x]); } for(y=0;y<8;++y) block[i+y] = (short)(value[y]>>15); } }

α 10. Ο C κώδικας του αρχείου Dct.c

ολουθεί, παρουσιάζεται ο κώδικας υλοποίησης του α ηµατισµού DCT (2D-IDCT), χρησιµοποιώντας τον µ -IDCT). Όπως και στον ευθύ µετασχηµατισµό, έτσι και εδ , block και coe δηλώνονται ως extern. To αρχείο αυτό π ρτησης idct(), η οποία πραγµατοποιεί τον 2D-IDCT µ ι αντικαθιστά στον πίνακα block τις 64 τιµές των DCT σ κατασκευασµένων εικονοστοιχείων.

Πρόγραµµ

Στο πρόγραµµα 11 που ακντίστροφου διδιάστατου µετασχονοδιάστατο αντίστροφο DCT (1Dώ, οι πίνακες image_in, image_outεριέχει την υλοποίηση της συνάετασχηµατισµό σε ένα 8x8 µπλοκ καυντελεστών µε τις 64 τιµές των ανα

Page 164: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

160 4. Εφαρµογές

#include "dct_main.h" extern unsigned char image_in[IMAGE_SIZE]; extern unsigned char image_out[IMAGE_SIZE]; extern short block[BLOCK_SIZE]; extern const short coe[8][8]; void idct(void) { int i,j,x,y; int value[8]; for(j=0;j<8;j++) // perform 1D IDCT on the columns { for(y=0;y<8;++y) { value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[x][y]*block[j )])+(x*8 ; } for(y=0;y<8;++y) block[j+(y*8)] = (short)(value[y]>>12); } for(i=0;i<64;i+=8) // perform 1D IDCT on the ting rows resul { for(y=0;y<8;++y) { value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[x][y]*block[i+x]); } for(y=0;y<8;++y) block[i+y] = (short)(value[y]>>15); } }

Ο C κώδικας του αρχείου Idct.c

µνήµης πραγµατοποιείται στο αρχείο rtdx_DCTslow.cmd π 12.

Πρόγραµµα 11.

Η κατανοµή των περιοχών τηςου παρουσιάζεται στο Πρόγραµµα

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x000001808;

Page 165: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 161

MEMORY { VECS: o=00000000h l=00000200h /* interrupt vectors */ PMEM: o=00000200h l=0000FE00h /* Internal RAM (L2) mem */ BMEM: o=80000000h l=01000000h /* CE0, SDRAM, 16 MBytes */ } SECTIONS { .intvecs > 0h . xt > BMEM te .rtdx_text > BMEM .far > BMEM .stack > BMEM .bss > BMEM .cinit > BMEM .pinit > PMEM .cio > BMEM .const > BMEM .data > BMEM .rtdx_data > BMEM .switch > BMEM .sysmem > BMEM myvar0 > BMEM myvar1 > BMEM }

Πρόγραµµα 12. To αρχείο rtdx_DCTslow.cmd

µα 143. Το View Window του CCS για το RTDX_DCT_Slow.pjt Σχή

Page 166: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

162 4. Εφαρµογές αι το View Window του project στο CCS που δ θύ κ του T µε την χρήση του 1D-D ε ό α R w.pjt. Το οποίο εκτός από τα ι rtdx_DCT ρουσιάστηκαν παραπάνω π m π ργηθεί από την TI και π α D _Ma c επιλέγεται η τοπική β project θα εθούν και οι βιβλιοθήκες rt µοποιηθεί ο εξοµοιωτής) και rts6701.lib.

Υ ου αλγόριθµο n χρή όριθµου McGovern έχουν δ x.c, ct.c και rtdx_DCTfast.cmd π αι ο C κώδικας Dct_Main_rtdx.c, στο ο αι τα αρχεία stdlib.h, time.h, rtdx.h , stdio.h, target.h, d χείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σ . Το ρχείο ιλαµβάνει την δήλωση της σ () η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις δ τε ο αρχείο dct_main.h που π ς δη ένων σταθερών. Το αρχείο scenary.h ος επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. main() ορίζεται το RTDX κανάλι “ochan” που θ επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µ ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από τη αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση τη πλοκ της εικόνας εφαρµόζεται ο ευθύς DCT µε την κ αντίστροφος DCT µε την κλήση της συνάρτησης idct(). Οι σ στην συνέχεια. Έπειτα ενεργοποιείται το R ορά της εικόνας από τον DSP στο GUI. Η µ ίται σταδιακά δηλαδή κάθε φορά εγγράφεται στο R ένας πίνακας των 256 αριθµών.

Στο Σχήµα 143 παρουσιάζετηµιουργείται για την εφαρµογή του ευ αι αντίστροφου DCCT σε µια εικόνα κλίµακας του γκρι µ νοµ TDX_DCT_Slo αρχεία DCT_Main.c, Dct.c, Idct.c κα slow.cmd που παρέπει να περιέχει και το αρχείο intvecs.as ου έχει δηµιουεριλαµβάνεται στο CCS. Για τα αρχεί CT in.c, Dct.c και Idct.ελτιστοποίηση File (-ο3). Επίση

x.lib (ή rtdxsim.lib αν θα χρησις στο πρέπει να προστ

d

λοποίηση του 2D_DCT µε χρήση τ υ McGover

Για την υλοποίηση του 2D-DCT µε ση του αλγηµιουργηθεί τα αρχεία Dct_Main_rtd dct_main.h, Dct.c, Idου παρουσιάζονται στην συνέχεια.

ιάζετ του αρχείουΣτο Πρόγραµµα 13 παρουσποίο αρχικά συµπεριλαµβάνοντct_main.h και scenary.h. Το αρχετίζονται µε την RTDX τεχνολογία α target.h περυνάρτησης TARGET_INITIALIZEιακοπές ώστε να ενεργοποιηθεί η RTDX χνολογία. Ταρουσιάστηκε στο Πρόγραµµα 9 περιέχει τι λώσεις ορισµ

περιέχει την πρΠριν από την δήλωση της συνάρτησης

α µεταφέρει το αποτέλεσµα τηςτο GUIεταφέρει από τον DSP σ

ν τελική εικόνα. Στην συνάρτηση main()

ς RTDX τεχνολογίας. Σε κάθε 8x8 µλήση της συνάρτησης dct() και ουναρτήσεις dct() και idct() θα παρουσιαστούν TDX κανάλι εξόδου “ochan” και γίνεται η µεταφεταφορά της τελικής εικόνας πραγµατοποιεTDX κανάλι µόνο µια γραµµή της εικόνας δηλαδή

#include <stdlib.h> #include <time.h> #include <rtdx.h> // RTDX_Data_Read #include <stdio.h> // printf #include "target.h" // TARGET_INITIALIZE #define DSK6711_cps 150000000 // 150 MHz C6711 CPU clock (cps -> Clocks Per Second) #include "dct_main.h" // Includes and Constants used #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #include "scenary.h" // An h file containing input image as a 1D array unsigned char image_out[IMAGE_SIZE]; short block[BLOCK_SIZE];

Page 167: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 163

clock_t start, stop; double duration; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateInputChannel(ichan); // Channel to receive data from RTDX_CreateOutputChannel(ochan); // C el e to write data hann to us #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[MAX_ELEMENTS]; // Q12 DCT coefficients (actual coefficien ^12t x 2 ) const short coe[12]={3135,2217,7568,8410,-1598,6149,-10498,4816,-3686,-12586,8035,-1223}; // FUNCTIONS USED void dct(void); // dct.c void idct(void); // idct.c //MAIN FUNCTION void main() { int i,j,x; TARGET_INITIALIZE(); // Target initialization for RTDX start = clock(); //FORWARD DCT/ INVERSE DCT //block by block processing for(i=0;i<IMAGE_SIZE;i+=BLOCK_SIZE) { // get the block from the input image for(x=0;x<BLOCK_SIZE;++x) block[x] = (short) image_in[i+x]; dct(); // perform FDCT on this block idct(); // perform IDCT on this block // store block to output image for(x=0;x<BLOCK_SIZE;++x) { if(block[x]<0) image_out[i+x]=(unsigned char) (-block[x]); //Quick fix for errors occurring due tο else //negative a values occurring after IDCT! image_out[i+x]=(unsigned char) block[x]; } } stop = clock(); duration = (double) (stop - start) / DSK6711_cps;

Page 168: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

164 4. Εφαρµογές

bleOutput(&ochan); //Enable the output channel, "ochan" RTDX_ena for (i=0; i<IMAGE_SIZE; i+=MAX_ELEMENTS) { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) image_out[j]; //Write one row (256 elements) } if (!RTDX_write( &ochan, message, sizeof(message) ) ) //Send the data to the host { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } puts("\nProgram Completed!"); printf( "\n %s ", " The algorithm implementation completed in"); printf( "%5.5f %s \n\n", duration, "seconds" ); puts(" Completed Successfully!\n"); }

ραµµα 13. Ο C κώδικας του αρχείου DCT_Main_rtdx.c

σιάζεται το αρχείο Dct.c, στο οποίο καθορίζεται η λειτουργία

τη ποία εφαρµόζει τον διδιάστατο DCT (2D-DCT) σε ένα 8x8 µπλοκ, µ του DCT (1D-DCT) σύµφωνα µε τον αλγόριθµο ΜcGovern.

Πρόγ

Στο Πρόγραµµα 14 παρους συνάρτησης dct(), η οε χρήση του ταχύ µονοδιάστα

#include "dct_main.h" extern unsigned char image_in[IMAGE_SIZE]; extern unsigned char image_out[IMAGE_SIZE]; extern short block[BLOCK_SIZE]; extern const short coe[12]; void dct(void) { short ADD[20]; /* Table of the addition coefficients */ int [12]; /* Table of he results of the multiplication */ M t int postadd1,postadd2; int i,j; for(j=0;j<8;j++) { /* first set of additions */ ADD[0]= (block[j]+block[56+j]); /* x(0)+x(7) */ ADD[1]= (block[24+j]+block[32+j]); /* x(3)+x(4) */ ADD[2]= (block[8+j]+block[48+j]); /* x(1)+x(6) */ ADD[3]= (block[16+j]+block[40+j]); /* x(2)+x(5) */ ADD[4]= (block[j]-block[56+j]); /* x(0)+x(7) */ ADD[5]= (block[48+j]-block[8+j]); /* x(6)-x(1) */ ADD[6]= (block[24+j]-block[32+j]); /* x(3)-x(4) */

Page 169: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 165

ADD[7]= (block[16+j]-block[40+j]); /* x(2)-x(5) */ /* second set of additions, this is done so previous additions do not need to be repeated */ ADD[8]= (ADD[0]+ADD[1]); ADD[9]= (ADD[0]-ADD[1]); ADD[10]=(ADD[2]+ADD[3]); ADD[11]=(ADD[2]-ADD[3]); ADD[12]=(ADD[4]+ADD[6]); ADD[13]=(ADD[5]+ADD[7]); ADD[14]=(ADD[9]+ADD[11]); ADD[15]=(ADD[4]+ADD[5]); ADD[16]=(ADD[12]+ADD[13]); ADD[17]=(ADD[6]+ADD[7]); ADD[18]=(ADD[8]+ADD[10]); ADD[19]=(ADD[8]-ADD[10]); * Multiplications carried out, note: here 14. Includes one over root eight term */ M[0] = (int)(coe[0]*ADD[9]); M[1] = (int)(coe[1]*ADD[14]); M[2] = (int)(coe[2]*ADD[11]); M[3] = (int)(coe[3]*ADD[4]); M[4] = (int)(coe[4]*ADD[15]); M[5] = (int)(coe[5]*ADD[5]); M[6] = (int)(coe[6]*ADD[12]); M[7] = (int)(coe[7]*ADD[16]); M[8] =(int)(coe[8]*ADD[13]); M[9] =(int)(coe[9]*ADD[6]); M[10]=(int)(coe[10]*ADD[17]); M[11]=(int)(coe[11]*ADD[7]); /* post multiplication, additions + subtractions */ block[j]=ADD[18]; /* y(0) */ block[32+j]=ADD[19]; /* y(4) */ block[16+j]=(short)((M[0]+M[1])>>12); /* y(2) */ block[48+j]=(short)((M[1]-M[2])>>12); /* y(6) */ postadd1= M[6]+M[7]; postadd2= M[7]+M[8]; block[56+j]= (short)((M[3]+M[4]+postadd1)>>12); /* y(7) */ block[40+j]= (short)((M[4]+M[5]+postadd2)>>12); /* y(5) */ block[8+j]= (short)((M[9]+M[10]-postadd1)>>12); /* y(1) */ block[24+j]= (short)((postadd2-M[10]-M[11])>>12); /* y(3) */ } for(i=0;i<64;i+=8) { /* first set of addtions */ ADD[0]=(block[i]+block[i+7]); /* x(0)+x(7) */ ADD[1]=(block[i+3]+block[i+4]); /* x(3)+x(4) */ ADD[2]=(block[i+1]+block[i+6]); /* x(1)+x(6) */ ADD[3]=(block[i+2]+block[i+5]); /* x(2)+x(5) */ ADD[4]=(block[i]-block[i+7]); /* x(0)-x(7) */ ADD[5]=(block[i+6]-block[i+1]); /* x(6)-x(1) */ ADD[6]=(block[i+3]-block[i+4]); /* x(3)-x(4) */ ADD[7]=(block[i+2]-block[i+5]); /* x(2)-x(5) */

Page 170: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

166 4. Εφαρµογές

/* second set of addtions, this is done so previous additions do not need to be repeated */ ADD[8]=(ADD[0]+ADD[1]); ADD[9]=(ADD[0]-ADD[1]); ADD[10]=(ADD[2]+ADD[3]); ADD[11]=(ADD[2]-ADD[3]); ADD[12]=(ADD[4]+ADD[6]); ADD[13]=(ADD[5]+ADD[7]); ADD[14]=(ADD[9]+ADD[11]); ADD[15]=(ADD[4]+ADD[5]); ADD[16]=(ADD[12]+ADD[13]); ADD[17]=(ADD[6]+ADD[7]); ADD[18]=(ADD[8]+ADD[10]); ADD[19]=(ADD[8]-ADD[10]); /* Multiplications carried out, note: here 14. Includes one over root eight term */ M[0]= (int)(coe[0]*ADD[9]); M[1]= (int)(coe[1]*ADD[14]); M[2]= (int)(coe[2]*ADD[11]); M[3]= (int)(coe[3]*ADD[4]); M[4]= (int)(coe[4]*ADD[15]); M[5]= (int)(coe[5]*ADD[5]); M[6]= (int)(coe[6]*ADD[12]); M[7]= (int)(coe[7]*ADD[16]); M[8]=(int)(coe[8]*ADD[13]); M[9]=(int)(coe[9]*ADD[6]); M[10]=(int)(coe[10]*ADD[17]); M[11]=(int)(coe[11]*ADD[7]); /* post multiplication, additions + subtractions */ block[i]=(short)(ADD[18]>>3); /* y(0) */ block[i+4]=(short)(ADD[19]>>3); /* y(4) */ block[i+2]=(short)((M[0]+M[1])>>15); /* y(2) */ block[i+6]=(short)((M[1]-M[2])>>15); /* y(6) */ postadd1= M[6]+M[7]; postadd2= M[7]+M[8]; block[i+7]= (short)((M[3]+M[4]+postadd1)>>15); /* y(7) */ block[i+5]= (short)((M[4]+M[5]+postadd2)>>15); /* y(5) */ block[i+1]= (short)((M[9]+M[10]-postadd1)>>15); /* y(1) */ block[i+3]= (short)((postadd2-M[10]-M[11])>>15); /* y(3) */ } }

Πρόγραµµα 14. Ο C κώδικας του αρχείου Dct.c

Στο πρόγραµµα 15 που ακολουθεί στη συνέχεια, παρουσιάζεται το αρχείο κώδικα Idct.c, στο οποίο καθορίζεται η λειτουργία της συνάρτησης idct(). Η συνάρτηση αυτή εφαρµόζει τον διδιάστατο αντίστροφο αυτή τη φορά DCT (2D-ΙDCT) µετασχηµατισµό σε ένα 8x8 µπλοκ, µε χρήση του ταχύ µονοδιάστατου αντίστροφου DCT (1D-ΙDCT) σύµφωνα µε τον αλγόριθµο ΜcGovern.

Page 171: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 167

#include "dct_main.h" extern unsigned char image_in[IMAGE_SIZE]; extern unsigned char image_out[IMAGE_SIZE]; extern short block[BLOCK_SIZE]; extern const short coe[12]; void idct(void) { short z[8],ADD[7]; int PA[4]; int M[13]; int i,j; for(j=0;j<8;j++) { /* pre-additions */ ADD[0]=block[56+j]+block[40+j]; /* y(7)+y(5) */ ADD[1]=block[56+j]-block[8+j]; /* y(7)-y(1) */ ADD[2]=block[24+j]+block[40+j]; /* y(3)+y(5) */ ADD[3]=block[j]+block[32+j]; /* y(0)+y(4) */ ADD[4]=block[16+j]+block[48+j]; /* y(2)+y(6) */ ADD[5]=block[24+j]-block[8+j]; /* y(3)-y(1) */ ADD[6]=ADD[0]+ADD[5]; /* multiplications */ M[0]=(int)(coe[0] * block[16+j]); /* A*y(2) */ M[1]=(int)(coe[1] * ADD[4]); M[2]=(int)(coe[2]*block[48+j]); /* C*y(6) */ M[3]=(int)(coe[3]*block[56+j]); /* D*y(7) */ M[4]=(int)(coe[4]*ADD[0]); M[5]=(int)(coe[5]*block[40+j]); /* F*y(5) */ M[6]=(int)(coe[6]*ADD[1]); M[7]=(int)(coe[7]*ADD[6]); M[8]=(int)(coe[8]*ADD[2]); M[9]=(int)(coe[9]*block[8+j]); /* J*y(1) */ M[10]=(int)(coe[10]*ADD[5]); M[11]=(int)(coe[11]*block[24+j]); /* L*y(3) */ M[12]=(int)(block[32+j]<<1); /* 2*y(4) */ /* post additions */ PA[0]=((M[0]+ [1]) )M >>12 ; PA[1]=(int)ADD[3]-M[12]; PA[2]=M[4]+M[7]; PA[3]=M[7]-M[10]; z[0]=ADD[3]+(short)PA[0]; z[1]=ADD[3]-(short)PA[0]; z[2]=(short)PA[1]+(short)((M[1]-M[2])>>12); z[3]=(short)PA[1]+ sh [1])>>12); ( ort)((M[2]-M z[4]=(short)((PA[2]+M[6]+M[3])>>12); z[5]=(short)((PA[2]+M[5]+M[8])>>12); z[6]=(short)((PA[3]+M[6]+M[9])>>12); z[7]=(short)((PA[3]+M[8]-M[11])>>12);

Page 172: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

168 4. Εφαρµογές

/* x(0) */ block[j]=z[0]+z[4]; block[8+j]=z[2]-z[5]; /* x(1) */ block[16+j]=z[3]+z[7]; /* x(2) */ block[24+j]=z[1]+z[6]; /* x(3) */ block[32+j]=z[1]-z[6]; /* x(4) */ block[40+j]=z[3]-z[7]; /* x(5) */ block[48+j]=z[2]+z[5]; /* x(6) */ block[56+j]=z[0]-z[4]; /* x(7) */ } for(i=0;i<64;i+=8) { /* pre-additions */ ADD[0]=block[i+7]+block[i+5]; /* y(7)+y(5) */ ADD[1]=block[i+7]-block[i+1]; /* y(7)-y(1) */ ADD[2]=block[i+3]+block[i+5]; /* y(3)+y(5) */ ADD[3]=block[i]+block[i+4]; /* y(0)+y(4) */ ADD[4]=block[i+2]+block[i+6]; /* y(2)+y(6) */ ADD[5]=block[i+3]-block[i+1]; /* y(3)-y(1) */ ADD[6]=ADD[0]+ADD[5]; /* multiplications */ M[0]=(int)(coe[0]*block[i+2]); /* A*y(2) */ M[1]=(int)(coe[1]*ADD[4]); M[2]=(int)(coe[2]*block[i+6]); /* C*y(6) */ M[3]=(int)(coe[3]*block[i+7]); /* D*y(7) */ M[4]=(int)(coe[4]*ADD[0]); M[5]=(int)(coe[5]*block[i+5]); /* F*y(5) */ M[6]=(int)(coe[6]*ADD[1]); M[7]=(int)(coe[7]*ADD[6]); M[8]=(int)(coe[8]*ADD[2]); M[9]=(int)(coe[9]*block[i+1]); /* J*y(1) */ M[10]=(int)(coe[10]*ADD[5]); M[11]=(int)(coe[11]*block[i+3]); /* L*y(3) */ M[12]=(int)(block[i+4]<<1); /* 2*y(4) */ /* post additions */ PA[0]=(int)((M[0]+M[1])>>12); PA[1]=(int)((ADD[3]-M[12])>>3); PA[2]=M[4]+M[7]; PA[3]=M[7]-M[10]; z[0]=(ADD[3]+(short)PA[0])>>3; z[1]=(ADD[3]-(short)PA[0])>>3; z[2]=(short)PA[1]+(short)((M[1]-M[2])>>15); z[3]=(short)PA[1]+(short)((M[2]-M[1])>>15); z[4]=(short)((PA[2]+M[6]+M[3])>>15); z[5]=(short)((PA[2]+M[5]+M[8])>>15); z[6]=(short)((PA[3]+M[6]+M[9])>>15); z 7]=(short)((PA[3]+M[8][ -M[11])>>15); block[i+0]=(z[0]+z[4]); /* x[0] */ block[i+1]=(z[2]-z[5]); /* x[1] */ lo [i+ ]=(z[3]+z[7]); b ck 2 /* x[2] */ block[i+3]=(z[1]+z[6]); /* x[3] */ block[i+4]=(z[1]-z[6]); /* x[4] */ block[i+5]=(z[3]-z[7]); /* x[5] */

Page 173: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 169

b ck 6 (z /* x[6] */ lo [i+ ]= [2]+z[5]); i+ ]= [0]-z[4]); /* x[7] */ block[ 7 (z } }

Πρόγραµµα 15. Ο C κώδικας του αρχείου Idct.c

ιοχών της µνήµης πραγµατοποιείται στο αρχείο rtdx_DCTfast.cmd που α µµα 16.

Η κατανοµή των περ π ρουσιάζεται στο Πρόγρα

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x000001808; MEMORY { VECS: o=00000000h l=00000200h /* interrupt vectors */ PMEM: o=00000200h l=0000FE00h /* Internal RAM (L2) mem */ BMEM: o=80000000h l=01000000h /* CE0, SDRAM, 16 MBytes */ } SECTIONS { .intvecs > 0h .text > BMEM .rtdx_text > BMEM .far > BMEM .stack > BMEM .b > BMEM ss .cinit > BMEM .pinit > PMEM .cio > BMEM .const > BMEM .da a t > BMEM .rtdx_data > BMEM .switch > BMEM .sysmem > BMEM myvar0 > BMEM myvar1 > BMEM msg_var > BMEM }

αµµα 16. To αρχείο rtdx_DCTfast.cmd

Window του project στο CCS που δ εφαρµογή του ευθύ και του αντίστροφου DCT µε την χρήση του

Πρόγρ

Στο Σχήµα 144 παρουσιάζεται το View ηµιουργείται για την

Page 174: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

170 4. Εφαρµογές α overn σε µια εικόνα κλίµακας του γκρι µε όνοµα RTDX_DCT_Fast.pjt. Το ο ός από τα αρχεία DCT_Main.c, Dct.c, Idct.c και rtdx_DCTfast.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δ εί από την TI και περιλαµβάνεται στο CCS. Για τα αρχεία DCT_Main.c, Dct.c, και File (-ο3). Επίσης στο project θα πρέπει να π dxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rt

λγόριθµου McGποίο εκτ

ηµιουργηθ Idct.c επιλέγεται η τοπική βελτιστοποίηση

ροστεθούν και οι βιβλιοθήκες rtdx.lib (ή rts6701.lib.

4. Το View Window του CCS για το RTDX_DCT_Fast.pjt

4 οίηση σύµφωνα µε το πρότυπο JPEG διαδεδοµένα πρότυπα (standards) κωδικοποίησης ει ά του Joint Photographic Experts Group, δ το τυποποίησε, ενώ αποτελεί το πρώτο διεθνές π υπ συ π ση γι . τρόπους (modes) κωδικοποίησης, από τους ο ο προοδευτικός (progressive) και ο ιεραρχικός (h έθοδοι κωδικοποίησης µε απώλειες (lossy), ενώ η προβλεπόµενη (p δος χωρίς απώλειες (lossless). Στην ενότητα αυτή περιγράφεται ένα µέρος τη ής µεθόδου (baseline) κωδικοποίησης κατά JPEG, η οποία υιοθετεί τον ακολουθιακό τρόπο κωδικοποίησης (sequential codec), που είναι και αυτός που χρησιµοποιείται πιο συχνά. Στο σχήµα 145 παρουσιάζεται η δοµή ενός τέτοιου JPEG κ

Σχήµα 14

.2.3 Κωδικοποίηση και αποκωδικοπ

Το JPEG αποτελεί ένα από τα πλέον κόνας. H ονοµασία του προέρχεται από τα αρχικηλαδή της επιτροπής που το δηµιούργησε καιρότ ο µ ίε ς α συνεχούς τόνου ασπρόµαυρες αλλά και έγχρωµες εικόνες

Το πρότυπο JPEG καθορίζει τέσσεριςθιακός (sequential),ποίους ο ακολου

ίναι µierarchical) εct ) µέθοredi iveσικς βα

ωδικοποίητη (encoder).

Page 175: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 171

Σχήµα 145. Ο JPEG κωδικοποιητής (encoder) φαίνεται και στο σχήµα 145, η JPEG κωδικοποίηση περιλαµβάνει τρία (3) κύρια στάδια τον µετασχηµατισµό DCT, (ii) την κβάντιση (quantization) και (iii) την κ δ εικόνα, θα πρέπει να προηγηθούν κάποιες διεργασίες σε αυτήν πριν εισέλθουν τα δεδοµένα της στον κ φωνα πάντα µε το πρότυπο JPEG, αρχικά αφαιρείται ο παράγοντας 128 από µ εικονοστοιχείου τη ίζοντας έτσι το πεδίο τιµών της φ ό 55] στο [-128 127], δηλαδή µε µέση τιµή µηδέν. Στη συνέχεια η ει 8x8, ακολούθως ο µετασχηµατισµός D , έες τιµές, που καλούνται DCT σ οπ ποίηση του DCT, αφού κ τον τρόπο εφ οµένως τον ευθύ DCT µετασχηµατισµό σ τοιχα 8x8 συντελεστές (ένας DC και 63 A χαµηλές σ συντελεστή και µερικούς γύρω από αυτόν AC συντελεστές. Επο νότητες µπορούν να µηδενιστούν, επ τ γχ α µηδενιστούν οι συντελεστές που δεν π ο τική πληροφορία, είναι διαιρώντας τους µε κάποιες κατάλληλες τιµές. Η διαδικασία αυτή καλείται κβάντιση (quantization) των DCT συντελεστών. Οι τιµές µε τις οποίες συντελεστές περιέχονται στον πίνακα κβάντισης που π παρουσιάζεται στο Σχήµα 146. Οι διαστάσεις του

Όπως : (i)

ω ικοποίηση εντροπίας (entropy encoding). Θεωρώντας µια αρχική

ωδικοποιητή. Σύµ κάθε τι ή ς εικόνας, µετατοπ

ωτεινότητάς της απ [0 2κόνα υποδιαιρείται σε µπλοκ των όπου εφαρµόζεται

αυτά παράγοντας αντίστοιχα 64 νCT σε καθένα από ντελεστές. υ

Μπορεί να χρησιµοποιηθεί οιοσδήποτε αλγόριθµος για την υλο το πρότυπο δεν καθορίζει συγ εκριµένο αλγόριθµο, δηλαδή δεν υποδεικνύει

αρµογής του DCT σε µια εικόνα. Εφαρµόζοντας επάθε ν αντίσε κ 8x8 µπλοκ της εικόνας, θα προκύψου

C). είναι ήδη γνωστό, η πληροφορία κάθε 8x8 µπλοκ έχει περιοριστεί στις Όπως

υχνότητες, δηλαδή στον DCµένως οι AC συντελεστές στις υψηλές κυρίως συχ

ι υ άνοντας έτσι συµπίεση. Ο πιο απλός τρόπος νεριέχ υν σηµαν

θα διαιρεθούν οι DCT ορ τείνεται από το JPEG πρότυπο και

16 11 10 16 24 40 51 61

12 12 14 19 26 58 60 55

14 13 16 24 40 57 69 56

14 17 22 29 51 87 80 62

18 22 37 56 68 109 103 77

24 35 55 64 81 104 113 92

49 64 78 87 103 121 120 101

72 92 95 98 112 100 103 99

JPEG quantization table

Luminance

Σχήµα 146. Ο πίνακας κβάντισης που αντιστοιχεί στη συνιστώσα της φωτεινότητας

Page 176: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

172 4. Εφαρµογές

µιας εικόνας. Όπως εύκολα

σ

ας δεν συµπεριλαµβάνεται στην υλοπο

οιηµένη

πίνακα κβάντισης είναι 8x8 επειδή οι διεργασίες εφαρµόζονται σε κάθε 8x8 µπλοκ της εικόνας. Η αντίστροφη διαδικασία της κβάντισης καλείται αποκβάντιση (Dequantization) και πραγµατοποιείται κατά την αποκωδικοποίηση (decoding) αντιλαµβάνεται κανείς, η διαδικασία της αποκβάντισης περιλαµβάνει τον πολλαπλασιασµό των ήδη κβαντισµένων συντελεστών κάθε 8x8 µπλοκ επί τις αντίστοιχες τιµές του πίνακα κβάντισης. Το τρίτο και τελευταίο στάδιο ενός JPEG κωδικοποιητή αντιστοιχεί, βάσει και του σχήµατος 145, στην κωδικοποίηση εντροπίας (entropy encoding). Μετά την διαδικασία της κβάντισης των DCT συντελεστών, πολλοί από αυτούς (ιδιαίτερα στις υψηλές συχνότητες) έχουν µηδενιστεί, όπως άλλωστε ήταν και το ζητούµενο. Εποµένως αφού έχει αποµακρυνθεί η πλεονάζουσα πληροφορία, µπορούν πλέον να κωδικοποιηθούν οι εναποµείναντες συντελεστές, χρησιµοποιώντας κωδικοποίηση Huffman ή Arithmetic. Εκείνο που θα πρέπει να αναφερθεί είναι ότι ο DC συντελεστής κάθε 8x8 µπλοκ κωδικοποιείται κατά διαφορετικό τρόπο (DPCM) από ότι οι AC υντελεστές (RLE). Το γεγονός αυτό οφείλεται στο ότι ο DC συντελεστής απαιτεί περισσότερα bits για την κωδικοποίησή του σε σχέση µε τους AC συντελεστές. Επειδή το τµήµα της κωδικοποίησης εντροπί

ίηση µέρους του προτύπου JPEG που θα ακολουθήσει, κρίνεται σκόπιµο να µην αναφερθούν περισσότερα στοιχεία για αυτήν. Εκείνο που θα πρέπει να αναφερθεί είναι ότι µετά και το στάδιο της κωδικοποίησης εντροπίας θα προκύψει µία ακολουθία bits , η οποία αποτελεί την κωδικοπ κατά JPEG εικόνα (*.jpg file). Για να µπορέσει να δει κανείς µια τέτοια εικόνα, θα πρέπει να την αποκωδικοποιήσει, ακολουθώντας τα τρία βήµατα που εικονίζονται στο σχήµα 147.

101011011110110111010010100000101100100110101011

JPEG File

JPEG Decoder

DequantizationIDCT transform

EntropyDecoding

Reconstructed image

οιητής (decoder) σχήµα 147, η διαδικασία της αποκωδικοποίησης περιλαµβάνει αρχικά την αποκωδικοποίηση εντροπίας (entropy decoding), στη συνέχεια την αποκβάντιση (d µατισµό DCT (inverse DCT) για την α ατ σκ υή εικόνας

Σχήµα 147. Ο JPEG αποκωδικοπ

Όπως φαίνεται και στο

equantization) και τέλος τον αντίστροφο µετασχηνακ α ε της

Page 177: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 173 Υλοποίηση τµήµατος της κωδικοποίησης εικόνας σύµφωνα µε το JPEG πρότυπο υλοποίηση τµήµατος του JPEG κωδικοποιητή και αποκωδικοποιητή έχουν δ αρχεία jpeg.c και jpeg_main.h που παρουσιάζονται στην συνέχεια. όγραµµα 17 παρουσιάζεται ο C κώδικας του αρχείου jpeg.c που υλοποιεί µ και αποκωδικοποιητή για µια ασπρόµαυρη εικόνα δ δικοποιητή JPEG που υλοποιούνται είναι ο ευθύς µ διαδικασία της κβάντισης. Τα τµήµατα του αποκωδικοποιητή JPEG που υλοποιούνται είναι η αποκβάντιση και αντίστροφος µ σχηµατισµός DCT για την ανακατασκευή της αρχικής εικόνας.

Για την ηµιουργηθεί τα

Στο Πρέρους του JPEG κωδικοποιητήιαστάσεων 256x256. Τα τµήµατα του κωτασχηµατισµός DCT, καθώς και ηε

ετα

#include <stdio.h> #include <stdlib.h> #include <math.h> #include <rt .h> /* RTDX_Data_Read */ dx#include "target.h" /* TARGET_INITIALIZE */ #include "jpeg_main.h" /* Includes and Constants used */ #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #pragma DA A_SECTT ION (array,"myvar2") #pragma A A_SECTION (a D T rray2,"myvar3") #include "scenary.h" /* An h file containing input image as a 1D array */ #pragma DATA_SECTION (message, "msg_var") RTDX_Crea OutputChannelte (ochan); /* Channel to use to write data */ #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[MAX_ELEMENTS]; unsigned cha image_out[IMAr GE_SIZE]; float array[H][W]; float array2[H][W]; int q_table[8 [8] ={ {16,11,10,] 16,24,40,51,61}, {12,12,14,19,26,58,60,55}, {14,13,16,24,40,57,69,56}, {14,17,22,29,51,87,80,62}, {18,22,37,56,68,109,103,77}, {24,35,55,64,81,104,113,92}, {49,64,78,87,103,121,120,101}, {72,92,95,98,112,100,103,99}}; float cosine[8][8]= { {1 0.0000 , 0.98078, 0.92388, 0.83147, 0.70711, 0.55557, 0.38268, 0.19509 }, {1.00000, 0.83147, 0.38268, -0.19509, -0.70711, -0.98078, -0.92388, -0.55557 }, {1.00000, 0.55557, -0.38268, -0.98078, -0.70711, 0.19509, 0.92388, 0.83147 }, {1.00000, 0.19509, -0.92388, -0.55557, 0.70711, 0.83147, -0.38268, -0.98078 }, {1.00000, -0.19509, -0.92388, 0.55557, 0.70711, -0.83147, -0.38268, 0.98078 }, {1.00000, -0.55557, -0.38268, 0.98078, -0.70711, -0.19509, 0.92388, -0.83147 }, {1.00000, -0.83147, 0.38268, 0.19509, -0.70711, 0.98078, -0.92388, 0.55557 }, {1.00000, -0.98078, 0.92388, -0.83147, 0.70711, -0.55557, 0.38268, -0.19509 }};

Page 178: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

174 4. Εφαρµογές

/* image_in 1d --> 2d array */ void read_image() { int i, j; for(i=0; i<H; i++) for(j=0; j<W; j++) { array[i][j]=image_in[W*i+j]; } } /* DCT 8x8 blocks by 1-dimensional way. First rows and then columns. */ void dct() { int x,y,i,m,n; float t_array[8]; float temp,c1; /*** 1D DCT on rows ***/ for(m=0; m<H; m+=8) { for(n=0; n<W; n+=8) { for(x=m; x<m+8; x++) { for(y=n; y<n+8; y++) { temp = 0.0; for(i=n; i<n+8; i++) { temp += array[x][i] * cosine[i-n][y-n]; } if((y-n)==0) c1 = invsqrt2; if((y-n)>0) c1 = 1; array2[x][y] = (float)(temp * c1/2); } } } } /*** 1D DCT on cols ***/ for(n=0; n<W; n+=8) { for(m=0; m<H; m+=8) { for(y=n; y<n+8; y++) { for(x=m; x<m+8; x++){ temp = 0.0; for(i=m; i<m+8; i++){ temp += array2[i][y] * cosine[i-m][x-m]; } if((x-m)==0) c1 = invsqrt2; if((x-m)>0) c1 = 1; t_array[x-m] = (float)(temp * c1/2); } for(i=0; i<8; i++){ array2[m+i][y] = t_array[i]; } } }

Page 179: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 175

} } /* Quantization */ void quantization() { int i, j, m, n; for(m=0; m<H; m+=8) { for(n=0; n<W; n+=8) { for(i=m; i<m+8; i++) { for(j=n; j<n+8; j++) { array2[i][j] = ROUND((float)(array2[i][j]/q_table[i-m][j-n])); } } } } } /* Dequantization */ void dequantization() { int i, j, m, n; for(m=0; m<H; m+=8) { for(n=0; n<W; n+=8) { for(i=m; i<m+8; i++) { for(j=n; j<n+8; j++) { array2[i][j]*=(q_table[i-m][j-n]); } } } } } /* Inverse DCT 1-dimensional way (idct) */ void idct() { int x,y,i,m,n; float t_array[8]; float temp,c1; /* IDCT on Rows */ for(m=0; m<H; m+=8) { for(n=0; n<W; n+=8) { for(x=m; x<m+8; x++) { for(y=n; y<n+8; y++) { temp = 0.0; for(i=n; i<n+8; i++){ if((i-n)==0) c1 = invsqrt2; if((i-n)>0) c1 = 1; temp += (float) (array2[x][i] * cosine[y-n][i-n] * c1/2); } t_array[y-n] = temp; }

Page 180: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

176 4. Εφαρµογές

for(i=0; i<8; i++){ array2[x][n+i] = t_array[i]; } } } } /* IDCT on cols */ for(n=0; n<W; n+=8) { for(m=0; m<H; m+=8){ for(y=n; y<n+8; y++){ for(x=m; x<m+8; x++){ temp = 0.0; for(i=m; i<m+8; i++){ if((i-m)==0) c1 = invsqrt2; if((i-m)>0) c1 = 1; temp += (float)(array2[i][y] * cosine[x-m][i-m] * c1/2); } array[x][y] = temp; } } } } } /* Rounds output image pixel values */ void write_image_out() { int i,j; int temp; for(i=0;i<IMAGE_LEN;i++) for(j=0;j<IMAGE_LEN;j++) { temp =(int)(ROUND(array[i][j])); if(temp<0) temp=0; if(temp>255) temp=255; image_out[IMAGE_LEN*i+j] = (unsigned char) temp; } } /* main */ voi ain() d m{ int i,j; TARGET_INITIALIZE(); /* Target initialization for RTDX */ read_image(); dct() ; /* DCT (1-d way) */ quantization(); dequantization(); idct(); /* IDCT (1-d way) */ write_image_out(); RTDX_enableOutput(&ochan); /* Enable the output channel,"ochan" */

Page 181: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 177

for (i=0; i<IMAGE_SIZE; i+=MAX_ELEMENTS) { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) image_out[j]; /* write one row (256 elements) */ } /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } /* write a string to stdout */ puts(" Completed Successfully!\n"); }

Πρόγραµµα 17. Ο C κώδικας του αρχείου jpeg.c

ικα του αρχείου jpeg.c, αρχικά συµπεριλαµβάνονται τα αρχεία stdio.h, stdlib.h, math.h, rtdx.h , target.h, jpeg_main.h και scenary.h. Το αρχείο rtdx.h περιέχει τις δ που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον D θεί η RTDX τεχνολογία. Το αρχείο jpeg_main.h στο Πρόγραµµα 18 και περιέχει τις δηλώσεις ορισµένων σταθερών enary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 2 Πριν από την της συνάρτησης main() ορίζεται το RTDX κανάλι “ochan” που θ εταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µ UI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Επίσης πριν την συνάρτηση main() περιγράφονται οι συναρτήσεις read_image(), dct(), quantization(), dequantization(), idct() και write_image_out(). Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση τη κλήση της συνάρτησης read_image() η εικόνα αντιγράφεται σ ευθύς DCT εφαρµόζεται στην εικόνα µε την κλήση της σ στάδιο της κβάντισης πραγµατοποιείται µε την κλήση της συνάρτησης q τό έχει ολοκληρωθεί το τµήµα του κωδικοποιητή σύµφωνα µε JPEG της συνάρτησης dequantization() πραγµατοποιείται το στάδιο της τά το JPEG πρότυπο ολοκληρώνεται µ την µόζεται στην εικόνα ο αντίστροφος D ση write_image() τα δεδοµένα της ανακατασκευασµένης εικόνας µ ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο π εργοποιείται το RTDX κανάλι εξόδου “ochan” και γίνεται η µ όνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο RTDX κανάλι µόνο µια γρ ακας των 256 αριθµών.

που περιλαµβάνει τις δηλ στα ι BLOCK_LEN, µε τι ν δηλώνονται οι σταθερές W και H που αντιστοιχούν στις διαστάσεις της εικόνας, καθώς και η σταθερά invsqrt2 που ισοδυναµεί µε

Στο C κώδ

ηλώσεις των συναρτήσεων

SP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιη παρουσιάζεται

. Το αρχείο sc56 εικονοστοιχεία.

δήλωση α µεταφέρει από τον DSP στο G

ς RTDX τεχνολογίας. Με τηνε ένα διδιάστατο πίνακα. O νάρτησης dct(). Του

uantization(). Στο σηµείο αυπρότυπο. Με την κλήση

αποκβάντισης. Το τµήµα του αποκωδικοποιητή κα κλήση της συνάρτησης idct() µε την οποία εφαρε

CT. Με την συνάρτηετατρέπονται σείνακα image_out. Έπειτα ενεταφορά της εικ

αµµή της εικόνας δηλαδή ένας πίνΤο αρχείο jpeg_main.h παρουσιάζεται στο Πρόγραµµα 18

ώσεις ορισµένων χρήσιµων θερών όπως οι IMAGE_LEN καµές 256 και 8 αντίστοιχα. Επιπλέο

21 . Τέλος κ συνάρτηση στρογγυλοποίησης ενός αθορίζεται η συνάρτηση ROUND(), η οποία αποτελεί τη

Page 182: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

178 4. Εφαρµογές αριθµού στον πλησιέστερο ακέραιο. Η συνάρτηση αυτή χρησιµοποιείται για την σ γγ ο διαδικασία της κβάντισης. τρο υλ ποίηση των τιµών που προκύπτουν κατά τη

#ifndef JPEG_MAIN_H #define AGE_LEN 256 IM#define IMAGE_SIZE (IMAGE_LEN*IMAGE_LEN) #define W 256 #define H 256 #define BLOCK_LEN 8 #define BLOCK_SIZE (BLOCK_LEN*BLOCK_LEN) #define invsqrt2 0.70710678 #define ROUND( a ) ( ( (a) < 0 ) ? (int) ( (a) - 0.5 ) : \ (int) ( (a) + 0.5 ) ) #endif

Πρόγραµµα 18. To αρχείο jpeg_main.h

Η κατανοµή των περιοχών της µνήµης πραγµατοποιείται στο αρχείο rtdx_JPEG.cmd ου ππ αρουσιάζεται στο Πρόγραµµα 19.

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x000001808; MEMORY { VECS: org = 0h, len = 0x220 IRAM: org = 0x00000220, len = 0x0000FE00 /*internal memory*/ SDRAM: org = 0x80020000, len = 0x00fdffff /*external memory*/ SDRAM0: org = 0x80000000, len = 0x00010000 SDRAM1: org = 0x80010000, len = 0x00010000 FLASH: org = 0x90000000, len = 0x00020000 *flash memory*/ } SECTIONS { .intvecs > 0h .text > SDRAM .rtdx_text > SDRAM .far > SDRAM

Page 183: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 179

.stack > SDRAM .bss > SDRAM .cinit > SDRAM .pinit > IRAM .cio > SDRAM .const > SDRAM .data > SDRAM .rtdx_data > SDRAM .switch > SDRAM .sysmem > SDRAM myvar0 > SDRAM0 myvar1 > SDRAM1 myvar2 > SDRAM myvar3 > SDRAM msg_var > SDRAM }

Πρόγραµµα 19. To αρχείο rtdx_JPEG.cmd

άζεται το View Window του project στο CCS που δ η του τµήµατος του κωδικοποιητή και του αποκωδικοποιητή σ ε όνοµα RTDX_JPEG.pjt. Το οποίο εκτός από τα αρχεία jp αρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο in εί από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο jp ιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib

Στο Σχήµα 144 παρουσιηµιουργείται για την υλοποίησύµφωνα µε το JPEG πρότυπο µeg.c, και rtdx_JPEG.cmd που πtvecs.asm που έχει δηµιουργηθeg.c επιλέγεται η τοπική βελτ

και οι βιβλιοθήκες rtdx..

Σχήµα 148. Το View Window του CCS για το RTDX_JPEG.pjt

Page 184: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

180 4. Εφαρµογές

Μία από τις πιο απλές και αποδοτικές τεχνικές βελτίωσης της ποιότητας µιας εικόνας είναι η ισοστάθµιση ιστογράµµατος (histogram equalization). Ο σκοπός αυτής της διαδικασίας είναι η παραγωγή µιας βελτιωµένης οπτικά εικόνας, της οποίας το ιστόγραµµα θα είναι πιο οµοιόµορφα κατανεµηµένο. Η ισοστάθµιση ιστογράµµατος παρουσιάζει πολύ καλά αποτελέσµατα σε εικόνες οι οποίες χαρακτηρίζονται από χαµηλή αντίθεση (low contrast), όπου δηλαδή οι περισσότερες τιµές τις φωτεινότητας περιορίζονται σε µια µικρή περιοχή του διαστήµατος

Ισοστάθµιση ιστογράµµατος σε εικόνα της κλίµακας του γκρίζου Πιο αναλυτικά, το αποτέλεσµα της διαδικασίας της ισοστάθµισης ιστογράµµατος σε µια εικόνα είναι η διεύρυνση της κατανοµής της φωτεινότητάς της, ώστε αυτή να καταλαµβάνει όλο το εύρος (εφόσον πρόκειται για ασπρόµαυρη εικόνα) και όχι µόνο µια µικρή περιοχή. Κατά ν τρόπο αυξάνεται η αντίθεση της εικόνας µε αποτέλεσµα την οπτική της βελτίωση µια εικόνα πιο ευχάριστη στην ανθρώπινη όραση. Κατά συνέπεια, η ισοστάθµιση ατος παρουσιάζει πολύ καλά αποτελέσµατα σε εικόνες οι οποίες χαρακτηρίζο µηλή αντίθεση, δηλαδή όπου οι περισσότερες τιµές τις φωτεινότητας περιορίζονται ικρή µόνο περιοχή του διαστήµατος

Η διαδικασία ισοστάθµισης ιστογράµµατος µπορεί να πραγµατοποιηθεί µέσω των ακόλουθων τεσσάρων βηµάτων :

(1) Υπολογισ(2) Υπολογισ(3) Υπολογισµός των νέων κανονικοποιηµένων τιµών της φωτεινότητας (4) Μετασχηµατισµός της αρχικής εικόνας στην τελική

νας που θα ρούσε κανείς να σκεφτεί, είναι η εφαρµογή του αλγόριθµου της ισοστάθµισης του

ισ ατος σε καθένα από τα τρία κανάλια R G και B χωριστά. Είναι φανερό όµως ότι η ει ι έπειτα από την ισοστάθµιση ιστογράµµατος σε καθεµιά από τις τρεις σ ι πιο έντονα χρώµατα σε σχέση µε την αρχική εικόνα, και κατά συνέπεια ν ά, η µέθοδος αυτή δεν θεωρείται α γιστικής πολυπλοκότητας, η οποία αυξάνεται α της σηµαντικής αύξησης της αντίθεσης που έχει ως αποτέλεσµα την εµφάνιση χρωµατικής αντίθεσης ακόµη και σε π από χρωµατική οµοιογένεια. ορές, µια έγχρωµη εικόνα προτού υποστεί κάποιου είδους επεξεργασία µ ι από τον χρωµατικό χώρο RGB σε έναν άλλο χώρο όπως ο HSI, ο YCbCr, ο L ατικοί αυ µένα πλεονεκτήµατα έναντι του χώ αυτό που αφορούν έγχρωµες εικόνες π εφ ρµ της εικόνας σε έναν άλλο χώρο. Ένας µατικούς χώρους (κυρίως στην κωδικοποίηση ει ) είναι ο χώρος YCbCr. Το πλεονέκτηµα που π ν µιας εικόνας στον χρωµατικό χώρο YCbCr, εί οφορίας εµπεριέχεται στην Y συνιστώσα, που

4.2.4 Ισοστάθµιση ιστογράµµατος

]2550[ .

]2550[ αυτό το

, δηλαδήιστογράµµνται από χασε µια µ ]2550[ .

µός του ιστογράµµατος της αρχικής εικόνας µός του αθροιστικού (ή συσωρευτικού) ιστογράµµατος

Ισοστάθµιση ιστογράµµατος σε έγχρωµη εικόνα

Ο πιο απλός τρόπος ισοστάθµισης ιστογράµµατος µιας έγχρωµης εικό µποτογράµµκόνα που προκύπτευνιστώσες της, έχεα είναι πιο ευχάριστη στην όραση. Παρόλα αυτποτελεσµατική αφενός λόγο της υπολονάλογα µε το µέγεθος της εικόνας, και αφετέρου λόγο

εριοχές που χαρακτηρίζονταιΠολλές φ

ετασχηµατίζεταAB κτλ. Oι χρωµ τοί χώροι παρουσιάζουν ορισρου RGB, και για το λόγο πολλοί αλγόριθµοι

ροϋποθέτουν για την α ογή τους τον µετασχηµατισµό από τους χρω που χρησιµοποιείται συχνά

κόνας, όπως είναι η JPEG κωδικοποίησηαρουσιάζει η αναπαράσταση των χρωµάτωναι ότι το µεγαλύτερο ποσοστό της πληρ

Page 185: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 181 κ την άλλη µεριά, οι συνιστώσες Cb και Cr, που καλούνται συνιστώσες χρωµατικότητας (chrominance), περιλαµβάνουν συγκριτικά µε την Y σ οφορίας µιας εικόνας. Κάτι τέτοιο δεν συµβαίνει µε το µβάνει εξίσου το ίδιο ποσοστό πληροφορίας. ο πλεονέκτηµα που εµφανίζει ο χώρος YCbCr, όπου το συγκεντρώνεται στην Υ συνιστώσα, µπορεί να εφ τον αλγόριθµο της ισοστάθµισης ιστογράµµατος µόνο σε αυτήν τη συνιστώσα και ν οτελέσµατα σε σχέση µε την εφαρµογή της στον χώ µατικό χώρο RGB στον YCbCr, δίνεται από την σ

αλείται φωτεινότητα (luminance). Από

υνιστώσα πολύ µικρότερο ποσοστό πληρν χώρο RGB όπου κάθε κανάλι περιλα

Εκµεταλλευόµενος λοιπόν κανείς τ µεγαλύτερο ποσοστό πληροφορίαςαρµόσεια έχει εξίσου, ή ακόµη και καλύτερα απ

ατισµός από τον χρωρο RGB. O µετασχηµχέση 3.

BGRCrBGRCbBGRY

081.0419.0500.0500.0331.0169.0114.0587.0299.0

−−=+−−=++=

(3) Α ι από την σχέση 4:

CrCbYCrYR

714.0344.0000.402.1000.1

−−

ντίστοιχα, ο αντίστροφος µετασχηµατισµός ( RGBCYC rb → ) δίνετα

G 1=

CbYB 772.1000.1 +=

+=

(4)

Υ µισης του ιστογράµµατος έγχρωµης εικόνας στον RGB χώρο συνέχεια παρουσιάζεται ο C κώδικας του αρχείου histeq_RGB_rtdx.c που υλοποιεί την ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον RGB χώρο.

λοποίηση της ισοστάθ

Στην

#include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE */ #define IMAGE_SIZE 65536 #define H 256 #define W 256 #include "red.h" /* R_1d[IMAGE_SIZE] data */ #include "green.h" /* G_1d[IMAGE_SIZE] data */ #include "blue.h" /* B_1d[IMAGE_SIZE] data */ #pragma DATA_SECTION (R_1d,"R1_var") #pragma DATA_SECTION (G_1d,"G1_var") #pragma DATA_SECTION (B_1d,"B1_var") #pragma DATA_SECTION (R,"R_var") int R[IMAGE_SIZE];

Page 186: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

182 4. Εφαρµογές

pragma DATA_SECTION (RGB_out,"RGB_out_var") #unsigned char RGB_out[3*IMAGE_SIZE]; #pragma DATA_SECTION (im_1d,"im_var") unsigned char im_1d[IMAGE_SIZE]; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ #define MAX_MESSAGES 758 #define MAX_ELEMENTS 256 unsigned char message[MAX_ELEMENTS]; /* 256 pixels each message */ int ch_count; /* Histogram Equalization. */ voi ist_equalization() d h{ int i; int hist[256]; in sum_hist[256]; t int sum; /* Clear hist[256] & sum_hist[256] */ for (i=0; i<256; i++) { hist[i] = 0; sum_hist[i] = 0; } /* Calculate image histogram */ for(i=0; i<IMAGE_SIZE; i++) { hist[(int) im_1d[i]]++; } /* Calculate normalized sum of hist */ sum = 0; for(i=0; i<256; i++) { sum = sum + hist[i]; sum_hist[i] = sum * 255 ; } fo i=0; i<256; i++) { r( sum_hist[i] = sum_hist[i] >> 16; } /* Transform Image using sum_hist as a LUT */ for(i=0; i<IMAGE_SIZE; i++) { R[i]= sum_hist[(unsigned char)im_1d[i]];

Page 187: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 183

} } /* Writes output image */ void rite_image() w{ int i; fo (i=0; i<IMAGE_SIZE; i+r +) { if (R[i]<0) R[i]=0; if (R[i]>255) R[i]=255; RGB_out[i + ch_count*IMAGE_SIZE] = (unsigned char) R[i]; } } /* main program */ void main () { int i, j; ch_count=0; /* Equalize RED channel */ for (i=0; i<IMAGE_SIZE; i++) { im_1d[i] = R_1d[i]; } hist_equalization(); ch_count=0; puts("\n histeq RED ok!"); write_image(); /* Equalize GREEN channel */ for (i=0; i<IMAGE_SIZE; i++) { im_1d[i] = G_1d[i]; } hist_equalization(); ch_count=1; puts("\n histeq GREEN ok!"); write_image(); /* Equalize BLUE channel */ for (i=0; i<IMAGE_SIZE; i++) { im_1d[i] = B_1d[i]; } hist_equalization(); ch_count=2; puts("\n histeq BLUE ok!"); write_image(); /* Send RED GREEN BLUE data */ TARGET_INITIALIZE(); /* Target initialization for RTDX */ RTDX_enableOutput(&ochan);

Page 188: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

184 4. Εφαρµογές

for (i=0; i<(3*IMAGE_SIZE); i+=MAX_ELEMENTS) { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) RGB_out[j]; } /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } puts("\nProgram Completed!"); }

Πρόγραµµα 20. Ο C κώδικας του αρχείου histeq_RGB_rtdx.c

Στο C κώδικα του αρχείου histeq_RGB_rtdx.c που παρουσιάζεται στο Πρόγραµµα 20, αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, rtdx.h, stdio.h, target.h, red.h, green.h και blue.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Τα αρχεία red.h green.h και blue.h περιέχουν αντίστοιχα την R, G και B συνιστώσα της έγχρωµης εικόνας στην οποία θα πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος της. Η προς επεξεργασία εικόνα έχει διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι “ochan” που θα µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µεταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα.

Επίσης πριν την συνάρτηση main() περιγράφ κ

ονται οι συναρτήσεις hist_equalization() αι write_image().

Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση τη ολογίας. Για κάθε συνιστώσα καλούνται οι συναρτήσεις hist_equalization() και write_image(). Με την κλήση της συνάρτησης hist_equalization() γίνεται η ισοστάθµιση το µατος της αντίστοιχης συνιστώσας. Με την συνάρτηση write_image() το π ς ισοσταθµισµένης συνιστώσας µετατρέπεται σε ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο πίνακα RGBout. Όταν ολοκληρωθεί η ισοστάθµιση και των τριών συνιστωσών ο µονοδιάστατος πίνακας RGBout µε 256x256x3 = 1 της ισοσταθµισµένης εικόνας. Τα πρώτα 6 συνιστώσα, τα επόµενα 65536 στην G συνιστώσα κ αία 65536 στοιχεία αντιστοιχούν στην B συνιστώσα. Έπειτα ενεργοποιείται το R ι εξόδου “ochan” και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µ θε φορά εγγράφεται στο R ένας πίνακας των 256 αριθµών.

Το επόµενο αρχείο που είναι απαραίτητο για το project και παρουσιάζεται στο Πρόγραµµα 21, είναι το rtdx_histeqRGB.cmd. Στο αρχείο αυτό δηλώνονται τρείς περιοχές της µ λατφόρµας DSK, στις οποίες αποδίδεται κάποιο όνοµα (π.χ. BMEM), ενώ στο

ς RTDX τεχν

υ ιστογράµεριεχόµενο τη

96608 στοιχεία περιέχει και τις τρεις συνιστώσες5536 στοιχεία του αντιστοιχούν στην R αι τα τελευτ

X κανάλTDεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάTDX κανάλι µόνο µια γραµµή της κάθε συνιστώσας της εικόνας δηλαδή

νήµης της π

Page 189: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 185 π στοιχίζεται κάθε µεταβλητή που έχει δηλωθεί στον κώδικα C µε την ν αυτές τις περιοχές.

εδίο SECTIONS αντιτιρεκτίβα #pragma σε µία από

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x000001808; MEMORY { VECS: o=00000000h l=00000200h /* interrupt vectors */ PMEM: o=00000200h l=0000FE00h /* Internal RAM (L2) mem */ BMEM: o=80000000h l=01000000h /* CE0, SDRAM, 16 MBytes */ } SECTIONS { .intvecs > 0h .text > BMEM .rtdx_text > BMEM .far > BMEM .stack > BMEM .bss > BMEM .cinit > BMEM .pinit > PMEM .cio > BMEM .const > BMEM .data > BMEM .rtdx_data > BMEM .switch > BMEM .sysmem > BMEM msg_var > BMEM im_var > BMEM R1_var > BMEM G1_var > BMEM B1_var > BMEM R_var > BMEM RGB_out_var > BMEM }

Πρόγραµµα 21. To αρχείο rtdx_histeqRGB.cmd

Στο Σχήµα 149 παρουσιάζεται το View Window του project στο CCS που δηµιουργείται για την υλοποίηση της ισοστάθµισης του ιστογράµµατος στον χώρο RGB µε όνοµα RTDX_histeqRGB.pjt. Το οποίο εκτός από τα αρχεία histeq_RGB_rtdx.c, και

Page 190: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

186 4. Εφαρµογές tdx_histeqRGB.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο

από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο πική βελτιστοποίηση File (-ο3). Επίσης στο project θα

rintvecs.asm που έχει δηµιουργηθεί

isteq_RGB_rtdx.c επιλέγεται η τοhπρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib.

του CCS για το RTDX_histeqRGB.pjt Σχήµα 149. Το View Window

Υλοποίηση της ισοστάθµισης του ιστογρά Στην συνέχεια παρουσιάζεται ο C κώ Y_rtdx.c που υλοποιεί την ισοστάθµιση .

µµατος έγχρωµης εικόνας στον YCbCr χώρο

δικας του αρχείου histeq_ του ιστογράµµατος µιας έγχρωµης εικόνας στον YCbCr χώρο

#include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE.*/ #define IMAGE_SIZE 65536 #define H 256 #define W 256 #include "red.h" /* R_1d[IMAGE_SIZE] data */ #include "green.h" /* G_1d[IMAGE_SIZE] data */ #include "blue.h" /* B_1d[IMAGE_SIZE] data */

Page 191: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 187

#pragma DATA_SECTION (R_1d,"R1_var") #pragma DATA_SECTION (G_1d,"G1_var") #pragma DATA_SECTION (B_1d,"B1_var") #pragma DATA_SECTION (Y, "Y_var") #pragma DATA_SECTION (Cb,"Cb_var") #pragma DATA_SECTION (Cr,"Cr_var") #pragma DATA_SECTION (R, "R_var") #pragma DATA_SECTION (G, "G_var") #pragma DATA_SECTION (B, "B_var") #pragma DATA_SECTION (RGB_out,"RGB_var") unsigned char RGB_out[3*IMAGE_SIZE]; int Y[IMAGE_SIZE]; int Cb[IMAGE_SIZE]; int Cr[IMAGE_SIZE]; int R[IMAGE_SIZE]; int G[IMAGE_SIZE]; int B[IMAGE_SIZE]; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[MAX_ELEMENTS]; /* 256 pixels each message */ /* RGB to YCbCr color conversion */ void RGB_to_YCbCr() { int i; for(i=0; i<IMAGE_SIZE; i++) { /* weights ->(weights *1000) */ Y[i] = 299*R_1d[i] + 587*G_1d[i] + 114*B_1d[i]; Cb[i] = -169*R_1d[i] - 331*G_1d[i] + 500*B_1d[i]; Cr[i] = 500*R_1d[i] - 419*G_1d[i] - 81*B_1d[i]; } /* devide with 1024=2^10 */ for(i=0; i<IMAGE_SIZE; i++) { Y[i] = (int) (Y[i]/1000); Cb[i] = (int) (Cb[i]/1000); Cr[i] = (int) (Cr[i]/1000); } } /* Histogram Equalization. */ void hist_equalization() { int i; int hist[256]; int sum_hist[256];

Page 192: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

188 4. Εφαρµογές

int sum; /* Clear hist[256] & sum_hist[256] */ for (i=0; i<256; i++) { hist[i] = 0; sum_hist[i] = 0; } /* Calculate image histogram */ for(i=0; i<IMAGE_SIZE; i++) { hist[(int) Y[i]]++; } /* Calculate normalized sum of hist */ sum = 0; for(i=0; i<256; i++) { sum = sum + hist[i]; sum_hist[i] = sum * 255 ; } for(i=0; i<256; i++) { sum_hist[i] = sum_hist[i] >> 16; } /* Transform Image using sum_hist as a LUT */ for(i=0; i<IMAGE_SIZE; i++) { Y[i]= sum_hist[(unsigned char)Y[i]]; } } /* YCbCr to RGB color conversion */ void YCbCr_to_RGB() { int i; for(i=0; i<IMAGE_SIZE; i++) { R[i] = 10000*Y[i] - 9*Cb[i] + 14017*Cr[i]; G[i] = 10000*Y[i] - 3437*Cb[i] - 7142*Cr[i]; B[i] = 10000*Y[i] + 17722*Cb[i] + 10*Cr[i]; } for(i=0; i<IMAGE_SIZE; i++) { R[i] = (int) (R[i]/10000); G[i] = (int) (G[i]/10000); B[i] = (int) (B[i]/10000); } }

Page 193: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 189

/* Writes output image */ void write_image() { int i; for (i=0; i<IMAGE_SIZE; i++) { if (R[i]<0) R[i]=0; if (G[i]<0) G[i]=0; if (B[i]<0) B[i]=0; if (R[i]>255) R[i]=255; if (G[i]>255) G[i]=255; if (B[i]>255) B[i]=255; RGB_out[i] = (unsigned char) R[i]; RGB_out[i+IMAGE_SIZE] = (unsigned char) G[i]; RGB_out[i+2*IMAGE_SIZE] = (unsigned char) B[i]; } } /* main program */ void main () { int i, j; RGB_to_YCbCr(); hist_equalization(); puts("\n Equalization ok!"); YCbCr_to_RGB(); write_image(); /* Send RED GREEN BLUE data */ TARGET_INITIALIZE(); /* Target initialization for RTDX */ RTDX_enableOutput(&ochan); for (i=0; i<(3*IMAGE_SIZE); i+=MAX_ELEMENTS) { for (j=i; j<(i+MAX_ELEMENTS); j++) { message[j-i] = (unsigned char) RGB_out[j]; } /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nError: RTDX_write() failed!\n"); abort(); } } puts("\nProgram Completed!"); }

Πρόγραµµα 22. Ο C κώδικας του αρχείου histeq_Y_rtdx.c

Page 194: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

190 4. Εφαρµογές

ράφονται οι συναρτήσεις RGB_to_YCbCR(),

το rtdx_histeqΥ.cmd. Στο αρχείο αυτό δηλώνονται τρεις περιοχές της νήµης της πλατφόρµας DSK, στις οποίες αποδίδεται κάποιο όνοµα (π.χ. ΒMΕΜ), ενώ στο πεδίο SECTIONS αντιστοιχίζεται κάθε µεταβλητή που έχει δηλωθεί στον κώδικα C µε την ντιρεκτίβα #pragma σε

Στο C κώδικα του αρχείου histeq_Υ_rtdx.c που παρουσιάζεται στο Πρόγραµµα 22, αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, rtdx.h, stdio.h, target.h, red.h, green.h και blue.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Τα αρχεία red.h green.h και blue.h περιέχουν αντίστοιχα την R, G και B συνιστώσα της έγχρωµης εικόνας στην οποία θα πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος της. Η προς επεξεργασία εικόνα έχει διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι “ochan” που θα µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι “ochan” µεταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Επίσης πριν την συνάρτηση main() περιγhist_equalization(), YCbCr_to_RGB() και write_image(). Στην συνάρτηση main() αρχικά η εικόνα µετατρέπεται από τον RGB χώρο στον YCbCR χρησιµοποιώντας την συνάρτηση RGB_to_YCbCR(). Με την συνάρτηση hist_equalization() πραγµατοποιείται η ισοστάθµιση της Y συνιστώσας (δηλαδή της φωτεινότητας). Έπειτα χρησιµοποιώντας την συνάρτηση YCbCr_to_RGB() η ισοσταθµισµένη εικόνα µετατρέπεται στον RGB χώρο. Με την συνάρτηση write_image() το περιεχόµενο της ισοσταθµισµένης συνιστώσας µετατρέπεται σε ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο πίνακα RGBout. Ο µονοδιάστατος πίνακας RGBout µε 256x256x3 = 196608 στοιχεία περιέχει και τις τρεις συνιστώσες της ισοσταθµισµένης εικόνας. Τα πρώτα 65536 στοιχεία του αντιστοιχούν στην R συνιστώσα, τα επόµενα 65536 στην G συνιστώσα και τα τελευταία 65536 στοιχεία αντιστοιχούν στην B συνιστώσα. Έπειτα αφού πραγµατοποιηθεί η ενεργοποίηση της RTDX τεχνολογίας, ενεργοποιείται το RTDX κανάλι εξόδου “ochan” και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο RTDX κανάλι µόνο µια γραµµή της κάθε συνιστώσας της εικόνας δηλαδή ένας πίνακας των 256 αριθµών.

Το επόµενο αρχείο που είναι απαραίτητο για το project και παρουσιάζεται στο Πρόγραµµα 21, είναιµ

µία από αυτές τις περιοχές.

-c -heap 0x1000 -stack 0x1000 -u __vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x000001808; MEMORY { VECS: o=00000000h l=00000200h /* interrupt vectors */ PMEM: o=00000200h l=0000FE00h /* Internal RAM (L2) mem */ BMEM: o=80000000h l=01000000h /* CE0, SDRAM, 16 MBytes */ }

Page 195: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 191

SECTIONS { .intvecs > 0h .text > BMEM .rtdx_text > BMEM .far > BMEM .stack > BMEM .bss > BMEM .cinit > BMEM .pinit > PMEM .cio > BMEM .const > BMEM .data > BMEM .rtdx_data > BMEM .switch > BMEM .sysmem > BMEM msg_var > BMEM im_var > BMEM R1_var > BMEM G1_var > BMEM B1_var > BMEM Y_var > BMEM Cb_var > BMEM Cr_var > BMEM R_var > BMEM G_var > BMEM B_var > BMEM RGB_var > BMEM }

Πρόγραµµα 22. To αρχείο rtdx_histeqY.cmd

Στο Σχήµα 150 παρουσιάζεται το View Window του project στο CCS που δηµιουργείται για την υλοποίηση της ισοστάθµισης του ιστογράµµατος στον χώρο YCbCr µε όνοµα RTDX_histeqY.pjt. Το οποίο εκτός από τα αρχεία histeq_Y_rtdx.c, και rtdx_histeqY.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο histeq_Y_rtdx.c επ roject θα πρέπει να προστεθούν και ο ηθεί ο εξοµοιωτής) και rts6701.lib.

ιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο pι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποι

Page 196: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

192 4. Εφαρµογές

Σχήµα 150. Το View Window του CCS για το RTDX_histeqY.pjt

4.2.5 Υλοποίηση ενός VI για τον έλεγχο της εφαρµογής

Το VI που θα παρουσιαστεί στην συνέχεια ονοµάζεται ImageGUI.vi και ελέγχει και επικοινωνεί µε το CCS κ . Με το ImageGUI.vi ο χρήστης επιλέγει την εικόνα που θα υποστεί

συγ

αι κατά επέκταση µε τον DSP του DSKC6713 που θα φορτωθεί στον DSP και την επεξεργασία

η κεκριµένη εικόνα. Επίσης το VI παρουσιάζει την εικόνα πριν και µετά την επεξεργασία.

Το front panel του ImageGUI.vi Το front panel του ImageGui.vi που παρουσιάζεται στο Σχήµα 151 διαθέτει δύο ενδείκτες µε ονόµατα “Image_in” και Image_Out” που αναπαριστούν αντίστοιχα την προς επεξεργασία εικόνα που θα φορτωθεί στον DSP και την εικόνα που είναι αποτέλεσµα της επεξεργασίας του DSP. Ο ελεγκτής “Image Type” περιέχει δύο Radio Buttons το “Grayscale” και το “Color (RGB)” µε τα οποία ο χρήστης καθορίζει το είδος της εικόνα που θα φορτωθεί στον DSP. Με τον ελεγκτή “Algorithm Selection” που έχει τις καταστάσεις που δείχνει ο πίνακας 13 ο χρήστης µπορεί να επιλέξει την επεξεργασία που θα υποστεί η εικόνα. Όπως φαίνεται και στον πίνακα 13 ορισµένες καταστάσεις του ελεγκτή “Algorithm Selection” αντιστοιχούν σε έγχρωµη εικόνα και ορισµένες σε εικόνα κλίµακας του γκρίζου. Εποµένως οι καταστάσεις του εκλεκτή “Algorithm Selection” που δεν αντιστοιχούν στην τιµή του ελεγκτή “Image Type” απενεργοποιούνται και αναπαριστάνονται µε γκρίζο χρώµα αυτόµατα µε σκοπό την διευκόλυνση του χρήστη. Στο front panel του σχήµατος 151 εµφανίζονται οι ενεργές καταστάσεις του ελεγκτή “Algorithm Selection” όταν έχει επιλεγεί από τον ελεγκτή “Image Type” ότι η εικόνα που θα χρησιµοποιηθεί θα είναι σε κλίµακα του γκρίζου.

Page 197: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 193 Τιµή Κατάσταση Περιγραφή

0 Algorithm Selection ∆εν γίνεται καµία ενέργεια

1 Sobel Edge Detection (Gray) Πραγµατοποιείται ανίχνευση των ακµών µιας εικόνας κλίµακας του γκρίζου

2 Histogram Equalization RGB (Color) Πραγµατοποιείται η ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον RGB χώρο

3 Histogram Equalization Y (Color) Πραγµατοποιείται η ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον YCbCr χώρο

4 DCT/IDCT slow (Gray) Εφαρµόζεται ο ευθύς και ο αντίστροφος DCT σε µια εικόνα κλίµακας του γκρίζου µε χρήση του 1D-DCT

5 DCT/IDCT fast (Gray) Εφαρµόζεται ο ευθύς και ο αντίστροφος DCT σε µια εικόνα κλίµακας του γκρίζου µε χρήση του αλγόριθµου McGovern

6 JPEG encoder/decoder (Gray) Πραγµατοποιείται τµήµα της κωδικοποίησης και της αποκωδικοποίησης µιας εικόνας σε κλίµακα του γκρίζου σύµφωνα µε το JPEG πρότυπο

Πίνακας 13. Οι καταστάσεις του ελεγκτή εισόδου “Algorithm Selection”

Σχήµα 151. Το front panel του ImageCUI.vi Όταν η κατάσταση του ελεγκτή “Algorithm Selection” είναι Algorithm Selection τότε το VI βρίσκεται σε κατάσταση αναµονής. Αν εκείνη την στιγµή ο χρήστης θελήσει να τερµατίσει την λειτουργία του αρκεί να πατήσει το κουµπί “Stop”. Αν επιλεχτεί κάποια κατάσταση του ελεγκτή “Algorithm Selection” εκτός από την Algorithm Selection τότε το VI θα βγει από την κατάσταση αναµονής και αυτόµατα θα εµφανιστεί ένα παράθυρο διαλόγου, που δεν είναι τίποτε άλλο από τον explorer των Windows, που θα του ζητήσει να επιλέξει την εικόνα που θα φορτωθεί. Αµέσως µετά θα εµφανιστεί η εικόνα στον ενδείκτη “Image in”.Όταν ο DSP ολοκληρώσει την επεξεργασία που καθορίστηκε από τον ελεγκτή “Algorithm Selection” θα εµφανιστεί στον ενδείκτη “Image Out” η εικόνα που θα είναι το αποτέλεσµα της επεξεργασίας.

Page 198: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

194 4. Εφαρµογές

Το block diagram panel του ImageGUI.vi Στο Σχήµα 152 παρουσιάζεται το block diagram του ImageGUI.vi το οποίο αποτελείται από έξι φάσεις που θα αναλυθούν στην συνέχεια ώστε να γίνει κατανοητή η λειτουργία του συγκεκριµένου VI.

ο block diagram του ImΣχήµα 152. Τ ageGUI.vi Η πρώτη φάση του block diagram που παρουσιάζεται στο σχήµα 153 υλοποιεί την κατάσταση αναµονής του VI αφού εκτελείται συνεχώς µέχρι να πατηθεί το κουµπί “Stop” ή να αλλάξει η κατάσταση του ελεγκτή “Algorithm Selection” κατάσταση. Εποµένως αρχικά ελέγχεται µε το Not Equal To 0?.vi αν η τιµή του ελεγκτή “Algorithm Selection” είναι διαφορετική από το 0 (δηλαδή δεν έχει επιλεχτεί η κατάσταση Algorithm Selection). Αν η έξοδος του Not Equal To 0?.vi είναι False ότι η τιµή του ελεγκτή “Algorithm Selection” είναι 0. Στις εισόδους του Compound Arithmetic.vi (που έχει οριστεί να εκτελεί την πράξη OR) συνδέονται το κουµπί “Stop” και η έξοδος του Not Equal To 0?.vi. Εποµένως η έξοδος του Compound Arithmetic.vi που συνδέεται µε την είσοδο ελέγχου της δοµής While τερµατίζει την εκτέλεση της πρώτης φάσης του block diagram όταν πατηθεί το κουµπί “Stop” ή αλλάξει η τιµή (γίνει διαφορετική από 0) του ελεγκτή “Algorithm Selection” κατάσταση.

(a) (b)

Σχήµα 153. Η πρώτη φάση του block diagram του ImageGUI.vi (a) για έγχρωµη εικόνα (b) για εικόνα κλίµακας του γκρίζου

Στην πρώτη φάση του block diagram πραγµατοποιείται η απενεργοποίηση των καταστάσεων του ελεγκτή “Algorithm Selection” που δεν αντιστοιχούν µε την τιµή του

Page 199: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 195 ελεγκτή “Image Type”. Η απενεργοποίηση των καταστάσεων του ελεγκτή “Algorithm Selection”επιτυγχάνεται µε την ιδιότητα DisabledItems[]. Η ιδιότητα DisabledItems[] δέχεται ως είσοδο ένα πίνακα που δείχνει τις τιµές των καταστάσεων που θα απενεργοποιηθούν. Μέσω της δοµής Case µεταβάλλεται η είσοδος της ιδιότητας DisabledItems[] ανάλογα µε την τιµή του ελεγκτή “Image Type” που συνδέεται µε την είσοδο ελέγχου της δοµής Case. Εποµένως όταν επιλεχτεί από τον ελεγκτή “Image Type” η χρήση µιας έγχρωµης εικόνας θα απενεργοποιούνται οι καταστάσεις του ελεγκτή “Algorithm Selection” µε τιµές 1, 4, 5 και 6. Όµοια όταν επιλεχτεί χρήση µιας εικόνας σε κλίµακα του γκρίζου θα απενεργοποιούνται οι καταστάσεις του ελεγκτή “Algorithm Selection” µε τιµές 2 και 3. Οι φάσεις 2, 3, 4, 5, και 6 αποτελούν την περίπτωση False µιας δοµής Case που ελέγχεται από το κουµπί “Stop”. H περίπτωση True αυτής της δοµής είναι κενή αφού όταν πατηθεί το κουµπί “Stop” παρακάµπτονται οι παραπάνω φάσεις και τερµατίζεται η λειτουργία του VI. Στο σχήµα 154 παρουσιάζεται η δεύτερη φάση του block diagram του ImageGUI.vi στην οποία καθορίζεται η διαδροµή του project του CCS που θα φορτωθεί στην συνέχεια. Σε αυτή την φάση εδοµένων και η

της εικόνας που επιλέχτηκε από τον χρήστη µέσω του αντίστοιχου παράθυρου ιαλό

πραγµατοποιείται η ανάγνωση, η συλλογή των δαναπαράστασηδ γου.

Σχήµα 154. Η δεύτερη φάση του block diagram του ImageGUI.vi Το ImageGUI.vi θα πρέπει να είναι αποθηκευµένο στον φάκελο που περιέχει τους ακέλους µε τα αρχεία των projects στο CCS που εκτελούν την εκάστοτε επεξεργασία στην

εικόνα. Η έξοδος του Current VI’s Path που δείχνει την διαδροµή που είναι αποθηκευµένο το VI στον σκληρό δίσκο συνδέεται µε την είσοδο του Strip Path.vi που αποκόπτει το τελευταίο µέρος της διαδροµής. Αν η διαδροµή που έχει αποθηκευτεί το VI είναι C:\dsp_projects\ image_projects\ImageGUI.vi τότε η έξοδος του Strip Path.vi θα είναι C:\dsp_projects\ image_projects. Η έξοδος του Strip Path.vi συνδέεται µε την είσοδο “base path” του Build Path.vi. ενώ στην είσοδο “ name or relative path” συνδέεται η έξοδος της δοµής Case. Η δοµή Case µεταβάλλει την είσοδο “ name or relative path” του Build Path.vi ανάλογα µε το project ου C

φ

τ CS που πρέπει να φορτωθεί σύµφωνα µε την κατάσταση του ελεγκτή “Algorithm Selection. Οι περιπτώσεις της δοµής Case παρουσιάζονται στο σχήµα 155. Εποµένως αν η

Page 200: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

196 4. Εφαρµογές κατάσταση του ελεγκτή “Algorithm Selection” είναι η Sobel Edge Detection (Gray) τότε στην είσοδο “ name or relative path” του Build Path.vi θα δοθεί το RTDX_Sobel_edges\ RTDX_Sobel_edges.pjt ώστε η έξοδος του Build Path να είναι η διαδροµή του project του CCS που πραγµατοποιεί την ανίχνευση των ακµών. Με αυτόν τον τρόπο δηµιουργείται η διαδροµή του project στο CCS που θα υλοποιήσει την επεξεργασία που υποδεικνύει ο ελεγκτής “Algorithm Selection”

Σχήµα 155. Οι περιπτώσ agram του ImageGUI.vi εις της δοµής Case της δεύτερης φάσης του block di Στην δεύτερη φάση του block diagram του ImageGUI.vi εκτελείται το Read BMP and get data.vi διαβάζει µια BMP εικόνα, την αναπαριστά και συλλέγει τα δεδοµένα της δηµιουργώντας τρεις µονοδιάστατους πίνακες που αντιπροσωπεύουν τις τρεις συνιστώσες µιας έγχρωµης εικόνας. Στην περίπτωση όµως που θα αναγνωστεί µια εικόνα σε κλίµακα του γκρίζου τότε και οι τρεις πίνακες που δηµιουργεί το Read BMP and get data.vi περιέχουν τις τιµές της φωτεινότητας της συγκεκριµένης εικόνας. Στην περίπτωση της δεύτερης φάσης του block diagram του ImageGUI.vi στην είσοδο “Original Image” του Read BMP and get data.vi συνδέεται µια αναφορά στον ελεγκτή “Image in” ενώ στην είσοδο “Image Type” συνδέεται ο ελεγκτής “Image Type”. Στις εξόδους “Image Data 1”, “Image Data 2” και “Image Data 3” περιέχονται τα δεδοµένα της εικόνας που αναγνώστηκε. Στην έξοδο “Original Image 2” συνδέεται ο ενδείκτης “Image in” ώστε να αναπαρασταθεί η εικόνα που αναγνώστηκε. Η έξοδος “cancelled” δηλώνει αν πατήθηκε το κουµπί “Άκυρο” (“Cancel”) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας. Στο σχήµα 156 παρουσιάζεται το block diagram του Read BMP and get data.vi όπου αρχικά ελέγχεται αν η είσοδος “Path” είναι κενή ή δεν περιέχει κάποια διαδροµή. Αν είναι κενή όπως στην περίπτωση της κλήση του Read BMP and get data.vi από το ImageGUI.vi θα εκτελεστεί η περίπτωση True της δοµής “Case Structure 1”. Σε αυτή την περίπτωση εκτελείται το File Dialog.vi που θα εµφανίσει το παράθυρο διαλόγου για την επιλογή της εικόνας. Η έξοδος “path” του File Dialog.vi θα περιέχει την διαδροµή της εικόνας που επιλέχτηκε. Η έξοδος “cancelled” του File Dialog.vi δείχνει αν πατήθηκε το κουµπί “Άκυρο” (“Cancel”) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας και συνδέεται µε την έξοδο “cancelled” του Read BMP and get data.vi και µε την συνθήκη ελέγχου της δοµής “Case Structure 2”. Αν στο παράθυρο διαλόγου πατηθεί από τον χρήστη το κουµπί “Άκυρο” (“Cancel”) τότε θα εκτελεστεί η περίπτωση True της δοµής “Case Structure 2” που είναι κενή και θα τερµατιστεί η λειτουργία του Read BMP and get data.vi. Στην περίπτωση False της δοµής “Case Structure 2” Η έξοδος “path” του File Dialog.vi θα συνδεθεί µε την είσοδο “Path to BMP File” του Read BMP File.vi που θα διαβάσει την BMP

Page 201: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 197

στήσει την

αν ρησ

a” του Read BMP File.vi είναι ένας πίνακας µε 196608 στοιχεία 56x256x3 = 196608 για µια εικόνα διατάσεων 256x256) και περιέχει τις τιµές των R, G και συνιστωσών της εικόνας. Σε αυτόν τον πίνακα τα τρία πρώτα στοιχεία του αντιστοιχούν τις τιµές των R, G και B συνιστωσών του πρώτου εικονοστοιχείου, τα επόµενα τρία ντιστοιχούν στις τιµές των συνιστωσών για το δεύτερο εικονοστοιχείο κλπ. Εποµένως στην ερίπτωση “Color(RGB)” της δοµής “Case Structure 3” θα πρέπει να γίνει ο διαχωρισµός των ριών συνιστωσών της εικόνας. Για τον λόγο αυτό χρησιµοποιείται ένας βρόγχος For που παναλαµβάνεται 65536 φορές (για µια εικόνα διαστάσεων 256x256) και έχει ως είσοδο την ξοδο “image” της οµάδας εξόδων “Image data” του Read BMP File.vi. Με την βοήθεια των dex.vi και της λογικής που παρουσιάζεται στο block diagram του Read BMP and get data.vi

επιτυγχάνεται ο διαχωρισµός των συνιστωσών της εικόνας. Οι συνιστώσες R, G και B που ετά τον διαχωρισµό τους είναι τρεις µονοδιάστατοι πίνακες των 65536 στοιχείων (για µια ικόνα διαστάσεων 256x256) περιέχονται στις εξόδους “Image Data 1”, “Image Data 2” και Image Data 3”.

εικόνα. Η οµάδα εξόδων “Image data” του Read BMP File.vi συνδέεται µε την αντίστοιχη είσοδο του Draw Flattened Pixmap.vi. Το Draw Flattened Pixmap.vi θα αναπαραεικόνα µέσω του ενδείκτη “Original Image 2”. Στην συνθήκη ελέγχου της δοµής “Case Structure 3” συνδέεται η είσοδος “Image Type”. Εποµένως η περίπτωση “Color(RGB)” της δοµής “Case Structure 3” εκτελείται ότχ ιµοποιείται έγχρωµη εικόνα. Σε αυτή την περίπτωση η έξοδος “image” της οµάδας εξόδων “Image dat(2BσαπτεέIn

µε“

Σχήµα 156. Το block diagram του Read BMP and get data.vi Στην περίπτωση που χρησιµοποιείται µια εικόνα κλίµακας του γκρίζου εκτελείται η περίπτωση “Grayscale” της δοµής “Case Structure 3” στην οποία η έξοδος “image” της οµάδας εξόδων “Image data” του Read BMP File.vi που είναι ένας πίνακας µε 65536 στοιχεία (256x256 = 65536 για µια εικόνα διατάσεων 256x256) και περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας, συνδέεται µε τις εξόδους “Image Data 1”, “Image Data 2” και “Image Data 3” του Read BMP and get data.vi. Η είσοδος “Original Image” του Read BMP and get data.vi που περιέχει µια αναφορά στον ενδείκτη “Image in” καθορίζει το στοιχείο το οποίο αφορά η ιδιότητα “DrawAreaSize”. Η ιδιότητα “DrawAreaSize” αφορά µόνο ελεγκτές και ενδείκτες εικόνας (pictures controls and indicators) και διαφοροποιεί το µέγεθός τους σύµφωνα µε την τιµή που έχει η οµάδα που

Page 202: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

198 4. Εφαρµογές συνδέεται µε αυτή την ιδιότητα. Στην συγκεκριµένη περίπτωση οι έξοδοι “Rectangle.right” και “Rectangle.left” οµαδοποιούνται (µε την βοήθεια του Bundle.vi) και συνδέονται µε την ιδιότητα “DrawAreaSize”. Με τον τρόπο αυτό εξασφαλίζεται ότι ο ενδείκτης εικόνας (στην συγκεκριµένη περίπτωση ο ελεγκτής “Image in”) θα έχει τις διαστάσεις τις εικόνας που θα αναπαραστήσει. Η δεύτερη φάση του block diagram του ImageGUI.vi ολοκληρώνεται µε τον καθαρισµό του ενδείκτη “Image Out”. Ο καθαρισµός του ενδείκτη “Image Out” επιτυγχάνεται µε την σύνδεση της σταθερά “Empty Picture” στην τοπική µεταβλητή (Local Variable) του ενδείκτη “Image Out” Οι φάσεις 3, 4, 5, και 6 αποτελούν την περίπτωση False µιας δοµής Case που ελέγχεται από την έξοδο “cancelled” του Read BMP and get data.vi. Στην περίπτωση True αυτής της δοµής που εκτελείται µόνο όταν πατηθεί το κουµπί “Άκυρο” (“Cancel”) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας, γίνεται η επαναφορά του ελεγκτή “Algorithm Selection” στην κατάσταση Algorithm Selection. Η επαναφορά του ελεγκτή “ Algorithm Selection” επιτυγχάνεται µε την σύνδεση της σταθεράς “Algorithm Selection” στην τοπική µεταβλητή (Local Variable) του συγκεκριµένου ελεγκτή.

Εφόσον δεν πατηθεί το κουµπί “Άκυρο” (“Cancel”) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή η φάση του block diagram ου ImageGUI.vi θα εκτελεστεί η περίπτωση False της παραπάνω δοµής που περιέχει τις φάσεις 3, 4, 5 και 6. Στην τρίτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα 157 γίνεται η επαναφορά του ελεγκτή “Algorithm Selection” στην κατάσταση Algorithm Selection και η δηµιουργία τριών αρχείων (Red.h, Green.h και Blue.h) µε επέκταση .h που εριέχουν τις τρεις συνιστώσες µιας έγχρωµης εικόνας ή η δηµιουργία ενός αρχείου µε επέκταση .h (scenary.h) που περιέχει τις τιµές της φωτεινότητας µια εικόνας κλίµακας του κρίζου ανάλογα µε την τιµή

της εικόνας και ολοκληρωθεί η δεύτερ

τ

π

γ του ελεγκτή “Image Type”.

(a) (b)

Σχήµα 157. Η τρίτη φάση του block diagram του ImageGUI.vi (a) για έγχρωµη εικόνα (b) για εικόνα κλίµακας του γκρίζου

Η επαναφορά του ελεγκτή “ Algorithm Selection” επιτυγχάνεται µε την σύνδεση της σταθεράς “Algorithm Selection” στην τοπική µεταβλητή (Local Variable) του συγκεκριµένου ελεγκτή.

Page 203: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 199

Όταν έχει επιλεχτεί η χρησιµοποίηση µιας έγχρωµης εικόνας τότε εκτελείται η περίπτωση “Color(RGB) της δοµής Case της τρίτης φάσης του block diagram. Σε αυτή την

ν DSP κατά το κτίσιµο ου αντίστοιχού project του CCS. Tα αρχεία Red.h, Green.h και Blue.h θα πρέπει να αποθηκευτούν στον φάκελο που είναι αποθηκευµένο το αντίστοιχο project.

Η διαδροµή που θα αποθηκευτούν και Blue.h υπολογίζεται πό την διαδροµή του proje πρώτη φάση. Η διαδροµή

project στο CCS µπαίνει ως είσοδο στο Strip Path.vi και αποκόπτεται το τελευταίο τµήµα της δηλαδή το όνοµα του project. H έξοδος του Strip Path.vi συνδέεται στην είσοδο “base path” του Build Path.vi ενώ στην είσοδο “name or relative path” συνδέεται µια string σταθερά που περιέχει το όνοµα του αρχείου που θα δηµιουργηθεί. Με τον τρόπο αυτό υπολογίζεται η ιαδροµή που θα αποθηκευτούν τα αρχεία Red.h, Green.h και Blue.h. Την δηµιουργία και την ποθήκευση αυτών των αρχείων αναλαµβάνει το Write data to file.vi το οποίο δέχεται ως είσοδο την διαδροµή που θα αποθηκευτεί το αντίστοιχο αρχείο, το όνοµα του πίνακα που θα περιέχει το αντίστοιχο αρχείο και τα δεδοµένα του πίνακα. Για την δηµιουργία του Red.h αρχείου στην είσοδο “File Path” του Write to data file.vi συνδέεται η έξοδος του Build Path.vi που δηµιουργεί την διαδροµή αυτού του αρχείου. Στην είσοδο “Array Name” του Write to data file.vi συνδέεται η string σταθερά που περιέχει το όνοµα του πίνακα δηλαδή το R_1d ενώ στην είσοδο “Data” συνδέεται η έξοδος “Image Data 1” του Read BMP and get data.vi που παρουσιάστηκε στην δεύτερη φάση και περιέχει την R συνιστώσα της εικόνας. Η ίδια διαδικασία ακολουθείται για την δηµιουργία των αρχείων Green.h και Blue.h. Όταν επιλεχτεί η χρησιµοποίηση µια εικόνας σε κλίµακα του γκρίζου εκτελείται η περίπτωση “Grayscale” της δοµής Case. Σε αυτή την περίπτωση, ακολουθώντας την διαδικασία που δηµιουργείται το αρχείο Red.h, δηµιουργείται το αρχείο scenary.h στo οποίo υπάρχει ο πίνακας image_in. Ο πίνακας αυτός είναι τύπου unsigned short και περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας. Αυτό το αρχείο πρέπει να δηµιουργηθεί ώστε να φορτωθεί η προς επεξεργασία εικόνα στον DSP κατά το κτίσιµο του αντίστοιχού project του CCS. Το αρχείο scenary.h αποθηκεύεται στον φάκελο που είναι αποθηκευµένο το αντίστοιχο project.

περίπτωση πρέπει να δηµιουργηθούν τα αρχεία Red.h, Green.h και Blue.h στα οποία θα υπάρχουν οι πίνακες R_1d, G_1d και B_1d αντίστοιχα. Οι πίνακες αυτοί είναι τύπου unsigned short και περιέχουν τις συνιστώσες R, G και B της εικόνας. Τα αρχεία αυτά πρέπει να δηµιουργηθούν ώστε να φορτωθεί η προς επεξεργασία εικόνα στοτ

τα αρχεία Red.h, Green.h ct στο CCS που είχε υπολογιστεί στηνα

του

δα

Σχήµα 158. Το block diagram του Write data to file.vi Για την δηµιουργία των αρχείων Red.h, Green.h, Blue.h και scenary.h χρησιµοποιείται το Write data to file.vi, του οποίου το block diagram παρουσιάζεται στο σχήµα 158. Η είσοδος “File Path” περιέχει την διαδροµή και το όνοµα του αρχείου που θα δηµιουργηθεί. Στον φάκελο που είναι αποθηκευµένο το project µπορεί να υπάρχει ήδη κάποιο αρχείο µε το όνοµα που περιέχει η είσοδος “File Path”. Για τον λόγο αυτό η είσοδος “File Path” συνδέεται µε το Delete.vi ώστε να διαγραφεί το αρχείο αυτό. Η έξοδος “dup path” του Delete.vi περιέχει

Page 204: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

200 4. Εφαρµογές

ή και το όνοµα του αρχείου που περιγράφει η είσοδος “File Path” και συνδέεται “file path” του Write Characters to File.vi ώστε να δηµιουργηθεί να νέο αρχείο στην ίδια διαδροµή µε το ίδιο όνοµα. Η είσοδος “Data” περιέχει τα δεδοµένα της εικόνας που θα αποθηκευτούν στο νέο αρχείο. Η είσοδος “Data” συνδέεται µε την είσοδο “array” του Array To Spreadsheet String.vi ώστε ο πίνακας να µετατραπεί σε µια σειρά

αρχεί γήσει το Write data to file.vi. Το περιεχόµενο του αρχείου που θα δηµιουργήσει το Write data to file.vi είναι µια σειρά αλφαριθµητικών χαρακτήρων που

οτην ε Name” και την έξοδο του Array To Spreadsheet String.vi. Αν η είσοδος

χεία 1, 2, 3, και

}; Η έξοδος του Concatenate Strings.vi συνδέεται µε την είσοδο “character string” του Write Characters to File.vi ώστε να γίνει η εγγραφή των δεδοµένων στο νέο αρχείο που περιγράφει η είσοδος “File Path” του Write data to file.vi. Με την παρουσίαση και ανάλυση του Write data to file.vi ολοκληρώνεται η τρίτη φάση

159 γCCS . Η φάση αυτή ολοκληρώνεται όταν ελειώσει ο DSP του DSKC6713 την επεξεργασία της εικόνας.

ακριβώς την ίδια διαδροµ µε την είσοδο

έ

αλφαριθµητικών χαρακτήρων (string) που το ένα στοιχείο θα χωρίζεται µε το επόµενο µε τον χαρακτήρα “,”. H είσοδος “Array Name” περιέχει το όνοµα του πίνακα που θα δηλωθεί στο

ο που θα δηµιουρ

δηµι υργείται από το Concatenate Strings.vi που δέχεται ως εισόδους τρεις string σταθερές, ίσοδο “Array

“Array Name” περιέχει το όνοµα R_1d και η είσοδος “Data” περιέχει τα στοι4 τότε η έξοδος του Concatenate Strings.vi θα είναι:

unsigned char R_1d[IMAGE_SIZE] = { 1 , 2 , 3 , 4

του block diagram του ImageGUI.vi Στην τέταρτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα ίνεται η ρύθµιση του CCS ώστε να χρησιµοποιηθεί το DSKC6713 και ο έλεγχος του ώστε να ξεκινήσει η επεξεργασία της εικόνας

τ

Σχήµα 159. Η τέταρτη φάση του block diagram του ImageGUI.vi To CCS_ Setup_Open.vi φορτώνει το CCStudio Setup. To CCS_Setup_ Clear.vi σβήνει τις προηγούµενες ρυθµίσεις του CCStudio Setup. Το CCS_Setup_Add_ Board.vi φορτώνει στο CCStudio Setup τους οδηγούς του DSKC6713 σύµφωνα µε την διαδροµή που δηλώνει η σταθερά “Path” αφού συνδέεται µε την είσοδο “Driver Path” του subVI. Το CCS_Setup_Save.vi αποθηκεύει τις ρυθµίσεις που επιλέχτηκαν και το CCS_ Setup_Close.vi κλείνει το CCStudio Setup.vi. Στο σηµείο αυτό έχει ολοκληρωθεί η ρύθµιση του CCS για την χρησιµοποίηση του DSKC6713. Το CCS_Open.vi φορτώνει το CCS και το CCS_Open_Project.vi φορτώνει το project του CCS σύµφωνα µε την διαδροµή που περιέχει η είσοδός “Project Path In”. Η διαδροµή που περιέχει η είσοδος “Project Path In” του CCS_Open_Project.vi υπολογίστηκε στην δεύτερη φάση του block diagram του ImageGUI.vi και µετατράπηκε σε µια σειρά αλφαριθµητικών χαρακτήρων µε την χρησιµοποίηση του Path To String.vi. Το CCS_Build.vi

Page 205: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 201 δίνει εντολή στο CCS να κτίσει το project που φορτώθηκε ώστε να δηµιουργήσει το εκτελέσιµο αρχείο (αρχείο µε επέκταση .out). Όταν ολοκληρωθεί το κτίσιµο του project το CCS_Build_Result.vi εξάγει το αποτέλεσµα του κτισίµατος στον ενδείκτη “Build Result” Το CCS_Connect.vi δίνει εντολή στο CCS να συνδεθεί µε την κάρτα δηλαδή µε το DSKC6713. Το CCS_DSP_Reset.vi δίνει εντολή να επανέλθει η κάρτα στις αρχικές τις ρυθµίσεις. Εφόσον δεν έχουν προκύψει λάθη κατά το κτίσιµο το CCS_Download.vi δίνει εντολή στο CCS να φορτώσει τον εκτελέσιµο κώδικα στον DSP που περιέχει και την προς επεξεργασία εικόνα. Επειδή το project κάνει χρήση της RTDX τεχνολογίας χρησιµοποιείται το CCS_RTDX_Enable.vi που ρυθµίζει της παραµέτρους της και την ενεργοποιεί. Στην συγκεκριµένη περίπτωση χρησιµοποιούνται οι προκαθορισµένες ρυθµίσεις της RTDX τεχνολογίας. Το CCS_Run.vi µέσω του CCS, δίνει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. Στην δοµή While έχει τοποθετηθεί το Is_DSP_Running.vi που ελέγχει αν η DSP εκτελεί το πρόγραµµα. Η έξοδος “Running” του Is_DSP_Running.vi παίρνει την τιµή False όταν ο DSP σταµατήσει την εκτέλεση του προγράµµατος που συνεπάγεται την ολοκλήρωση της επεξεργασίας. Με την χρησιµοποίηση του Wait.vi που έχει συνδεθεί µε µια αριθµητική σταθερά που έχει τιµή 200 επιτυγχάνεται η εκτέλεση της δοµής While κάθε 200 msec. Η δοµή While σταµατά να εκτελείται όταν η έξοδος “Running” του Is_DSP_Running.vi πάρει την τιµή False οπότε και ολοκληρώνεται η τέταρτη δάση του block diagram του ImageGUI.vi. Στην πέµπτη φάση του block diagram του ImageGUI.vi γίνεται η ανάγνωση της εικόνας που είναι το αποτέλεσµα της επεξεργασίας του DSP µέσω του RTDX καναλιού “ochan”. Ουσιαστικά η πέµπτη φάση αποτελείται από µια δοµή Case που ελέγχεται από τον ελεγκτή “Image Type”. Όταν έχει επιλεχτεί η χρησιµοποίηση έγχρωµης εικόνας εκτελείται η περίπτωση Color(RGB) της δοµής Case που παρουσιάζεται στο σχήµα 160.

Σχήµα 160. Η πέµπτη φάση του block diagram του ImageGUI.vi για έγχρωµη εικόνα

Η µεταφορά µιας έγχρωµης εικόνας πραγµατοποιείται µε σταδιακή εγγραφή των δεδοµένων της στο αντίστοιχο RTDX κανάλι. Στην πραγµατικότητα κάθε φορά εγγράφεται στο RTDX κανάλι ένας πίνακας µε 256 στοιχεία, εποµένως για να ολοκληρωθεί η µεταφορά µιας έγχρωµης εικόνας έχουν γίνει από τον DSP 256 x 3 = 768 εγγραφές. ∆ηλαδή το RTDX κανάλι όταν ολοκληρώνεται η επεξεργασία µιας έγχρωµης εικόνας περιέχει 768 µηνύµατα (messages). Για να γίνει η ανάκτηση της έγχρωµης εικόνας θα πρέπει να πραγµατοποιηθούν 768 αναγνώσεις του RTDX καναλιού “ochan”. Αυτό επιτυγχάνεται µε τον βρόγχο For που

Page 206: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

202 4. Εφαρµογές περιέχει το RTDX_Read.vi στο οποίο έχει επιλεχτεί το RTDX_Read_SA_UI1 επειδή το περιεχόµενο του RTDX καναλιού είναι πίνακες µε ακέραιους αριθµούς χωρίς πρόσηµο του ενός byte. Στην είσοδο “Channel” του RTDX_Read.vi συνδέεται µια string σταθερά που περιέχει το όνοµα του RTDX καναλιού από το οποίο θα γίνει η ανάγνωση της εικόνας. Η έξοδος του βρόγχου For είναι ένας πίνακα µε διατάσεις 768x256 που µε την βοήθεια του Reshape Array.vi µετατρέπεται σε ένα µονοδιάστατο πίνακα µε 768x256=196608 στοιχεία. Τα πρώτα 65536 στοιχεία του πίνακα αποτελούν την R συνιστώσα της εικόνας τα επόµενα 65536 στοιχεία αποτελούν την G συνιστώσα και τα τελευταία 65536 στοιχεία αποτελούν την B συνιστώσα. Ο διαχωρισµός των συνιστωσών της εικόνας επιτυγχάνεται µε την χρήση των Array Subset.vi και µε την λογική που παρουσιάζεται στο σχήµα 160. Οι έξοδοι των Array Subset.vi είναι έξοδοι και της δοµής Case και περιέχουν τις συνιστώσες της εικόνας που ανακτήθηκε. Όταν έχει επιλεχτεί η χρησιµοποίηση µιας εικόνας κλίµακας του γκρίζου εκτελείται η περίπτωση Grayscale της δοµής Case που παρουσιάζεται στο σχήµα 161.

Σχήµα 161. Η πέµπτη φάση του block diagram του ImageGUI.vi για εικόνα κλίµακας του γκρίζου

Η µεταφορά µιας εικόνας σε κλίµακα του γκρίζου πραγµατοποιείται µε σταδιακή εγγραφή των δεδοµένων της στο αντίστοιχο RTDX κανάλι. Στην πραγµατικότητα κάθε φορά εγγράφεται στο RTDX κανάλι ένας πίνακας µε 256 στοιχεία, εποµένως για να ολοκληρωθεί η µεταφορά µιας εικόνας σε κλίµακα του γκρίζου έχουν γίνει από τον DSP 256 εγγραφές. ∆ηλαδή το RTDX κανάλι όταν ολοκληρώνεται η επεξεργασία µιας εικόνας σε κλίµακα του γκρίζου περιέχει 256 µηνύµατα (messages). Για να γίνει η ανάκτηση της έγχρωµης εικόνας θα πρέπει να πραγµατοποιηθούν 256 αναγνώσεις του RTDX καναλιού “ochan”. Αυτό επιτυγχάνεται µε τον βρόγχο For που περιέχει το RTDX_Read.vi στο οποίο έχει επιλεχτεί το RTDX_Read_SA_UI1 επειδή το περιεχόµενο του RTDX καναλιού είναι πίνακες µε ακέραιους αριθµούς χωρίς πρόσηµο του ενός byte. Στην είσοδο “Channel” του RTDX_Read.vi συνδέεται µια string σταθερά που περιέχει το όνοµα του RTDX καναλιού από το οποίο θα γίνει η ανάγνωση της εικόνας. Η έξοδος του βρόγχου For είναι ένας πίνακα µε διατάσεις 256x256 που µε την βοήθεια του Reshape Array.vi µετατρέπεται σε ένα µονοδιάστατο πίνακα µε 256x256=65536 στοιχεία που περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας που ανακτήθηκε. Η έξοδος του Reshape Array.vi συνδέεται µε τις τρεις εξόδους δεδοµένων της δοµής Case. Στο σηµείο αυτό ολοκληρώνεται η πέµπτη φάση του block diagram του ImageGUI.vi.

Page 207: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 203 Στην έκτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα 162 πραγµατοποιείται ο τερµατισµός του CCS και η αναπαράσταση της εικόνας που ανακτήθηκε.

Σχήµα 162. Η έκτη φάση του block diagram του ImageGUI.vi Το CCS_DSP_Halt.vi δίνει εντολή στον DSP µέσω του CCS να σταµατήσει την εκτέλεση του προγράµµατος. Η χρησιµοποίηση του CCS_DSP_Halt.vi στην συγκεκριµένη περίπτωση είναι προαιρετική αφού αν δεν έχει προκύψει κάποιο σφάλµα ή αν δεν έχει δοθεί σχετική εντολή από τον χρήστη µέσω του CCS χειροκίνητα, ο DSP θα έχει ήδη σταµατήσει την εκτέλεση του προγράµµατος. Το CCS_RTDX_Disable.vi απενεργοποιεί την RTDX τεχνολογία. Το CCS_Close_Project.vi κλείνει το project που είχε ανοιχτεί στο CCS και το CCS_Close.vi κλείνει το CCS Με το RGB2picture.vi γίνεται η αναπαράσταση της εικόνας που ανακτήθηκε από τον DSP στον ελεγκτή “Image Out”. Στις εισόδους “Red Channel”, “Green Channel” και “Blue Channel” του RGB2picture.vi συνδέονται οι αντίστοιχοι έξοδοι δεδοµένων της δοµής Case της πέµπτης φάσης του block diagram. Στην είσοδο “reference” συνδέεται µια αναφορά στον ενδείκτη “Image Out” ενώ στην οµάδα εισόδων “Draw Area Size” συνδέεται µια οµάδα σταθερών που καθορίζει τις διαστάσεις της εικόνας που στην συγκεκριµένη περίπτωση είναι 256x256. Στην έξοδο “Image Out” του RGB2picture.vi συνδέεται ο ενδείκτης “Image Out” που αναπαριστά την εικόνα που ανακτήθηκε.

Σχήµα 163. Το block diagram του RGB2picture.vi

Page 208: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

204 4. Εφαρµογές Στο σχήµα 163 παρουσιάζεται το block diagram του RGB2picture.vi στο οποίο οι είσοδοι “Red Channel”, “Green Channel” και “Blue Channel” περιέχουν τις συνιστώσες R, G και B µιας έγχρωµης εικόνας ως µονοδιάστατους πίνακες µε ακέραιους χωρίς πρόσηµο του 1 byte. Με την χρήση των Join Numbers.vi οι πίνακες που περιέχουν οι είσοδοι “Red Channel”, “Green Channel” και “Blue Channel” µετατρέπονται σε ένα µονοδιάστατο πίνακα που έχει τον ίδιο αριθµό στοιχείων µε τους πίνακες που περιέχουν οι είσοδοι. Ο νέος πίνακας συνδέεται στην έξοδο “Flatten RGB data” και τα στοιχεία του είναι ακέραιοι αριθµοί των τεσσάρων bytes. Το πρώτο (πιο σηµαντικό) byte κάθε στοιχείου αυτού του πίνακα έχει την τιµή 0, το δεύτερο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της R συνιστώσας, το τρίτο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της G συνιστώσας και το τέταρτο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της Β συνιστώσας. Με το Reshape Array.vi ο παραπάνω πίνακας µετατρέπεται σε ένα πίνακα µε διαστάσεις που καθορίζει η είσοδος “Draw Area Size” δηλαδή µε τις διαστάσεις της εικόνας που στην συγκεκριµένη περίπτωση είναι 256x256. Η έξοδος του Reshape Array συνδέεται µε την έξοδο “Unflatten RGB data” και µε την είσοδο “Data (RGB format)” του Draw Unflattened Pixmap.vi. To Draw Unflattened Pixmap.vi είναι ένα πολυµορφικό VI στο οποίο επιλέγεται το Draw True-Color Pixmap και στην έξοδο “new picture” αναπαριστά την εικόνα της οποία τα δεδοµένα περιέχονται στην είσοδο“Data (RGB format)”. Η έξοδος “new picture” του Draw Unflattened Pixmap.vi συνδέεται µε την έξοδο “Image Out” του RGB2picture.vi Η είσοδος “reference” του RGB2picture.vi που περιέχει µια αναφορά στον ενδείκτη “Image Out” καθορίζει το στοιχείο το οποίο αφορά η ιδιότητα “DrawAreaSize”. Η ιδιότητα “DrawAreaSize” αφορά µόνο ελεγκτές και ενδείκτες εικόνας (pictures controls and indicators) και διαφοροποιεί το µέγεθός τους σύµφωνα µε την τιµή που έχει η οµάδα που συνδέεται µε αυτή την ιδιότητα. Στην συγκεκριµένη περίπτωση η οµάδα εισόδων “Draw Area Size” που περιέχει τις διατάσεις της εικόνας συνδέεται µε την ιδιότητα “DrawAreaSize”. Με τον τρόπο αυτό εξασφαλίζεται ότι ο ενδείκτης εικόνας (στην συγκεκριµένη περίπτωση ο ελεγκτής “Image Out”) θα έχει τις διαστάσεις τις εικόνας που θα αναπαραστήσει. Το RGB2picture.vi µπορεί εκτός από έγχρωµες εικόνες να αναπαραστήσει και εικόνες κλίµακας του γκρίζου αρκεί ο µονοδιάστατος πίνακας µε την πληροφορία της εικόνας να συνδεθεί ταυτόχρονα στις εισόδους “Red Channel”, “Green Channel” και “Blue Channel”. Στο σηµείο αυτό ολοκληρώθηκε η περιγραφή της έκτης φάσης και του block diagram του Image GUI.vi.

Page 209: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 205 4.2.6 Αποτελέσµατα - Συµπεράσµατα Στο σχήµα 164 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ανίχνευση των ακµών της εικόνα cameraman.bmp που αναπαρίσταται στον ενδείκτη “Image in”. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 164. To front panel του ImageGUI.vi Στο σχήµα 165 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η εφαρµογή του ευθύ και του αντίστροφου DCT µε χρήση του 1D-DCT στην εικόνα peppers.bmp που αναπαρίσταται στον ενδείκτη “Image in”. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 165. To front panel του ImageGUI.vi

Page 210: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

206 4. Εφαρµογές Στο σχήµα 166 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η εφαρµογή του ευθύ και του αντίστροφου DCT µε του αλγόριθµου McGovern στην εικόνα peppers.bmp που αναπαρίσταται στον ενδείκτη “Image in”. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 166. To front panel του ImageGUI.vi Στο σχήµα 167 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί τµήµα της κωδικοποίησης και της αποκωδικοποίησης σύµφωνα µε το πρότυπο JPEG στην εικόνα boat.bmp που αναπαρίσταται στον ενδείκτη “Image in”. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 167. To front panel του ImageGUI.vi

Page 211: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

LabVIEW to CCS Link 207 Στο σχήµα 168 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ισοστάθµιση του ιστογράµµατος της εικόνας house_256rgb.bmp στον RGB χώρο. Η αρχική εικόνα αναπαρίσταται στον ενδείκτη “Image in” ενώ το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 168. To front panel του ImageGUI.vi Στο σχήµα 169παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ισοστάθµιση του ιστογράµµατος της εικόνας house_256rgb.bmp στον YCbCr χώρο. Η αρχική εικόνα αναπαρίσταται στον ενδείκτη “Image in” ενώ το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης “Image Out”

Σχήµα 169. To front panel του ImageGUI.vi

Page 212: LabVIEW to CCS Link - hep.upatras.gr · του matlab µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του matlab και του

208 5. Βιβλιογραφία 5. Βιβλιογραφία [1] National Instruments, “LabVIEW Test Integration Toolkit for TI DSP”, Semptember

2003. [2] The Mathworks, “Link fot Code Composer Studio Development Tools, User’s Guide

version 2”, 2006. [3] National Instruments, “LabVIEW User Manual”, April 2003. [4] Texas Instruments, “Code Composer Studio IDE, Getting Started Guide”, SPRU509F,

May 2005. [5] Texas Instruments, “Real–Time Data Exchange”, SPRY012, Feb.1998. [6] Nasser Kehtarnavaz and Namjin Kim, “Digital Signal Processing System – Level

Design Using LabVIEW”, Elsevier, 2005. [7] Rulph Chassaing, Digital “Signal Processing and Applications with the C6713 and

C6416 DSK”, John Wiley & Sons, 2005. [8] Sem M. Kuo, Bob H.Lee and Wenshun Tian, “Real-Time Digital Signal Processing”,

John Wiley & Sons, 2006. [9] Istvan A.Szabo and Lajos Harasztosi, “Ways to use LabVIEW to aid DSP education”,

Proc. of the EDERS-2006, 2P

ndP European DSP Education & Research Symposium,

Munich, Germany, 4 April, 2006. [10] E. Zigouris, D. Petropoulos, M. Kristalli and M. Hatzigiorgaki., “An integrated low-cost

laboratory enviroment for digital image processing applications”, Proc. of the ICSES’04, International Conference on Signals and Electronics Systems, pp.569-572, Poznan, Poland, 13-15 September, 2004.