Views
5 years ago

Synthèse de haut-niveau de contrôleurs ultra-faible consommation ...

Synthèse de haut-niveau de contrôleurs ultra-faible consommation ...

tel-00553143, version 1

tel-00553143, version 1 - 6 Jan 2011 128 Experimental setup and results Ext.Event T receiveData() Timer 100 ms MT1 MT2 data_Received MT5 turnOff() MT3 light_Switched timeOut_NoData ack_Sent lightOn() MT4 WakeUp Beacon (Flash) rIdx, rIdy (Flash) sendBeacon() beacon_Sent sendAck() Received Data (gated RAM) tIdx, tIdy (gated RAM) Ack Frame (Flash) tIdx, tIdy (gated RAM) Received Data (gated RAM) Previous Data (gated RAM) LED (I/O peripheral) ack_notOK not_received_Beacon MT11 turnOff() Ext.Event B counter() wait() Push Button MT6 MT7 MT8 wait_Done ack_OK MT9 wait_Beacon rIdx, rIdy (gated RAM) receiveBeacon() received_Beacon data_Sent MT10 Counter period (Flash) Wait time (gated RAM) Sent Data (gated RAM) tIdx, tIdy (gated RAM) rIdx, rIdy (gated RAM) sendData() receiveAck() (a) TFG for receive mode (b) TFG for transmit mode Figure 6.5: TFGs presenting the micro-tasks running during a lamp switching application. Receiver) MAC protocol [84]. Briefly speaking, data transmission by a transmitter node is initiated upon reception of a wake-up beacon from the desired receiver node. Figures 6.5 (a and b) shows the TFGs of the proposed node in transmit and receive mode, respectively. 6.2.3.1 Tasks running in transmit mode The basic control tasks running in our WSN node example in transmit mode are as follows: � Wait for wake-up beacon: Upon reception of an external event (Ext.Event B) from push-button or an ack notOK event, the transmitter node checks an internal counter if it has already achieved the maximum number of attempts to send a packet according to RICER protocol. We have written a C-function, called counter(), that actually checks that maximum number. If the counter is in valid state, a wait Beacon event is generated to start the next task. � Receiving the beacon frame: The next task in TFG is receiving the beacon, the

tel-00553143, version 1 - 6 Jan 2011 An illustrative WSN application 129 transmitter node waits for the wake-up beacon from a receiver. We have written a C-function, called receiveBeacon(), that actually starts a timer and reads the data packets received by its RF transceiver through SPI-link. In our example, we are using CC2420 radio chip from Texas Instrument [131] as RF transceiver. If the transmitter receives the required wake-up beacon before the timer expiry, it generates a received Beacon event. Otherwise, a not received Beacon event is generated by the task. � Waiting for channel clearance: Upon reception of received Beacon event, the wait() function is activated. This task waits for a pre-defined wait period according to RICER protocol for the communication channel clearance and generates a wait Done event. � Sending data: The next task is data transmission that is described in sendData() function. This function writes data frame to the physical interface of the radio transceiver through SPI bus and generates a data Sent event. � Receiving acknowledgment: After sending data, the transmitter node waits for an acknowledgment frame from the receiver using receiveAck() function. If it receives the acknowledgment correctly, it generates an ack OK event, otherwise an ack notOK event is generated. � Shutting down the transceiver: Upon reception of ack OK or not received Beacon event, the transmitter node will shut down its RF transceiver to save energy. This is done through turnOffRadio() function, that sends appropriate signals to RF transceiver to shut it down. 6.2.3.2 Tasks running in receive mode The control tasks running on a WSN receiver node of our case study are as follows: � Sending a wake-up beacon: Our proposed WSN node periodically broadcasts a wake-up beacon to invite the neighbors to initialize a communication. This control task waits for an external event Ext.Event T for its activation. This external event is periodically generated by a hardware timer. The corresponding C-function for the task is described in sendBeacon() function that generates a beacon Sent event. � Receiving and analyzing data: After sending the beacon, the receiver waits for the data frame from any transmitter. The task is described in receiveData() function that starts a timer for possible time-out and receives and analyzes the data frame if it is destined for the receiver node or not. In case of valid data, it generates data Received event whereas if the timer is expired and no valid data is received, a timeOut NoData event is generated. � Sending acknowledgment: Upon successful data reception, the receiver generates an acknowledgment for the transmitter node by calling sendAck() function that

Synthèse, caractérisation et intérêt biomédical de (glyco ...
Synthèse, caractérisation et polymérisation par ouverture de cycle ...
Analyse et synthèse de sons de piano par modèles physiques et de ...
Emission gamma de haute énergie dans les systèmes binaires ...
Martin Teichmann Atomes de lithium-6 ultra froids dans la ... - TEL