text:
VIEWS: 57 PAGES: 36 CATEGORY: Communications & Networking POSTED ON: 7/26/2011
The Microchip MiWi™ P2P Wireless Protocol is a variation of IEEE 802.15.4, using Microchip's MRF24J40 2.4 GHz transceiver and any Microchip 8, 16 or 32-bit microcontroller with a Serial Peripheral Interface (SPI).
AN1204 Microchip MiWi™ P2P Wireless Protocol Protocol Overview Author: Yifeng Yang Microchip Technology Inc. The MiWi P2P protocol modifies the IEEE 802.15.4 specification's Media Access Control (MAC) layer by adding commands that simplify the handshaking INTRODUCTION process. It simplifies link disconnection and channel hopping by providing supplementary MAC commands. The demand is growing for more and more applications to move to wireless communication. However, application-specific decisions, such as when to perform an energy detect scan or when to jump The benefits are reduced costs and ease of implementa- channels, are not defined in the protocol. Those issues tion. Wireless communication does not require cabling are left to the application developer. and other hardware, and the associated installation costs. It also can be implemented in locations where cabling would be hard, if not impossible, to install. Protocol Features Since the IEEE released the Wireless Personal Area The MiWi™ P2P Wireless Protocol: Network (WPAN) specification (IEEE 802.15.4™) in • Provides 16 channels in the 2.4 GHz spectrum 2003, it has become the de facto industry standard for (using an MRF24J40 transceiver) low-rate WPANs (LR-WPAN). The specification • Operates on Microchip PIC18, PIC24, dsPIC33 applies to low data rate applications with low-power and PIC32 platforms and low-cost requirements. • Supports Microchip C18, C30 and C32 compilers The Microchip MiWi™ P2P Wireless Protocol is a vari- • Functions as a state machine ation of IEEE 802.15.4, using Microchip's MRF24J40 (not RTOS-dependent) 2.4 GHz transceiver and any Microchip 8, 16 or 32-bit microcontroller with a Serial Peripheral Interface (SPI). • Supports a sleeping device at the end of the communication The protocol provides reliable direct wireless communi- • Enables Energy Detect (ED) scanning to operate cation via an easy-to-use programming interface. It has on the least-noisy channel a rich feature set that can be compiled in and out of the stack to meet a wide range of customer needs – while • Provides active scan for detecting existing minimizing the stack footprint. connections • Supports all of the security modes defined in This application note describes the Microchip Wireless IEEE 802.15.4. (MiWi™) Peer-to-Peer (P2P) Protocol and its differ- ences from IEEE 802.15.4. The document details the • Enables frequency agility (channel hopping) supported features and how to implement them. Simple, application-level data structures and Protocol Considerations programming interfaces also are described. The MiWi P2P protocol is a variation of IEEE 802.15.4 This application note assumes that readers know C and supports both peer-to-peer and star topologies. It programming. It is strongly recommended that readers has no routing mechanism, so the wireless review the IEEE 802.15.4 specification before starting communication coverage is defined by the radio range. this application note or working with the MiWi P2P Guaranteed Time Slot (GTS) and beacon networks are wireless protocol. not supported, so both sides of the communication cannot go to Sleep at the same time. If the application requires wireless routing instead of P2P communication; or interoperability with other vendors' devices; or a standard-based solution, for marketability, see AN1066 "MiWi™ Wireless Protocol Stack" or AN965, "Microchip Stack for the ZigBee™ Protocol". © 2008 Microchip Technology Inc. DS01204A-page 1 AN1204 IEEE 802.15.4™ SPECIFICATION AND The specification defines three PHY layers, operating on a spectrum of 868 MHz, 915 MHz and 2.4 GHz. The MIWI™ P2P WIRELESS PROTOCOL MRF24J40 radio operates on the 2.4 GHz, Industrial, After the initial 2003 release of the IEEE specification, Scientific and Medical (ISM) band – freely available a 2006 revision was published to clarify a few issues. worldwide. That spectrum has 16 available channels Referred to as IEEE 802.15.4b or 802.15.4-2006, the and a maximum packet length of 127 bytes, including a revision added two PHY layer definitions in the two-byte Cyclic Redundancy Check (CRC) value. sub-GHz spectrum and modified the security module. The total bandwidth for the IEEE 802.15.4, 2.4 GHz Most of the market's current products, however, use ISM band is, theoretically, 250 kbps. In reality, for the original, IEEE 802.15.4a specification – also called reliable communication, the bandwidth is 20-30 kbps. IEEE 802.15.4-2003 or Revision A. The Microchip MRF24J40 radio supports Revision A of the Device Types specification. The MiWi P2P protocol categorizes devices based on In this document, references to IEEE 802.15.4 will their IEEE definitions and their role in making the mean Revision A of the specification. communication connections (see Table 1 and Table 2). The MiWi P2P stack supports all of these device types. PHY Layers The MiWi P2P stack uses only a portion of the IEEE 802.15.4 specification's rich PHY and MAC layers' definitions. TABLE 1: IEEE 802.15.4™ DEVICE TYPES – BASED ON FUNCTIONALITY Receiver Idle Functional Type Power Source Data Reception Method Configuration Full Function Device (FFD) Mains On Direct Reduced Function Device (RFD) Battery Off Poll from the associated device TABLE 2: IEEE 802.15.4™ DEVICE TYPES – BASED ON ROLE Role Type Functional Type Role Description Personal Area Network (PAN) FFD The device starts first and waits for a connection. Coordinator The device starts after the PAN coordinator has started to establish a End Device FFD or RFD connection. DS01204A-page 2 © 2008 Microchip Technology Inc. AN1204 Supported Topologies As to functionality type, the star topology's PAN coordi- nator is a Full Function Device (FFD). An end device IEEE 802.15.4 and the MiWi P2P stack support two can be an FFD with its radios on all the time, or a topologies: Star and Peer-to-Peer. Reduced Function Device (RFD) with its radio off when it is Idle. Regardless of its functional type, end devices STAR TOPOLOGY can only talk to the PAN coordinator. A typical star topology is shown in Figure 1. From a device role perspective, the topology has one Personal Area Network (PAN) coordinator that initiates commu- nications and accepts connections from other devices. It has several end devices that join the communication. End devices can establish connections only with the PAN coordinator. FIGURE 1: STAR TOPOLOGY Legend PAN Coordinator FFD End Device RFD End Device PEER-TO-PEER (P2P) TOPOLOGY As to functional types, the PAN coordinator is an FFD and the end devices can be FFDs or RFDs. In this A typical P2P topology is shown in Figure 2. From a topology, however, end devices that are FFDs can device role perspective, this topology also has one have multiple connections. Each of the end device PAN coordinator that starts communication and the end RFDs, however, can connect to only one FFD and devices. When joining the network, however, end cannot connect to another RFD. devices do not have to establish their connection with the PAN coordinator. FIGURE 2: PEER-TO-PEER TOPOLOGY Legend PAN Coordinator FFD End Device RFD End Device © 2008 Microchip Technology Inc. DS01204A-page 3 AN1204 Network Types Network Addressing The IEEE 802.15.4 specification has two types of The IEEE 802.15.4 specification defines two kinds of networks: beacon and non-beacon. addressing mechanisms: In a beacon network, devices can transmit data only • Extended Organizationally Unique Identifier (EUI) during their assigned time slot. The PAN coordinator or long address – An eight-byte address that is assigns the time slots by periodically sending out a unique for each device, worldwide. superframe (beacon frame). All devices are supposed The upper three bytes are purchased from IEEE to synchronize with the beacon frame and transmit data by the company that releases the product. The only during their assigned time slot. lower five bytes are assigned by the device In a non-beacon network, any device can transmit data manufacturer as long as each device's full EUI is at any time, as long as the energy level (noise) is below unique. the predefined level. • Short Address – A two-byte address that is Beacon networks reduce all devices' power consump- assigned to the device by its parent when it joins tion because all of the devices have the opportunity to the network. turn off their radios periodically. The short address must be unique within the network. Non-beacon networks increase the power consump- tion by FFD devices because they must have their The MiWi P2P stack supports only one-hop communi- radios on all the time. These networks reduce the cation, so it transmits messages via EUI – or long power consumption of RFD devices, however, because address – addressing. Short addressing is used only the RFDs do not have to perform the frequent when the stack transmits a broadcast message. This is synchronizations. because there is no predefined broadcast long address defined in the IEEE 802.15.4 specification. The MiWi P2P stack supports only non-beacon networks. DS01204A-page 4 © 2008 Microchip Technology Inc. AN1204 Message Format The message format of the MiWi P2P stack is a subset of the IEEE 802.15.4 specification's message format. Figure 3 shows the stack's packet format and its fields. FIGURE 3: MIWI™ P2P WIRELESS PROTOCOL STACK PACKET FORMAT Bytes 2 1 2 2/8 0/2 8 Variable 2 Frame Frame Sequence Destination Destination Source PAN Source Pay Load Check Control Number PAN ID Address ID Address Sequence Addressing Fields FRAME CONTROL Figure 4 shows the format of the two-byte frame control field. FIGURE 4: FRAME CONTROL Bits 3 1 1 1 1 3 2 2 2 Destination Source Frame Security Frame Acknowledgement Intra PAN (Reserved) Address (Reserved) Address Type Enabled Pending Request Mode Mode The three-bit frame type field defines the type of The intra PAN bit indicates if the message is within the packet. The values can be: current PAN. If this bit is set to '1', the source PAN ID • Data frame = 001 field in the addressing fields will be omitted. In the stack, this bit is always set to '1', but it could be set to • Acknowledgement = 010 '0' to enable inter-PAN communication. Resetting the • Command frame = 011 bit to '0' can be done in the application layer, if In the stack, however, the Acknowledgement frame is necessary. not used, since all Acknowledgement packets are The Destination Address mode can be either: handled by hardware in the MRF24J40 radio. • 16-Bit Short Address mode = 10 The security enabled bit indicates if the current packet • 64-Bit Long Address mode = 11 is encrypted. If encryption is used, there will be an additional security header which will be detailed in later In the MiWi P2P stack, the Destination Address mode sections on the security feature. is usually set to the Long Address mode. The Short Address mode is used only for a broadcast message. The frame pending bit is used only in the Acknowledge- For broadcast messages, the destination address field ment packet handled by the MRF24J40 radio in the addressing fields will be fixed to 0xFFFF. hardware. The bit indicates if an additional packet will follow the Acknowledgement after a data request The Source Address mode for the MiWi P2P stack can packet is received from a RFD end device. only be the 64-Bit Long Address mode. © 2008 Microchip Technology Inc. DS01204A-page 5 AN1204 SEQUENCE NUMBER Transmitting and Receiving The sequence number is eight bits long. It starts with a The MiWi P2P stack transmits and receives packets random number and increases by one each time a data according to the IEEE 802.15.4 specification, with a or command packet has been sent. The number is few exceptions. used in the Acknowledgement packet to identify the original packet. TRANSMITTING MESSAGES The sequence number of the original packet and the There are two ways to transmit a message: broadcast Acknowledgement packet must be the same. and unicast. DESTINATION PAN ID Broadcast packets have all devices in the radio range as their destination. IEEE 802.15.4 defines a specific This is the PAN identifier for the destination device. If short address as the broadcast address, but has no the PAN identifier is not known, or not required, the definition for the long address. As a result, broadcast- broadcast PAN identifier (0xFFFF) can be used. ing is the only situation when the MiWi P2P stack uses a short address. DESTINATION ADDRESS There is no Acknowledgement for broadcasting The destination address can either be a 64-bit long messages. address or a 16-bit short address. The destination address must be consistent with the Destination Unicast transmissions have only one destination and Address mode defined in the frame control field. use the long address as the destination address. The MiWi P2P stack requires Acknowledgement for all If the 16-bit short address is used, it must be the unicast messages. broadcast address of 0xFFFF. If the transmitting device has at least one device that SOURCE PAN ID turns off its radio when Idle, the transmitting device will save the message in RAM and wait for the sleeping The source PAN identifier is the PAN identifier for the device to wake-up and request the message. This kind source device and must match the intra-PAN definition of data transmitting is called indirect messaging. in the frame control field. The source PAN ID will exist in the packet only if the intra-PAN value is '0'. If the sleeping device fails to acquire the indirect message, it will expire and be discarded. Usually, the In the current MiWi P2P stack implementation, all com- indirect message time-out needs to be longer than the munication is intra-PAN. As a result, all packets do not pulling interval for the sleeping device. have a source PAN ID field. However, the stack reserves the capability for the appli- RECEIVING MESSAGES cation layer to transmit the message inter-PAN. If a In the MiWi P2P stack, only the messaged device will message needs to transmit inter-PAN, the source PAN be notified by the radio. If the messaged device turns ID will be used. off its radio when Idle, it can only receive a message from the device to which it is connected. SOURCE ADDRESS For the idling device with the turned off radio to receive The source address field is fixed to use the 64-bit the message, the device must send a data request extended address of the source device. command to its connection peer. Then, it will acquire the indirect message if there is one. DS01204A-page 6 © 2008 Microchip Technology Inc. AN1204 VARIATIONS FOR HANDSHAKING The beacon frames do not use CSMA-CA detection before transmitting to meet the timing requirement of The MiWi™ P2P Wireless Protocol's major difference the active scan time-out. As a result, the beacon from the IEEE 802.15.4 specification is in the process frames may be discarded due to packet collision. of handshaking. The MiWi P2P protocol is designed for simplicity and Under IEEE 802.15.4, a device's first step after direct connections in star and P2P communication powering up is to do a handshake with the rest of the topologies. Some IEEE 802.15.4 requirements world. obstruct that design: The specification's handshaking process, shown in • The five-step handshaking process – plus two Figure 5, is defined as: time-outs – requires a more complex stack. 1. The device seeking to communicate sends out a • The association process uses one-connection beacon request. communication rather than the multi-connection 2. All devices capable of connecting to other concept of peer-to-peer topology devices respond with a beacon message. For the preceding reasons, the MiWi P2P protocol uses 3. The initiating device collects all of the beacons. its own, two-step handshaking process. In that (To accommodate multiple responses, the process, shown in Figure 6: device waits until the active scan request times 1. The initiating device sends out a P2P out.) The device decides which beacon to use to connection request command. establish the handshake and sends out an 2. Any device within radio range responds with a association request command. P2P connection response command that 4. After a predefined time, the initiating device finalizes the connection. issues a data request command to get the association response from the other side of the This is a one-to-many process that may establish intended connection. multiple connections, where possible, to establish a Peer-to-Peer topology. Since this handshaking process 5. The device on the other side of the connection uses a MAC layer command, CSMA-CA is applied for sends the association response. each transmission. This reduces the likelihood of packet collision. FIGURE 5: TYPICAL HANDSHAKING IN IEEE 802.15.4™ RFDs may receive the Connection Request command from several FFDs, but can connect to only one FFD. An RFD chooses the FFD, from which it receives the Beacon Request first P2P connection response, as its peer. (Broadcast) Beacon FIGURE 6: HANDSHAKING PROCESS Device Device FOR MIWI™ P2P WIRELESS to Association Request Accepting PROTOCOL Connect Connection Data Request P2P Connection Request Device Device (Broadcast) Accepting to Association Response Connect P2P Connection Response Connection Handshaking is the complex process of joining a network. A device can join only a single device as its parent, so the initial handshaking actually is the process of choosing a parent. Choosing the parent requires: 1. Listing all of the possible parents. 2. Choosing the right one as its parent. © 2008 Microchip Technology Inc. DS01204A-page 7 AN1204 Custom MAC Commands for MiWi™ P2P Wireless Protocol The MiWi P2P protocol extends the IEEE 802.15.4 specification's functionality by using custom MAC com- mands for removing the connection between two devices. All of the protocol's custom MAC commands are listed in Table 3. TABLE 3: CUSTOM MAC COMMANDS FOR MIWI™ P2P WIRELESS PROTOCOL Command Command Name Description Identifier Request to establish a P2P connection. Usually broadcast to seek P2P connection after powering up. Alternately, unicast to seek an individual 0x81 P2P Connection Request connection. Also used for active scan functionality. (See "Active Scan" on Page 13.) P2P Connection Removal 0x82 Removes the P2P connection with the other end device. Request Similar to the IEEE 802.15.4™ specification's data request command, a request for data from the other end of a P2P connection if the local node 0x83 Data Request had its radio turned off. Reserved for the previously sleeping device to request the other node to send the missed message (indirect messaging). Request to change operating channel to a different channel. Usually used 0x84 Channel Hopping in the feature of frequency agility. Response to the P2P connection request. Also can be used in active scan 0x91 P2P Connection Response process. P2P Connection Removal 0x92 Response to the P2P connection removal request. Response P2P CONNECTION REQUEST information, and an optional payload to determine if the command is a request to establish a connection or just The P2P connection request (0x81) is broadcasted to an active scan. establish a P2P connection with other devices after powering up. The request can also be unicast to a The MiWi P2P stack can enable or disable a device to specific device to establish a single connection. allow other devices to establish connections. Once a device is disabled from making connections, any new When the transmitting device receives a P2P connec- P2P connection request will be discarded, except tion response (0x91) from the other end, a P2P under the following conditions: connection is established. • The P2P connection request is coming from a The P2P connection request custom command can device with which the receiving end already has also start an active scan which is done to determine had an established connection. what devices are available in the neighborhood. • The P2P connection request is an active scan. When a P2P connection request command is sent out for active scan purposes, the capability information and The format of the P2P connection request command optional payload will not be attached. The receiving frame is shown in Figure 7. device uses the attachment, or absence of capability FIGURE 7: P2P CONNECTION REQUEST COMMAND FORMAT Octets 15/21 1 1 1 (Optional) Various (Optional) Optional payload to identify the Command Identifier Capability node. It is not required for the MAC Header Operating Channel (0x81) Information stack, but may be useful for applications. DS01204A-page 8 © 2008 Microchip Technology Inc. AN1204 The operating channel is used to bypass the effect of The capability information byte, shown in Figure 7, is subharmonics that may come from another channel. It formatted as shown in Figure 8. will avoid the false connections with devices that operate on different channels. FIGURE 8: CAPABILITY INFORMATION FORMAT Bits 0 1 2 3 4-7 Need Time Will do Data Request Receiver on when Idle Synchronization Security Capable (Reserved) Once Wake-up (Reserved) The P2P connection request's optional payload is pro- P2P CONNECTION REMOVAL REQUEST vided for specific applications. A device may need addi- The P2P connection removal request (0x82) is sent to tional information to identify itself – either its unique the other end of the connection to remove the P2P identifier or information about its capabilities in the connection. The request's format is shown in Figure 9. application. With the optional payload, no additional packets are required to introduce or identify the device after the connection is established. The optional payload will not be used in the stack itself. FIGURE 9: P2P CONNECTION REMOVAL REQUEST FORMAT Octets 15/21 1 MAC Header: Send to the other end of the P2P Command Identifier (0x82) connection to cut the communication DATA REQUEST must store the message in its RAM. The always active side delivers the message when the sleeping device The data request (0x83) command is the same as the wakes up and requests the message. IEEE 802.15.4 specification's data request (0x04) command. Its format is shown in Figure 10. If an application involves such conditions, the feature, ENABLE_INDIRECT_MESSAGE, needs to be activated. If one side of a P2P connection node is able to Sleep The sleeping node must send the data request when Idle, and that node could receive a message command after it wakes up. while in Sleep, the always active side of the connection FIGURE 10: DATA REQUEST FORMAT Octets 21 1 MAC Header: Unicast from extended source address Command Identifier (0x83 or 0x04) to extended destination address © 2008 Microchip Technology Inc. DS01204A-page 9 AN1204 CHANNEL HOPPING This command usually is broadcasted to notify all devices, with their radios on when Idle, to switch The channel hopping command (0x84) requests the channels. To ensure that every device receives this destination device to change the operating channel to message, the frequency agility initiator will broadcast another one. The command's format is shown in three times and all FFD devices will rebroadcast this Figure 11. message. This command is usually sent out by the frequency When the channel hopping sequence is carried out and agility initiator, which decides when to change channels all FFDs hop to a new channel, RFDs have to perform and which channel to select. resynchronization to restore connection to their respective FFD peers. FIGURE 11: CHANNEL HOPPING FORMAT Octets 15/21 1 1 1 MAC Header: Broadcast or Command Identifier Current Operating Destination Channel to unicast from the Frequency (0x84) Channel Jump to Agility Starter P2P CONNECTION RESPONSE Once the response is received by the other end of the connection, a P2P connection is established. The two The P2P connection response (0x91) command is ends of the connection now can exchange packets. used to respond to the P2P connection request. The command's format is shown in Figure 12. If the P2P connection request command received did not have a capability information byte and optional The P2P connection response command can be used payload, the command is an active scan. The P2P con- to establish a connection. Alternately, the command nection response, therefore, would have no capability can be used by a device responding to an active scan, information or optional payload attached. identifying itself as active in the neighborhood. In the case of the active scan connection request, no If the P2P connection request command that was connection would be established after the message received had a capability information byte and an exchange. optional payload attached, it is requesting a connection. The capability information and optional payload, if any, would be attached to the P2P connection response. FIGURE 12: P2P CONNECTION RESPONSE FORMAT Octets 21 1 1 1 (Optional) Various (Optional) MAC Header: Unicast Status. 0x00 means Optional payload to identify from extended source Command Identifier successful. All other Capability the node. Not required for the address to extended (0x91) values are error Information stack, but possibly useful for destination address. codes. applications. The format of the response's capability information is P2P CONNECTION REMOVAL RESPONSE shown in Figure 8. The P2P connection removal response command The optional payload is provided for specific applica- (0x92) is used to respond to the P2P connection tions. Its format and usage is the same as the optional removal request. It notifies the other end of the P2P payload attached to P2P connection request command connection that a P2P connection request had been (see Page 9). received early and whether the resulting connection has been removed. The command's format is shown in Figure 13. FIGURE 13: P2P CONNECTION REMOVAL RESPONSE FORMAT Octets 21 1 1 MAC Header: Unicast from Status. extended source address to Command Identifier (0x92) • 0x00 means successful. extended destination address • All other values are error codes DS01204A-page 10 © 2008 Microchip Technology Inc. AN1204 MIWI™ P2P WIRELESS PROTOCOL'S The decision as to when a device is put into Sleep is made by the specific application. Possible triggers UNIQUE FEATURES could include: The MiWi P2P protocol supports a reduced function- • Length of radio Idle time ality, point-to-point, direct connection and a rich set of • Receipt of a packet from a connected FFD, features. All features can be enabled or disabled and requesting the device to go to Sleep compiled in and out of the stack, according to the needs of the wireless application. The conditions for awakening a device can also be decided by the specific application. Possible triggers Microchip's ZENA™ software application can facilitate include: configuration of the stack and generation of the header file. For more information, see the "ZENA™ Wireless • An external event, such as a button being pressed Network Analyzer User's Guide" (DS51606). • Expiration of a predefined timer This section describes the unique features of the MiWi While a device is sleeping, its peer device may need to P2P protocol. They include: send it a message. If no message needs to be sent, no • Small programming size additional feature must be enabled by the peer device. • Support for Idle devices to turn off radio If the peer device needs to send a message to the • Indirect messaging sleeping device, the peer device must store the message in its volatile memory until the sleeping • Special security features device wakes up and acquires the message. Since the • Active scan for finding existing PANs on different message is not being delivered directly to the sleeping channels device, this process is called an indirect message. • Energy scan for finding the channel with the least If an indirect message needs to be delivered, the peer noise device of the sleeping node needs to define • Frequency agility (channel hopping) "ENABLE_INDIRECT_MESSAGE" in the file, P2PDefs.h. The file can be generated automatically Small Programming Size by the ZENA tool or created manually by the user. To address many wireless applications' cost constraints, If indirect messaging is enabled, there must be a the MiWi P2P stack is as small as possible. Enabling the specified maximum number of indirect messages that stack to target the smallest programming size can can be stored in the volatile memory. That message reduce the code size to be just over 3 Kbytes. A simple maximum depends on the free RAM memory available application could easily fit into a microcontroller with only in the peer device and from the number of RFDs 4 Kbytes of programming memory. connected to the same parent FFD. To activate this feature, "TARGET_SMALL" must be The maximum number of indirect messages is defined defined in the file, P2PDefs.h. The file can be gener- by "INDIRECT_MESSAGE_SIZE" in the file, ated automatically by the ZENA software or created P2PDefs.h. The file can be generated automatically manually by an experienced programmer. by the ZENA software or created manually by the user. The feature supports bidirectional communication For indirect messaging, the time-out period for the between devices, but communication between PANs is indirect messages also needs to be defined. If a time- disabled. If the security feature is used, the freshness out period was not defined and an RFD device was check will be disabled. (For more details about the dead, the indirect message would remain forever in the freshness check, see "Security Features" on volatile memory. Page 12.) The indirect message time-out period is defined by "INDIRCT_MESSAGE_TIMEOUT" in the file, Idle Devices Turning Off Radios P2PDefs.h, with seconds as the unit of measurement. For those devices operating on batteries, reducing Broadcasting may be useful for some applications, but power consumption is essential. This can be done by it requires more effort for peer devices. When a peer having the devices turn off their radios when they are not device can broadcast a message to an RFD, transmitting data. The MiWi P2P stack includes features "ENABLE_BROADCAST" must be defined in the file, for putting radios into Sleep and waking them up. P2PDefs.h. To activate this feature, "ENABLE_SLEEP" must be defined in the file, P2PDefs.h. The file can be gener- ated automatically by the ZENA software or created manually by an experienced user. © 2008 Microchip Technology Inc. DS01204A-page 11 AN1204 Security Features • AES-CBC-MAC modes – Ensures the integrity of the message with 4/8/16 bytes of Message Wireless communication requires additional security Integrity Code (MIC) attached to each packet. considerations as a simple sniffer can intercept a mes- This assures that the packet, including header sage if its data is not encrypted. The MiWi P2P stack and payload, has not been modified during trans- provides the IEEE 802.15.4 specification's seven mission. The payload, however, is not encrypted, security modes to fit a variety of security needs. The so the message is exposed. modes can be categorized into three groups: The size of the MIC is determined by the particu- • AES-CTR mode – Encrypts the message with a lar mode, with the larger MICs providing stronger 16-byte security key. The mode has no built-in protection. message integrity or frame freshness check, so it • AES-CCM modes – Combines the previous two is susceptible to repeated attacks. security modes to ensure both the secrecy and integrity of the message. The specification's seven security modes are described in Table 4. TABLE 4: IEEE 802.15.4™ SECURITY MODES Security Mode Security Services MIC Access Data Message Sequential (Bytes) Identifier Name Control Encryption Integrity Freshness 01h AES-CTR X X — X 0 02h AES-CCM-128 X X X X 16 03h AES-CCM-64 X X X X 8 04h AES-CCM-32 X X X X 4 05h AES-CBC-MAC-128 X — X — 16 06h AES-CBC-MAC-64 X — X — 8 07h AES-CBC-MAC-32 X — X — 4 To activate the security feature, "ENABLE_SECURITY" counter is lower than the value of record, the message must be defined in the file, P2PDefs.h. That file is will be discarded. This feature can prevent repeated generated automatically by the ZENA tool or can be attacks. manually produced. When a smaller programming size is preferred, the When security is activated, additional elements must checking of the message's freshness can be disabled. be defined in file, P2PDefs.h. Those elements are the This is done by defining the field TARGET_SMALL in the 16-byte security key, key sequence number and the file, P2PDefs.h. security level. The ZENA software assists with inputting When security is enabled, an additional security header these items and writes them to the file. Alternately, an is added before the standard MAC header. This header expert user could manually define these elements. contains a four-byte frame counter and a one-byte Besides encrypting and decrypting the data, the secu- security key sequence number. rity module checks the freshness of the message using The packet format, when security is enabled, is the frame counter. If the value of a message's frame illustrated in Figure 14. FIGURE 14: MIWI™ P2P WIRELESS PROTOCOL PACKET FORMAT WITH SECURITY ON Bytes 2 1 2 2/8 2 8 4 1 Various 0/4/8/16 2 Key Frame Sequence Destination Destination Source Source Frame Encrypted Sequence MIC FCS Control Number PAN ID Address PAN ID Address Counter Payload Number Addressing Fields Security Header DS01204A-page 12 © 2008 Microchip Technology Inc. AN1204 Active Scan When an active scan broadcasts a P2P connection request command, it expects any device in radio range Active scan is the process of acquiring information to answer with a P2P connection response command. about the local Personal Area Network (PAN). The The active scan will determine only what PANs are active scan determines: available in the neighborhood, not how many individual • The device's operating channel devices are available for new connections. That is • The device's signal strength in the PAN because every device responds to the scan – even those that will not allow new connections. • The PAN's identifier code To activate the active scan feature, Active scan is particularly useful if there is no "ENABLE_ACTIVE_SCAN" must be defined in the file, predefined channel or PAN ID for the local devices. P2PDefs.h. The maximum number of PANs that an active scan can acquire is defined, in the stack, as Energy Scan ACTIVE_SCAN_RESULT_SIZE. The scan duration and channels to be scanned are The IEEE 802.15.4 specification defines 16 channels determined before the active scan begins. in the 2.4 GHz spectrum, but a PAN must operate on one. The best channel to use is the one with the least The scan duration is defined by the IEEE 802.15.4 amount of energy or noise. specification and its length of time, measured in symbols, is calculated with the formula shown in Energy scan is used to scan all available channels and Equation 1. (One second equals 62,500 symbols.) determine the channel with the least noise. The scan duration and channels to be scanned are EQUATION 1: determined before the energy scan is performed. The scan duration is defined by the IEEE 802.15.4 Scan Time Period ≡ 60 • (2ScanDuration + 1) specification and its length of time, measured in symbols, is calculated with the formula shown in Note: ScanDuration = The user-designated Equation 1. input parameter for the scan. An See "Active Scan" on Page 13 for an explanation of interger is from 1 to 14. the measurement. After the scan is complete, the channel identifier with A scan duration of 10 would result in a scan time period the least noise will be returned. of 61,500 symbols or about 1 second. A scan duration of 9 is about half second. To activate the Energy Scan feature, "ENABLE_ENERGY_SCAN" must be defined in the file, The scan channels are defined by a bitmap with each P2PDefs.h. channel number represented by its comparable bit number in the double word. Channel 11 would be b'0000 0000 0000 0000 0000 1000 0000 0000. Channels 11 to 26, supported in the 2.4 GHz spectrum, would be b'0000 0111 1111 1111 1111 1000 0000 000 or 0x07FFF800. © 2008 Microchip Technology Inc. DS01204A-page 13 AN1204 Frequency Agility IMPLEMENTING, ACTIVATING FEATURE Frequency agility enables the MiWi P2P PAN to move When to perform a frequency agility operation is to a different channel if operating conditions so require. decided by the application. The MiWi P2P stack, however, provides two global variables to help the In implementing this feature, the affected devices fall application make that decision. into one of two roles: • "CCAFailureTimes" – Defines the number of • Frequency agility initiators – The devices that continuous data transmission failures due to decide whether channel hopping is necessary and Carrier Sense Multiple Access with Collision which new channel to use Avoidance (CSMA-CA) failure. • Frequency agility followers – Devices that change This condition usually means there is excessive to another channel when so directed noise on the current channel. FREQUENCY AGILITY INITIATORS • "AckFailureTimes" – Defines the number of continuous data transmission failures due to no Each PAN can have one or more devices as a Acknowledgement. frequency agility initiator; an initiator must be an FFD. A large AckFailureTimes usually means there Each initiator must have the energy scanning feature is a high noise level at the receiving end. enabled. That is because the initiator must do an Alternatively, it means the destination device is not energy scan to determine the optimal channel for the available because it is malfunctioning or has hop. Then, the initiator broadcasts a channel hopping hopped to another channel. If the destination command to the other devices on the PAN. device has changed channels, a resynchronization operation is necessary. FREQUENCY AGILITY FOLLOWERS To activate the frequency agility feature, A frequency agility follower can be an FFD or an RFD "ENABLE_FREQUENCY_AGILITY" must be defined device. in the file, P2PDefs.h. To enable devices to act The FFD makes the channel hop by doing one of the as frequency agility initiators, following: "FREQUENCY_AGILITY_STARTER" must be defined in that file. • Receiving the channel hopping command from the initiator • Resynchronizing the connection, if data transmissions fail continuously An RFD device makes the hop using the resynchroni- zation method – reconnecting to the PAN when communication fails. DS01204A-page 14 © 2008 Microchip Technology Inc. AN1204 APPLICATION PROGRAMMING This section gives more detailed information on each API, grouping them by the following basic processes: INTERFACES (APIs) Creating a Peer-to-Peer Connection . . . . . . . . . 16 The MiWi™ P2P Wireless Protocol stack provides Receiving a Packet. . . . . . . . . . . . . . . . . . . . . . . . 17 application developers with a set of easy-to-use APIs. Transmitting a Packet . . . . . . . . . . . . . . . . . . . . . 18 Simple P2P applications may require less than 30 lines of code in the application layer. Doing an Active Scan . . . . . . . . . . . . . . . . . . . . . 19 Doing an Energy Scan . . . . . . . . . . . . . . . . . . . . . 19 The stack also gives the flexibility of supporting a rich Using Frequency Agility . . . . . . . . . . . . . . . . . . . 20 feature by expanding the application layer with additional API calls. Simple P2P Application The APIs are listed – alphabetized by function name – in the "List of Application Programming Interfaces Example 1 gives code for a simple P2P application. (APIs)" on Page 21. This list only gives each API's The code establishes a connection, receives a packet basic functional characteristics. and transmits a packet. Example 1 displays the key portion of the MiWi P2P programming interface. In this document's following sections, this sample code will be used to demonstrate how the application layer uses the stack to interconnect with a peer device. EXAMPLE 1: SIMPLE P2P APPLICATION 1. void main(void) 2. { 3. Initiazation();// Initialize hardware platform and P2P stack 4. SetChannel(myChannel);// set the channel to operate 5. EnableNewConnection();// accept new P2P connection 6. CreateNewConnection(2);// establish a connection with another device 7. 8. while(1) 9. { 10. if( ReceivedPacket() )// check if a packet has been received 11. { LED_1 = rxFrame.PayLoad[0] // processing the packet, setting the 12. LED according to received packet 13. DiscardPacket(); // discard the packet to ready to receive the next 14. } 15. else 16. { 17. BYTE PressedButton = ButtonPressed(); // check if a button pressed 18. if (PressedButton) // if a button has been pressed 19. { 20. FlushTx();// reset the transmitting buffer 21. for(i = 0; i < 65; i++) 22. { 23. WriteData(P2P[i]);// fill the transmitting buffer 24. } 25. 26. UnicastConnection(0, FALSE, TRUE); // unicast the packet 27. } 28. } 29. } © 2008 Microchip Technology Inc. DS01204A-page 15 AN1204 Creating a Peer-to-Peer Connection void DisableNewConnection(void) This section gives some details on APIs that create DisableNewConnection prevents the stack from peer-to-peer connections. accepting new connections by responding to a P2P connection request command. In the following two Note: All APIs are listed, alphabetized by function cases, this setting will be ignored, even if the new name, in the "List of Application Pro- connection is disabled: gramming Interfaces (APIs)" on Page 21. • The P2P connection request command is actually That list gives only basic functional an active scan without any peer information elements. attached. In Example 1, code lines 5-6 demonstrate the two ways • A P2P connection response command without to establish a connection peer information attached will be sent out to • Passively accept a new connection respond. • Actively pursue a new connection • The P2P connection request command is coming from a device that already has a connection with To accept a new connection, the device: the current device. 1. Waits for the P2P connection request. • This feature is usually used when one end of the 2. Responds with the P2P connection response connection is used to re-establish the old command. connections after power-down. To pursue a new connection, the device: BYTE CreateNewConnection(BYTE 1. Sends out a P2P connection request command RetryInterval)/BYTE to look for device with which to connect. CreateNewConnection(BYTE 2. Receives the responding P2P connection RetryInterval, DWORD ChannelMap) response command to finish the connection. The function call, CreateNewConnection, actively Either way, after a new connection has been estab- pursues a new connection. Before the function, there is lished, the information about the device on the other no need to enable the stack to accept new connections. end of the connection will be stored in both devices' The function enables them automatically. P2P connection entries. Those entries represent the existing connections and may be used to transmit the When the function call returns, the status for accepting packet to the peer device of the connection. (For new connections will be set back to its previous state. details, see "Transmitting a Packet" on Page 18.) This function call proceeds as follows: The APIs for making peer-to-peer connections follow. 1. The P2P connection request command is sent out with peer information attached. void EnableNewConnection(void) 2. The stack waits for the P2P connection The function call, EnableNewConnection, allows the response command to establish a connection. stack to accept new connections by responding to a 3. When the first connection is made, the function P2P connection request command with P2P call returns the index of the connection in the connection response. P2P connection entry. There are two formats of the function, CreateNewConnection. • When the energy scan feature is not activated, the only parameter for this function call is the interval (in seconds) to send out the P2P connection requests. • When energy scan is activated, there is an addi- tional parameter, ChannelMap, that specifies the channels to scan to find the new connection. The double-word parameter of ChannelMap uses a bitmap to specify the channels to scan. Each channel number is represented by its comparable bit number in the double word. Channel 11 would be b'0000 1000 0000 0000. In order to scan all chan- nels in the 2.4 GHz band (11 to 26), the ChannelMap should be set to 0x07FFF800. DS01204A-page 16 © 2008 Microchip Technology Inc. AN1204 Receiving a Packet Boolean ReceivedPacket(void) This section gives details on the received packet API. The function, ReceivedPacket, returns a boolean expression indicating whether a packet has been Note: All APIs are listed, alphabetized by function received by the MiWi P2P stack. If the function is name, in the "List of Application Pro- called, the whole stack is called internally before return- gramming Interfaces (APIs)" on Page 21. ing the status which indicates whether a packet has That list gives only basic functional been received. elements. If a packet has been received by the stack, the return In Example 1, code lines 10-14 demonstrate how to value of ReceivedPacket is TRUE. All information receive and process a packet. regarding the received packet will be stored in the global variable of rxFrame, a variable of the structure RECEIVED_FRAME. The definition of the structure, RECEIVED_FRAME, is given in Example 2. EXAMPLE 2: RECEIVED_FRAME STRUCTURE 1. typedef struct _RECEIVED_FRAME 2. { 3. union _RECEIVED_FRAME_FLAG 4. { 5. BYTE Val; 6. struct _RECEIVED_FRAME_FLAG_BITS 7. { 8. BYTE commandFrame : 1; // data: 0; command: 1 9. BYTE security : 1; 10. BYTE framePending : 1; 11. BYTE intraPAN : 1; 12. BYTE broadcast : 1; 13. } bits; 14. } flags; 15. 16. #ifndef TARGET_SMALL 17. BYTE PacketLQI; 18. BYTE PacketRSSI; 19. WORD_VAL SourcePANID; 20. #endif 21. BYTE SourceLongAddress[8]; 22. BYTE PayLoadSize; 23. BYTE *PayLoad; 24. } RECEIVED_FRAME; This structure shows that virtually all information Under such conditions, the signal quality and regarding the received packet has been categorized strength and inter-PAN communication and stored. The definition of RECEIVED_FRAME shows capabilities are not supported. that: • If a packet is encrypted during transmission, the • The parameters, PayLoadSize and PayLoad, information will be already decrypted in the are for the MAC payload only. The MAC header is RECEIVED_PACKET structure. not included. Whether a packet was encrypted originally can be • If the stack is configured to use minimum found in the corresponding settings in the flags programming space, some of the parameters, (flags.bits.security). such as PacketLQI, PacketRSSI and SourcePANID, are not available. © 2008 Microchip Technology Inc. DS01204A-page 17 AN1204 How a packet is handled after it is received is up to the There are three parameters for the function: specific application. After the packet has been pro- • Index of the record in P2P connection entries cessed and before it is returned to process the stack, • Boolean expression indicating if the packet is a the function, DiscardPacket, needs to be called. The command packet. function removes the current received packet and prepares for the next packet. As previously discussed, the MiWi P2P stack sup- ports only the data and command frame, defined If the function, DiscardPacket, is not called, the old in the frame control bytes of the MAC header. (For packet will occupy the space and the new packet more detail, see "Message Format" on Page 5 cannot be received. or the IEEE 802.15.4 specification.) • Boolean expression indicating if encryption is Transmitting a Packet required for the packet. This section gives details on the APIs associated with The security feature must be enabled or transmitting a packet. encryption will not be performed. Note: All APIs are listed, alphabetized by function BOOL UnicastLongAddress(WORD_VAL name, in the "List of Application Pro- DestinationPANID, BYTE gramming Interfaces (APIs)" on Page 21. *DestinationAddress, BOOL isCommand, That list gives only basic functional BOOL SecurityEnabled) elements. A message can also be unicast by calling the function, In Example 1, code lines 20-26 demonstrate one UnicastLongAddress. By specifying the long method of transmitting a packet. address and the PAN identifier, the stack can When transmitting a packet, the MAC header will be determine the destination. handled by the stack. The application layer only takes There are four parameters for this function: care of the MAC payload. • Destination PAN identifier void FlushTx(void) • Destination long address The function call, FlushTx, resets the transmitting • Boolean expression indicating if the packet is a buffer and prepares it to receive the information to be command packet transferred. • Boolean expression indicating if encryption is required void WriteData(BYTE data) The function call, WriteData, will fill the transmitter BOOL BroadcastPacket(WORD_VAL buffer one byte at a time. If there are 20 bytes to be DestinationPANID, BOOL isCommand, transmitted in the packet, the function will be called BOOL SecurityEnabled) 20 times. Unicast transmits a packet to a single destination. Once the transmitting buffer is filled, a packet is ready When a message needs to be sent to all devices in the to be transmitted. There are three ways to transmit a radio range, broadcasting – using the function call, packet: BroadcastPacket, is used. • Unicast with an index of connections in the P2P There are three parameters for the function, connection entries BroadcastPacket: • Unicast with a long address • Destination PAN identifier • Broadcast If the broadcast targets all PANs, an application may choose to use the identifier, 0xFFFF, to BOOL UnicastConnection(BYTE remove the restriction of inter-PAN ConnectionIndex, BOOL isCommand, communication. BOOL SecurityEnabled) • Boolean expression to indicate if the packet is a In Example 1, line 26 uses the method of unicast with command packet an index of connections through the function, • Boolean expression to indicate if encryption is UnicastConnection. required A record in the P2P connection entries contains infor- mation on the peer device of a P2P connection and the stack uses it to send the packet to its destination. DS01204A-page 18 © 2008 Microchip Technology Inc. AN1204 Doing an Active Scan Doing an Energy Scan This section gives details on the Active Scan API. This section gives details on the Energy Scan API. Note: All APIs are listed, alphabetized by function Note: All APIs are listed, alphabetized by function name, in the "List of Application Pro- name, in the "List of Application Pro- gramming Interfaces (APIs)" on Page 21. gramming Interfaces (APIs)" on Page 21. That list gives only basic functional That list gives only basic functional elements. elements. It can be helpful to know if any MiWi P2P PANs are There are 16 available channels in the 2.4 GHz band. operating in the area, and if so, what their PAN identifi- Since the MiWi P2P PAN can operate on any of them, ers are. This enables a PAN coordinator to choose a it can search for the channel with the least noise. PAN to join, or start a new PAN with a unique PAN The energy scan feature does this. To call the program- identifier. ming interface to operate the energy scan, the energy To accomplish this, the MiWi P2P stack provides the scan feature must be activated. function call, ActiveScan. BYTE OptimalChannel(BYTE BYTE ActiveScan(BYTE ScanDuration, ScanDuration, DWORD ChannelMap, BYTE DWORD ChannelMap) *RSSIValue) This function call is available only if the active scan The function, OptimalChannel, needs three feature has been activated. parameters: There are two parameters for the function, • Duration of scan on each channel. ActiveScan: The definition of scan duration follows the • Duration of scan performed on each channel. IEEE 802.15.4 specification. For more detail, see The scan duration is defined by the IEEE "Energy Scan" on Page 13. 802.15.4 specification. For details, see "Active • Channel map specifying the channels to be Scan" on Page 13. scanned. • Channel map specifying the channels to be For details on the channel map setting, see scanned. "Energy Scan" on Page 13. For details on the channel map setting, see • RSSIValue – The output parameter that returns "Active Scan" on Page 13. the maximum energy reading on the optimal channel that returns. The ActiveScan function call returns the total number of PANs found. All the scan results are stored in the OptimalChannel returns the channel that has the global variable, ActiveScanResults, of the struc- least amount of noise during the scan. ture, ACTIVE_SCAN_RESULT. The structure of ACTIVE_SCAN_RESULT is defined as shown in Example 3. EXAMPLE 3: ACTIVE_SCAN_RESULT 1. typedef struct _ACTIVE_SCAN_RESULT 2. { 3. BYTE Channel; 4. BYTE RSSIValue; 5. WORD_VAL PANID; 6. } ACTIVE_SCAN_RESULT; As shown, the active scan result provides the channel number, signal strength and identifier for the PAN. The maximum number of PANs that can be acquired is defined as ACTIVE_SCAN_RESULT_SIZE in the stack. As RAM resources permit, application developers can modify this setting. The default value is 16. © 2008 Microchip Technology Inc. DS01204A-page 19 AN1204 Using Frequency Agility BOOL ResyncConnection (BYTE *DestinationAddress, The frequency agility feature makes the MiWi P2P DWORD ChannelMap) stack compatible with the wireless environment. Some- times called channel hopping, this feature enables the The function, ResyncConnection, has two MiWi P2P PAN to migrate across channels to avoid the parameters: varying noise levels in the 2.4 GHz band. • Destination address – The pointer to the long Devices on a MiWi P2P PAN have one of two frequency/ address of the device with which the frequency/ agility roles: starter or follower. The frequency agility agility followers will resynchronize. starter starts the channel hopping process by calling the Usually, this address is that of the node with which function, InitChannelHopping. the frequency agility follower lost connection. • ChannelMap – The bitmap of the available new BOOL InitChannelHopping channels. (DWORD ChannelMap) For more information, see "Frequency Agility" This function needs one parameter: the bitmap of the on Page 14. channels to which the PAN may move. For details on ResyncConnection will return a boolean expression this setting, see "Frequency Agility" on Page 14. to indicate if the operation is successful. If a resynchro- InitChannelHopping will return a boolean expres- nized connection is tried unsuccessfully three times on sion to indicate if the operation is successful. If, after each channel, the function call will return FALSE. checking other channels, the current channel is found to have the least amount of noise, the initialization process is stopped and the value FALSE is returned. If the channel is changed, frequency/agility followers either hop to the new channel by receiving the request from the frequency agility starter or by resynchronizing their connection. To resynchronize the connection, frequency/agility followers call the function, ResyncConnection. DS01204A-page 20 © 2008 Microchip Technology Inc. AN1204 List of Application Programming Interfaces (APIs) ActiveScan This function performs an active scan to find all nearby MiWi P2P PANs. Syntax BYTE ActiveScan(BYTE ScanDuration, DWORD ChannelMap) Inputs • BYTE – ScanDuration: The time period for the energy scan on each channel. • DWORD – ChannelMap: The bitmap of the channels for the energy scan. Outputs BYTE – The number of existing MiWi P2P PANs. Notes The scan result will be stored in the global variable array, ActiveScanResults, with the maximum result size of ACTIVE_SCAN_RESULT_SIZE. BroadcastPacket This function broadcasts a message to all devices with a destination PAN identifier in the radio range. Syntax BOOL BroadcastPacket(WORD_VAL DestinationPANID, BOOL isCommand, BOOL SecurityEnabled) Inputs • WORD_VAL – DestinationPANID: The PAN identifier of the destination devices. • BOOL – isCommand: The boolean expression to indicate if the transmitting packet is a command. • BOOL – SecurityEnabled: The boolean expression to indicate if the transmitting packet needs encryption. Outputs BOOL – The boolean expression to indicate if the operation is successful. Notes The message payload already should have been filled before calling this function. CreateNewConnection This function actively pursues a new P2P connection. Syntax BYTE CreateNewConnection(BYTE RetryInterval) BYTE CreateNewConnection(BYTE RetryInterval, DWORD ChannelMap) Inputs • BYTE – RetryInterval: The time interval, in seconds, between each attempt to request a new connection. • DWORD – ChannelMap: The bitmap of the channels to be tried for establishing a connection. This requires the energy scan feature to be enabled. Outputs BYTE – The index of the new connection in the P2P connection entries. Notes There is a return only if a new P2P connection is established. © 2008 Microchip Technology Inc. DS01204A-page 21 AN1204 DisableNewConnection This function disables the stack to accept the new connection. Syntax void DisableNewConnection(void) Inputs None Outputs None Notes After the stack is disabled to accept the new connection, a response is sent if the request is from a device that already is connected or if the request is an active scan. DisableAcknowledgement This function disables the stack to request MAC Acknowledgement for each unicast packet. Syntax void DisableAcknowledgement(void) Inputs None Outputs None Notes None DiscardPacket This function notifies the stack to discard the current received packet and prepare to receive the next packet. Syntax void DiscardPacket(void) Inputs None Outputs None Notes If this function is not called after processing the current packet, the stack will never be able to receive the next packet. DS01204A-page 22 © 2008 Microchip Technology Inc. AN1204 DumpConnection This function prints out the information regarding the connection(s) on the HyperTerminal. Syntax void DumpConnection(BYTE index) Inputs BYTE Index: The index of the connection in the P2P connection entries. (The value, 0xFF, represents all connections.) Outputs None Notes This function is usually used during development. EnableAcknowledgement This function enables the stack to request MAC Acknowledgement for each unicast packet. Syntax void EnableAcknowledgement(void) Inputs None Outputs None Notes None EnableNewConnection This function enables the stack to begin accepting new connections. Syntax void EnableNewConnection(void) Inputs None Outputs None Notes None © 2008 Microchip Technology Inc. DS01204A-page 23 AN1204 FlushTx This function resets the transmitting buffer. Syntax void FlushTx(void) Inputs None Outputs None Notes This function should be called when the applications starts, before filling the transmitting buffer. InitChannelHopping The function is called by a frequency agility starter to begin the process of frequency agility (channel hopping). Syntax BOOL InitChannelHopping( DWORD ChannelMap) Inputs DWORD ChannelMap: The bitmap of the candidate channels that the PAN could hop to. Outputs BOOL – The boolean expression that indicates the channel hopping request was successful. Notes If the current operating channel has the least noise, the channel hopping operation will not be performed and the return value will be FALSE. MRF24J40Sleep This function puts the MRF24J40 radio into Sleep mode. Syntax void MRF24J40Sleep(void) Inputs None Outputs None Notes None DS01204A-page 24 © 2008 Microchip Technology Inc. AN1204 MRF24J40Wake This function wakes the MRF24J40 radio from Sleep mode. Syntax void MRF24J40Wake(void) Inputs None Outputs None Notes None OptimalChannel This function scans and finds the channel with the least amount of noise. Syntax BYTE OptimalChannel(BYTE ScanDuration, DWORD ChannelMap, BYTE *RSSIValue) Inputs • BYTE – ScanDuration: The time period allotted for the energy scan of each channel. • DWORD – ChannelMap: The bitmap of the channels to be subject to the energy scan. Outputs • BYTE – RSSIValue: The pointer to the energy level for the optimal channel. • BYTE – The optimal channel with the least noise. Notes None P2PInit This function initializes the MiWi P2P stack. Syntax void P2PInit(void) Inputs None Outputs None Notes None © 2008 Microchip Technology Inc. DS01204A-page 25 AN1204 ReceivedPacket This function calls the MiWi P2P stack and checks if a packet has been received. Syntax BOOL ReceivedPacket(void) Inputs None Outputs BOOL – The boolean expression that indicates a packet has been received by the MiWi P2P stack. Notes None ResyncConnection Syntax BOOL ResyncConnection(BYTE *DestinationAddress, DWORD ChannelMap) Inputs • BYTE – DestinationAddress: The pointer to the long destination address of the peer device in the connection to be resynchronized. • DWORD – ChannelMap: The bitmap of channels eligible to do the resynchronization. Outputs BOOL – The boolean expression that indicates the resynchronization operation was successful. Notes None SetChannel This function sets the device to operate on one of the 16 channels available in the 2.4 GHz band. Syntax void SetChannel(BYTE channel) Inputs BYTE – Channel: The channel currently used by a device. Outputs None Notes None DS01204A-page 26 © 2008 Microchip Technology Inc. AN1204 UnicastConnection This function unicasts a message to the peer device of the connection in the P2P connection entries field. Syntax BOOL UnicastConnection(BYTE ConnectionIndex, BOOL isCommand, BOOL SecurityEnabled) Inputs • BYTE – ConnectionIndex: The index of the peer device in the P2P connection entries field. • BOOL – isCommand: The boolean expression that indicates a packet is a command packet. • BOOL – SecurityEnabled: The boolean expression that indicates if a packet needs encryption. Outputs BOOL – The return to the boolean expression indicating the unicast operation was successful. Notes None UnicastLongAddress This function unicasts a message to the device with the input long address. Syntax BOOL UnicastLongAddress(WORD_VAL DestinationPANID, BYTE *DestinationAddress, BOOL isCommand, BOOL SecurityEnabled) Inputs • WORD_VAL – DestinationPANID: The PAN identifier of the destination device. • BYTE * – DestinationAddress: The pointer to the 8-byte long address of the destination device. • BOOL – isCommand: The boolean expression indicating a packet is a command packet. • BOOL – SecurityEnabled: The boolean expression that indicates a packet needs encryption. Outputs BOOL – Return the boolean expression indicating this operation was successful. Notes None WriteData This function writes one byte of data to the transmitting buffer. Syntax void WriteData(BYTE data) Inputs BYTE – Data: The data write to the transmitting buffer. Outputs None Notes This function should be called only after the FlushTx function. © 2008 Microchip Technology Inc. DS01204A-page 27 AN1204 APPLICATION FLOWCHART Figure 15 gives the typical flow of the MiWi P2P applications. A typical MiWi P2P application starts by initializing the hardware and MiWi P2P stack. Then, it tries to estab- lish a connection and enter the normal operation mode of receiving and transmitting data. FIGURE 15: FLOWCHART FOR MIWI™ P2P WIRELESS PROTOCOL APPLICATIONS Hardware and Stack Initialization Establish Connection(s) No Received a No Need to Send Packet? a Packet? Yes Yes Process the Send the Packet Packet DS01204A-page 28 © 2008 Microchip Technology Inc. AN1204 After a connection is established, the procedures for most MiWi P2P applications will be the same. Any variation — due to different stack configurations – takes place during the establishment of connections. The simplest P2P connection application for establishing connections is shown in Figure 16. FIGURE 16: FLOWCHART TO ESTABLISH CONNECTION(S) IN SIMPLE MODE Set Predefined Channel Enable Stack to Accept New Connections Actively Pursue a New Connection © 2008 Microchip Technology Inc. DS01204A-page 29 AN1204 In more complex applications that require active scan capability, the steps for establishing connections differ between the PAN coordinator and end devices. Figure 17 shows the active scan steps for both categories of devices. FIGURE 17: FLOWCHART TO ESTABLISH CONNECTIONS WHEN ACTIVE SCAN IS ENABLED PAN Coordinator End Devices Active Scan Active Scan all Available Channels all Available Channels • Choose a Channel with Choose the PAN and Least PAN or PAN with Channel that Fits the Weakest Signal Strength Application's Needs • Set Channel Choose a PAN ID Set Selected Channel that hasn't been Used Enable Stack to Accept Enable Stack to Accept New Connection New Connection Actively Pursue Actively Pursue a New Connection a New Connection DS01204A-page 30 © 2008 Microchip Technology Inc. AN1204 For applications with energy scan enabled, the steps after connection also are different for the PAN coordinator and end devices (see Figure 18). FIGURE 18: FLOWCHART TO ESTABLISH CONNECTIONS WHEN ENERGY SCAN IS ENABLED PAN Coordinator End Devices Energy Scan Enable Stack to Accept for Optimal Channel New Connection Actively Pursue a New Connection by Set Channel Scanning all Available Channels Enable Stack to Accept New Connection Passively Pursue a New Connection © 2008 Microchip Technology Inc. DS01204A-page 31 AN1204 The process for establishing connections – with both active scan and energy scan enabled – is shown in Figure 19. FIGURE 19: FLOWCHART TO ESTABLISH CONNECTIONS WITH ACTIVE AND ENERGY SCAN PAN Coordinator End Devices Energy Scan Active Scan for Optimal Channel all Available Channels Choose the PAN and Set Channel Channel that Fits the Application's Needs Active Scan Set Selected Channel Optimal Channel Choose an Unused Enable Stack to Accept PAN ID New Connection Enable Stack to Accept Actively Pursue New Connection a New Connection Passively Pursue a New Connection DS01204A-page 32 © 2008 Microchip Technology Inc. AN1204 SYSTEM RESOURCES REQUIREMENT The MiWi™ P2P Wireless Protocol stack has a rich set of features. Enabling a feature set will increase the system requirements for the microcontrollers. Table 5 gives the requirements of a basic configuration. TABLE 5: PIC18 MEMORY REQUIREMENTS FOR MIWI™ P2P WIRELESS PROTOCOL BASIC STACK Program Memory Configuration RAM (Bytes) (Bytes) Target Small Stack 3,336 100 + RX Buffer Size + TX Buffer Size + (9 * P2P Connection Size) Size Additional MiWi P2P features require more program memory and RAM. Table 6 lists the system requirements for features above a basic configuration. TABLE 6: PIC18 MEMORY REQUIREMENTS FOR MIWI™ P2P WIRELESS PROTOCOL STACK FEATURES† Additional Program Configuration Additional RAM (Bytes) Memory (Bytes) Enable Intra-PAN Communication 462 0 Enable Sleep 186 0 Enable Security (Without Frame Freshness 500 48 Checking) Enable Security (With Frame Freshness Checking) 1,488 54 Enable Active Scan 1,070 69 Enable Energy Scan 752 0 Enable Indirect Message 950 Indirect Message Size * TX Buffer Size Enable Indirect Message with Capability of 1,228 Indirect Message Size * TX Buffer Size Broadcasting † These requirements are for the PIC18 family of microcontrollers. The stack also supports PIC24, dsPIC33 and PIC32 microcontrollers, but those devices' requirements may vary. These requirements are for the initial release of the stack and are subject to change. © 2008 Microchip Technology Inc. DS01204A-page 33 AN1204 CONCLUSION REFERENCES For wireless applications that require a star or peer-to- D. Flowers and Y. Yang, AN1066, "MiWi™ Wireless peer topology, the MiWi™ P2P Wireless Protocol is a Networking Protocol Stack" (DS1066), Microchip good solution. The stack provides all the benefits of the Technology Inc., 2007. IEEE 802.15.4 specification with a simple, yet robust, D. Flowers, K. Otten, Nilesh Rajbharti and Y. Yang, solution. AN965, "Microchip Stack for the ZigBee™ Protocol" If an application is more complex, the Microchip MiWi™ (DS0965), Microchip Technology Inc., 2007. Net stack should be considered. That stack provides IEEE Std 802.15.4-2003™, Wireless Medium Access support for a real network with up to 1,024 active nodes Control (MAC) and Physical Layer (PHY) Specifica- across as many as four hops. For details on this tions for Low Rate Wireless Personal Area Networks protocol, see AN1066, "MiWi™ Wireless Networking (WPANs), IEEE, 2006. Protocol Stack" (DS1066). For an even more complex network or interoperability, Microchip's implementation of the ZigBee protocol specification is an option. For details on this protocol, see AN965, "Microchip Stack for the ZigBee™ Protocol" (DS0965). DS01204A-page 34 © 2008 Microchip Technology Inc. Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip's Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as "unbreakable." Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip's code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device Trademarks applications and the like is provided only for your convenience The Microchip name and logo, the Microchip logo, Accuron, and may be superseded by updates. It is your responsibility to dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, ensure that your application meets with your specifications. PICSTART, PRO MATE, rfPIC and SmartShunt are registered MICROCHIP MAKES NO REPRESENTATIONS OR trademarks of Microchip Technology Incorporated in the WARRANTIES OF ANY KIND WHETHER EXPRESS OR U.S.A. and other countries. IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, FilterLab, Linear Active Thermistor, MXDEV, MXLAB, INCLUDING BUT NOT LIMITED TO ITS CONDITION, SEEVAL, SmartSensor and The Embedded Control Solutions QUALITY, PERFORMANCE, MERCHANTABILITY OR Company are registered trademarks of Microchip Technology FITNESS FOR PURPOSE. Microchip disclaims all liability Incorporated in the U.S.A. arising from this information and its use. Use of Microchip Analog-for-the-Digital Age, Application Maestro, CodeGuard, devices in life support and/or safety applications is entirely at dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, the buyer's risk, and the buyer agrees to defend, indemnify and ECONOMONITOR, FanSense, In-Circuit Serial hold harmless Microchip from any and all damages, claims, Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB suits, or expenses resulting from such use. No licenses are Certified logo, MPLIB, MPLINK, mTouch, PICkit, PICDEM, conveyed, implicitly or otherwise, under any Microchip PICDEM.net, PICtail, PIC32 logo, PowerCal, PowerInfo, intellectual property rights. PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, Total Endurance, UNI/O, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2008, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company's quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip's quality system for the design and manufacture of development systems is ISO 9001:2000 certified. © 2008 Microchip Technology Inc. DS01204A-page 35 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office Asia Pacific Office India - Bangalore Austria - Wels 2355 West Chandler Blvd. Suites 3707-14, 37th Floor Tel: 91-80-4182-8400 Tel: 43-7242-2244-39 Chandler, AZ 85224-6199 Tower 6, The Gateway Fax: 91-80-4182-8422 Fax: 43-7242-2244-393 Tel: 480-792-7200 Harbour City, Kowloon Denmark - Copenhagen India - New Delhi Fax: 480-792-7277 Hong Kong Tel: 45-4450-2828 Tel: 91-11-4160-8631 Technical Support: Tel: 852-2401-1200 Fax: 45-4485-2829 Fax: 91-11-4160-8632 http://support.microchip.com Fax: 852-2401-3431 India - Pune France - Paris Web Address: Australia - Sydney Tel: 91-20-2566-1512 Tel: 33-1-69-53-63-20 www.microchip.com Tel: 61-2-9868-6733 Fax: 91-20-2566-1513 Fax: 33-1-69-30-90-79 Atlanta Fax: 61-2-9868-6755 Japan - Yokohama Germany - Munich Duluth, GA China - Beijing Tel: 49-89-627-144-0 Tel: 678-957-9614 Tel: 81-45-471- 6166 Tel: 86-10-8528-2100 Fax: 49-89-627-144-44 Fax: 678-957-1455 Fax: 81-45-471-6122 Fax: 86-10-8528-2104 Italy - Milan Boston Korea - Daegu China - Chengdu Tel: 39-0331-742611 Westborough, MA Tel: 82-53-744-4301 Tel: 86-28-8665-5511 Fax: 39-0331-466781 Tel: 774-760-0087 Fax: 82-53-744-4302 Fax: 86-28-8665-7889 Netherlands - Drunen Fax: 774-760-0088 Korea - Seoul China - Hong Kong SAR Tel: 82-2-554-7200 Tel: 31-416-690399 Chicago Tel: 852-2401-1200 Fax: 82-2-558-5932 or Fax: 31-416-690340 Itasca, IL Tel: 630-285-0071 Fax: 852-2401-3431 82-2-558-5934 Spain - Madrid Fax: 630-285-0075 China - Nanjing Tel: 34-91-708-08-90 Malaysia - Kuala Lumpur Tel: 86-25-8473-2460 Tel: 60-3-6201-9857 Fax: 34-91-708-08-91 Dallas Addison, TX Fax: 86-25-8473-2470 Fax: 60-3-6201-9859 UK - Wokingham Tel: 972-818-7423 China - Qingdao Tel: 44-118-921-5869 Malaysia - Penang Fax: 972-818-2924 Tel: 86-532-8502-7355 Fax: 44-118-921-5820 Tel: 60-4-227-8870 Detroit Fax: 86-532-8502-7205 Fax: 60-4-227-4068 Farmington Hills, MI China - Shanghai Philippines - Manila Tel: 248-538-2250 Tel: 86-21-5407-5533 Tel: 63-2-634-9065 Fax: 248-538-2260 Fax: 86-21-5407-5066 Fax: 63-2-634-9069 Kokomo China - Shenyang Singapore Kokomo, IN Tel: 86-24-2334-2829 Tel: 65-6334-8870 Tel: 765-864-8360 Fax: 86-24-2334-2393 Fax: 65-6334-8850 Fax: 765-864-8387 China - Shenzhen Taiwan - Hsin Chu Los Angeles Tel: 86-755-8203-2660 Tel: 886-3-572-9526 Mission Viejo, CA Fax: 86-755-8203-1760 Fax: 886-3-572-6459 Tel: 949-462-9523 China - Wuhan Taiwan - Kaohsiung Fax: 949-462-9608 Tel: 86-27-5980-5300 Tel: 886-7-536-4818 Santa Clara Fax: 86-27-5980-5118 Fax: 886-7-536-4803 Santa Clara, CA China - Xiamen Taiwan - Taipei Tel: 408-961-6444 Tel: 86-592-2388138 Tel: 886-2-2500-6610 Fax: 408-961-6445 Fax: 86-592-2388130 Fax: 886-2-2508-0102 Toronto China - Xian Thailand - Bangkok Mississauga, Ontario, Tel: 86-29-8833-7252 Tel: 66-2-694-1351 Canada Fax: 86-29-8833-7256 Fax: 66-2-694-1350 Tel: 905-673-0699 Fax: 905-673-6509 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 01/02/08 DS01204A-page 36 © 2008 Microchip Technology Inc.
Pages to are hidden for
"P2P Wireless Protocol"Please download to view full document


text:
kim kardashian - Page 13
Kardashian Wedding Drama
Kim Kardashian's wedding day is quickly approaching. Just ask her fiancé Kris Humphries. He tweeted yesterday in an ominous sounding message 'Time is moving so fast'. Getting cold feet, worried about Reggie Bush trying to steal Kim back, or is Kris Jenner just trying to run your life? Welcome to the Kardashian clan Kris!
The Kim Kardashian-Kris Humphries Wedding Will Be Televised
On October 9 and 10, E! will be airing a two-part special on the wedding of reality star Kim Kardashian and New Jersey Net forward Kris Humphries.
'Kim's Fairytale Wedding: A Kardashian Event,' will, according to the network, feature "every step of the process, from wedding planning and partying to the moment when they say 'I do.'"
Kim Kardashian Crashes Kris' Bachelor Party
Kim Kardashian and fiancé Kris Humphries celebrated their bachelorette and bachelor parties over the weekend in Vegas. Kim's party was at Tao and her family was there to celebrate. Khloe kept saying she planned on embarrassing Kim during her party and she may have succeeded.
Kim Kardashian Sues Old Navy for $20 Million for Using Look-alike in Commercials [VIDEO]
Clothing retailer Old Navy is known for its kitschy commercials featuring '80s and '90s icons such as Morgan Fairchild and Joan Collins.
But in its latest campaign, "Super C-U-T-E," the company bypassed an actual star and went with an apparent lookalike of reality show phenom Kim Kardashian — and she is not amused.
Kim Kardashian Proves Her Butt is Real With X-Ray [VIDEO]
While millions of Americans struggle without health insurance, Kim Kardashian put the system to good use by getting a frivolous butt X-ray on Sunday's episode of "Keeping Up with the Kardashians.'
Kim had her rump X-rayed as a way to prove she's never had butt implants. By way of comparison, the doctor first showed an X-ray of sister Kourtney's surgically enhanced chest. But, Kim's x-ray showed no implants of any kind.
Uh Oh… There's Proof Kim Is A Cheater!
Robert Kardashian was the only one in his family that didn't believe a wedding would happen between Kim and her fiancé Kris Humphries, and maybe he was onto something. Bret Lockett, a safety for the New England Patriots, told 'In Touch Weekly' that he has been sleeping with Kim for the past five months.
Kim And Kris Wait For The Ink To Dry…
Is Kim Kardashian Pregnant!?!?!?!?
Kim Kardashian's Engagement RING
You have to capitalize RING because it's so much more than just a ring! So what about this ring Kris Humphries gave Kim Kardashian? Kim says when she was in high school, she went to Macy's and bought a fake ring -- her perfect ring
Details On Kim Kardashian's Engagement
Kim Kardashian has been dating her basketball boyfriend Kris Humphries for 6 months now. Last month, she announced she would be moving to New York to be closer to him and was hoping for an engagement by this summer
Kim Kardashian ENGAGED?!?!!?
Kim Kardashian's dreams are finally coming true. The 30-year old reality star has been ready to settle down for quite some time but a string of bad relationships kept preventing her from doing that. But things have changed since she met her 26 year old basketball boyfriend, Kris Humphries.

subset: commoncrawl


text:
Is your resume in need of a little disruption?
Startups are all about
making things work better.
Our resume writing service is all about doing that for your CV.
StartUpHire is the place to find Sales jobs in and near San%20Francisco. Review the list below of Sales San%20Francisco jobs. These Sales jobs represent some of the most rewarding careers available. You can refine your job search for Sales jobs in San%20Francisco by adding a job title, company name, or keyword to the search box above … or click the "Advanced Search" link for more options. Don't see the employment opportunity you're looking for? Check back soon for more Sales jobs in San%20Francisco, or sign up for an email alert (link in upper left) to receive periodic updates on new Sales jobs in San%20Francisco, %20CA.
Location: Palo Alto, CA, United StatesApply Marketing Operations Business Analyst Summer Intern ABOUT JIVE SOFTWARE Jive Software is the leading provider of modern communication and collaboration solutions for business. Our products empower people and organizations to work2/14/2015 Palo Alto, CA Save This Job
Summary: We are looking for a Lead Database Administrator with extensive project management experience who has experience with various technologies including Oracle RAC, GoldenGate, OBIEE and overall database design and architecture. Key responsibilities: Database design,2/14/2015 San Jose, CA Save This Job
Description Lead our Systems Engineering team, a part of Xactly?s production operations. This is a hands-onrole so we expect you to roll up your sleeves and pitch in. We?re a bunch of bright engineers working on an awesome technology stack servicing our companies SaaS products.2/14/2015 San Jose, CA Save This Job
Houzz is seeking a Product Marketer that is passionate about home design and helping millions of our users turn their ideas into reality. This role is multi-faceted and will have responsibilities that include but are not limited to: identifying opportunities to assist our users,2/11/2015 Palo Alto, CA Save This Job
Houzz is seeking a Business Development Manager who loves all aspects of building long-term strategic partnerships. You will play an important role in helping develop and negotiate partnerships that support key strategic growth, monetization and product initiatives. You are2/11/2015 Palo Alto, CA Save This Job
Aerospike is looking for a Solutions Architect as well as Senior Solutions Architect. We are well funded by tier-1 Silicon Valley Venture Capitalists who believe in the company, have faith in the segment and have been helping the business grow. The senior/solutions architect is2/11/2015 Mountain View, CA Save This Job
We?re looking for Member Experience Associates who will deliver on Stride?s mission to disrupt the traditional health insurance industry with a high-touch, customer-centric experience. You will do everything in your power to delight our customers ? interacting via email,2/11/2015 San Francisco, CA Save This Job
at Houzz Palo Alto Houzz is seeking a Director of Partnerships who loves all aspects of building long-term strategic partnerships. Partnerships at Houzz is responsible for developing and negotiating partnerships that support key strategic growth, monetization and product2/11/2015 Palo Alto, CA Save This Job
About Ticketfly Ticketfly is making life better for the live events community with innovative technology that improves the event experience from discovery to attendance and beyond. We are challenging the status quo by centering the experience around the fan and building a2/10/2015 San Francisco, CA Save This Job
About Ticketfly Ticketfly is making life better for the live events community with innovative technology that improves the fan experience from discovery to attendance and beyond. We are challenging the status quo by centering the experience around the fan and building a powerful2/10/2015 San Francisco, CA Save This Job
About the role: The Editorial Director is tasked with creating and executing the long-term editorial vision for Yardbarker. We?re looking for an experienced person to lead our sports news coverage, manage our editorial team, and help build Yardbarker?s reputation as a trusted2/10/2015 San Francisco, CA Save This Job
About Ticketfly Ticketfly is a technology company that?s reimagining live events to make life better for promoters and fans. We?re bringing new ways of thinking to the industry by centering a night (or day) out around the fan, and building a powerful integrated marketing and2/10/2015 San Francisco, CA Save This Job
Responsibilities Phone and Online Customer Support Resolve customer calls and online questions professionally and efficiently Maintain venue and event information Complete call logs and produce call reports Communicate effectively with patrons and coworkers Identify and escalate2/10/2015 San Francisco, CA Save This Job
Recommind has just been praised as one of the ?World?s Ten Most Innovative Companies in Big Data? by Fast Company and awarded a position in the ?Leaders? Quadrant of Gartner?s 2013 report, ?Magic Quadrant for E-Discovery Software'. We were also recently placed on Deloitte?s2/10/2015 San Francisco, CA Save This Job
Responsibilities: High visibility hands-on position responsible for partner program development and business development with service providers, equipment manufacturers and partners in the territory of the United States. Must be knowledgeable in the Voice-over-IP2/9/2015 Santa Clara, CA Save This Job
As the Cloud/ Systems Architect you will be working with product managers, project managers, engineering teams, customers and sales teams to develop cloud solutions based on the OpenStack platform. You will be considering business, technical and operational aspects of our2/9/2015 Mountain View, CA Save This Job
Want an opportunity to work with what our Fortune 500 customers say is the best Social Media Enterprise platform in existence? We are seeking a highly-motivated software developer to be part of our development team. The ideal candidate is an enthusiastic and entrepreneurial2/9/2015 San Francisco, CA Save This Job
The Data Engineer will be responsible for leading new customers through the onboarding process and supporting existing partners with guidance on all things data-related. As an expert on the inner workings of Metamarkets? technologies, you will live at the intersection of Client2/9/2015 San Francisco, CA Save This Job
About the company: NetBase is a leading social analytics start-up, chosen by world-famous brands such as Coca Cola, Johnson & Johnson, Ralph Lauren, Yum Foods and Nickelodeon to deliver social, live analytics for action ? through industry leading speed and accuracy. Located in2/9/2015 Mountain View, CA Save This Job
As a Customer Solution Architect, Community Engineering at Mirantis you will drive the collaboration of our upstream Community Engineering teams with the work our customers and partners are doing in the Community. You will play a key role working with our strategic customers to2/9/2015 Mountain View, CA Save This Job


text:
Simply Home Inn & Suites N Little Rock
No availability found through our partners. Please contact the business directly or check some of our recommended alternatives.
- Continental Breakfast
- Continental Breakfast
- Suites
- Suites
- Free High-Speed Internet
- Free High-Speed Internet
Photos of Simply Home Inn & Suites N Little Rock
Travelers also recommend:
- More recommendations
TripAdvisor Reviews Simply Home Inn & Suites N Little Rock North Little Rock
Travel Blogs from North Little Rock
Nashville to Little Rock 345 miles
Ok so still feel bad this morning, in fact I threw up - can't even remember the last time that happened, perhaps it wasn't the cocktail after all. Peter had a lonely breakfast, as I felt so bad. Eventually got on the road and programmed in first stop Graceland. It was really weird when we got there, it's in a busy scruffy road lined with the usual fast food outlets. You pull into a huge car park (not necessary in January!) and walk to the ticket office, we got the cheapest tour, the ...
A Presidential meeting in Arkansas
... fellow group members.
The building also houses a rather good restaurant which seemed to be far better than the prices being charged suggested. It really was a classy looking place but our soup and a sandwich was just $8.00 each which is what you might expect to pay in any of the chain restaurants stateside for something similar. We rounded the early afternoon off with a walk around downtown Little Rock and took a trip (or ride as they would say here) ...
Day 23| Clinton Presidential Museum Visit
... hotel. My travels have cemented the stereotype that Indian immigrants have captured the entry level hotel market. Like many immigrants before them, they choose to work at low wages with 24/7 work schedules for themselves as opposed to some company. Capitalism at its best.
I was up early on Wednesday, and headed to downtown Little Rock. It is an old city located along the banks of the Arkansas River. I walked around the River Market District ...
Asheboro, NC to Sherwood, AR
... at an "On the Border", just outside Little Rock. Andy helped with some chain maintenance, tightening of fasteners, general once over of the bike, as he used to run a motorcycle repair shop in High Point. We rested well that night due to Andy and his girlfriend's hospitality, and that was a good thing, cause we knew we had an even longer day the ...
Day Eight Tuesday 2nd September 2014 Arkansas
Really sad to leave Graceland's and Memphis, absolutely loved every minute of it. Another early start as we have a 290 mile journey to make to Arkansas were we are staying at the Queen Wilhelmina campsite 2000 miles up in the mountains. We have decided not to go to hot springs as apparently they have better ones in San Francisco I must say I ...


text:
WEBSTA - Instagram Web Viewer
Traveler . Stargazer . Food hoarder . Gym Lover . Dancer . Choreographer . Mogul . Dreamer ✞
University of North Texas .
New Message
The user you are sending this message to is not on Websta.
To receive your message, send a request to use Websta Messages.
The request will appear as a comment on his/her latest post.
You need to be following eseknowsbest_ to like or comment.
Report this link
This product uses the Instagram API but is not endorsed or certified by Instagram. All Instagram™ logos and trademarks displayed on this application are property of Instagram.
2011- © A-FIS PTE. LTD. All rights reserved.
Made with in Wakayama, Singapore, Kuala Lumpur.


text:
Orchid Society Photos
arthurm(Sydney, NSW AUST)February 16, 2013
A few photos from an orchid society meeting in Sydney, Australia. January (summer ). added a few days later "I do not know why these photos end up squished. If you want a true view. click on the photo and the flickr image will come up. Maybe there is a limitation on how many photos to put in one post?
Psychopsis Mendenhall
Plant of the night, photo showing a few of the hundreds of flowers. Unknown Hybrid
Masdevallia Cuzco Gold
Epidendrum Cosmo Dream Color x self. Compact reed stem.
Dendrobium Chao Praya Candy. Hardcane Hybrid from Thailand
This post was edited by arthurm on Sat, Feb 16, 13 at 20:37


text:
Court overturns OPD bust
The U.S. Court of Appeals for the Fifth Circuit reversed a lower court's decision to deny a motion to suppress evidence discovered by Oxford Police Department officers during a malicious mischief investigation in 2007.
OPD officers pulled over a vehicle seen leaving the area where someone had thrown something at a window in an apartment complex. Drugs and a firearm were found in the vehicle and Cahafer Benjamin and Kao Wokoma were indicted on drug and firearm charges.
The two men filed a motion with the U.S. District Court to suppress the evidence, claiming the officer has no reasonable suspicious to stop the vehicle. The lower court denied the motion, however, on Monday the Court of Appeals reversed their conviction and overturned the denial to suppress the evidence. (November 30, 2010, Page 2)
Bogus drug outfits busted
Two local Hispanic grocery and convenience stores were searched recently during a year-long federal, state and local investigation that resulted in about 30 federal search warrants being issued across Mississippi. Lafayette County Metro Narcotics Agent in Charge Keith Davis said counterfeit pharmaceuticals were recovered at both locations. (November 19, 2010, Page 1A)
Some cases not prosecuted
At least three cases involving crimes against children have been retired to the files during the October court term.
Third Circuit District Attorney Ben Creekmore said he could not comment on the individual cases but that in general, sexual-based crimes are prosecuted like any other crimes, however, just because there's been an arrest, doesn't necessarily mean there is always a conviction.
See these cases and other results from the October Court Term in today's EAGLE. (November 18, 2010, Page 1)
New trial in Bracey case
The Mississippi Supreme Court has overturned the conviction of a former University of Mississippi student who was sentenced to life in prison for killing his girl friend in 2005.
David Jackson Williams was convicted in 2007 of killing Demetria Bracey, also a former Ole Miss student, with a knife and leaving her body in a closet for four days. Williams claimed Bracey stabbed herself as part of a suicide pact, however, he failed to go through with the act himself.
The Supreme Court ordered a new trial for Williams in a 5-4 decision Wednesday. The court ruled the trial judge, Circuit Court Judge Andrew Howorth, erred by refusing to give the jury the option of finding Williams guilty of assisted suicide. (November 10, 2010, Page 1)
Local banks robbed more often
While Oxford has had two bank robberies and nearby Water Valley has had one bank robbed in 2010, nationally, the Bonnie and Clyde wannabes seem to be getting fewer. (November 10, 2010, Page 1)
Retiring judge honored
The retirement party for the Honorable Circuit Court Judge Henry L. Lackey was suppose to be a "roast and toast" event. While many of the speeches made by about 16 people about the Calhoun County judge caused a few chuckles — and even a few tears, it was Lackey himself who invoked rounds of hearty laughter as he lovingly roasted them in return.
He announced his intent to retire at a Christmas party in 2009. His term will end Dec. 31. About 300 people attended Lackey's retirement party Thursday at the Oxford Conference Center. (November 5, 2010, Page 1A)
No loose dogs allowed at Lamar Park
Keeping your dog on a leash has been the law inside the city of Oxford for several years, but was only loosely enforced at the Lamar Park — until now.
Oxford police and animal control officers haven't felt the need to crack down on dogs running free while chasing sticks or Frisbees at the park until now. Dog owners can expect to see this law strictly enforced after a woman was knocked down by a loose dog while at Lamar Park on Thursday. The fall resulted in the woman breaking her wrist.
The Oxford Police Department and Animal Control officers will issue warnings for one week, Martin said. After that, citations will be issue. The fine for violating the city's leash law is $174. (November 5, 2010, Page 2A)
Narcotics agents hope to keep new 'legal' drug out of Oxford
Few would disagree there's no better way to end a stressful day than by soaking in a hot bath, filled with bubbles and scented bath salts.
Unfortunately, it appears those same bath salts have become a recreational tool of another kind for some people.
Narcotic agents are becoming concerned over reports that a product, marketed as "concentrated bath salts," is being used to get high. The main ingredient, methylenedioxypyrovalerone, is a psychoactive drug that acts like a stimulant that has four times the potency of drugs like Ritalin.
"We haven't seen any on Oxford's streets yet," said Lafayette County Narcotics Agent-in-Charge Keith Davis.
The bath salts are not the usual kind you can purchase from Walmart or drug stores like Walgreen's, Davis said.
"They are usually found at shady convenience stores and head shops and on the Internet," he said. (November 5, 2010, Page 9A)
Two courts deny voting lawsuit
The lawsuit, filed by Earl Tucker, 96, on Oct. 20, claims the state was violating his rights by placing observers in voting precincts who might require someone to present photo identification.
On Oct. 28, U.S. District Court Judge W. Allen Pepper Jr. dismissed the suit which asked for a temporary restraining order to prohibit the observers and challenged the Mississippi Voter Identification Petition that will be appear on the November 2011 statewide ballot. The measure, if successful, would require photo identification at all voter polls in the state.
Tucker's attorney, Alvin O. Chambliss of Oxford, filed a motion of injunction with the Court of Appeals which denied the motion on Monday. (November 3, 2010, Page 3)
Bank robber still on the lam
The Oxford Police Department is still searching for the man who robbed the Mechanics Bank on University Avenue on Tuesday morning.
Police say a black male wearing a ski mask came into the bank at 11:37 a.m. and robbed a teller at gun point; however, no one was injured in the robbery.
Anyone with information of the case is asked to call OPD at 232-2400. (November 3, 2010, Page 1)


text:
"Laughed out loud... I never do that"
This is one of the best books I've read in a long, long time. I already miss the characters. Nicholls does an incredible job of capturing both the female and mail perspectives.
"Disappointing and Rambling"
Disappointing and rambling, this is definitely not one of his best. I felt extremely cheated by the ending, which depended too much on the supernatural and tied things up too rapidly and with a heavy-handedness not worthy of this usually adroit author. I like dogs ... have two of them myself. But ENOUGH already with the endless description of the eyes and the coat and the wagging tails, and .... and ... and.
I have read and enjoyed all of this author's books, but find this one to be my favorite so far. Although not without bias, I thought his investigation of the history of Mormon fundamentalism both interesting and insightful. For those outside the faith, the Mormons inherent secrecy and exclusion of gentiles perpetrates an almost insatiable curiosity. Krakauers look at past and present events is riveting reading. I listened to the book nearly without interruption. My only complaint is that an unabridged copy was not available.
Report Inappropriate Content
If you find this review inappropriate and think it should be removed from our site, let us know. This report will be reviewed by Audible and we will take appropriate action.