wsn rf lab

Post on 12-Jan-2016

52 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

WSN RF LAB. RF2500 NODES MSP430 CC. PHY initialization. SimpliciTI. - PowerPoint PPT Presentation

TRANSCRIPT

1

WSN RF LAB

RF2500 NODES

MSP430 CC

2

3

4

5

6

7

8

9

10

11

12

13

PHY initialization

14

15

16

17

18

19

SimpliciTI

• Το SimpliciTI είναι ένα πρωτόκολλο δικτύου RF για μικρά RF δίκτυα. Έχει σχεδιαστεί για εύκολη εφαρμογή και ανάπτυξη με τα RF αναπτυξιακά εργαλεία της Texas Instruments όπως το eZ430-RF2500 υποστηρίζοντας τις οικογένειες πομποδεκτών CC1XXX/CC25XX/CC430. Όλα τα απαραίτητα εργαλεία(κώδικες κλπ) υπάρχουν διαθέσιμα και στο CD που περιέχεται στο πακέτο.

20

21

22

IEEE 802.15.4

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

eZ430-RF2500

39

40

eZ430-RF2500

• Το eZ430-RF2500 είναι ένα ολοκληρωμένο αναπτυξιακό εργαλείο που περιλαμβάνει όλο το υλικό και το λογισμικό που απαιτείται για την λειτουργία ενός ασύρματου συστήματος με τους MSP430 σε ένα USB stick. Χρησιμοποιεί τον MSP430F22x4 και τον CC2500, έναν πολυκάναλο πομποδέκτη RF για χαμηλής ισχύος ασύρματες εφαρμογές.

• Ο USB προγραμματιστής του eZ430-RF2500 προσφέρει έναν ελεγκτή UART δημιουργώντας μια θύρα για απευθείας σειριακή επικοινωνία με το αναπτυξιακό. Επίσης μπορεί να προγραμματίσει και τις εκδόσεις των eZ430-F2013 και eZ430-F2012.

41

eZ430-RF2500

42

MSP430F2274

Το χρησιμοποιούμενο MSP430F2274 έχει 40 ακροδέκτες:• Οι 4 χρησιμοποιούνται σε αναλογικές λειτουργίες

τροφοδοσίας• 2 χρησιμοποιούνται για εργοστασιακό έλεγχο • 2 χρησιμοποιούνται για την σύνδεση εξωτερικού

κρυστάλλου κάτι που δεν εφαρμόζεται στην πλατφόρμα eZ430-RF2500

• 32 ακροδέκτες οργανωμένους σε 4 ψηφιακές πόρτες

43

44

eZ430-RF2500 (σχηματικό διάγραμμα)

45

Ez430-RF2500 (BOM Bill of Materials)

46

Ο μικροελεγκτής MSP430 και ο πομποδέκτης CC2500 διασυνδέονται με SPI 4-wire (κόκκινες γραμμές) και με δύο γραμμές για interrupts (πράσινες διακεκομμένες).

47

Antenna

• Για όλους τους τύπους των κεραιών μία είναι η κοινή προδιαγραφή: πρέπει να διασφαλίζεται 50 Ohm σύνθετη αντίσταση μεταξύ πομποδέκτη και κεραίας ώστε να διασφαλίζεται η ελάχιστη εξασθένηση και η μέγιστη μεταφορά ισχύος (higher power efficiency).

• Δύο είναι οι γενικές κατηγορίες κεραιών : differential και single ended.

• Οι περισσότεροι πομποδέκτες έχουν διαφορικές εισόδους

48

Balunced-unbalanced (Balun)

49

Λεπτομέρειες για κεραίες….

• Οι Κεραίες με αναφορά σε ένα σημείο (Single ended antennas) οδηγούνται από ένα σήμα που αναφέρεται στην γή (σημείο αναφοράς του κόμβου). Επειδή οι πομποδέκτες (transceivers) έχουν διαφορικές εισόδους (differential inputs), είναι αναγκαίο ένα κύκλωμα για την σχετική μετατροπή (unbalanced to balanced και αντιστρόφως). Αυτό το κύκλωμα αναφέρεται σαν “balun” (BALanced - UNbalanced).

50

Τύποι κεραιών

Οι κεραίες που συνήθως χρησιμοποιούνται σε κόμβους ασυρμάτων δικτύων αισθητήρων είναι:

• Τυπωμένης πλακέτας (pcb antenna)• Σύρματος (wire antenna)• Κεραία τύπου ολοκληρωμένου (Chip

antenna)Μια κεραία τύπου chip χρησιμοποιείται στο

eZ430-RF2500

51

52

CC2500• Low-Cost Low-Power 2.4 GHz RF TransceiverAnalog Features• OOK, 2-FSK, GFSK, and MSK (minimum-shift keying) supported• Gaussian Frequency-Shift Keying (GFSK) is a type of Frequency

Shift Keying modulation that uses a Gaussian filter to smooth positive/negative frequency deviations, which represent a binary 1 or 0. It is used by DECT, Bluetooth[1], Cypress WirelessUSB, Nordic Semiconductor[2], Texas Instruments LPRF and z-wave devices. For Bluetooth the minimum deviation is 115 kHz.

• Suitable for frequency hopping and multichannel systems due to a fast settlingfrequency synthesizer with 90 us settling time

53

54

55

Απλό παράδειγμα TX/RX με RF2500

• Στόχος: Στο πρώτο παράδειγμα 2 RF2500 προγραμματίζονται με τον ίδιο κώδικα και παραμένουν σε κατάσταση Rx. Όταν πατηθεί ένα κουμπί σε οποιοδήποτε από τα δύο, στέλνει ένα μήνυμα και αλλάζει την κατάσταση (toggles) του κόκκινου LED. Ο κόμβος που λαμβάνει το μήνυμα ασύρματα αλλάζει την κατάσταση (toggles) του πράσινου LED.

56

57

Drivers…

• $PROJ_DIR$\..\drivers\bsp

• $PROJ_DIR$\..\drivers\bsp\drivers

• $PROJ_DIR$\..\drivers\bsp\boards\EZ430RF

• $PROJ_DIR$\..\drivers\mrfi

58

Drivers…

• Bsp (board support package) (αρχεία σχετικά με τις λεπτομέρειες των πλακετών των κόμβων π.χ. πόσα leds, σε ποιους ακροδέκτες ..)

• mrfi (minimal rf interface) (πως επικοινωνεί ο μικροελεγκτής με τον πομποδέκτη στην πλακέτα του κόμβου, πως υλοποιείται η SPI επικοινωνία…)

59

Drivers…

Additional include directories Defined symbols \bsp →Board Support Package Οδηγοί αρχικοποίησης \bsp\drivers →buttons & leds \bsp\boards\EZ430RF →Ορισμός συσκευής \mrfi →Minimal RF Interface Οδηγοί αρχικοποίησης

MRFI_CC2500

Ορισμός RF συσκευής

60

Απλό παράδειγμα TX/RX με RF2500

• INTERRUPT on button press (no debounce!!)

• LPM0 after servicing the interrupt

• Send data to the proper node (address, frequency channel )

61

#include "mrfi.h“ #include "radios/family1/mrfi_spi.h" int main(void){ BSP_Init(); P1REN |= 0x04; P1IE |= 0x04; MRFI_Init(); MRFI_WakeUp(); MRFI_RxOn(); __bis_SR_register(GIE+LPM4_bits);}void MRFI_RxCompleteISR(){ P1OUT ^= 0x02;}#pragma vector=PORT1_VECTOR__interrupt void Port_1 (void){ P1IFG &= ~0x04; mrfiPacket_t packet; packet.frame[0]=8+20; MRFI_Transmit(&packet, MRFI_TX_TYPE_FORCED); P1OUT ^= 0x01;}

Ο κώδικας…

62

• Line 4 is a function from the drivers (right-click on it, and choose Go to definition of "BSP_Init()" if you want to know) which disables the watchdog, initializes the MCLK at 8MHz, sets LED ports as outputs and the button port as input. Note that it does neither enables the internal resistor of the button, nor enables interrupts. This is done on lines 5 and 6.

•Line 7. MRFI stands for Minimal Radio-Frequency Interface; functions starting with MRFI are used to drive the CC2500 radio chip. MRFI_Init() initializes the 6 wires between the MSP430 and the CC2500, powers-up the CC2500 and configures the CC2500 47 registers and turns on interrupts from the CC2500;

•Line 8 wakes up the radio, i.e. it turns on the 26MHz crystal attach to it without entering Rx or Tx mode;

• Line 9 switches the radio to Rx mode; from this line on, it can receive packets, in which case the interrupt function MRFI_RxCompleteISR is called.

Ο κώδικας…

63

Ο κώδικας…

• BSP_Init() → Απενεργοποιεί τον watchdog timer, ορίζει συχνότητα λειτουργίας του MCLK στα 8MHz, τα Led σαν εξόδους και το button σαν είσοδο.

• MRFI_Init()→ Ενεργοποιεί την σύνδεση του μικροελεγκτή με τον πομποδέκτη μέσω (SPI) και αρχικοποιεί κατάλληλα τους καταχωρητές του CC2500.

• MRFI_WakeUp()→ Ξεκινά την RF επικοινωνία ενεργοποιώντας τον κρύσταλλο στο CC2500.

64

65

Ο κώδικας…

• Μπορούμε να αλλάξουμε την συχνότητα εκπομπής επιλέγοντας διαφορετικό κανάλι προσθέτοντας τις παρακάτω γραμμές κώδικα όπου χρειάζεται αφού τις συμπληρώσετε με τις κατάλληλες τιμές για την μεταβλητή ΧΧ που αντιστοιχεί στο κανάλι:

• #include "radios/family1/mrfi_spi.h"• . . . .• mrfiSpiWriteReg(CHANNR, XX );

66

Επιλέγοντας Συχνότητα

• Το CC2500 μπορεί να εκπέμψει στην περιοχή συχνοτήτων 2400.0-2483.5MHz της ISM ζώνης.

• Το chip υποδιαιρεί το φάσμα συχνοτήτων 2400.0-2483.5 MHz σε κανάλια με μια ρυθμιζόμενη απόσταση μεταξύ των καναλιών-channel spacing. Εξ’ ορισμού στο CC250 η απόσταση αυτή είναι 200kHz. Το channel 0 αντιστοιχεί στα 2433.0Mhz, το channel 1 στα 2433.2Mhz, και ούτω καθ’ εξής. Το κανάλι ρυθμίζεται με τον καταχωρητή CHANNR.

67

68

69

Μια μεταβλητή τύπου mrfiPacket_t είναι μια δομή που αποτελείται από δύο τμήματα:• packet.frame• packet.rxMetrics

Το packet.frame είναι το πλαίσιο (frame) που πρόκειται να εκπεμφθεί. Το πρώτο byte είναι το μήκος-Length της εκπεμπόμενης πληροφορίας-payload μαζί με τις διευθύνσεις του αποστολέα-source και του παραλήπτη- destination. Με την συγκεκριμένη υλοποίηση του οδηγού- driver οι διευθύνσεις κωδικοποιούνται σε4 bytes, με αποτέλεσμα το Payload length να είναι 20 bytes. Το CC2500 δεν πραγματοποιεί κάποιο είδος φιλτραρίσματος στις διευθύνσεις και επομένως δεν ασχολούμαστε με τις τιμές των πεδίων διεύθυνσης-address fields.

Ο κώδικας…

70

Το τμήμα packet.rxMetrics άφορά στατιστικά δεδομένα του λαμβανόμενου πακέτου.

Το πρώτο byte είναι η ένδειξη της έντασης του λαμβανόμενου σήματος Received Signal Strength Indicator (RSSI) κατά την ανίχνευση της λέξης συγχρονισμού- sync word detection. Είναι το επίπεδο του λαμβανόμενου σήματος σε dBm.

Το επόμενο bit δηλώνει αν ο έλεγχος Cyclic Redundancy Check (CRC) ήταν επιτυχής. Στην κανονική λειτουργία του το CC2500 απορρίπτει τα πακέτα με ανεπιτυχή CRC έλεγχο, επομένως στην πράξη αυτό το bit είναι πάντα1). Τα τελευταία 7 bits είναι η ένδειξη ποιότητας της ζεύξης Link Quality Indicator (LQI). Το LQI δίνει μια εκτίμηση ποιότητας συσσωρεύοντας τα σφάλματα αποδιαμόρφωσης των 64 συμβόλων για τα δεδομένα μετά την λέξη συγχρονισμού.

Ο κώδικας…

71

Συνεχόμενες εκπομπές

• Βάζοντας σχόλιο στην γραμμή 19, μόλις πιέζουμε τον διακόπτη στον κόμβο, ο κόμβος που θα στέλνει έναν ατελείωτο αριθμό μηνυμάτων. Αυτό οφείλεται στο ότι δεν “καθαρίζεται” η σημαία εξυπηρέτησης της δακοπής και εκτελείται ξανά και ξανά η σχετική ρουτίνα εξυπηρέτησης.

72

73

74

top related