Mid Semester Presentation - High Speed Digital Systems Lab

Report
Done By: Amnon Balanov & Yosef Solomon
Supervisor: Boaz Mizrachi
Project ID:
d02310

Small sensors, with very low power
consumption

Planted under roads

Performing monitoring of road maintenance
status

Based on a PIC24 micro-processor

Networking (two alternatives):
o 2.4 GHz enabled by a MRF24J40 IEEE 802.15.4 Tx/Rx.
o 433 MHz enabled by a MRF49XA Tx/Rx.

Networking will run MiWi (Microchip propriatory
S/W stack)
***All components are made by Microchip.
The design and implementation of a
networking S/W stack who’s functions will be:
1.
Transmissions of aquired data to a PC via
similar unit
2.
Parsing commands received from PC station
3.
WAKE interrupts from sleep - for sensing
sessions

Tx/Rx
◦ Communications with the PC unit
microSD memory chip

◦
Stores aquired data
PIC interrupts

◦
Wake/Transmission interrupts
Sensor
Array
Extra Board
MicroCTRL PIC24FJ256GB110
SPI
MEMFlash &
SRAM
Evaluation Board – Explorer
16
SPI
MEMmicroSD
Networking
SPI
MRFJ40MB
OR
MRF49XA
PICtail

Internal flash Program Memory- 256kB
◦ Current tests show 10% usage

SRAM Data Memory- 16kB
◦ Current tests show 10% usage
◦ We will have a double buffer, a block length each,
for communications (block=1kB; currently)

3 SPI Ports
◦ We will use one for the MRF & one for the µSD.
 Uses 2.4GHz RF
 Uses O-QPSK modulation.
 Receiver FIFO- 144 byte, interrupts when a
whole packet was received.
 Transmitter FIFO- 128 byte.
 Packet header length ~20 Bytes (TBD)
 Power: 19-23 mA Working
~2 µA Sleeping






Uses 433MHz RF
Uses FSK modulation.
Receiver FIFO- 16 bit, interrupts when full up
to a certain point (configurable).
Transmitter Registers- two 1-byte Registers,
similar use to the PIC double buffer.
Packet header length ~10 Bytes (TBD)
Power: 11-15 mA Working
0.3 µA Sleeping

MRF24J40
◦ 250 kbps transmission speed

MRF49XA
◦ 115.2 kbps digital transmission speed
◦ 256 kbps analog transmission speed

PIC24FJ256GB110
◦ computational power of 16 MIPS
◦ sampling rate of 500 ksps

microSD
◦ reads and writes are in the MB/s range

Definition and support the following working
modes:
◦ Store samples (SS): Samples are stored in non-volatile
memory for long period.
◦ Transmit samples (TS): Samples are read and transmitted
from non-volatile memory through Wireless/UART/USB.
◦ Online sample and transmit (OST): Samples are read from
sensor and then transmitted through UART/USB/Wireless,
using internal SRAM memory (double buffer mechanism),
without access to non-volatile memory.


The device is activated using a well defined CLI
(Command Line Interface).
The command line strings are received from
either:
◦
◦
◦
◦

TXRX wireless port
USB port
UART port
Internal ROM table (Configuration table)
Each command will be executed, and a prompt
prefix, followed by the command result, will be
returned to the command origin source (TXRX,
USB or UART).



We will write a parser converting the different
commands to a short field divided command.
Work on the parser is in its early stages.
For example:
◦ eeprom <sub command> <optional parameters>
◦ |5 bit command code| |3 bit sub-command| |8-bit optional|

As was decided, we use the MiWi SW Stack.
◦ MiWi is a proprietary stack designed by Microchip,
free to use.


The stack is implemented as general as
possible and suits to the proposed HW
networking modules.
We use the MiWi P2P protocol.

The MiWi Protocol is divided into two parts:
◦ MiApp - upper level used to connect our application
with the MiWi P2P protocol
◦ MiMAC - Using the MiMAC layer, we can easily
switch between different RF transceivers such as
MRF24J40 and MRF49XA.

This layer will give 5 major interfaces:
◦ Initialization- allows configuration of selected
hardware.
◦ Hand-shaking-allows discovering and connecting
to peers and network.
◦ Receiving- allows receiving information over the air.
◦ Transmitting- allows sending information over the
air.
◦ Extended Functionality- allows environment noise
and power saving control.


The MiMAC Layer allows us the abstraction of
the Transceiver driver- we use it regardless of
the driver used (at least in theory)
Mainly implements the MiApp API
Allows the easy configuration of the whole application:
Switching between Transceivers
Enabling/Disabling different functions of the SW
stack
Further Development- Allows choosing the Protocol

TXInit()
◦ Initialize network parameters.
◦ The sensor creates a network.

TXBatchInit()
◦ Initialize a new batch.

TXBlock()
◦ Transmits block of size 1KB.

TXStop()
◦ Ends transmission.

TXRXDeviceTasks()
◦ This function will take care of the transceiver periodic
tasks (handle TX and RX tasks).
The sensor side
INIT
PC side
INIT
Send Command
Interpret command &
Send Data
Receive Data
Go To Sleep
New/End Session


In order to comply with time constraints of
other parts of the WiStone we will test to see
how big a payload we can use.
In case we see a packet’s transmission cannot
be interrupted and in order to allow easy
coordination, we will make the transmission
of a packet atomic (non-preemptive).




The two Transceivers support a sleep mode.
They save the current status on configuration
registers to allow easy wake up.
The only way to wake up the transcievers is
through pre-programmed timers on the
transceivers or the PIC.
We need to figure out how to allow access not
at a pre-determined time.

Finishing software development & basic testing (3 weeks)◦ Completing code for:
 The Main Loop functions.

Writing and documenting the parser (1 week)

Outdoors Testing (1 week)-Testing the network
capabilities under simulated conditions.

Wrap-Up (1-2 weeks)-
◦ End of term presentation
◦ End of Project Report*
Est. Total: 6-7 weeks.
*Might be delayed because of Exam period

similar documents