一种嵌入式数据终端的设计方案与实现
扫描二维码
随时随地手机看文章
摘要:以MES 在制造业的应用为背景,针对企业车间的数据类型、数据采集手段、数据 下达与显示方式在各种行业千差万别的实际情况,提出了一种所有功能透明、受控于上位机 的基于S3C44B0 的嵌入式智能交互终端的数据采集方案。此方案能解决数据采集终端在不同 行业间推广过程中的通用性问题,缩短系统的开发周期,日常维护和升级都非常方便。详细 地给出了交互系统的总体模型,嵌入式智能数据交互终端的硬件平台、软件框架与设计流程。
1、引言
传统的 ERP 等信息管理系统在制造业企业内发挥了重要的作用,但这些系统还未能延伸 到车间过程管理的环节,使车间过程管理自动化、信息化、智能化。现在新兴的MES 系统为 解决以上的问题,通常在车间借用各种数据交互终端。数据交互终端负责采集和处理最原始 数据并将其传送到工作站,同时接收工作站下达的操作命令[1]。但是,传统的数据交互终端 把业务流程及数据采集项定制设计成程序固化在终端内,当业务流程发生变化或在不同行业 中应用时,就需要花费大量时间修改终端程序与上位机应用程序。例如在一个系统中有N 台终端要实现不同的业务,就要设计N 套终端程序,使得终端程序的版本很多,很明显不能 适应现代企业的快速变化,也不利于行业间的推广。本文提出一种新的设计方案,引入业务 功能配置引擎与业务解析引擎。其中业务功能配置引擎为上位机应用程序核心,业务解析引 擎集成于数据交互终端。这样,当业务或行业变化时,只需改变上位机的业务配置引擎的配 置信息而无需改变终端程序。采用这样的设计方案可以加快系统开发进度,以及系统在各种 行业中的推广。
2、嵌入式智能数据交互终端硬件平台
硬件平台采用Samsung S3C44B0 处理器,该处理器采用的ARM7TDMI 结构,最高频率 66MHz[2]。本平台以此处理器为核心,添加诸多外围模块,其硬件平台框图如图1 所示。
键盘,RFID 与液晶屏为终端的人机交互平台;系统的核心模块通过系统总线与处理器 连接;外接丰富的RAM 与ROM 资源可以提高系统软件设计的灵活性;以太网作为主要通讯接 口,使得系统通讯更加标准化,保证了通讯的速度与可靠性。在本系统中,除处理器、SDRAM、FlashRom 为主板固定模块,其它外围均采用可拔插的设计原理,这样当需求改变时,只需 插上或拔下需要的外围模块即可,这样的设计思想增加了终端的灵活性并缩短开发周期。
3、软件设计的思想与实现
3.1 智能数据交互系统的整体模型及工作原理
在讲述数据交互终端的软件实现前,首先介绍系统的整体结构以及其工作原理。图2 是MES 系统中的底层数据交互的总体模型。数据交互系统的上位机主要由业务需求模块、业 务配置引擎、数据解析引擎、引擎配置信息与底层通讯模块组成。系统从上层管理系统中获 取业务需求,业务配置引擎读取引擎配置信息,生成业务事件链,通过通讯模块根据工位地 址发送到相应数据交互终端,相反收到采集数据包时,数据解析引擎解析数据交互终端采集 到的数据,最后交由业务需求模块反馈回上层管理程序。数据交互终端软件主要由底层通讯 模块、业务解析引擎、终端表现层与外设驱动与响应模块组成。终端通讯层接收到上位机的 数据包校验正确后交由业务解析引擎。解析引擎根据引擎协议解析出业务事件链后,通过终 端表现层,并等待数据采集,采集完成后交由采集生成引擎,生成固定格式数据再返回上位 机,从而形成数据交互的闭环。
3.2 终端引擎的实现原理
以上为系统的工作原理,下文接着对数据交互终端业务解析引擎与数据采集引擎的实现 做详细的介绍。实现的功能主要就是:液晶显示与外设控制。液晶如何显示,显示那些内容, 外设如何控制,在没经过业务解析引擎前终端都是保持着上次状态,经过解析后才知道应该 实现那些东西,如何去实现。解析引擎就是根据特定协议将一段数据转化为逻辑控制功能的 库。也就是通过一种协议把终端的业务逻辑交给了功能强大的PC 机去处理。终端工作只是 每次逻辑计算后的表现。要实现以上的功能,就必须有一套完整的功能协议栈,设计协议栈 之前,首先将终端的功能进行模块划分,这里以通讯模块往后进行划分,主要有:键盘控制、 液晶显示、外设采集器控制。每个模块继续细化,尽可能表现各个模块的可能会出现的状态。 再次,功能协议的实现,协议由协议关键字与控制内容组成,比如关键字A 代表终端硬件模 块A,关键字A 后面的内容表示上位机要求模块A 要实现的功能,模块A 功能继续细化。如 表1 给出了部分功能协议组成。终端的响应上位机的业务状态主要由两个状态量控制,在程 序上我们定义为两个全局变量,分别用来表示下位机当前属于哪个业务功能与所属该功能的 步骤,在程序上定义为ID 与STEP,上位机系统已经把ID 与SteP 的逻辑流程设计好,例如 在某个ID 与STEP 状态时,终端屏幕上显示是工艺完成情况,并要求用户通过各种采集外设 进行数据采集,提交上位机。每次上位机发送下来的数据都是以ID+STEP+模块A 控制字 +模块A 控制数据+模块B 控制字+模块B 控制数据+…。同时设置触发模块的NEXT_ID与NEXT_STEP。当相应触发发生时,上位机可以根据NEXT_ID 与NEXT_STEP 向终端发送下个 业务流程与其步骤。比喻上位机是一个庞大的中央处理器,控制着业务流程的整个逻辑计算 与数据的组织,车间的所有终端就更像一个输入输出设备围绕着这个中央处理器。我们知道 计算ID×STEP 个逻辑需要一定的CPU 时间,如果将这个工作交给上位机(CPU 达到G 级的 处理器)去完成,处理能力有限的终端就可以去处理更多的其他采集工作。同时,ID×STEP 个业务界面需要消耗很多的 RAM 与ROM 资源,如果把这些界面固化与终端内部,将大大增 加了终端的硬件成本。而且当需求改变时,必须花大量的工作去更改每个终端的程序与数据。 如果把以上工作交给上位机处理,可以在很小的硬件资源中实现ID×STEP 个功能间的相互 跳转,而且当业务改变时,只需要改变上位机的逻辑关系与数据,而无需改变终端内部的应 用程序。表一给出了协议的部分组成。[!--empirenews.page--]
与解析引擎相似,数据采集引擎把采集到的数据根据一定的协议格式设置好,通过通讯 层把数据发送给上位机,上位机根据数据采集解析协议把采集数据分类解析。从而达到终端 的功能逻辑、人机交互、外设控制,数据处理完全由上位机控制的目的。
3.3 终端的软件实现流程
应用程序的具体实现流程如图3 所示。
上文已经介绍了变量ID、STEP, ID 表示大的功能节点,STEP 表示相应功能点(ID) 下的操作步骤,如果定义为字节变量,两个字节总共可以表示256*256=65536 个功能,完全 可以满足一般数据采集终端的需求;RTN 是终端的状态机变量,终端程序通过设置一个工作 状态变量RTN 来控制系统的工作状态。
(1) RTN=0 表示,所有的工作就绪,可以接受上位机的业务请求。
(2) RTN=1 表示,终端已正确接收到了上位机的业务请求。对应流程,在这个过程中, 终端要做的事情就是设置上位机的业务请求。首先,分析当前请求的ID 与STEP,应用程序 实现不同功能间的跳转主要由功能节点ID 与STEP 决定,例如:当前ID=3,STEP=4,表明终 端当前在业务流程的第三个功能的第四个步骤,如果ID 为特殊功能程序更新,可以实现终 端程序的远程更新。其次,如果ID 不是特殊请求,进行功能协议分析。设置好终端当前功 能步骤的业务请求后,将该数据结构传入事件响应。业务响应根据业务要求将功能划分成不 同子模块,调用解析引擎库相应的子事件处理函数。在子事件处理函数中调用板级驱动处理 函数,实现具体的硬件功能。设置完上位机业务功能请求后RTN 置为2。
(3) RTN=2 表示终端已处理好接收到的信息,并根据具体业务要求,实现了界面显示, 按键权限的设置,按键转向的设置(按键转向是指:按某个按键后,上位机根据当前按下的 按键,把相应的功能点下达到终端,实现功能跳转),刷卡转向功能设置,A/D 采集设置等, 此时一直等待数据采集、按键动作或刷卡动作等触发,采集动作完成后,通过数据采集引擎 规划好采集到的数据,提交上位机,同时RTN 置零完成一次功能请求到响应,重新回到空闲 状态等待上位机询问。
采用以上的软件设计方案,可以在很小的硬件资源下实现ID×STEP 个功能的相互跳转, 而且当业务改变时,只需要配置上位机的逻辑关系与数据,而无需改变终端内部的应用程序。 实际应用中,终端程序只需一套,上位机只要根据终端的地址就可以决定该终端的功能流程。
4、结束语
本文的创新点:提出了一种有别于传统设计方案的嵌入式智能数据交互终端的设计方 案,该方案可以解决在业务需求改变的情况下无需改变数据采集终端的内部程序,从而在一 定程度上解决了数据采集终端在不同行业推广过程中的通用性问题,缩短了整个系统的开发 周期,也给系统的维护和升级带来了很大的方便。同时本文提出的终端程序设计框架还可以 在有限硬件资源的情况上实现256*256 个业务功能界面的相互跳转。
该嵌入式智能数据交互终端系统已在广东省某大型企业试运行后,运行效果良好,现已 大批量投入使用,企业对该系统的日常维护和业务升级都非常方便,相比于该企业原先把业 务流程及数据采集项定制成程序固化在终端内的传统设计方案,新方案大大降低了企业在业 务升级和业务流程发生变化时,要频繁修改终端或终端程序与上位机应用程序所带来的生产 成本,每年直接经济效益至少20 万元以上,而且还提高了企业劳动效率。