GPS Data LoggerAlexander Valys6.111 Fall 2006Design Objectives•Build a system that logs its position over time using GPS, displays position history•Data logging component should be portable, optimized for use in automobiles (fast movements, low precision)•Visualization component can be separate, output different renderings of the data on a VGA displayData Logger•Implementation will be on Digilent Nexys board•Small, portable, low power consumption - can be driven from batteries•Use SiRF StarIII GPS Receiver to obtain data•Use Micron P25M16 Serial Flash module to store data, transfer to visualizationSiRF StarIII•Self-contained GPS module (on right)•Communication through an RS232 interface (TTL-level)•Once locked, provides 3-axis position, 3-axis velocity, heading, etc. at 1Hz•Proprietary binary protocol vs. NMEA (ASCII)Micron M25P16•16 megabit Flash module - SPI interface•Each position fix is 128 bits long - latitude, longitude, velocity (x,y), altitude•Recording every fix received yields 35 hours of recording timeData Logger ImplementationGPS Receiver (SiRF StarIII)RS232 InputTxRxRS232 OutputInitializerdata / 9SiRF Message Parserdata / 9availableData Log Encoder fix / 160writedata / 8eraseSerial Flash ROM OutputSerial Flash (Micron M25P16)Clock and Reset are global signalsSDISELMobile Data LoggerSerial Flash (Micron M25P16)Serial Flash ROM InputSELSDISDOavailabledata / 8Data Log Decoder SDOfix = {latitude / 32longitude / 32altitude / 32timestamp / 32velocity / 32}Fix Queuenextnextavailablefix / 129Rendering Managerrestartfix is as above, but w/o timestamp,an with extra bit indicating EOFfix / 129emptyreadIMPS/2 Decoderavailablelmr/3x/8y/8z/8ps/2 dataps/2 clkactive / 4command/128fix / 129availablecommand is a tristate busAltitude vs. timeVelocity vs. time2D Position2D Position + Altitude (3D)2D Position + Velocity (3D)2D TransformNull Transform3D Transformcommand/136Rectangle FillLine DrawText DrawVRAM Managerall inputs to advance are ANDed togetherfor entire signal, which is bidirectionaladvanceadvancecommand/136ZBT-control linesVRAM 1 ( ZBT)VRAM 2 ( ZBT)ZBT-CZBT-CVGA OutputZBT-Chsyncvsyncrgb/24Clock and Reset are global signalsswapswappedData DisplayshutdownreadyreadyPixel FillVisualization Component•Will be implemented on 6.111 labkit - Nexys board too limited•Read data from flash ROM•Visualizations: various combinations of position/altitude/velocity vs. time - 2D and 3D•All will support panning / zooming / rotation through a PS/2 mouseGPS Receiver (SiRF StarIII)RS232 InputTxRxRS232 OutputInitializerdata / 9SiRF Message Parserdata / 9availableData Log Encoder fix / 160writedata / 8eraseSerial Flash ROM OutputSerial Flash (Micron M25P16)Clock and Reset are global signalsSDISELMobile Data LoggerSerial Flash (Micron M25P16)Serial Flash ROM InputSELSDISDOavailabledata / 8Data Log Decoder SDOfix = {latitude / 32longitude / 32altitude / 32timestamp / 32velocity / 32}Fix Queuenextnextavailablefix / 129Rendering Managerrestartfix is as above, but w/o timestamp,an with extra bit indicating EOFfix / 129emptyreadIMPS/2 Decoderavailablelmr/3x/8y/8z/8ps/2 dataps/2 clkactive / 4command/128fix / 129availablecommand is a tristate busAltitude vs. timeVelocity vs. time2D Position2D Position + Altitude (3D)2D Position + Velocity (3D)2D TransformNull Transform3D Transformcommand/136Rectangle FillLine DrawText DrawVRAM Managerall inputs to advance are ANDed togetherfor entire signal, which is bidirectionaladvanceadvancecommand/136ZBT-control linesVRAM 1 ( ZBT)VRAM 2 ( ZBT)ZBT-CZBT-CVGA OutputZBT-Chsyncvsyncrgb/24Clock and Reset are global signalsswapswappedData DisplayshutdownreadyreadyPixel FillCommandsTRANS / 4DRAW / 4 FILL / 10 Data / 256Transform Commands:NOOPSet 2D Camera LimitsSet 3D Camera LimitsTransform 2Dx1Transform 2Dx2Transform 3Dx1Transform 3Dx2Draw Commands:NOOPDraw LineFill RectangleDraw TextDraw Text ContinueDraw PolygonFill Commands:NOOPStandard FillAlpha FillCommand FormatVertical / 10 Horizontal / 9 H / 1ZBT RAMWEAWEBWECWEDADR / 19DATA/ 36WEB / 6DataAddressWE0:1718:3501R / 6 G / 6•Command format consists of three control fields, plus data•Each control field controls a specific stage in transform•Commands may be broken into multiple subcommandsVRAM Addressing•512k x 36 ZBT RAM•Storing 1024x768 pixels - 768k locations•Use 18-bit pixels (6 bpc), store two pixels in each location•Aided by ZBT partial-write linesselectorsTRANS / 4DRAW / 4 FILL / 10 Data / 256Transform Commands:NOOPSet 2D Camera LimitsSet 3D Camera LimitsTransform 2Dx1Transform 2Dx2Transform 3Dx1Transform 3Dx2Draw Commands:NOOPDraw LineFill RectangleDraw TextDraw Text ContinueDraw PolygonFill Commands:NOOPStandard FillAlpha FillCommand FormatVertical / 10 Horizontal / 9 H / 1ZBT RAMWEAWEBWECWEDADR / 19DATA/ 36WEB / 6DataAddressWE0:1718:3501R / 6 G / 63D Transform MathR =cos(θz) −sin(θz) 0sin(θz) cos(θz) 00 0 1×1 0 00 cos(θx) −sin(θx)0 sin(θx) cos(θx)×cos(θy) 0 sin(θy)0 1 0−sin(θy) 0 cos(θy)M =R11R12R13TxR21R22R23TyR31R32R33Tz0 0 0 1O =OxOyOzPT= (P + O)F =PTxPTyPTz1× Mx = −eFzFxy = −eFzFyxyzPP + O(P + O) x R(P + O) x R + TCameraTimeline•November 17 - data logger and data retrieval finished•November 24 - Video RAM, pixel fill, line drawing, rectangle fill•December 1 - IMPS/2 Interface, rendering manager, text drawing, 2D and 3D transforms•December 8 - remaining visualization modules completedAdditional Functionality•Awareness of Earth’s curvature•Anti-aliased line drawing•Polygon
View Full Document