overall project objective:
DESCRIPTION
RF Triangulator: Indoor/Outdoor Location Finding 18-525 Architecture Proposal Giovanni Fonseca David Fu Amir Ghiti Stephen Roos Design Manager: Myron Kwai. Overall Project Objective: Design a Radio-Frequency indoor/outdoor navigation system, utilizing the existing wireless infrastructure. - PowerPoint PPT PresentationTRANSCRIPT
RF Triangulator: Indoor/Outdoor RF Triangulator: Indoor/Outdoor Location FindingLocation Finding
18-525 Architecture Proposal18-525 Architecture Proposal Giovanni Fonseca Giovanni Fonseca
David FuDavid FuAmir GhitiAmir Ghiti
Stephen RoosStephen RoosDesign Manager: Myron KwaiDesign Manager: Myron Kwai
Overall Project Objective:Overall Project Objective:Design a Radio-Frequency indoor/outdoor navigation Design a Radio-Frequency indoor/outdoor navigation system, utilizing the existing wireless infrastructure.system, utilizing the existing wireless infrastructure.
Design Stage Objective:Design Stage Objective:Implement functional (behavioral) Verilog Implement functional (behavioral) Verilog
descriptiondescription
New Design ProposalNew Design Proposal
►Using existing 802.11 wireless signals Using existing 802.11 wireless signals it is possible to calculate one’s location it is possible to calculate one’s location without the use of GPS.without the use of GPS.
►The RF Triangulator will use current The RF Triangulator will use current infrastructures to act as an infrastructures to act as an indoor/outdoor local positioning indoor/outdoor local positioning systemsystem
►By acquiring signal data from 3 or By acquiring signal data from 3 or more wireless access points it will be more wireless access points it will be possible to determine one’s possible to determine one’s coordinates to within 1 meter.coordinates to within 1 meter.
Triangulation ProcessTriangulation Process
►Our chip will Our chip will solve for the solve for the simultaneousimultaneous solution of s solution of 3 circle 3 circle equations.equations.
RF Triangulator Applications:RF Triangulator Applications:
►Our chip can be integrated into Our chip can be integrated into handheld computers, watches, or handheld computers, watches, or shopping carts for locations ranging shopping carts for locations ranging from large theme parks to office from large theme parks to office buildings.buildings.
► It will be able to quickly provide your It will be able to quickly provide your current location as well as provide a current location as well as provide a distance and heading to a future distance and heading to a future location for path-finding purposes.location for path-finding purposes.
Current Project Status:Current Project Status:
►Finish debugging the behavioral description Finish debugging the behavioral description of the RF Triangulator chipof the RF Triangulator chip
►Starting preparations for structural VerilogStarting preparations for structural Verilog►Deciding how many arithmetic units we Deciding how many arithmetic units we
need and comparing performance vs. sizeneed and comparing performance vs. size►Optimizing main algorithmsOptimizing main algorithms►Deciding on timing/pipelining Deciding on timing/pipelining
implementationimplementation
Design Decisions:Design Decisions:
►We conceived a completely new and We conceived a completely new and better design than the RF-ID credit better design than the RF-ID credit card.card.
►We decided that the RF-ID credit card We decided that the RF-ID credit card was mostly encryption based and was mostly encryption based and lacked originalitylacked originality
►The 16-bit floating point precision is The 16-bit floating point precision is sufficiently precise for our application.sufficiently precise for our application.
Design Decisions:Design Decisions:►Memory and caching is implemented Memory and caching is implemented
to keep the 3 strongest signals readily to keep the 3 strongest signals readily available for position calculation.available for position calculation.
►An SRAM lookup table stores individual An SRAM lookup table stores individual access point data including: MAC access point data including: MAC address, X and Y coordinated, address, X and Y coordinated, originating signal/noise ratio.originating signal/noise ratio.
►A queue stores 4 more recently A queue stores 4 more recently acquired signals, and allows for acquired signals, and allows for migration between the top 3 signals migration between the top 3 signals and the queue.and the queue.
Functionality:Functionality:
► It has the ability to write new map It has the ability to write new map data into the ~1K SRAM lookup tabledata into the ~1K SRAM lookup table
►After acquiring at least 3 signals it will After acquiring at least 3 signals it will output your current X and Y output your current X and Y coordinatescoordinates
►Has the ability to calculate the Has the ability to calculate the distance and heading (angle) to a distance and heading (angle) to a given location.given location.
Major Functional Major Functional Components:Components:
► Top 3 / Queue moduleTop 3 / Queue moduleGives priority to the top 3 signals based on their Gives priority to the top 3 signals based on their
Signal-to-Noise RatiosSignal-to-Noise Ratios
► Lookup Table ModuleLookup Table Module
Hard coded data of MAC addresses, x and y Hard coded data of MAC addresses, x and y coordinates as well as Signal-to-Noise Ratios (SNR).coordinates as well as Signal-to-Noise Ratios (SNR).
► Calc ModuleCalc Module
Given the coordinates of 3 Access Points and their Given the coordinates of 3 Access Points and their distance, it will calculate the current position.distance, it will calculate the current position.
MapData
Top 3Queue
Calc
Waypoint- heading- directions
Pre-Normalization/Denormalization
Addition /subtraction
Multiplication /division
Post-normalization /Denormalization
Trig(arctan)
FPU
SA1
SA2
SA3 +
SA4MUX
ROW A
Top 3 module
SHR2
+
SB1
SB2
SB3 +
SB4MUX
ROW B
SHR2
+
SC1
SC2
SC3 +
SC4MUX
ROW C
SHR2
+
Queue Queue Queue
Major Functional Major Functional Components:Components:
►Floating-point unit (FPU)Floating-point unit (FPU) Performs the addition, subtraction, Performs the addition, subtraction,
multiplication and division of floating-multiplication and division of floating-point numbers.point numbers.
►Waypoint CalculatorWaypoint Calculator Calculates distance and angle to Calculates distance and angle to
requested destinationrequested destination Relies on a trig lookup tableRelies on a trig lookup table
Underlying Assumptions:Underlying Assumptions:
►Map data will be available for the Map data will be available for the current location.current location.
►An RF antenna with A/D converter will An RF antenna with A/D converter will provide a signal with data from provide a signal with data from wireless access points.wireless access points.
►Access points will broadcast their MAC Access points will broadcast their MAC address.address.
►The user will not be moving quickly The user will not be moving quickly and/or moving out of map range.and/or moving out of map range.
Underlying Assumptions:Underlying Assumptions:
►The available signal quality will allow The available signal quality will allow for good distance approximation.for good distance approximation.
►The power and location of the sending The power and location of the sending signal is included in the map data.signal is included in the map data.
►No more than 16 bits of floating point No more than 16 bits of floating point precision are necessary for our precision are necessary for our calculations.calculations.
Calc Module: Triangulation Calc Module: Triangulation FormulaFormula
assign sqrt = q;assign sqrt = q; assign Xr1 = (-b+sqrt)/(2*a);assign Xr1 = (-b+sqrt)/(2*a); assign Xr2 = (-b-sqrt)/(2*a);assign Xr2 = (-b-sqrt)/(2*a);
assign Yr1 = A - B*Xr1;assign Yr1 = A - B*Xr1; assign Yr2 = A - B*Xr2;assign Yr2 = A - B*Xr2;
assign result1 = (Xr1-rxC)*(Xr1-rxC)+(Yr1-assign result1 = (Xr1-rxC)*(Xr1-rxC)+(Yr1-ryC)*(Yr1-ryC)-dC;ryC)*(Yr1-ryC)-dC; assign result2 = (Xr2-rxC)*(Xr2-rxC)+(Yr2-assign result2 = (Xr2-rxC)*(Xr2-rxC)+(Yr2-ryC)*(Yr2-ryC)-dC;ryC)*(Yr2-ryC)-dC; if(result1 < 0) assign result1 = -result1;if(result1 < 0) assign result1 = -result1; if(result2 < 0) assign result2 = -result2;if(result2 < 0) assign result2 = -result2; if(result1 < result2)if(result1 < result2) beginbegin
assign xPos = $realtobits(Xr1);assign xPos = $realtobits(Xr1);assign yPos = $realtobits(Yr1);assign yPos = $realtobits(Yr1);
endend else beginelse begin assign xPos = $realtobits(Xr2);assign xPos = $realtobits(Xr2); assign yPos = $realtobits(Yr2);assign yPos = $realtobits(Yr2); endend
assign dA = rsnoA/rsniA;assign dA = rsnoA/rsniA; assign dB = rsnoB/rsniB;assign dB = rsnoB/rsniB; assign dC = rsnoC/rsniC;assign dC = rsnoC/rsniC;
assign A = (dA-dB+rxB*rxB-assign A = (dA-dB+rxB*rxB-rxA*rxA)/(2*(ryB-ryA))+rxA*rxA)/(2*(ryB-ryA))+(ryB+ryA)/2;(ryB+ryA)/2;
assign B = (rxB-rxA)/(ryB-ryA);assign B = (rxB-rxA)/(ryB-ryA); assign a = a+B*B;assign a = a+B*B; assign b = 2*(ryA*B-rxA-A*B);assign b = 2*(ryA*B-rxA-A*B); assign c = rxA*rxA+ryA*ryA+A*A-assign c = rxA*rxA+ryA*ryA+A*A-
2*ryA*A-dA;2*ryA*A-dA;
assign delta = b*b-4*a*c;assign delta = b*b-4*a*c;
//square root function//square root function q = 0;q = 0; y = 2;y = 2; for(i=0;i<14;i=i+1)for(i=0;i<14;i=i+1) beginbegin q = delta/y;q = delta/y; y = (y+q)/2;y = (y+q)/2; endend
Questions/ConcernsQuestions/Concerns
►Transistor Count – Highly dependant Transistor Count – Highly dependant on how many transistors we need for on how many transistors we need for floating point calculationsfloating point calculations
►Speed – Will take >50 cycles to Speed – Will take >50 cycles to achieve a position calculation.achieve a position calculation.