GPS报文中经度纬度的表示方法,以及GGA报文的解析

//将度,分报文转换成度,分,秒
                    //如接收到的纬度是:4546.40891
                    //4546.40891/100=45.4640891可以直接读出45度
                    //4546.40891–45*100=46.40891, 可以直接读出46分
                    //46.40891–46 =0.40891*60=24.5346读出24秒, 
                    //所以纬度是:45度46分24秒。

                    //将度,分报文转换成度
                    //如接收到的纬度是:4546.40891
                    //所以度等于45 + 46.40891/60 = 45.77348183
                    
                    //将度,分,秒 换算成度
                    //Decimal Degrees = Degrees + minutes/60 + seconds/3600
                      //例:57°55'56.6" =57+55/60+56.6/3600=57.9323888888888

                    //将度换算成度,分,秒
                    //如把经纬度 (longitude,latitude) (205.395583333332,57.9323888888888)
                    //转换据成坐标(Degrees,minutes,seconds)(205°23'44.1",57°55'56.6")
                    //1, 直接读取"度":205
                    //2,(205.395583333332-205)*60=23.734999999920 得到"分":23
                    //3,(23.734999999920-23)*60=44.099999995200 得到"秒":44.1
                    //采用同样的方法可以得到纬度坐标:57°55'56.6"
 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA(现场可编程门阵列)是一种可编程逻辑器件,可以用于实现各种硬件功能。在GPS报文解析,FPGA可以用来解析NMEA-0183协议格式的报文,从提取出经纬度和时间等信息。 下面是一个使用FPGA进行GPS报文解析的示例代码: ```verilog module gps_parser ( input wire clk, input wire reset, input wire rx_data, output wire [31:0] latitude, output wire [31:0] longitude, output wire [31:0] time ); // 定义状态机的状态 typedef enum logic [2:0] { IDLE, HEADER, DATA } state_t; // 定义报文头 parameter [6:0] GGA_HEADER = 7'bxxGGA; // 定义报文解析相关的变量 reg [6:0] header; reg [31:0] lat; reg [31:0] lon; reg [31:0] t; reg [2:0] state; always @(posedge clk or posedge reset) begin if (reset) begin state <= IDLE; header <= 0; lat <= 0; lon <= 0; t <= 0; end else begin case (state) IDLE: if (rx_data == GGA_HEADER) begin state <= HEADER; header <= rx_data; end HEADER: begin state <= DATA; lat <= rx_data; end DATA: begin state <= IDLE; lon <= rx_data; t <= rx_data; end endcase end end assign latitude = lat; assign longitude = lon; assign time = t; endmodule ``` 上述代码是一个简化的Verilog代码示例,用于解析GPS报文。它使用了一个状态机来处理报文解析过程。当接收到报文头时,状态机进入HEADER状态,接着进入DATA状态,最后回到IDLE状态。在DATA状态下,经纬度和时间信息被提取出来,并通过输出端口传递出去。 请注意,上述代码仅为示例,实际的GPS报文解析可能需要更复杂的逻辑和处理。具体的实现方式可能因FPGA型号和GPS报文格式的不同而有所差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值