无人直升机中继数据链系统及其控制方法_3

文档序号:9289918阅读:来源:国知局
传输方 向可分为下行数据和上行数据。下行数据为无人机状态信息,包括頂U姿态信息、航向角、 经炜高信息、GPS位置和速度等信息,无人机主控制器的处理器在程序中将采集到的各传感 器模块数据打包成一个自定义的字符形式数据包,通过串口USART1以中断方式输出,考虑 到无线传输模块的带宽限制,以及链路数据的丢包率和传输延时的影响,ARM7主程序中将 下行数据频率设定为30HZ,串口波特率设为19200bps,每一个周期内下传的数据包最大字 节数为70个字节数据,这对于目前应用来说是足够的,主程序中有严格的针对链路数据的 差错处理程序和拥塞避免机制。ARM7的USART1是全双工的,主控制器同样使用中断的方式 接收地面传送的上行数据报文,中断处理程序首先检测数据包的字头,接着按字节读取每 个数据,读完字尾后即得到一帧完整上行数据,用于飞行控制的数据存入相应的内存缓冲 区中,主程序相应的解码函数获得手控状态下各控制通道的PWM值、自控状态下的PID参数 及指令、机载应用的任务参数等信息。
[0061] 本实施例选用DIGI公司的XTEND无线射频模块作为无线传输设备,工作频段 为900MHZ,工作方式为全双工,发射功率可调,这里设定为最大发射功率1W,接收灵敏度 为-llOdBm,连接接口为RS-232标准,串口波特率设定为19200bps。在具体应用过程中, 为构建实用的轻小型系统,空中机载部分的无线射频模块选择重量轻、体积小的XTEND-0EM 模块,其供电电压为5V,输出信号为TTL电平,为解决电平匹配问题,在XTEND-0EM模块与上 位机处理器ARM7之间设计MAX232电平转换电路,地面部分选用内置外围接口电路及带有 工业外壳的XTEND-PKG调制解调器,其供电电压为12V锂电池供电,RS232串口直接与下位 机处理器的串口UART相连接。XTEND无线射频模块的相关参数设定在X-CTU软件中完成, 参数设置界面如图3所示,具体配置步骤为:为每一个模块分配一个唯一的源地址;使能广 播通信方式;配置PK、R0和RB确保射频包符合协议数据包(PK= 0x100 ;R0 = 0x03;PB= 0x100);配置一个或多个中继器(MD= 5),即表示模块为中继模块;配置远程节点作为目标 点(MD= 6);配置RN寄存器设置延时(RN= 1)。
[0062] 本实施例的基站模块处理器采用Compulab公司的CM-T3530嵌入式核心板,它以 基于Cortex-A8架构的0MAP3530处理器为其核心,拥有强大的计算处理能力和丰富的外围 设备资源,其3个RS232串口及内置支持WiFi802.llb/g协议的无线网卡,完全可以满足数 据传输要求,基站模块处理器有两种供电电压,分别为5V和3. 3V。基站模块处理器的主要 作用是进行数据的融合、封装、解析与转发,并负责各种数据在不同情况下的传输时序、传 输流程、传输条件及传输控制方式。基站模块处理器预装一个内核版本为2. 6. 24的Linux 操作系统,基于此平台上运行一个多线程程序,程序中的数据流如图4所示,在主线程中接 收并解析从子线程中读取来的各种数据,对于上行数据会调用无线发送函数通过无线数传 模块上传至上位机,对于下行数据则直接通过UDP网络传输转发至底面站模块。
[0063] 3个子线程只用来读取数据,其中:⑴子线程pthread_pcm_tid用来读取来自遥控 器的pcm信号,原始格式形如"$250250250250250250250250/r/n","$"为起始字符,"/r/n" 为结束字符,中间每3位八进制数为一组,分别代表8个通道的PWM值,对应的服务程序的 程序流程图如图5所示。⑵子线程pthread_S〇Cket_tid线程是为了读取地面站模块发送 到基站模块的PID-LQR控制器参数和轨迹规划数据而建立的线程,地面站模块的数据通过 电脑的无线网卡发送给基站模块的无线网卡,基站模块与地面站模块的无线网络通信协议 为UDP/IP协议,UDP协议是面向无连接的网络通信协议,此协议无需在两个端口之间建立 连接,地面站模块与基站模块通过广播的方式给对方发送数据,因为无人直升机在飞行的 过程中,我们需要在地面站模块上观测无人直升机的实时状态信息,所以在此采用UDP协 议通信。因为基站模块接收地面站模块的数据有PID控制器参数、轨迹规划数据和机载设 备的控制信号,在此对每一路数据都在基站模块和地面站模块之间建立一个socket连接, 使用select函数来检测各路数据的到来,如果接收到PID控制参数,则更新para_buf字符 串的数据,如果接收到了轨迹规划数据,贝更新target_buffer字符串的数据。Para_buf和 target_buffer的数据分别在para_handle函数和target_handle函数中进行切割,分割之 后为单个参数之后存放在数组中;⑶子线程pthreacLhelistatejid用来读取上位机系统 下传的下行数据,格式形如:
[0064] $DATA,1,0. 001,0. 001,0. 001,0. 001,0. 001,0. 001,0. 1,0. 1,0. 1,5,2,1,1,1, l\r\n
[0065] 中间数据部分分别表示飞机的控制模式、姿态角、位置、速度、GPS星数、飞行模式、 标志位信息,在主线程中,将pthread_helistate_tid读取的数据通过UDP转发至地面站模 块。
[0066] 基站模块主线程负责整个系统的数据分发,pthread_pcm_tid子线程除了负责读 取地面站模块发送来的控制指令以外,还需要解析控制指令中的飞机编号,主线程首先判 断的是飞机编号,根据不同的飞机编号对接收到的遥控器和地面站模块的控制指令编入不 同的目的地址。本系统中中继机飞机编号为T1、飞机的目的地址为01 ;目标机的飞机编号 为T2、飞机的目的地址为02;。发给中继机的上行数据帧的格式为"《01,…,\r\n",发给 目标机的上行数据帧的格式为"《〇2,…,\r\n"。同时,为了保证不会因为地面操作员对地 面站模块的误操作给无人机带来灾难,有些情况下时不容许进行无人机控制的切换的,比 如在受控飞机处于手控状态时,此时无人机的运动状态直接受到地面遥控器的控制,在这 种情况下,如果切换控制其他飞机,原来处于手控状态的飞机就失去了地面的控制,这种情 况会直接导致坠机事故,所以,在系统设计中,这种会带来严重安全事故误操作应该由系统 本身来预防,具体做法是在基站模块编码中,在切换受控飞机之前,判断受控飞机的飞行模 式。如果受控飞机处于手控模式,而地面站模块发送的控制指令中的飞机编号不是受控飞 机对应的飞机编号,则此控制指令无效,同时向地面站模块回馈一个信号,告知操作员的误 操作,考虑到安全策略,中继系统的基站模块的主线程的程序流程图如图6所示。其中,对 于每一架飞机的点对点的数据包而言,其打包工作主要分为两个部分,手控部分和自控部 分。手控部分主要是发送遥控器的手控信号,当有参数上传时,附带上传参数,自控部分上 传通路基本不上传,只有当地面站模块有PID参数、轨迹规划或机载设备的控制数据上传 时才打包数据上传,点对点的数据包的程序流程图如图7所示。
[0067] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1