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