24
Mid-term Project Mid-term Project Presentation Presentation Eli Bendersky Eli Bendersky Igor Oks Igor Oks

Mid-term Project Presentation Eli Bendersky Igor Oks

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Mid-term Project Mid-term Project PresentationPresentation

Eli BenderskyEli BenderskyIgor OksIgor Oks

The projectThe project

Driver for a 802.11 wireless LAN Driver for a 802.11 wireless LAN network card.network card.

Project goalsProject goals

Experience with Windows CE development Experience with Windows CE development for handheld computers.for handheld computers.

Understanding the internals of a wireless Understanding the internals of a wireless network card driver.network card driver.

Serve as a starting-point for future Serve as a starting-point for future projects based on communication using projects based on communication using the 802.11 protocol.the 802.11 protocol.

Setting up a functional WLAN environmentSetting up a functional WLAN environment

BackgroundBackground

Wireless LANWireless LAN

A Local Area Network, for office, A Local Area Network, for office, home, school etc.home, school etc.

Wireless connection: No need for Wireless connection: No need for network wires, sockets, etc.network wires, sockets, etc.

FastFast Prices droppingPrices dropping

How does WLAN workHow does WLAN work

What was done so far ?What was done so far ?

A development environment A development environment was set upwas set up

HW: Desktop PC and a hand-held PC HW: Desktop PC and a hand-held PC (iPac) with a 802.11 network card. (iPac) with a 802.11 network card. Access point to the network.Access point to the network.

SW: Windows CE Platform SDK, SW: Windows CE Platform SDK, Microsoft Visual C++ for Embedded Microsoft Visual C++ for Embedded applications. Source code of a applications. Source code of a sample driver.sample driver.

A thorough understanding of the A thorough understanding of the 802.11 standard802.11 standard

Operates on the Operates on the PhysicalPhysical & & Data Data LinkLink network layers network layers

Consists of an Access points and Consists of an Access points and client(s) (can also operate on peer-client(s) (can also operate on peer-to-peer level)to-peer level)

802.11 – Physical Layer802.11 – Physical Layer

Frequency: 2,400 Mhz – 2,483 MhzFrequency: 2,400 Mhz – 2,483 Mhz Speed: 1-2 MbpsSpeed: 1-2 Mbps There are two common methods:There are two common methods: DSSSDSSS (Direct Sequence Spread (Direct Sequence Spread

Spectrum) – uses Phase Shift Keying Spectrum) – uses Phase Shift Keying (PSK) modulation.(PSK) modulation.

FHSSFHSS (Frequency Hopping Spread (Frequency Hopping Spread Spectrum) – uses FSK (Frequency Spectrum) – uses FSK (Frequency Shift Keying)Shift Keying)

FHSSFHSS

The 2.4 Ghz band is divided to 79 The 2.4 Ghz band is divided to 79 channels of 1 Mhzchannels of 1 Mhz

Sender and receiver agree on a Sender and receiver agree on a channel switching schemechannel switching scheme

Maximum speed is 2 MbpsMaximum speed is 2 Mbps

DSSSDSSS

The 2.4 Ghz band is divided into 14 The 2.4 Ghz band is divided into 14 partly-overlapping channelspartly-overlapping channels

Data is sent over a single channel Data is sent over a single channel without switchingwithout switching

802.11 – Data Link Layer802.11 – Data Link Layer

LLC – Similar to other 802 networks LLC – Similar to other 802 networks (such as Ethernet)(such as Ethernet)

MAC – Uses CSMA/CA (Carrier Sense, MAC – Uses CSMA/CA (Carrier Sense, Multiple Access / Collision Avoidance)Multiple Access / Collision Avoidance)

Driver implementationDriver implementation

Using the Windows CE DDK (Driver Using the Windows CE DDK (Driver Development Kit)Development Kit)

Following Following NDISNDIS (Network Driver (Network Driver Interface Specification)Interface Specification)

Latest NDIS version is 5.0Latest NDIS version is 5.0

Understanding NDIS 5.0Understanding NDIS 5.0 NDIS – interface by which one or more LAN NDIS – interface by which one or more LAN

adapters communicateadapters communicate The 802.11 network card driver uses NDISThe 802.11 network card driver uses NDIS Primary purpose: define a standard API for Primary purpose: define a standard API for

Network Interface CardsNetwork Interface Cards

The driverThe driver

Directly manages a network interface Directly manages a network interface card and provides an interface to card and provides an interface to higher level drivers.higher level drivers.

Miniport – wrapped by NDIS on both Miniport – wrapped by NDIS on both the higher and the lower levelsthe higher and the lower levels

Calls lower-level NDIS functionsCalls lower-level NDIS functions Provides functions to upper levels. Provides functions to upper levels.

For example: DriverEntryFor example: DriverEntry

DriverEntryDriverEntry

Called by the system to load the driverCalled by the system to load the driver Creates an association between the driver Creates an association between the driver

and the NDIS Libraryand the NDIS Library Registers driver version number and entry Registers driver version number and entry

points with NDISpoints with NDIS

Heaps of source codeHeaps of source code

Given a sample driver (from Intel)Given a sample driver (from Intel) Going through the code, Going through the code,

understanding the flowunderstanding the flow Recognizing lower-level and higher-Recognizing lower-level and higher-

level interface callslevel interface calls

To be done …To be done …

Understanding the driverUnderstanding the driver

A lot of source code to go through !A lot of source code to go through !

Making things workMaking things work

Compiling the driver (with MS VC++ Compiling the driver (with MS VC++ Embedded)Embedded)

Loading the driver onto the iPacLoading the driver onto the iPac

Establish CommunicationEstablish Communication

Establish communication from the Establish communication from the iPac to an access point using our iPac to an access point using our driverdriver

Remote debugging to watch over the Remote debugging to watch over the processprocess

If that succeeds…If that succeeds…

Communication via 802.11 works !Communication via 802.11 works ! Think about applications Think about applications Extensive documentationExtensive documentation

ScheduleSchedule

21.1.02 – Complete our 21.1.02 – Complete our understanding of the driver and the understanding of the driver and the underlying protocols.underlying protocols.

31.1.02 - Debugging31.1.02 - Debugging 14.2.02 – Making the driver work on 14.2.02 – Making the driver work on

the iPac with a 802.11 network cardthe iPac with a 802.11 network card 3.3.02 – Final presentation & report3.3.02 – Final presentation & report