吴忠秉,常曼曼,王小龙

(1.无锡华普微电子有限公司,江苏 无锡 214035;2.中科芯集成电路有限公司,江苏 无锡 214072)

0 引 言

智慧农业设备广泛应用于农业远程控制、智能预警等智慧农业系统中[1-3]。由于很大一部分农业远程控制、智能预警设施工作在农场田、山坡、野外等无人值守、地域辽阔的地方,因此智慧农业设备对这些生产要素的采集监控起着非常关键的作用[4-6]。随着信息技术的发展,智慧农业设备应用程序更新迭代频率加快,且现有的智慧农业设备大多组网运行,一个智慧农业设备一般又由多个嵌入式平台处理模块组成,每个嵌入式平台都有其程序更新原理。如若按照传统程序升级方法,需为每个智慧农业设备中每个嵌入式平台处理模块都留出程序更新口,这样会改变硬件构造,降低硬件设备的运行稳定性。

针对上述存在的技术问题,本文提出了一种用于智慧农业设备的多平台嵌入式程序远程更新方法,此方法能简单高效地使程序及时得到更新,节省设备维护成本,并在实际工程中实现。

1 系统总体设计

系统由PC 上位机、智慧农业设备组成,拓扑结构如图1 所示。PC 上位机可以主动向智慧农业设备发送远程更新命令和更新文件数据。智慧农业设备包括农业数据收集模块和人机交互模块,农业数据收集模块与PC 上位机、人机交互模块连接,农业数据收集模块根据接收到的更新命令确定此次更新是更新农业数据收集模块还是人机交互模块。

图1 系统拓扑架构图

2 主要硬件结构设计

2.1 农业数据收集模块硬件设计

农业数据收集模块主要完成农业数据的收集、处理及与上位机、人机交互模块进行数据交互。农业数据收集模块由DSP 芯片、时钟电路、复位电路、串行FLASH 芯片、电平转换电路、电源管理电路组成,其中主控芯片选用的是TI 公司的TMS320F28335 芯片[7],如图2 所示。

图2 农业数据收集模块硬件结构图

2.2 人机交互模块硬件设计

人机交互模块主要完成智慧农业设备系统数据显示及人为干涉的功能。人机交互模块由ARM 芯片、时钟电路、复位电路、串行FLASH 芯片、电平转换电路、电源管理电路组成,其中主控芯片选用CKS 公司的CKS32F103C8T6 芯片[8],如图3 所示。

图3 人机交互模块硬件结构图

3 系统软件设计

系统软件分为两部分:上位机软件和智慧农业设备软件。上位机软件主要完成更新程序数据的处理与传递;智慧农业设备软件主要完成应用程序运行及对远程更新命令的响应与处理。智慧农业设备软件分别利用SCI 引导加载原理进行DSP 平台程序的更新程序设计[9-10]及IAP 升级原理进行ARM 平台程序的更新程序设计[11-12]。应用程序和更新程序并行运行,避免使用单独的boot 程序[13-14],减少程序的开发复杂性,提高程序维护及更新效率,且可以在不丢失外部数据的同时进行程序更新。

智慧农业设备中内含两个模块,两个模块主控芯片属于不同平台,但都可以使用同一上位机软件进行远程更新程序。智慧农业设备一般是组网运行,各自有独一无二的设备识别码,在进行程序更新时,利用设备识别码识别出分布在各地的智慧农业设备进行针对性更新。在确定更新设备后,使用专属平台更新码可以针对性地更新设备中某平台,避免非专业人员的误操作,提高系统安全性,并可记录更新事件日志便于管理。在更新过程中若出现升级异常,可以继续运行原程序,或可以再次进行更新程序。利用农业数据收集模块和人机交互模块通信相连的特性,借用并跨越农业数据收集模块,可直接通过上位机更新人机交互模块程序,而不必再设计上位机和人机交互模块的程序更新协议。

3.1 上位机软件设计

上位机软件是在电脑端设计的人机交互软件,该软件能够主动控制及改变整个远程更新系统的工作流程。在上位机界面中可以输入智慧农业设备的设备识别码进行检测设备在线状态,如果在线,可以选中更新文件进行程序更新。上位机软件的软件流程如图4所示。

图4 上位机软件流程图

3.2 智慧农业设备软件设计

智慧农业设备软件的程序更新主要由系统初始化、判断设备在线状态、判断更新平台、开始更新、数据传输及更新完成6 部分组成。智慧农业设备软件的软件流程如图5 所示。

图5 智慧农业设备软件流程图

农业数据收集模块软件设计与人机交互模块软件设计存在一处不同,即在农业数据收集模块软件中更新时,需要判断此次更新是否是自身程序更新,如果不是自身程序更新,则需通知人机交互模块即将进行程序更新,并在更新过程中充当上位机软件和人机交互模块软件的传输媒介,将程序更新过程中产生的数据进行互传。

程序更新流程如下:

1)系统启动后,智慧农业设备软件进行系统初始化配置,运行应用程序并等待更新命令;

2)查看是否有更新指令,与上位机建立通信连接;

3)查看平台更新码,决定执行DSP 程序更新或ARM 程序更新;

4)接收开始更新程序命令,准备更新程序数据接收;

5)接收更新文件数据,更新文件数据传输时设计有3 次重传机制,每包数据的数据帧格式如表1 所示,包含帧头、设备识别码、版本号、总包数、当前包序号、包大小、更新程序数据、校验和、帧尾,等待数据接收完毕;

表1 数据包数据帧

6)数据接收完毕后,发送更新程序启用命令,程序更新完成。

4 系统验证与改进

本文设计验证以TMS320F28335及CKS32F103C8T6为主控芯片,DSP 程序更新文件大小为0.6 Mb,ARM 程序更新文件为2.2 Mb 为例,该系统更新单次DSP 程序文件及ARM 程序文件的时间为85 s 左右,均包含擦除FLASH 的时间;而使用传统本地JTAG 方式进行程序更新,需要两个主控芯片连接各自的JTAG 下载器,打开各自的下载软件进行程序更新,且需打开设备面板,整个过程耗费时间较长。

本文设计的用于智慧农业设备远程更新系统还有待改进,由于智慧农业设备一般组网运行,数量众多,在进行远程更新时,想要全部更新一遍智慧农业设备程序,需要一次次的点击更新按钮,工作量较大。下一步可通过改变上位机传输数据逻辑,并行更新多部智慧农业设备,进一步降低程序更新的工作量和时间。

5 结 语

为解决由于现代农业信息化技术的不断发展和革新,智慧农业设备程序需要进行不定期更新的问题,本文提出了一种用于智慧农业设备的多平台嵌入式程序远程更新系统。利用设备原有通信线路代替专用下载器进行程序更新,无需打开设备面板,提高设备坚固性及稳定性,可以精准实现点对点升级,有效解决了使用JTAG 仿真器更新时工序复杂、效率低下等问题,并且减少了硬件成本和维护成本,对工程应用具有重大意义。