【Android论文栏目提醒】:本文主要为网学会员提供“基于Android的无源北斗船用导航终端的设计 - 期刊论文”,希望对需要基于Android的无源北斗船用导航终端的设计 - 期刊论文网友有所帮助,学习一下!
计 算 机 与 现 代 化 2012 年第 2 期 JISUANJI YU XIANDAIHUA 总第 198 期文章编号: 1006-2475 2012 02-0190-04 基于
Android 的无源北斗船用导航终端的设计 龙昌生,陈蜀宇,夏 凡 重庆大学软件工程学院,重庆 400030 摘要: 主要介绍研究、设计一款基于北斗的船用导航终端,采用 S3C6410 ARM11 开发板、基于 Linux 内核的
Android 开源 操作系统和无源北斗接收机。
设计一个导航软件接收定位信息并提取定位数据,通过对定位数据和输入的航迹进行导 航参数的分析和计算来实现导航。
关键词: 无源北斗 ARM11
Android 船用导航 中图分类号: TP311. 5 文献标识码: A doi: 10. 3969 / j. issn. 1006-2475. 2012. 02. 051 Design of Marine Beidou Avigation Terminal Based on
Android LONG Chang-sheng,CHEN Shu-yu,XIA Fan College of Software Engineering,Chongqing University,Chongqing 400030,China Abstract: This paper mainly introduces the research of marine Beidou navigation terminal,using the S3C6410 ARM11 develop- ment board,Linux- based
Android open source operating system,and the Beidou positioning system receiver. Designs a marine navigation software to receive location information and extract the location data,providing marine navigation parameters to achieve the analysis and calculations. Key words: Beidou positioning system ARM11
Android marine navigation 卫星 地面端为主控站、 注入站和监测站等若干个地面0 引 言 站 用户端由各类接收机和信息处理机组成 。
3 〔〕 我国现有的导航终端 95 都是采用 GPS 技术, 导航终端主控制器需及时对路径规划、 定位导航北斗系统份额仅有不到 1 。
我国政府积极发展北 数据处理等大量的计算, 同时为实现人机交互, 主控斗卫星导航事业,2000 年,北斗一号导航系统建成运 制器也需 具 备 丰 富 的 I / O 接 口。
本 文 选 择 了 Sam-行。
2011 年 7 月 27 日北斗二号导航系统的第九颗 Sung 公司的 S3C6410 处理器, 7 英寸显示屏, 配 通过卫星成功送入太空预定转移轨道。
2020 年左右, 将 串口连接北京星网宇达科技开发有限公司的无源北建成由 35 颗卫星组成的北斗全球卫星导航系统。
斗接收机。
S3C6410 处 理 器 的 其 它 接 口, 成 显 示 完 在我国通讯业发达的情况下,北斗一号的移动通 屏、键盘、存储设备的接入,其硬件结构如图 1 所示。
讯功能用户数量非常有限, 且有源定位方式相当复 外存储设备如 SD 卡存放地图数据。
操作系统采用 〔4〕杂,严重阻碍北斗导航的商用化。
为此我国北斗二号
Android,其开源而发展迅速,且应用软件丰富 。
将提供开放服务和授权服务, 开放服务即提供无源 〔1 〕定位 。
1 实验平台搭建 地面端和用户端 3 部 北斗卫星导航系统由空间端、 2 〔〕分组成 。
北斗一号空间端为两颗工作卫星、 一颗备份 图1 导航定位终端硬件结构图 09- 收稿日期: 2011- 26 基金项目: 重庆市自然科学基金资助项目 CSTC2010AB2001 男, 作者简介: 龙昌生 1985- , 江西吉安人, 重庆大学软件工程学院硕士研究生, 研究方向: 基于 Linux 的嵌入式与网络技术 男, 陈蜀宇 1963- , 重庆人, 教授,博士, 男, 研究方向: 嵌入式 Linux 和分布式网络技术 夏凡 1987- , 硕士研究生,研究方 向: 基于 Linux 的嵌入式与网络技术。
2012 年第 2 期 龙昌生等: 基于
Android 的无源北斗船用导航终端的设计 191 卫星信号的接收采用北京星网宇达科技开发有限公司的无源北斗接收机。
其功耗低、 重量轻、 尺寸 3 定位导航设计方案小,可跟踪 3 颗卫星, 处理 6 个波束数据, 捕获时间小 无源北斗接收机通过电线接收到北斗卫星信号,于 2s, 授时精度优于 30ns。
能够依靠观测现有一代 再经过内部滤波和放大等处理, 产生遵循标准协议系统的卫星, 再通过外部输入高程数据, 实现无源定 IEC61162 的 定 位 信 息,经 过 RS232 串 口 送 给位的功能 在只观测一颗卫星的情况即可实现无源授 S3C6410 处理器 S3C6410 处理器将从串口接收到的 〔7〕 84时的功能。
以 WGS- 坐标系为参考坐标系。
接收 定位信息提取出经、 纬度等数据 。
这些数据一方机采用标准 RS232 异步串口, 波特率 115200。
串口 面送到地图显示模块, 显示当前终端的位置 另一方A 输 出 北 斗 定 位 信 息。
串 口 B: 高 度 输 入, 命 令 以 面这些数据还是计算导航参数的必须数据, 结合输入 hhhseth hhh 方式输入高度, 为浮点数范围在 - 1000 的预设航线进行偏航角、 偏航距等导航参数的计算, 〔13〕到 1000000。
串口 A 上输出定位信息如下: 并将计算出的结果再送地图显示模块 。
1 定位时。
3. 1 定位信息的接收与提取 BDPV, LLLLLL, OOOOOO, 149835,696, 2011 /08 /20, S3C6410 板处理器实时、 准确接收定位数据, 需 N, E, H,16: 50: 56. 0, 3958. 3986, 11629. 5022, 120. 0,VN,-0. 4, - VE, 0. 0,VH,- 0. 0, 1. 3KM / H, V, X,- 2183408. 4,Y, 设置串口的特性与接收机匹配, 串口的波特率设为4380828. 2, 4075864. 2, 39999895. 2, 1B Z, LF, 115200、 串口号为 tty2、数据位为 8、停止位为 1、校验 〔8〕 2 不定位时。
位无 。
在
Android 中对串口中数据的读操作核心 〔9 - 10〕 BDPV,UUUUUU,XXXXXX,39929,556,UNABLECAL, 代码如下: 75 JNIEXPORT jobject JNICALL SP- Jandr- open2 无源定位算法 JNIEnv env,jobject this,jstring p,jint BR 由接收机接收来自 3 颗一号北斗卫星的测距码 int f数据, 接收 到 3 颗 卫 星 与 被 测 点 的 伪 距 离 D1、D2、 t speed- sD3, 同时用测高仪得到被测点的海拔高度 H, 设被测 jobject xFD D2、点的观测值 L D1、 D3 , 待定位点坐标为 P x, / 检查参数 / z 待定位点初始坐标 P0 X0, Z0 ,y, , Y0, 卫星 1 s getBR BR Y1,的坐标为 P1 X1, Z1 , 卫星 2 的坐标为 P2 if - 1 s X2, Z2 , Y2, Y3, 〔5〕 卫星 3 的坐标为 P3 X3, Z3 LOGE 〃Invalid〃 用接收机来无源定位, 还要考虑接卫星时钟和收机时 return NULL钟的差值, 设差值为 Δτ,则由测距码得到的距离为: 槡 X - Xi Y - Y i 2 Z - Z i 2 cΔτ i 1, 2 Di 2, 3 1 jboolean C / 打开串口 / X k H cos cos I utf const char p- env -> GetStrUTFCh env,p, Y k H cos sin I &C Z k 1 - α2 Hsin p- LOGD 〃Opening s〃, utf R k 2 utf, RDWR O- f open p- O- DIRECT O-SYNC 槡1 - α2 sin 2 fd LOGD 〃open fd d〃, Y X tan I , cos 3 p, utf env -> RelStUTFCh env, p- X R H cos I R 是参考椭球体长半轴, 是参考椭球体第一偏 if - 1 f α 心率。
由以上分析, 需求解 4 个未知数: X、 Z 及 Y、 t LOGE 〃Can’ open〃 Δ 3 t, 个伪距观测值和 1 个高程值是实际可得到的, 〔5〕 return NULL故可求得这 4 个未知数 。
解算时, 用 2 式 把 先 1 式中的坐标转换成高程值和经纬度, 同时把测高 仪测到的高程值代入方程, 结合 3 式,再进行迭代 / 初始化串口 /计算, 就可求出被测点的坐标, 最后用 3 式就可把 struct termios cf 〔6〕坐标转换成被测点的经纬度值 。
LOGD 〃Configuring〃 192 计 算 机 与 现 代 化 2012 年第 2 期 if tcgetattr f,&cf LOGE 〃tcget failed〃 close f return NULL cfmakeraw &cf cfsetispeed &cf,s cfsetospeed &cf,s if tcsetattr f,TCSANOW,&cf LOGE 〃tcset failed〃 图2 终端显示北斗定位信息 close f 3. 2 导航模块设计 return NULL 在航海导航中, 路点导航和路线导航是主要的两 〔13〕 种方法 。
本文以路点导航进行设计。
航路点就是航线中的拐点, 始发点与终点也包括 Jclass cFD env -> FindClass env,〃 / FileDes〃 在内, 相邻两路点之间的连线构成了一个航线段 在 jmethodID iFD env -> GetMethodID env,cFD,〃 一航线段里, 引导船舶驶向当前航线段目的点,需计init〃,〃V〃 算 3 个必要的参数: 到目的点的距离、 目的点的方向 jfieldID dID env -> GetFieldID env,cFD, 〃I〃 〃des〃, 以及船舶偏离航线的偏航量 在实际应用中常会设置 mFD env -> NewObject env,cFD,iFD 〔13〕 几个辅助参数: 偏航角、 偏离航向的警报阂值等 。
env -> SetIntField env,xFD, dID, jint f 导航示意图如图 3 所示。
returnxFD 无源北斗接收机输出的语句“ BDPV” 中包含所需要的经纬度等数据, 1. 1 节所述。
当串口缓冲 如区中收到字符时就触发了串口通信事件, 则调用处理 〔11〕函数 。
Android 中对北斗信息处理调用部分操作如下: 图3 航路点导航示意图 for A01 到 A05 这些相邻航路点的各连线就是航线 nevents epoll- fd, 2, wait epoll- events, - 1 段, 各航线段组成完整的航线 P 点记为当前所在位 fd if f control- 置 点 P 与始航路点之间的连线和计划航线段的夹角 ret read f, 1 &cmd, 记为偏航角 点 P 到计划.