4、 编程实例
SPI接口的数据接收和发送是同步的。V2XE每接收一个数据时将会发出0X00。当V2XE发送命令的应答时,它将不处理任何输人的数据。因此,在主机获取V2XE数据时,应是发送和接收同时进行。用C语言编写发送一接收函数SPITransmit如下:
一个V2XE系统的典型应用流程如图4所示。
V2XE出厂时,都在其ROM中固化了芯片的版本号。用户第一次应用V2XE系统可首先读出该版本号以判断器件是否正常工作。可先向V2XE发送命令GetModInfo,然后读取返回值ModlnfoResp。其程序如下:
这样,获得的芯片信息存放在数组verson中,可以根据读取的值和实际版本号(V2XEV201)比对以确定系统是否正常工作。如果系统正常,首先要根据需要设置返回数据格式以确定V2XE返回这些用户感兴趣的值,主要包括地磁方向角、磁场强度、温度和校准状态位等。另外。还要设置一些初始化参数,主要包括Declination(本地的地磁角,可以从http://www.ngdc.ROaa.gov/cgi—bin/seg/gmag/fldsnthl.pl获得)、True Noah(设置参照角度为地磁北)、BigEndian(选择数据的大、小模式)、Dampingsize(数据缓冲区。将缓冲区里的数据平均后作为V2XE的实际输出)。
在V2XE的实际应用中,常常需要校准.常用命令包括StartCal、StopCal、GetCalData、CalDataResp和SetCalData。其指令代码和功能描述如表3所示。在校准过程中,V2XE装置要尽量水平放置。从开始校准到结束校准过程中需将装置原地旋转两周,每转的时间不得小于30s。校准完成后,可以查询参数calstate来判断校准是否成功。完成参数设置和校准等初始化工作后.可以通过发送指令GetData(0X04)来获取V2XE的数据。对V2XE每发送命令一次必须将其输出全部读出.否则会影响下一次的正常输出。
5、 结束语