Transcript Document

GPS Waypoint Navigation
Team M-2:
Charles Norman (M2-1)
Julio Segundo (M2-2)
Nan Li (M2-3)
Shanshan Ma (M2-4)
Design Manager: Zack Menegakis
Presentation 2: Architecture Proposal
January 30, 2006
Overall Project Objective:
Design a chip that navigates an aircraft to pre-determined
waypoints.
Status
 Design Proposal
 Project chosen
 Architecture Proposal
 MATLAB simulated
 Behavioral Verilog written
 Behavioral Verilog simulated




Floorplan
Schematic Design
Layout
Simulations
Application Description
 We are designing a GPS based waypoint navigation
system for use in an aircraft.
 The system will be able to autopilot the craft through a
series of user specified GPS coordinates in 3 dimensions.
Why Use a Chip?
 Our system would be perfect for an Unmanned Aerial Vehicle (UAV)
due to its light weight, low power consumption, low cost, and specific
capabilities
 The system is designed to do exactly what UAVs are best at: flying
over an area in order to observe it. The UAV has many military and
civilian applications.
System Flow
 Inputs will consist of GPS waypoint coordinates for the
vehicle itself taken from a satellite or given by a user.
 The system will continually sample the position of the
aircraft while holding the previous and current positions in
memory
 Calculate and output the course corrections that must be
made in order to proceed toward the next destination.
– Angle needed to hit next waypoint within 1 second (~106 feet)
– Difference in current and destination altitudes needs to be within 15
feet.
– Maximum speed must always be achieved.
Block Description
 FSM Controller – Controls state flow in system
– Setup mode
– Navigation mode
– Arrival mode
 SRAM – Stores up to 5 GPS waypoint coordinate sets
 Waypoint Reached Comparator – Decides whether the aircraft is
sufficiently close to the next waypoint
 Altitude Comparator – Compares current altitude to next
waypoint’s altitude
 Speed Comparator – Compares current speed to max speed
 Speed Calculator – Calculates current speed at which the
aircraft is traveling
 Distance Calculator – Calculates distance between current
position and next waypoint
 Sexagesimal Degrees to Decimal Degrees Converter – Converts
Degrees/Minutes/Seconds to Decimal Degrees
 “Black Box” – Used to calculate arctan’s and squares for angle
and speed calculations
Block Level System Diagram
Behavioral Verilog








module FSM
(output reg control, output reg [2:0] counter,
input [1:0] rw, input range, clk);
reg [1:0] state, nextState;
parameter A = 2'b00, //Navigate/read
B = 2'b01, //Setup/write
C = 2'b10, //No Op
D = 2'b11; //Reset
module Distance_cal
(output [11:0] result,
input [5:0] lat, lon);
result = lat*lat+lon*lon;
endmodule // Distance_cal






























always @ * begin
case (state)
A: begin
nextState = rw;
if (range == 0) //not within range
control = 1; //turn on all functions
else //within range
control = 0; //turn off all functions
end
B: begin
nextState = rw;
control = 0; //turn off all functions
counter = counter + 1;
end
C: begin
nextState = rw;
end
D: begin
nextState = rw;
control = 0; //turn off all functions
counter = 0;
end
default: nextState = D;
endcase // case(state)
end
module wp_comp
( output result , [22:0] lon_dif , [22:0] lat_dif,
input [22:0] curlon, [22:0] curlat, [22:0] lat2, [22:0] lon2);
[22:14] lat_dif = [22:14] lat2 - [22:14] curlat;
[13:7] lat_dif = [13:7] lat2 - [13:7] curlat;
[6:0] lat_dif = [6:0] lat2 - [6:0] curlat;
[22:14] lon_dif = [22:14] lon2 - [22:14] curlon;
[13:7] lon_dif = [13:7] lon2 - [13:7] curlon;
[6:0] lon_dif = [6:0] lon2 - [6:0] curlon;
if ( ([21:14] lat_dif == 0) && ([12:7] lat_dif == 0) && ([21:14] lon_dif ==
0) && ([12:7] lon_dif == 0) )
result = 1;
else
result = 0;
endmodule // wp_comp
always @(posedge clk)
state <= nextState;
endmodule // FSM
Inputs / Outputs
 Inputs
– Latitude & Longitude Coordinates : 46 bits




Latitude : -180˚ to 180˚, Longitude : -90˚ to 90˚
Degrees : 9-bit 2's complement
Minutes : 7-bit 2's complement
Seconds : 7-bit 2's complement
– Speed :10-bit signed magnitude
– Altitude : 15-bit unsigned
– Mode : 2-bit unsigned
 Outputs
– Angle Correction : 9-bit signed magnitude
– Speed Correction : 11-bit signed magnitude
– Altitude Correction : 16-bit signed magnitude
 Total
– 109 bits
Rough Transistor Estimate
Component
FSM
SRAM
Number of Transistors
100
3550
Registers
Comparators (Waypoint
Reached, Altitude, Speed)
2500
2375
Heading Calculator
Angle Calculator
Distance Calculator
Speed Calculator
1280
300
2650
950
Sexagesimal/Second
Converter
Total
3000
16,705
Design Decisions
 Merge groups M2 & M3 since 3 people in each group left
 Use a “black box” for the arctan and square functions
– Each of these functions are projects by themselves
– Increased accuracy
 Implement speed and altitude calculator
 Decrease number of GPS waypoint coordinate inputs from
10 to 5 to reduce SRAM by a factor of approximately 2
 Use 2’s Complement for representation for coordinates &
Signed Magnitude for everything else
 Sample current position every one second which allows for
up to 16.99 seconds (distance) of change
Assumptions
 Latitude & Longitude are always constant
– In reality, longitude is not constant (ranges from 0 – 69 miles per
degree) while latitude is usually 69 miles per degree
– This is really not a factor anyway because, we usually doing
computations on the seconds aspect of the coordinates
 Altitude is independent of speed
– The speed we are calculating refers to latitude and longitudinal
directions
– The plane will rise by a proportional amount determined by avionics
 Achieve maximum speed at all times
Alternate Projects Considered







Parking garage management system
Guitar tuner/effects processor
Swimming pool monitor
Smart sensor system
Smart Refrigerator
PID Controller
Smart Watch
What’s Next…
Here’s what’s on our agenda for next week…
 Complete Verilog simulations
 Decide types of adders, subtractors, etc. would be best for
our design
 Better estimate the size of our project and decide if we are
able implement one or both of the operations of the “black
box”
 Implement countdown until arrival at next waypoint?
 Additional functionality?
 Structural Verilog & Initial Floorplan
Questions???