一種嵌入式數(shù)據(jù)終端的設(shè)計(jì)方案與實(shí)現(xiàn)
摘要:以MES 在制造業(yè)的應(yīng)用為背景,針對(duì)企業(yè)車間的數(shù)據(jù)類型、數(shù)據(jù)采集手段、數(shù)據(jù) 下達(dá)與顯示方式在各種行業(yè)千差萬(wàn)別的實(shí)際情況,提出了一種所有功能透明、受控于上位機(jī) 的基于S3C44B0 的嵌入式智能交互終端的數(shù)據(jù)采集方案。此方案能解決數(shù)據(jù)采集終端在不同 行業(yè)間推廣過(guò)程中的通用性問(wèn)題,縮短系統(tǒng)的開發(fā)周期,日常維護(hù)和升級(jí)都非常方便。詳細(xì) 地給出了交互系統(tǒng)的總體模型,嵌入式智能數(shù)據(jù)交互終端的硬件平臺(tái)、軟件框架與設(shè)計(jì)流程。
本文引用地址:http://m.butianyuan.cn/article/148623.htm1、引言
傳統(tǒng)的 ERP 等信息管理系統(tǒng)在制造業(yè)企業(yè)內(nèi)發(fā)揮了重要的作用,但這些系統(tǒng)還未能延伸 到車間過(guò)程管理的環(huán)節(jié),使車間過(guò)程管理自動(dòng)化、信息化、智能化。現(xiàn)在新興的MES 系統(tǒng)為 解決以上的問(wèn)題,通常在車間借用各種數(shù)據(jù)交互終端。數(shù)據(jù)交互終端負(fù)責(zé)采集和處理最原始 數(shù)據(jù)并將其傳送到工作站,同時(shí)接收工作站下達(dá)的操作命令[1]。但是,傳統(tǒng)的數(shù)據(jù)交互終端 把業(yè)務(wù)流程及數(shù)據(jù)采集項(xiàng)定制設(shè)計(jì)成程序固化在終端內(nèi),當(dāng)業(yè)務(wù)流程發(fā)生變化或在不同行業(yè) 中應(yīng)用時(shí),就需要花費(fèi)大量時(shí)間修改終端程序與上位機(jī)應(yīng)用程序。例如在一個(gè)系統(tǒng)中有N 臺(tái)終端要實(shí)現(xiàn)不同的業(yè)務(wù),就要設(shè)計(jì)N 套終端程序,使得終端程序的版本很多,很明顯不能 適應(yīng)現(xiàn)代企業(yè)的快速變化,也不利于行業(yè)間的推廣。本文提出一種新的設(shè)計(jì)方案,引入業(yè)務(wù) 功能配置引擎與業(yè)務(wù)解析引擎。其中業(yè)務(wù)功能配置引擎為上位機(jī)應(yīng)用程序核心,業(yè)務(wù)解析引 擎集成于數(shù)據(jù)交互終端。這樣,當(dāng)業(yè)務(wù)或行業(yè)變化時(shí),只需改變上位機(jī)的業(yè)務(wù)配置引擎的配 置信息而無(wú)需改變終端程序。采用這樣的設(shè)計(jì)方案可以加快系統(tǒng)開發(fā)進(jìn)度,以及系統(tǒng)在各種 行業(yè)中的推廣。
2、嵌入式智能數(shù)據(jù)交互終端硬件平臺(tái)
硬件平臺(tái)采用Samsung S3C44B0 處理器,該處理器采用的ARM7TDMI 結(jié)構(gòu),最高頻率 66MHz[2]。本平臺(tái)以此處理器為核心,添加諸多外圍模塊,其硬件平臺(tái)框圖如圖1 所示。
鍵盤,RFID 與液晶屏為終端的人機(jī)交互平臺(tái);系統(tǒng)的核心模塊通過(guò)系統(tǒng)總線與處理器 連接;外接豐富的RAM 與ROM 資源可以提高系統(tǒng)軟件設(shè)計(jì)的靈活性;以太網(wǎng)作為主要通訊接 口,使得系統(tǒng)通訊更加標(biāo)準(zhǔn)化,保證了通訊的速度與可靠性。在本系統(tǒng)中,除處理器、SDRAM、FlashRom 為主板固定模塊,其它外圍均采用可拔插的設(shè)計(jì)原理,這樣當(dāng)需求改變時(shí),只需 插上或拔下需要的外圍模塊即可,這樣的設(shè)計(jì)思想增加了終端的靈活性并縮短開發(fā)周期。
3、軟件設(shè)計(jì)的思想與實(shí)現(xiàn)
3.1 智能數(shù)據(jù)交互系統(tǒng)的整體模型及工作原理
在講述數(shù)據(jù)交互終端的軟件實(shí)現(xiàn)前,首先介紹系統(tǒng)的整體結(jié)構(gòu)以及其工作原理。圖2 是MES 系統(tǒng)中的底層數(shù)據(jù)交互的總體模型。數(shù)據(jù)交互系統(tǒng)的上位機(jī)主要由業(yè)務(wù)需求模塊、業(yè) 務(wù)配置引擎、數(shù)據(jù)解析引擎、引擎配置信息與底層通訊模塊組成。系統(tǒng)從上層管理系統(tǒng)中獲 取業(yè)務(wù)需求,業(yè)務(wù)配置引擎讀取引擎配置信息,生成業(yè)務(wù)事件鏈,通過(guò)通訊模塊根據(jù)工位地 址發(fā)送到相應(yīng)數(shù)據(jù)交互終端,相反收到采集數(shù)據(jù)包時(shí),數(shù)據(jù)解析引擎解析數(shù)據(jù)交互終端采集 到的數(shù)據(jù),最后交由業(yè)務(wù)需求模塊反饋回上層管理程序。數(shù)據(jù)交互終端軟件主要由底層通訊 模塊、業(yè)務(wù)解析引擎、終端表現(xiàn)層與外設(shè)驅(qū)動(dòng)與響應(yīng)模塊組成。終端通訊層接收到上位機(jī)的 數(shù)據(jù)包校驗(yàn)正確后交由業(yè)務(wù)解析引擎。解析引擎根據(jù)引擎協(xié)議解析出業(yè)務(wù)事件鏈后,通過(guò)終 端表現(xiàn)層,并等待數(shù)據(jù)采集,采集完成后交由采集生成引擎,生成固定格式數(shù)據(jù)再返回上位 機(jī),從而形成數(shù)據(jù)交互的閉環(huán)。
3.2 終端引擎的實(shí)現(xiàn)原理
以上為系統(tǒng)的工作原理,下文接著對(duì)數(shù)據(jù)交互終端業(yè)務(wù)解析引擎與數(shù)據(jù)采集引擎的實(shí)現(xiàn) 做詳細(xì)的介紹。實(shí)現(xiàn)的功能主要就是:液晶顯示與外設(shè)控制。液晶如何顯示,顯示那些內(nèi)容, 外設(shè)如何控制,在沒(méi)經(jīng)過(guò)業(yè)務(wù)解析引擎前終端都是保持著上次狀態(tài),經(jīng)過(guò)解析后才知道應(yīng)該 實(shí)現(xiàn)那些東西,如何去實(shí)現(xiàn)。解析引擎就是根據(jù)特定協(xié)議將一段數(shù)據(jù)轉(zhuǎn)化為邏輯控制功能的 庫(kù)。也就是通過(guò)一種協(xié)議把終端的業(yè)務(wù)邏輯交給了功能強(qiáng)大的PC 機(jī)去處理。終端工作只是 每次邏輯計(jì)算后的表現(xiàn)。要實(shí)現(xiàn)以上的功能,就必須有一套完整的功能協(xié)議棧,設(shè)計(jì)協(xié)議棧 之前,首先將終端的功能進(jìn)行模塊劃分,這里以通訊模塊往后進(jìn)行劃分,主要有:鍵盤控制、 液晶顯示、外設(shè)采集器控制。每個(gè)模塊繼續(xù)細(xì)化,盡可能表現(xiàn)各個(gè)模塊的可能會(huì)出現(xiàn)的狀態(tài)。 再次,功能協(xié)議的實(shí)現(xiàn),協(xié)議由協(xié)議關(guān)鍵字與控制內(nèi)容組成,比如關(guān)鍵字A 代表終端硬件模 塊A,關(guān)鍵字A 后面的內(nèi)容表示上位機(jī)要求模塊A 要實(shí)現(xiàn)的功能,模塊A 功能繼續(xù)細(xì)化。如 表1 給出了部分功能協(xié)議組成。終端的響應(yīng)上位機(jī)的業(yè)務(wù)狀態(tài)主要由兩個(gè)狀態(tài)量控制,在程 序上我們定義為兩個(gè)全局變量,分別用來(lái)表示下位機(jī)當(dāng)前屬于哪個(gè)業(yè)務(wù)功能與所屬該功能的 步驟,在程序上定義為ID 與STEP,上位機(jī)系統(tǒng)已經(jīng)把ID 與SteP 的邏輯流程設(shè)計(jì)好,例如 在某個(gè)ID 與STEP 狀態(tài)時(shí),終端屏幕上顯示是工藝完成情況,并要求用戶通過(guò)各種采集外設(shè) 進(jìn)行數(shù)據(jù)采集,提交上位機(jī)。每次上位機(jī)發(fā)送下來(lái)的數(shù)據(jù)都是以ID+STEP+模塊A 控制字 +模塊A 控制數(shù)據(jù)+模塊B 控制字+模塊B 控制數(shù)據(jù)+…。同時(shí)設(shè)置觸發(fā)模塊的NEXT_ID與NEXT_STEP。當(dāng)相應(yīng)觸發(fā)發(fā)生時(shí),上位機(jī)可以根據(jù)NEXT_ID 與NEXT_STEP 向終端發(fā)送下個(gè) 業(yè)務(wù)流程與其步驟。比喻上位機(jī)是一個(gè)龐大的中央處理器,控制著業(yè)務(wù)流程的整個(gè)邏輯計(jì)算 與數(shù)據(jù)的組織,車間的所有終端就更像一個(gè)輸入輸出設(shè)備圍繞著這個(gè)中央處理器。我們知道 計(jì)算ID×STEP 個(gè)邏輯需要一定的CPU 時(shí)間,如果將這個(gè)工作交給上位機(jī)(CPU 達(dá)到G 級(jí)的 處理器)去完成,處理能力有限的終端就可以去處理更多的其他采集工作。同時(shí),ID×STEP 個(gè)業(yè)務(wù)界面需要消耗很多的 RAM 與ROM 資源,如果把這些界面固化與終端內(nèi)部,將大大增 加了終端的硬件成本。而且當(dāng)需求改變時(shí),必須花大量的工作去更改每個(gè)終端的程序與數(shù)據(jù)。 如果把以上工作交給上位機(jī)處理,可以在很小的硬件資源中實(shí)現(xiàn)ID×STEP 個(gè)功能間的相互 跳轉(zhuǎn),而且當(dāng)業(yè)務(wù)改變時(shí),只需要改變上位機(jī)的邏輯關(guān)系與數(shù)據(jù),而無(wú)需改變終端內(nèi)部的應(yīng) 用程序。表一給出了協(xié)議的部分組成。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論