FPGA与NiosⅡ实现的GPS-GSM双重车载定位系统

4 下载量 115 浏览量 更新于2024-08-28 2 收藏 279KB PDF 举报
“基于FPGA的GPS和GSM双重车载定位系统设计,通过FPGA的逻辑控制与NiosⅡ处理器的接口功能,结合GPS和GSM技术,提高车辆定位精度和可靠性。系统通常使用GPS定位,但在特定条件下切换到GSM网络定位,并通过GSM网络传输定位信息。” 在当前的车辆GPS导航系统中,主要依赖无差分、无SA误差的GPS定位数据,然而这种方式存在一定的定位误差问题。大约5%的情况下,误差可能超过15米。此外,城市环境中的建筑物、桥梁和树木等物体可能遮挡GPS信号,导致信号质量下降甚至丢失,这对于车辆在行驶过程中的精确导航,特别是在复杂的路口和立交桥等关键位置,提出了更高的要求。 针对这些挑战,设计了一个基于FPGA(Field-Programmable Gate Array)的GPS和GSM双重定位系统。FPGA以其强大的逻辑控制能力,能够灵活地处理各种复杂的计算任务。同时,NiosⅡ处理器,作为Altera公司的32位RISC软核处理器,提供了丰富的可配置标准外设接口,便于与GPS和GSM模块集成。该系统通常使用GPS进行常规定位,但在GPS信号弱或丢失时,能够自动切换到GSM网络定位,确保定位服务的连续性。 NiosⅡ处理器的一大优势在于其可扩展性,允许设计者添加最多256个专用指令以优化性能,这些指令可以直接与ALU交互,提高处理速度。此外,它支持多种外设选项,使得开发者可以根据实际需求定制处理器功能,避免不必要的硬件资源浪费。在FPGA内部,这种灵活性使得硬件设计更加高效且成本有效。 通过GSM网络,该系统不仅能发送定位信息,还能传递时间戳和其他终端特定信息至监控中心,实现双向通信,既可获取实时的导航更新,也能用于远程监控和安全应用。这样的双重定位策略显著提高了车辆定位的准确性和鲁棒性,尤其在城市环境中,能够提供更可靠的服务,保障行车安全和导航的准确性。
2015-04-23 上传
odule GPS ( //////////////////// Clock Input //////////////////// CLOCK_24, // 24 MHz CLOCK_27, // 27 MHz CLOCK_50, // 50 MHz EXT_CLOCK, // External Clock //////////////////// Push Button //////////////////// KEY, // Pushbutton[3:0] //////////////////// DPDT Switch //////////////////// SW, // Toggle Switch[9:0] //////////////////// 7-SEG Dispaly //////////////////// HEX0, // Seven Segment Digit 0 HEX1, // Seven Segment Digit 1 HEX2, // Seven Segment Digit 2 HEX3, // Seven Segment Digit 3 //////////////////////// LED //////////////////////// LEDG, // LED Green[7:0] LEDR, // LED Red[9:0] //////////////////////// UART //////////////////////// UART_TXD, // UART Transmitter UART_RXD, // UART Receiver ///////////////////// SDRAM Interface //////////////// DRAM_DQ, // SDRAM Data bus 16 Bits DRAM_ADDR, // SDRAM Address bus 12 Bits DRAM_LDQM, // SDRAM Low-byte Data Mask DRAM_UDQM, // SDRAM High-byte Data Mask DRAM_WE_N, // SDRAM Write Enable DRAM_CAS_N, // SDRAM Column Address Strobe DRAM_RAS_N, // SDRAM Row Address Strobe DRAM_CS_N, // SDRAM Chip Select DRAM_BA_0, // SDRAM Bank Address 0 DRAM_BA_1, // SDRAM Bank Address 0 DRAM_CLK, // SDRAM Clock DRAM_CKE, // SDRAM Clock Enable //////////////////// Flash Interface //////////////// FL_DQ, // FLASH Data bus 8 Bits FL_ADDR, // FLASH Address bus 22 Bits FL_WE_N, // FLASH Write Enable FL_RST_N, // FLASH Reset FL_OE_N, // FLASH Output Enable FL_CE_N, // FLASH Chip Enable //////////////////// SRAM Interface //////////////// SRAM_DQ, // SRAM Data bus 16 Bits SRAM_ADDR, // SRAM Address bus 18 Bits SRAM_UB_N, // SRAM High-byte Data Mask SRAM_LB_N, // SRAM Low-byte Data Mask SRAM_WE_N, // SRAM Write Enable SRAM_CE_N, // SRAM Chip Enable SRAM_OE_N, // SRAM Output Enable //////////////////// SD_Card Interface //////////////// SD_DAT, // SD Card Data SD_DAT3, // SD Card Data 3 SD_CMD, // SD Card Command Signal SD_CLK, // SD Card Clock //////////////////// USB JTAG link //////////////////// TDI, // CPLD -> FPGA (data in) TCK, // CPLD -> FPGA (clk) TCS, // CPLD -> FPGA (CS) TDO, // FPGA -> CPLD (data out) //////////////////// I2C //////////////////////////// I2C_SDAT, // I2C Data I2C_SCLK, // I2C Clock //////////////////// PS2 //////////////////////////// PS2_DAT, // PS2 Data PS2_CLK, // PS2 Clock //////////////////// VGA //////////////////////////// VGA_HS, // VGA H_SYNC