250 likes | 494 Views
Project Wisdom Stone Networking using MiWi. Done By: Amnon Balanov & Yosef Solomon Supervisor: Boaz Mizrachi Project ID: d02310. Project Wisdom Stone. Small sensors, with very low power consumption Planted under roads Performing monitoring of road maintenance status.
E N D
Project Wisdom StoneNetworking using MiWi Done By: Amnon Balanov & Yosef Solomon Supervisor: Boaz Mizrachi Project ID: d02310
Project Wisdom Stone • Small sensors, with very low power consumption • Planted under roads • Performing monitoring of road maintenance status This information will save money by decreasing maintenance costs and time!
Project Wisdom Stone • Based on a PIC24 micro-processor • Networking (two alternatives): • 2.4 GHz enabled by a MRF24J40 IEEE 802.15.4 Tx/Rx. • 433 MHz enabled by a MRF49XA Tx/Rx. • Networking will run MiWi (Microchip propriatory S/W stack) ***All components are made by Microchip.
Project Goals The design and implementation of a networking S/W stack who’s functions will be: • Transmissions of aquired data to a PC via similar unit • Parsing commands received from PC station • WAKE interrupts from sleep - for sensing sessions
System I/O • Tx/Rx • Communications with the PC unit • microSD memory chip • Stores aquired data • PIC interrupts • Wake/Transmission interrupts
Extra Board PICtail Evaluation Board – Explorer 16 Sensor Array General HW Scheme MicroCTRL - PIC24FJ256GB110 Networking MRFJ40MB OR MRF49XA SPI SPI MEM- Flash & SRAM SPI MEM- microSD
PIC-24FJ256GB110 • 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.
MRFJ40MB • 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
MRF49XA • 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
System Speeds • 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
Sample / Transmit working modes • 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.
CLI Commands • 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).
CLI Commands Parsing • 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|
MiWi SW Stack • 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.
MiWi Protocol (Cont.) • 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.
MiApp Layer • 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.
MiMAC Layer • 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
Configuration File • 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
TXRX Commands- Main Loop API • 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).
Network Diagram The sensor side PC side INIT INIT Send Command Interpret command & Send Data Receive Data Go To Sleep New/End Session
Coordination in the WiStone • 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).
Sleep • 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.
Estimated Schedule • 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