Presentation is loading. Please wait.

Presentation is loading. Please wait.

TinyOS and Sensor Network Applications Sinem Coleri WOW - 01/18/2002.

Similar presentations


Presentation on theme: "TinyOS and Sensor Network Applications Sinem Coleri WOW - 01/18/2002."— Presentation transcript:

1 TinyOS and Sensor Network Applications Sinem Coleri WOW - 01/18/2002

2 Outline TinyOS – Analog Data Interface – Magnetometer – Digital Data Interface – Tree Construction Sensor Network Applications – Parking Lot – Traffic Light Controller

3 Analog Data Interface 8-channel MUX ADC7 ADC6 ADC5 ADC3 ADC4 ADC2 ADC1 ADC0 ADC Multiplexer Select Bits (2 1 0) A/D converter ADC9..0 ADC Data Register ADENADSC ADC Control Register ADIF ADIE Analog Data Source1 Analog Data Source2 8-channel analog multiplexer Allows to connect more than one analog sensor A/D Converter Converts analog input voltage to 10-bit digital value Operates in single conversion mode Conversion initiated by user

4 Analog Data Interface 8-channel MUX ADC7 ADC6 ADC5 ADC3 ADC4 ADC2 ADC1 ADC0 ADC Multiplexer Select Bits (2 1 0) A/D converter ADC9..0 ADC Data Register ADENADSC ADC Control Register ADIF ADIE Analog Data Source1 Analog Data Source2 AIM: sample a specific analog data source STEPS: Call command ADC_GET_DATA with argument of channel number Continue execution or sleep Take digital data while executing interrupt handler upon receiving ADC interrupt

5 Analog Data Interface 8-channel MUX ADC7 ADC6 ADC5 ADC3 ADC4 ADC2 ADC1 ADC0 ADC Multiplexer Select Bits (2 1 0) A/D converter ADC9..0 ADC Data Register ADENADSC ADC Control Register ADIF ADIE ADMUX bits 2..0 Used to select which analog input is connected to ADC Specified as an argument in command ADC_GET_DATA ADEN-ADC Enable Used to turn ADC on and off Set in command ADC_GET_DATA and cleared in interrupt handler to save power

6 Analog Data Interface ADSC-ADC Start Conversion Used to start conversion when set and cleared by hardware at the end of conversion Set in command ADC_GET_DATA ADIE-ADC Interrupt Enable Used to enable ADC interrupt ADIF-ADC Interrupt Flag Used to learn the end of conversion and register update Set by hardware Interrupt handler executed if both ADIE and global interrupt enable bits are set when ADIF set 8-channel MUX ADC7 ADC6 ADC5 ADC3 ADC4 ADC2 ADC1 ADC0 ADC Multiplexer Select Bits (2 1 0) A/D converter ADC9..0 ADC Data Register ADENADSC ADC Control Register ADIF ADIE

7 Magnetometer Function: – To detect magnetic materials, such as cars, from the change in the earth’s magnetic field Magnetometer circuit: – Magneto-resistive elements configured in an H-bridge – Software controlled nulling in order not to saturate amplifier R R R+  R Vcc Amplifier

8 Magnetometer Green trace is the raw signal. Yellow is low-pass filtered signal. Red is high-pass filtered yellow. Vertical lines mark the start/stop points of the mote's determination that a vehicle is present.

9 Magnetometer In high way or for the traffic light controller, – The previous algorithm only detects cars with speeds in a specific interval. Higher speed cars missed while passing through high-pass filter in removing sampling noise Lower speed cars missed while passing through high pass filter in detecting the change in the field – Solution Adjust the sampling rate high enough to detect highest speed cars Consider the absolute magnetic field to detect lower speed cars

10 Magnetometer In parking lot, – Nodes can make incorrect decisions Magnetic field changed by –Car passing between sensors looking for a place or going away –Car going to the adjacent slot Once node makes a mistake, it cannot correct on the next sample since it only check the filter output – Solution Consider the absolute magnetic field –Procedure: Keep the DC offset value and ADC reading value when there is no car Compare current DC offset value and ADC reading value to the original one to determine the car –Possible questions: The magnetic field change from the car above the sensor may not be higher compared to combined effect from the adjacent cars Can we use other sensors, such as light sensor?

11 Digital Data Interface No example dealing with digital data I2C protocol can be used to connect more than one digital sensor Main processor as master, digital sensors as slaves Communication between master and one of the slaves Master starts transmission Master selects the slave to communicate by a 8-bit address and the direction

12 Tree Construction Each data packet destination is Base Station Nodes only need to determine next hop to reach BS from the shortest path Set of optimal routes from all sources to a given destination form a tree routed at destination AIM: to form a tree routed at Base Station and consisting of the optimal routes from all sensor nodes to BS

13 Tree Construction 0 Base 1 1 2 2 3 Base Station Periodically broadcasts ROUTE_UPDATE packet – Source address = Base ID, num_of_hops = 0 Sensor Node Keeps its parent and its depth in the tree When it takes ROUTE_UPDATE packet – If no update received for an expiration time or num_of_hops < depth Update parent = source address, depth = num_of_hops+1 Broadcast ROUTE_UPDATE with source address = own address, num_of_hops = depth

14 Tree Construction 0 Base 1 2 4 3 5 Problem in TinyOS: No queue -> Drop packet if transmitting another packet – Connectivity may be lost If 2 and 4 drop packets, then 3 and 5 will be disconnected – Nodes may choose parent over a longer path If 2 drops packet but 4 does not drop packet, 3 will be connected to BS over 3 hops instead of 2 Solution: Queued tree construction: – Each node puts route packet to the head of the queue Reason: –Packets with higher num_of_hop field arrive earlier -> increase in number of route packets broadcasted If queue is long in 2 and is short in 1 and 4, packet from 4 come earlier

15 Parking Lot: Scenario #1 Suppose Sensor nodes are located as in the figure below Each sensor node has a different ID Each sensor node location is known by BS BS

16 Parking Lot: Scenario #1 Tree construction same as explained before: BS broadcasts route update packet Each sensor node determines its parent from the route update packets BS determines the location of free spaces from Data packet including data and ID of source node Location information mapping ID to location BS

17 Parking Lot: Scenario #2 Suppose Sensor nodes are located as in the figure below Each sensor node has a different ID Sensor node locations are not known by BS BS

18 Parking Lot: Scenario #2 BS Determining the location of the nodes based on RF communication: Assumptions: Idealized radio model Perfect spherical range of d Identical transmission range for all radios Knowledge of the location of the two second-hop nodes d d

19 Parking Lot: Scenario #2 Observations: The nodes on the same diagonal have the same depth in tree Each node takes either one or two route update packets with min. num_of_hop field Algorithm: Each node keeps the sources of the route update packets with min. num_of_hop field as parents but choose one for routing Each node include its depth and its parents in data packet BS determines the location of nodes starting from the nodes in #3 diagonal BS #2 #9 #4#5#6#7 #8 #15 #10 #11 #12 #13 #14 #3

20 Parking Lot: Scenario #3 Suppose Sensor nodes are located as in the figure below Sensor nodes are not assigned an ID Sensor node locations are not known by BS BS

21 Parking Lot: Scenario #3 IDEA: Each node assigns itself an address of type (depth, offset) from the route update packets received from neighbors ASSUMPTION: Two second-hop nodes((1,6) and (1,7)) know their address ALGORITHM: Wait for some constant time for other packets after receiving route update packet Keep (depth,offset) of minimum depth packets Assign its (depth,offset) by ASSIGN_ADDRESS procedure Send route update and data packets with this (depth,offset) address BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

22 Parking Lot: Scenario #3 ASSIGN_ADDRESS Procedure: Assign (minimum depth + 1) to depth If number of sources with min. depth is 1 If its depth + its offset = 7 Assign (offset – 1) to offset Else if its offset is 7 Assign 7 to offset Else(means that it missed one packet) Assign either (offset) or (offset – 1) to offset Else if number of sources with min. depth is 2 Assign minimum of their offset to offset This can easily be generalized to any dimension BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

23 Parking Lot: Scenario #3 NEXT STEP-> CLUSTERING GOAL: To conserve power – Include data aggregation into the scheme To distribute power consumption – Prevent nodes closest to BS from routing a large number of data packets to BS To satisfy real-time delivery requirements ALGORITHM: Route update packets include cluster width and length Nodes find their coordinates wrt. cluster head by choosing the bottom left corner as cluster head BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

24 Parking Lot: Scenario #3 EXAMPLE: Width=4, length=4 (x,y)=(depth,offset) (xh,yh)=coordinates wrt.cluster head xh = mod(x+y-7,width) = mod(x+y-7,4) yh = mod(7-y,length) = mod(7-y,4) Distance to cluster head in terms of number of hops = xh + yh BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

25 Parking Lot: Scenario #3 Hierarchy schemes: 1) AIM: To conserve power by aggregating data at cluster head ALGORITHM: Each node in the cluster – Sends their data packet to cluster head – Forwards others’ packet to cluster head Cluster head – Does data aggregation for the data packets not marked as “aggregated” and mark it as ‘aggregated” – Sends the aggregated data packet to one of its parents – Forwards data packets marked as “aggregated” to one of its parents BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

26 Parking Lot: Scenario #3 Hierarchy schemes: 2) AIM: To conserve power by data aggregation(same as 1) To distribute power consumption by allowing cluster heads to send from one cluster to the other To satisfy real-time delivery requirements ALGORITHM: Each node in the cluster(same as 1) – Sends and forwards data packets to cluster head Cluster head – Does data aggregation for the data packets – Sends the aggregated data packet over cluster distance Cluster head can change inside the cluster in order to avoid cluster heads from dying BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

27 Parking Lot: Scenario #3 Hierarchy schemes: 3) AIM: To conserve power by data aggregation(same as 1) ALGORITHM: Each node in the cluster – Waits proportional to (max number of hops to cluster head – distance to cluster head) – Aggregates its own data with the received data – Sends the aggregated data packet to cluster head Cluster head – Does data aggregation for the incoming packets – Sends the aggregated data packet either as a normal packet or over cluster distance BS (0,7)(1,7)(2,7)(3,7)(5,7)(4,7)(6,7)(7,7) (1,6) (4,5)(3,5)(2,5) (8,6)(7,6)(6,6)(5,6)(4,6)(3,6)(2,6) (7,4)(6,4)(5,4)(4,4)(3,4) (9,5)(8,5)(7,5)(6,5)(5,5) (10,3)(9,3)(8,3)(7,3)(6,3)(5,3)(4,3) (10,4)(9,4)(8,4) (6,1) (12,2)(11,2)(10,2)(9,2)(8,2)(7,2)(6,2)(5,2) (11,3) (14,0)(9,0)(8,0)(7,0) (13,1)(12,1)(11,1)(10,1)(9,1)(8,1)(7,1) (13,0)(12,0)(11,0)(10,0)

28 Conclusion TinyOS – Analog Data Interface How to get data, conserve energy and connect more than one analog data source – Magnetometer How it works, how to process the data – Digital Data Interface How to connect more than one digital data source – Tree Construction How TinyOS constructs tree, how to make it more efficient Sensor Network Applications – Parking Lot How to estimate the location of nodes based on RF communication How to send data to Base Station – Traffic Light Controller How to send data to Base Station How to adjust the duration of traffic lights


Download ppt "TinyOS and Sensor Network Applications Sinem Coleri WOW - 01/18/2002."

Similar presentations


Ads by Google