$ AABBB,ddd ……………………ddd,*hh<CR><LF>
其各字段定义如下:
$:起始语句头;
AA:对话设备识别符;
BBB:语句名;
,:域分隔符;
ddd…ddd:发送的数据内容;
*:校验和符号;
hh:校验和;
<CR><LF>:终止符(回车、换行)。
2.倾角传感器输出格式分析[8]:倾角传感器数据包为6字节的定长数据包,数据格式如表1所示。数据头字节和最后的校验和字节用于通信同步,实际格式为ASCII码。具体定义如下:
表1:倾角传感器数据包格式
3.USB接口操作:在对USB进行操作的时候,必须要利用WinDDK将设备驱动程序进行编译,主要步骤为:得到设备的厂家标识和产品标识,利用驱动程序的GUID值获取设备的文件名, 用 CreateFile 函数打开设备,接着利用设备文件名和驱动程序里面的 Pipe 名打开 Pipe, 访问这个 Pipe 对应的 USB 端点,利用CreateFile 得到的设备句柄,从而通过 DevICeIoControl 函数实现设备规定的动作。需要注意的是厂家标识、产品标识和GUID值在驱动程序的“*.inf”文件里面就可找到,如果没有,则需要联系设备生产厂家了;Pipe 名和DeviceIoControl函数的参数需要参考驱动程序资料才能找到。
相关代码如下:
HANDLE hPipe = OpenDevPipe("Pipe1"); //驱动程序里面的 Pipe 名, 对应访问某个端点的 I/O,需要与驱动一致
if(hPipe != INVALID_HANDLE_VALUE) //打开 Pipe 成功
{
WriteFile(hPipe, Buffer, BytesToWrite, &nBytesWritten, NULL); //把 Buffer 里面的字节写入 hPipe
CloseHandle(hPipe);
}
//使用 DeviceIoControl 访问 USB 设备
HANDLE hDevice = OpenDevice();
if(hDevice != INVALID_HANDLE_VALUE) //打开设备成功
{
if(DeviceIoControl(hDevice, IOCTL_READ_xxxx, &IOBLOCk, sizeof(IOBLOCK), &c, 1, &nBytes, NULL))
{
//操作成功,
}
CloseHandle(hDevice);
}
4 结束语
在系统设计中,以 PC/104 嵌入式计算机模块为核心,构建了由GPS接收机、无线数传设备、倾角传感器等设备组成的 实时 姿态 数据采集 系统,试验表明,系统能够实时、稳定、连续地提供固定站和流动站的姿态信息、定位信息以及两者的相对位置信息,从而能更好地掌握试验设备载体的运动状态,为得到精确的试验结论提供保障。
本文主要创新点在于以PC/104嵌入式计算机模块为核心,构建由GPS接收机、无线数传设备、倾角传感器等设备组成的实时姿态数据采集系统,分析了软件设计的难点及实现方法。在工程实践上具有实际意义。
参考文献:
[1] 王惠南.GPS导航原理与应用[M].科学出版社,2003.8
[2] 彭树生. 3mm接收机的PC104数据采集与控制电路设计[M].微计算机信息(测控仪表自动化),2003.NO.11 P.36-38
[3] 刘基余.GPS卫星导航定位原理与方法[M].科学出版社,2003.8
[4] 范逸之等.C++ Builder与RS-232串行通信控制[M].清华大学出版社,2002.6
[5] 陈灿煌.C++ Builder 6彻底研究[M].中国铁道出版社,2003.1
[6] Beeli
www.55dianzi.com
ne GPS Receiver User’s Mannual[S].Novatel Company.
[7] Garmin25 LP GPS Receiver User’s Mannual[S].Novatel Company.
[8] CXTILT02E_02EC User’s Mannual[S].CrossBow Technology,INC
[9] Jeffrey S, Yoaz B et al. MICro GPS: On-Orbit demonstration of a new approach to GPS for sPACe applications[J]. Navigation, ION, 2000, 47(2)
本文关键字:数据采集 综合-其它,单片机-工控设备 - 综合-其它