Silicon Labs UG103.1 User's Guide

Silicon Labs UG103.1 User's Guide
UG103.1: Wireless Networking Application
Development Fundamentals
This volume of Silicon Labs’ Fundamentals series introduces
some fundamental concepts of wireless networking. Other documents in the series frequently refer to these concepts. If you are
new to wireless networking, you should read this document first.
Silicon Labs’ Fundamentals series covers topics that project managers, application designers, and developers should understand before beginning to work on an embedded
networking solution using Silicon Labs chips, networking stacks such as the EmberZNet stack or Silicon Labs Bluetooth®, and associated development tools. The documents can be used as a starting place for anyone needing an introduction to developing wireless networking applications, or who is new to the Silicon Labs development
environment.
silabs.com | Building a more connected world.
KEY POINTS
• Embedded networking
• Radio fundamentals
• Networking basic concepts
• Wireless networking
• Networking devices
Rev. 1.3
UG103.1: Wireless Networking Application Development Fundamentals
Overview
1. Overview
As embedded system design has evolved and the Internet of Things (IoT) has emerged, the need for networking support has become a
basic design requirement. Like more general-purpose computers, embedded systems have moved toward wireless networking. Most
wireless networks have pushed toward ever-higher data rates and greater point-to-point ranges. But not all design applications require
high-end wireless networking capabilities. Low-data-rate applications have the potential to outnumber the classic high-data-rate wireless networks worldwide. Simple applications such as lighting control, smart utility meters, Heating, Ventilation, and Air Conditioning
(HVAC) control, fire/smoke/CO alarms, remote doorbells, humidity monitors, energy usage monitors, and countless others devices
function very well with low-data-rate monitoring and control systems. The ability to install such devices without extensive wiring decreases installation and maintenance costs. Increased efficiencies and cost savings are the primary motives behind this applied technology.
A wireless sensor network (WSN) is a wireless network consisting of distributed devices using sensors at different locations to cooperatively monitor physical or environmental conditions, such as temperature, sound, vibration, pressure, motion, or pollutants.
In addition to one or more sensors, each node in a sensor network is typically equipped with a radio transceiver or other wireless communications device, a small microcontroller, and an energy source, usually a battery. The size of a single sensor node can vary from
shoebox-sized nodes down to devices the size of coins. The cost of sensor nodes is similarly variable, depending on the size of the
sensor network and the complexity required of individual sensor nodes. Size and cost constraints on sensor nodes result in corresponding constraints on resources such as energy, memory, computational speed, and bandwidth.
Wireless personal area networks have emerged partially as a result of the IEEE 802.15.4 standard for low data rate digital radio connections between embedded devices. Above the medium access control (MAC) and physical (PHY) layers, there have been a number
of standards formed such as The Zigbee Alliance and the Thread Group, which were formed to standardize industry efforts to supply
technology for networking solutions that are based on 802.15.4, have low data rates, consume very little power, and are therefore characterized by long battery life. The Zigbee Standard makes possible complete and cost-effective networked homes and similar buildings
where all devices are able to communicate for monitoring and control. The Thread Group brings IPv6 to these small embedded devices.
silabs.com | Building a more connected world.
Rev. 1.3 | 2
UG103.1: Wireless Networking Application Development Fundamentals
Embedded Networking
2. Embedded Networking
While the term wireless network may technically be used to refer to any type of network that functions without the need for interconnecting wires, the term most commonly refers to a telecommunications network, such as a computer network. Wireless telecommunications
networks are generally implemented with radios for the carrier or physical layer of the network.
One type of wireless network is a wireless local area network or LAN. It uses radios instead of wires to transmit data back and forth
between computers on the same network. The wireless LAN has become commonplace at hotels, coffee shops, and other public places. The wireless personal area network (WPAN) takes this technology into a new area where the distances required between network
devices is relatively small and data throughput is low.
In the control world, embedded systems have become commonplace for operating equipment using local special-purpose computer
hardware. Wired networks of such devices are now common in manufacturing environments and other application areas. Like all computer networks, the interconnecting cable systems and supporting hardware are messy, costly, and sometimes difficult to install. To
overcome these problems, wireless networking of embedded systems (that is, embedded networking) has become commonplace. However, the costly embedded networking solutions have only been justifiable in high-end applications where the costs are a secondary
consideration. Low-cost applications with low data rate communications requirements did not have a good standardized solution until
the IEEE 802.15.4 standard for wireless personal area PHY and MAC layers was released in 2003.
Note: The current version as of this writing is the IEEE 802.15.4-2006 standard (https://standards.ieee.org/standard/
802_15_4-2006.html).
The Zigbee Alliance was formed to establish networking and application-level standards on top of the IEEE 802.15.4 standards, to allow
flexibility, reliability, and interoperability. The Zigbee 802.15.4-2003 Specification 1.0 was ratified in 2005 and the Zigbee 2006 Specification was announced in 2006, obsoleting the 2004 stack. Working Groups (WGs) have been formed within the Internet Engineering
Task Force (IETF) to establish open standard approaches for routing (roll WG) and interfacing low-powered wireless devices to IPV6
networks (6LoWPAN WG). More recently, the Thread Group was formed in 2014 to utilize open IP standards, mesh networking, and
802.15.4 to support a wide array of home networking products.
Although wireless networks eliminate messy cables and enhance installation mobility, the downside is the potential for interference that
might block the radio signals from passing between devices. This interference may be from other wireless networks or from physical
obstructions that interfere with the radio communications. Interference from other wireless networks can often be avoided by using different channels. Zigbee, for example, has a channel-scanning mechanism on start-up of a network to avoid crowded channels. Standards-based systems, such as Thread, Zigbee and Wi-Fi, use mechanisms at the MAC layer to allow channel sharing. In addition, Zigbee and Thread provide an interoperable standard for multi-hop wireless networking, allowing signals to reach their destination by traveling through multiple relay points. These networks can be comprised of many such relay points or “routers,” each one within range of
one or more other routers, creating an interconnected “mesh” of devices that can provide redundant paths for data within the network
that are automatically rediscovered and used to avoid interference in a local area. This concept is collectively referred to as “mesh networking.”
Another potential problem is that wireless networks may be slower than those that are directly connected through a cable. Yet not all
applications require high data rates or large data bandwidth. Most embedded networks function very well at reduced throughputs. Application designers need to ensure their system data rates are within the range achievable with the system being used.
Wireless network security is also a problem, because the data can easily be overheard by eavesdropping devices. Zigbee and Thread
have a set of security services designed around Advanced Encryption Standard (AES) 128 encryption, so that application designers
have a choice of security levels based on the needs of their applications. Careful design around these standards helps maintain high
levels of network security.
Other networking standards exist such as Bluetooth Classic. Each standard has its own unique strengths and essential areas of application. The bandwidth of Bluetooth is 1 Mbps, while 802.15.4-based protocols are one-fourth of this value. The strength of Bluetooth
Classic lies in its ability to allow interoperability and replacement of cables. Zigbee and Thread's strengths are low cost, long battery life,
and mesh networks for large network operation. Bluetooth is meant for point-to-point applications such as handsets and headsets,
whereas Zigbee and Thread are focused on the sensors and remote controls market, large distributed networks, and highly reliable
mesh networking. Bluetooth Low Energy is emerging rapidly as another low power wireless technology very well suited for point-topoint applications such as controlling a single device with your smartphone.
While in the past each chip supported a single protocol, new developments have allowed two protocols to operate on the same chip.
This multiprotocol operation may be as simple as chip technology that supports different protocols, with the application protocol of
choice loaded during manufacturing. More recently, chips such as Silicon Labs EFR32 products and shared operational infrastructure
allow two protocols to share the same radio. For example, a dynamic multiprotocol implementation might allow an end user to use a
smartphone app working with a Bluetooth Low Energy application on the device to control the device or perform diagnostics, while the
device remains connected to its Zigbee home automation network. UG103.16: Multiprotocol Fundamentals describes the four different
multiprotocol modes, their operational requirements, and discusses some considerations to take into account when implementing a
multiprotocol device.
silabs.com | Building a more connected world.
Rev. 1.3 | 3
UG103.1: Wireless Networking Application Development Fundamentals
Radio Fundamentals
3. Radio Fundamentals
Radio is the wireless transmission of signals by modulation of electromagnetic waves with frequencies below those of visible light. Electromagnetic waves are, in the case of radio, a form of non-ionizing radiation, which travels by means of oscillating electromagnetic
fields that pass through electrical conductors, the air, and the vacuum of space. Electromagnetic radiation does not require a medium of
transport like a sound wave. Information can be imposed on electromagnetic waves by systematically changing (modulating) some
property of the radiated waves, such as their amplitude or their frequency. When radio waves pass an electrical conductor, the oscillating fields induce an alternating current in the conductor. This can be detected and transformed into sound or other signals that reproduce the imposed information.
The word 'radio' is used to describe this phenomenon and radio transmission signals are classed as radio frequency emissions. The
range or spectrum of radio waves used for communication has been divided into arbitrary units for identification. The Federal Communications Commission (FCC) and National Telecommunications and Information Association (NTIA) arbitrarily define the radio spectrum
in the United States as that part of the natural spectrum of electromagnetic radiation lying between the frequency limits of 9 kilohertz
and 300 gigahertz, divided into various sub-spectrums for convenience.
The following names are commonly used to identify the various sub-spectrums:
Name
Sub-Spectrum
Very Low Frequencies (VLF)
3 kHz to 30 kHz
Low Frequencies (LF)
30 kHz to 300 kHz
Medium Frequencies (MF)
300 kHz to 3,000 kHz
High Frequencies (HF)
3,000 kHz to 30,000 kHz
Very High Frequencies (VHF)
30,000 kHz to 300,000 kHz
Ultra High Frequencies (UHF)
300,000 kHz to 3,000,000 kHz
Super High Frequencies (SHF)
3,000,000 kHz to 30,000,000 kHz
Extremely High Frequencies (EHF)
30,000,000 kHz to 300,000,000 kHz
Each of the sub-spectrums listed above are further subdivided into many other sub-portions or ‘bands.’ For example, the American AM
Broadcast Band extends from 535 kHz to 1705 kHz, which is within the portion of the spectrum classified as Medium Frequencies.
3.1 Frequency Bands
The radio spectrum is regulated by government agencies and by international treaties. Most transmitting stations, including commercial
broadcasters, military, scientific, industrial, and amateur radio stations, require a license to operate. Each license typically defines the
limits of the type of operation, power levels, modulation types, and whether the assigned frequency bands are reserved for exclusive or
shared use. Three frequency bands can be used for transmitting radio signals without requiring licensing from the United States Government:
900 MHz
The 900 MHz band was used extensively in different countries for different products including pagers and cellular devices.
This band was considered to have good range characteristics. However, it can be less popular for products because it is not a worldwide unlicensed band, and products therefore need to be modified depending on where
they are being used.
2400 MHz
The 2400 MHz band is a very commonly-used frequency band. This band was one of the first worldwide unlicensed bands and therefore became popular for wireless consumer products.
Typical wireless technologies that use this band are 802.11b (1-11 Mbps), 802.11g (1-50 Mbps) and 802.15.4,
as well as numerous proprietary radio types.
5200-5800 MHz
The 5200 MHz band has three sub-bands, the lowest being for indoor home use only, while the 5800 MHz frequencies can be used for long distance wireless links at very fast speeds (30 – 100 Mbps).
A common strategy is to use 2400 MHz in residential and home environments. The Zigbee Alliance and Thread Group endorse the use
of this band, and both are looking at other SubGHz bands to expand their capabilities
silabs.com | Building a more connected world.
Rev. 1.3 | 4
UG103.1: Wireless Networking Application Development Fundamentals
Radio Fundamentals
3.2 Signal Modulation
Modulation is the process of changing the behavior of a signal so that it transfers information. Modulation can also be thought of as a
way to encode information to be transmitted to a receiver that decodes, or demodulates, the information into a useful form.
The basic radio frequency (RF) signal has a fundamental frequency that can be visualized as an alternating current whose frequency is
referred to as the carrier wave frequency. The earliest method used for encoding information onto the carrier wave involved switching
the carrier wave on and off in a specific time duration pattern. This was known as continuous wave (CW) mode. The carrier frequency
can also be varied in its amplitude (that is, signal strength) or its frequency. These two modulation methods are called amplitude modulation (AM) and frequency modulation (FM), respectively. It is possible to impose a signal onto the carrier wave using these three basic
modulation techniques and creative variations of these techniques.
The Silicon Labs EFR32 and EM3x integrated circuit families uses a form of offset quadrature phase-shift keying (OQPSK) to modulate
the carrier wave. Phase-shift keying (PSK) is a digital modulation scheme that conveys data by changing, or modulating, the phase of a
reference signal such as the carrier wave. PSK is a derivative of FM techniques.
All digital modulation schemes use a finite number of distinct signals to represent digital data. In the case of PSK, a finite number of
phases are used. Each of these phases is assigned a unique pattern of binary bits. Usually, each phase encodes an equal number of
bits. Each pattern of bits forms the symbol that is represented by the particular phase. The demodulator, which is designed specifically
for the symbol set used by the modulator, determines the phase of the received signal and maps it back to the symbol it represents,
thus recovering the original data. To do so, the receiver must compare the phase of the received signal to a reference signal. Such a
system is termed coherent.
3.3 Antennas
An antenna (or aerial) is an arrangement of electrical conductors designed to emit or capture electromagnetic waves. The ability of an
antenna to emit a signal that can be detected by another antenna is referred to as radio propagation. Antennas are made to a certain
size based on the operating frequencies. An antenna from a 2400 MHz radio cannot be used effectively on a 5800 MHz radio, or vice
versa. However, an antenna from one type of 2400 MHz technology, such as Wi-Fi or Bluetooth, can be used in another 2400 MHz
technology, such as Zigbee or Thread.
Two fundamental types of antennas are described with reference to a specific three-dimensional space:
• Omni-directional: radiates equally in all directions
• Uni-directional (also known as directional): radiates more in one direction than in the other. All antennas radiate some energy in all
directions in free space, but careful construction results in substantial transmission of energy in certain directions and negligible energy radiated in other directions.
In general, because of the nature of mesh networking, an omni-directional antenna is desired to provide as many communication paths
as possible.
3.4 How Far Signals Travel
The distance a radio signal will travel and the amount of information that can be transmitted is based on:
• The amount of power the antenna is transmitting into the air.
• The distance between the transmitting and receiving stations.
• How much radio signal strength the receiving radio needs.
• What types of physical/electrical obstructions are in the way.
3.4.1 Radio Transmit Power
Radio transmit power is measured in watts, and typically discussed in terms of dBm, decibels referenced to 1 milliwatt. Converting wattage to dBm allows radio link calculations using simple addition and subtraction (dBm= 10*log10(P/ 0.001).
For example, a typical power amplified wireless radio card transmits at 100 milliwatts (or mW), which translates to a power output of
20dBm.
If 1 mW, or 0 dBm, is the baseline for power in decibels, then +3 dBm is some power level above 1 mW (2 mW to be specific). This is
the standard output power of the EM3x devices. In Boost Mode, that can be increased to +8 dBm, or 6 mW, on the EM3x platforms.
Using a power amplifier module can increase the transmit power to 20 dBm, but this requires more power to operate. The EFR32 platforms include some variants that go to +13 dBm and others that go up to +20 dBm, both without the aid of an external power amplifier.
silabs.com | Building a more connected world.
Rev. 1.3 | 5
UG103.1: Wireless Networking Application Development Fundamentals
Radio Fundamentals
3.4.2 Signal Degradation
The radio also needs to be able to hear a radio signal at a certain level. The minimum signal strength required for a receiver to understand the data is called the receive sensitivity.
As the radio signal travels through the air, it weakens. When a radio signal leaves the transmitting antenna the dBm is a high number
(for example, 20dBm). As it travels through the air, it loses strength and drops to a negative number. At some point, a minimum value
for dBm is reached, below which the radio will no longer successfully receive the transmission. This value represents the "receive sensitivity" or "Rx sensitivity." This value will vary with the type of radio used but is typically between -90dBm and -100dBm. (Refer to the
datasheet for your radio chip for specific receive sensitivity figures.)
If you can achieve a signal level of -75dBm and your radio has an Rx sensitivity of -95dBm, you have 20dBm of extra signal to accommodate interference and other issues. This is called margin.
3.4.3 How Far Can the Radio Signal Go
If you know the power out and the receiver sensitivity, you can determine whether you can broadcast over a given distance. In the
following example, you want to know if you can receive a signal over five miles. To do so, you need to know the free space loss between the radio transmitter and the receiver.
For example, free space loss of a 2.4 GHz signal at 5 miles is 118.36 dB. So, you can estimate signal strength over the range of the
network as:
What
Add or subtract it
The value
Transmitter power
+
15 dBm
Transmitter antenna gain
+
14 dBi
Receiver antenna gain
+
14 dBi
Transmitter's coaxial cable loss
-
2 dB
Receiver's coaxial cable loss
-
2 dB
Free Space Loss @ 5 miles
-
118.36 dB
Total:
-79.36 dBm
In other words, a 15 dBm radio hooked into a 14 dBi antenna, transmitting 5 miles through free space to another radio hooked up to a
14 dBi antenna, yields approximately -79 dBm of signal. Note that antennas with gain are necessarily directional, and would need to be
aimed at each other. However, physical obstructions such as buildings or trees would have a substantial impact on these calculations.
Typical Zigbee and Thread networks use smaller, lower-cost antennas without the gain increase and only use power amplifiers if extended range is required. Occasionally, external low-noise amplifiers (LNAs) may also be employed to boost RX sensitivity of incoming
signals just before they reach the radio.
This calculation is provided as an example. The EmberZNet SDK (software development kit) comes with a functional test application
(“NodeTest”) that can be used to perform empirical range testing for an embedded wireless network in virtually any environment. (See
document AN1019: Using the NodeTest Application for information on using NodeTest.) The Flex SDK comes with the RangeTest application. It has a version that can be used to measure Bluetooth and IEEE 802.15.4 ranges, called "RangeTest BLE and IEEE
802.15.4". See UG147: Flex Gecko 2.4 GHz, 20 dBm Range Test Demo User's Guide for more information. Silicon Labs recommends
that basic range testing be conducted in the expected environment to evaluate whether extended range is required.
silabs.com | Building a more connected world.
Rev. 1.3 | 6
UG103.1: Wireless Networking Application Development Fundamentals
Networking: Basic Concepts
4. Networking: Basic Concepts
A network is a system of computers and other devices (such as printers and modems) that are connected in such a way that they can
exchange data. This data may be informational or command-oriented, or a combination of the two.
A networking system consists of hardware and software. Hardware on a network includes physical devices such as computer workstations, peripherals, and computers acting as file servers, print servers, and routers. These devices are all referred to as nodes on the
network.
If the nodes are not all connected to a single physical cable, special hardware and software devices must connect the different cables in
order to forward messages to their destination addresses. A bridge or repeater is a device that connects networking cables without
examining the addresses of messages or making decisions as to the best route for a message to take. In contrast, a router contains
addressing and routing information that lets it determine, from a message's address, the most efficient route for the message. A message can be passed from router to router several times before being delivered to its target destination.
In order for nodes to exchange data, they must use a common set of rules defining the format of the data and the manner in which it is
to be transmitted. A protocol is a formalized set of procedural rules for the exchange of data. The protocol also provides rules for the
interactions among the network's interconnected nodes. A network software developer implements these rules in software applications
that carry out the functions required by the protocol.
Whereas a router can connect networks only if they use the same protocol and address format, a gateway converts addresses and
protocols to connect dissimilar networks. Such a set of interconnected networks can be referred to as an internet, intranet, wide area
network (WAN), or other specialized network topology. The term Internet is often used to refer to the largest worldwide system of networks, also called the World Wide Web. The basic protocol used to implement the World Wide Web is called the Internet protocol, or IP.
A networking protocol commonly uses the services of another, more fundamental protocol to achieve its ends. For example, the Transmission Control Protocol (TCP) uses the IP to encapsulate the data and deliver it over an IP network. The protocol that uses the services of an underlying protocol is said to be a client of the lower protocol; for example, TCP is a client of IP. A set of protocols related in
this fashion is called a protocol stack.
silabs.com | Building a more connected world.
Rev. 1.3 | 7
UG103.1: Wireless Networking Application Development Fundamentals
Wireless Networking
5. Wireless Networking
Wireless networking mimics the wired network, but replaces the wire with a radio signal as the data interconnection medium. Protocols
are essentially the same as used in wired networks, although some additional functionality has been added so the two types of networks remain interoperable. However, wireless networks have emerged that do not have a wired counterpart requiring interoperability.
These specialized networks have their own hardware and software foundations to enable reliable networking within the scope of their
unique environments.
Note: Most networking protocols are based, to some degree, on the Open Systems Interconnection (OSI) Model.
silabs.com | Building a more connected world.
Rev. 1.3 | 8
UG103.1: Wireless Networking Application Development Fundamentals
Networking Devices
6. Networking Devices
Silicon Labs has developed networking hardware (the EFR32xG and EM3x families) and SDKs containing protocol libraries, application
examples, and development tools to facilitate implementation of a wireless personal area network of devices for sensing and control
applications. The following figure represents a typical wireless device using Zigbee, one of the Silicon Labs networking technologies.
The RF data modem is the hardware responsible for sending and receiving data on the network. The microcontroller represents the
computer control element that originates messages and responds to any information received. The sensor block can be any kind of
sensor or control device. Such a system can exist as a node on a network without any additional equipment. Any two such nodes, with
compatible software, can form a network. Large networks can contain thousands of such nodes.
Figure 6.1. Typical Zigbee Device Block Diagram
Chips such as the EM3x or EFR32xG family provide both the RF and microcontroller portions of the figure above. When used as “network coprocessors,” the chips provide only the RF and networking part of the system, acting as a co-processor to any microcontroller,
Digital Signal Processing (DSP), or similar device required for the application.
For details of the various networking technologies, see the specific Fundamentals document(s) for that technology.
silabs.com | Building a more connected world.
Rev. 1.3 | 9
Smart.
Connected.
Energy-Friendly.
Products
Quality
Support and Community
www.silabs.com/products
www.silabs.com/quality
community.silabs.com
Disclaimer
Silicon Labs intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers using or
intending to use the Silicon Labs products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and "Typical"
parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without
further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior
notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability reasons. Such changes will not alter the specifications or the performance
of the product. Silicon Labs shall have no liability for the consequences of use of the information supplied in this document. This document does not imply or expressly grant any license to
design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required
or Life Support Systems without the specific written consent of Silicon Labs. A "Life Support System" is any product or system intended to support or sustain life and/or health, which, if it fails,
can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no
circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs
disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to use of a Silicon Labs product in such unauthorized applications.
Trademark Information
Silicon Laboratories Inc.® , Silicon Laboratories®, Silicon Labs®, SiLabs® and the Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, ClockBuilder®, CMEMS®, DSPLL®, EFM®,
EFM32®, EFR, Ember®, Energy Micro, Energy Micro logo and combinations thereof, "the world’s most energy friendly microcontrollers", Ember®, EZLink®, EZRadio®, EZRadioPRO®,
Gecko®, Gecko OS, Gecko OS Studio, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY®, Telegesis, the Telegesis Logo®, USBXpress® , Zentri, the Zentri logo and Zentri
DMS, Z-Wave®, and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings.
Keil is a registered trademark of ARM Limited. Wi-Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective
holders.
Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
USA
http://www.silabs.com
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement