APP下载

基于嵌入式的地面控制装置的设计

2019-03-28韦启李争平黄明仵松颀

物联网技术 2019年3期
关键词:上位嵌入式指令

韦启 李争平 黄明 仵松颀

摘 要:地面控制装置主要运用UDP作为通信协议,系统软件的基本功能包括软件上电自检与远程控制自检、数据采集与上传、远程命令接收与处理及继电器控制。文中对系统各功能模块的设计思想做了简要阐述,并给出时序图与流程图、软件测试方法、实验记录及结果分析。

关键词:地面控制装置;UDP通信;上电自检;远程控制;时序图;流程图

中图分类号:TP277文献标识码:A文章编号:2095-1302(2019)03-00-04

0 引 言

近年来,随着国家航空航天研究的深入,无人机悄然兴起,主要应用于一些恶劣环境的探索及长时间实时数据的收集。无人机执行的是长时间恶劣环境下的数据采集任务,同时需要与地面站之间能够有大规模数据交互,且对数据采集的精度要求极高。基于此,本文主要通过Keil4环境开发基于嵌入式的无人机地面控制装置,实现无人机远距离数据采集与实时控制。嵌入式系统是一种以控制、监控或辅助各种操作机器与设备为目的的装置,是运用計算机技术,围绕应用需求,对软件、硬件进行相应裁剪,使功能、成本、体积、功耗以及可靠性等都能适应相应要求的专用计算机系统[1]。

1 系统设计与实现

1.1 通信协议设计

在嵌入式领域有多种通信协议可供选择。由于嵌入式终端实现了网络通信,故可考虑通过以太网的TCP/IP或UDP协议实现系统与上位机的通信,现就这两种协议的异同进行讨论,以选择更适合本文系统的协议。

1.1.1 TCP/IP协议

传输控制协议(Transmission Control Protocol,TCP)是基于连接的协议[2],即在正式收发数据前,须与对方建立可靠连接。一个TCP连接必须经过3次“对话”才能建立起来,3次“对话”的目的是使数据包的发送与接收同步,经过3次“对话”后,两个主机才能正式发送数据。

1.1.2 UDP协议

用户数据报协议(User Data Protocol,UDP)是与TCP相对应的协议。它是面向非连接的协议,不与对方建立连接,而直接把数据包发送过去。

1.1.3 二者差异

由于TCP/IP协议是面向协议的通信,因此需要两个设备之间建立连接,且TCP/IP管发管到,安全性更高。而UDP协议是面向非协议的通信,可用于组播发送,只需组播地址并加入组播就可收到广播,实时性更强。

综上所述,只需使系统将采集到的数据发送到上位机即可,且鉴于对数据采集的实时性要求较高,因此本文采用UDP协议进行通信。

1.2 系统架构设计

针对本文系统性能要求,选择STM32F407ZGT作为系统核心处理模块,内核为Cortex-M4[3]。STM32F407ZGT核心板ADC为12位,最多可采集24通道数据,满足设计要求。此核心板还支持10/100 Ethernet MAC以太网通信,可工作在-40~105 ℃环境下。

根据设计需求,系统采用中断与时间片轮询软件架构,可保证系统数据采集与控制的实时性。系统软件的基本功能包括软件上电自检与远程控制自检、数据采集与上传、远程命令接收与处理、继电器控制。软件执行的基本时序是:系统开机后进行设备自检与系统自检,自检通过后进入中断监听程序,待发生中断后做出相应动作,执行过程中进行系统自检,随时上报自检结果。系统结构如图1所示,软件执行时序如图2所示。

主线程伪代码如下:

sysInit();//系统初始化

GPIO_ResetBits(GPIOB,GPIO_Pin_13);

//自检开始,点亮黄灯

powerSelfCheck();//电源自检

controlSelfCheck();//控制自检

networkSelfCheck();//网络自检

GPIO_SetBits(GPIOB,GPIO_Pin_13);//自检结束黄灯灭

Set_IP4_ADDR(&ipMultiCast,UDP_MC_REMOTE_IP);

//远端IP

while(1)//主循环

软件上电自检流程如图3所示。

软件上电自检过程中,状态指示灯红闪;自检结束并异常,状态指示灯红色常亮;自检结束并正常,状态指示灯绿色常亮。

由于通过ADC采集到的数据为十六进制数,因此需要经过与参数做运算实现数值转换,以便进行判断比较。

网口远程控制自检过程可独立控制不同继电器控制电路的自检。第1,2,4路自检与上电自检流程相同;第3路自检需要在远程控制开关闭合状态下完成,具体流程如图4所示。

基于定时中断的采样过程采用周期定时中断方式进行[4],每次采样完成所有24通道ADC采样过程,将采样结果上报上位机。

基于程序控制采样过程可以命令采集不同通道的样值上报,每次采集一个通道的样值。

程序设置看门狗计数器,当程序出现异常时控制程序自动重启。

系统中主要采用定时中断、网口通信中断,网口通信中断优先于定时中断。

系统采用定时向上位机发送采样值的方式报告地面控制装置的状态。若超时未发送采样值,则说明地面控制装置异常。同时,每次上报采样值后,上位机需应答确认。若地面控制装置接收上位机应答确认超时,则控制状态指示灯黄色常亮。

1.3 网络模块软件设计

网络模块选择以太网接口芯片DP83848,DP83848支持IEEE 802.3u以太网协议,且可工作在-40~125 ℃环境下,既能满足网络通信需求,又能工作于恶劣环境。为了使主控板能够对DP83848进行正确读写,并使DP83848处于激活状态,以便指令数据收发,需要对网卡进行初始化[5]。

网络初始化流程如图5所示。在网络初始化过程中,若出现异常则状态指示灯黄闪。

1.4 与上位机通信过程设计

地面控制装置与上位机通信包括控制命令与采样上报两种信息。控制命令执行时序如图6所示,采样上报执行时序如图7所示。

1.5 系统软件与上位机指令协议说明

通信协议具体要求如下:

(1)使用UDP协议。1号装置IP地址为192.168.70.11,组播地址为224.0.10.1,端口号为0x8001;2号装置IP地址为192.168.70.12,组播地址为224.0.10.2,端口号为0x8002。

(2)收到的上位机发控指令帧格式与向上位机上报的发控数据帧格式见表1、表2所列。

①动作序号代码中0000H代表动作开关1;00FFH代表动作开关2;0F0FH代表动作开关3;3333H代表动作开关4;FFFFH代表动作开关5。

②动作指令代码中0000H代表撤销继电器控制电压;FFFFH代表添加继电器控制电压。

③动作持续时间0000H代表接收到此命令后立刻执行,直至收到下一个同动作序号代码的指令;其余代表收到此命令后立刻执行,直至收到下一个同动作序号代码的指令或持续到本条指令中动作持续时间结束(实际动作持续时间=指令中动作持续时间×1 ms)。

①发控数据帧10 ms上报一次。

②当收到发控指令后,下一帧发控数据帧中发控指令回令部分填写收到指令4~9 B的内容,未收到指令时发控指令回令部分填写55555555H。

③每条发控指令发送3次,2次间隔10 ms,要求在收到1条发控指令后50 ms内回复,但不响应相同的指令。

④帧计数在第一帧上报时填写00000001H,往后每帧加1H。

2 系统软件测试

软件测试主要采用白盒测试的方式,包括功能测试与性能测试。

功能测试主要对每条控制指令执行情况进行测试,包括继电器控制指令测试、采集信号控制指令测试与系统自检控制指令测试。

性能测试包括指令响应时间测试与压力测试,模拟实际控制场景进行压力测试,统计远程控制命令的响应时间。

首先进行指令测试,给设备通电,然后使用上位机向设备发送命令,读取设备采集到的数据,并将数据发送到上位机上,同时写入文件,再用示波器对测试结果进行检验。

上位机发送指令采集数据界面如图8所示。利用上位机发送命令,使继电器1,2,4,5处于打开状态,继电器3处于关闭状态,此时可观察到A/D采集到的数据。由于供给设备30 V稳压直流电源,故图中通道C1~C10采集的数据均为30 V上下,同时这些数据均写入文件。图9所示为写入文件的数据,同時使用示波器进行采集,发现满足每10 ms上传一次数据,结果如图10所示。

采用STM32嵌入式开发的无人机地面控制装置实现了远距离数据采集与实时控制,使得无人机在恶劣环境下仍可执行数据采集与上传任务,在确保数据精度的情况下,为人们探索一些人力所不能及的地方提供了新的可能。

本文系统通过UDP协议进行通信,确保通信实时性的同时拥有独立的指令协议,实现了通信可靠性。该装置在与软件联调时发现的诸多问题在一次次排错与整改中得到了排除,在保障安全性、维修性与可靠性的前提下进行三化设计,最终基本实现了要求的功能及指标。

参 考 文 献

[1]季国华.基于DSP的嵌入式系统网络通信技术应用[J].无线互联技术,2017(24):3-4.

[2]李逸瀚,石春,吴刚.基于μC/TCP-IP协议栈的嵌入式以太网通信系统[J].计算机应用与软件,2017,34(9):153-158.

[3]李德佶,吴万敏.基于STM32和SIM800C的小型嵌入式监控设备的设计与开发方案:以小微企业污水处理为例[J].科技与创新,2018(3):36-38.

[4] SCAGLIA S.The embedded internet TCP/IP basics:implementation and application[M].北京:北京航空航天大学出版社,2008:67-98.

[5]戚新建,章伟.基于STM32的快速嵌入式以太网接口[J].仪表技术与传感器,2017(7):45-49.

[6]谭浩强.C语言程序设计[M].4版.北京:清华大学出版杜,2010.

[7]康一梅.嵌入式程序设计[M]. 北京:机械工业出版社,2007.

[8]范延滨,李小康.嵌入式Linux下WiFi接入技术研究[J].物联网技术,2014,4(10):30-32.

[9]姚莉,邓丹君.基于A8的嵌入式Linux远程视频监控系统的设计与实现[J].物联网技术,2016,6(5):24-26.

[10]张仕海,周颖.基于ARM的嵌入式视频监控系统的硬件设计[J].物联网技术,2017,7(5):12-14,17.

[11]彭旭.基于嵌入式系统的通信控制器设计与开发[D].哈尔滨:哈尔滨工业大学,2007.

猜你喜欢

上位嵌入式指令
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
特斯拉 风云之老阿姨上位
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器