基于北斗二代的飞机除冰车定位系统设计
inux系统制作、应用程序编写、图形界面设计。系统主程序框架如图5所示。 3.2 系统制作 Linux系统开发主要包括bootloader制作、Linux内核裁剪、字符设备驱动的添加及根文件系统的制作。 系统采用u-boot-1.1.6源码制作bootloader,主要完成对于硬件的初始化及运行代码的搬移工作,在u-boot的设计中,需使用软浮点交叉编译器进行编译;内核以Linux-2.6.31源码为基础进行裁剪编译,添加对于NAND FLASH、LCD等硬件及Yaffes2文件系统的支持,并添加DS18B20及A/D驱动程序;根文件系统采用Yaffes2文件系统进行制作,Yaffes2文件系统为专门针对NAND FLASH所设计的文件系统。 3.3 应用程序 应用程序主要实现TCP/IP连接及数据采集与发送。应用程序流程框图如图6所示。 程序采用多线程技术实现对于数据的采集与发送。在车载端上电后S3C2440A通过向串口发送AT指令实现车载端与上位机的连接。在连接成功后,线程启动开始工作。 程序定义一个全局变量buf[],用于存储、发送采集到的数据,并利用多线程技术实现对于buf[]的操作,通过信号量实现对于数据采集与发送的同步操作。首先初始化两个信号量:sere1和sere2。代码如下: sem_init(sem1,0,1); sem_init(sem2,0,0); 程序首先对sem1、sem2进行P操作,此时sem1=0,sem20,数据采集线程执行,对数据进行采集并放入全局变量buf[]中,而后对sem2进行V操作sem2=0,数据发送线程执行,将数据发送至上位机,并对sem1进行V操作,sem1变为1,此时重复执行之前的步骤对数据进行采集与发送。通过对线程的PV操作实现数据采集线程与发送线程对全局变量buf[]的顺序访问。 但由于GTM900B是以ASCII码的形式发送数据,因而在数据传输前需对数据进行格式转化。数据转换程序如下: for(i=0;i2024;i++){ if(*g!=‘\0’) j+=sprintf(buf+j,“%02x”,*g++); } *g为待转换的字符串指针,buf为转换后的字符串。 3.4 图形界面设计 图形界面主要用于油位及除冰液液位等参数的虚拟仪表显示,界面显示图如图7所示。界面采用Linux系统下的Qtcreator进行开发,图中Olevel仪表显示除冰车的油位,Llevel显示除冰液的液位,Tem显示除冰液的温度,报警灯主要实现油量快耗尽时的报警功能。 图形界面的设计,可以减少系统的硬件成本,且显示界面可根据需求增加相应的功能,便于后期的扩展。界面仪表通过信号与槽的形式实现与硬件的交互,如温度显示函数为: 结语 在项目设计中以S3C2440A处理器为核心,采用我国自主研制的北斗技术实现对于除冰车的定位操作,并在车载终端实现了对于除冰车油位、除冰液参数的实时显示,并将参数连同定位信息一同传输至上位机,实现对于除冰车更加合理化的调度。
- 嵌入式Web服务器移植与测试(03-03)
- 基于S3C2440的嵌入式IPv6防火墙设计(09-02)
- 基于OpenWrt的移动机器人系统设计(01-17)
- 基于S3C2440处理器Linux平台的物流配送系统设计(02-05)
- 基于嵌入式的杯突试验机测控系统设计与实现(02-12)
- 基于ARM的多路同步的A/D和D/A设计(06-29)