littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于Raspberry Pi的GPSGNSS模块通信系统

项目简介

本项目旨在借助Raspberry Pi与Embedded Artists的2.5G/GSM或3G/UMTS Cellular and Positioning Shields上的u-blox GPS/GNSS模块进行通信。因Raspberry Pi的I2C驱动不支持时钟拉伸,所以采用位操作技术实现I2C通信,保障与GPS/GNSS模块的稳定通信。

项目的主要特性和功能

  1. I2C通信实现:运用位操作技术实现I2C通信,解决Raspberry Pi I2C驱动不支持时钟拉伸的问题。
  2. 多版本支持:支持Raspberry Pi 1和2型号,通过不同的GPIO引脚配置实现兼容。
  3. GPS数据读取:示例程序能从GPS/GNSS模块读取数据,并解析出位置、时间等有用信息。
  4. 可配置的比特率:示例程序支持通过命令行参数配置I2C通信的比特率,以满足不同通信需求。

安装使用步骤

假设用户已经下载了本项目的源码文件。 1. 编译代码:进入项目目录并编译代码。 bash cd gps_shield make 2. 运行示例程序:使用sudo权限运行示例程序。 bash sudo ./gps 3. 可选:配置比特率:可以通过传递参数来配置I2C通信的比特率。例如,设置比特率为400Kbit/s。 bash sudo ./gps 400 4. 查看输出:程序将不断从GPS/GNSS模块读取数据并输出,输出内容类似于以下格式。 Got message '$GPGGA,103156.00,5535.92197,N,01259.99453,E,1,04,4.86,-2.5,M,38.9,M,,*75' Got message '$GPGSA,A,2,19,17,06,09,,,,,,,,,4.96,4.86,1.00*02' Got message '$GPGSV,4,1,13,01,22,157,,02,04,318,,03,62,101,,06,39,302,29*71' Got message '$GPGSV,4,2,13,09,33,221,22,11,02,166,,12,02,328,,17,24,245,11*7D' Got message '$GPGSV,4,3,13,19,24,238,27,23,67,193,09,25,08,003,,31,26,046,20*76' Got message '$GPGSV,4,4,13,32,25,096,16*45' Got message '$GPGLL,5535.92197,N,01259.99453,E,103156.00,A,A*66' Got message '$GPRMC,103157.00,A,5535.92195,N,01259.99610,E,1.782,97.72,110116,,,A*56' Got message '$GPVTG,97.72,T,,M,1.782,N,3.301,K,A*0B' 5. 进一步处理:示例程序仅验证了校验和的正确性,并未对数据进行进一步处理。如需更复杂的处理,请参考u-blox模块的文档,并根据需求修改代码。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】