999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式支付系統(tǒng)模擬器

2015-11-10 07:10:36賴光明郭朝珍
關鍵詞:嵌入式信息系統(tǒng)

賴光明,郭朝珍

(福州大學 數(shù)學與計算機科學學院,福建 福州 350108)

0 引言

隨著生活水平的提高和社會的發(fā)展,人們對電子產(chǎn)品的需求也越來越大,這大大促進了嵌入式系統(tǒng)產(chǎn)業(yè)迅速發(fā)展壯大。無論是銀行取錢的ATM(Automated Tellermachine,自動取款機),還是通信使用的手機,甚至是日常小朋友玩的智能玩具中的一塊小芯片都離不開嵌入式技術,可以說嵌入式產(chǎn)品已經(jīng)遍及人們生活的各個方面[1]。嵌入式系統(tǒng)產(chǎn)品各種各樣,不僅在各行各業(yè)得到了廣泛的應用,并且對人們的生活和社會的發(fā)展產(chǎn)生了重大的影響。隨著消費者對嵌入式產(chǎn)品使用需求的擴大,需要開發(fā)者開發(fā)出更高性能的軟硬件系統(tǒng),同時也將導致嵌入式系統(tǒng)的開發(fā)學習難度越來越大。嵌入式開發(fā)過程中經(jīng)常會碰到軟硬件協(xié)同開發(fā)、嵌入式產(chǎn)品硬件資源非常昂貴、涉及軟硬件知識以及開發(fā)時間長[5]等問題[2-4]。

為了解決以上問題,本文研究和開發(fā)了一個在Windows環(huán)境下的嵌入式支付系統(tǒng)模擬器,模擬嵌入式支付系統(tǒng)的部分功能,實現(xiàn)在模擬器上進行部分應用程序的開發(fā)和調(diào)試,并且在應用程序盡可能少地修改甚至不修改的情況下,能夠在嵌入式支付真機上正常地運行起來。

1 嵌入式支付系統(tǒng)模擬器的體系結構

1.1 系統(tǒng)體系結構

系統(tǒng)的體系結構如圖1所示,可以看出系統(tǒng)包括3個部分:真機輔助工具、人機交互以及模擬器處理。

(1)真機輔助工具模塊

真機輔助工具是指一些輔助工具的集合,這些工具的目的是加快嵌入式支付應用程序的開發(fā)。目前系統(tǒng)擁有資源工具,該工具是一個由MFC開發(fā)的WIN32應用程序,它能夠產(chǎn)生嵌入式支付應用程序所需的菜單數(shù)據(jù)。

(2)人機交互模塊

主控模塊控制模擬環(huán)境。該模塊包含人機交互界面和人機交互處理。

人機交互界面:模擬實現(xiàn)嵌入式支付真機的界面,并將模擬器處理模塊處理的結果展現(xiàn)給用戶觀看。

人機交互處理:模擬實現(xiàn)嵌入式支付系統(tǒng)的按鍵輸入與LCD輸出功能。

(3)模擬器處理模塊

模擬器處理模塊實現(xiàn)嵌入式支付系統(tǒng)的模擬,是整個模擬器的核心部分。該模塊又可以分為3層,分別是中間層、系統(tǒng)層以及配置層。

圖1 系統(tǒng)體系結構

1.2 系統(tǒng)運行流程

系統(tǒng)的運行流程為:(1)系統(tǒng)啟動主控線程,通過配置信息對象讀取配置文件內(nèi)容;(2)主控線程根據(jù)窗口配置內(nèi)容繪制人機交互界面,接著根據(jù)模擬器相關信息對模擬器環(huán)境進行設置并對將要運行的應用DLL加載進來;(3)啟動模擬器線程,將應用跑起來;(4)應用運行,用戶通過人機交互界面輸入數(shù)據(jù)并將數(shù)據(jù)傳遞到模擬器線程,模擬器接收用戶的輸入并處理;(5)用戶結束應用,系統(tǒng)結束模擬器線程;(6)系統(tǒng)結束主控線程。

2 嵌入式支付系統(tǒng)模擬器的實現(xiàn)

2.1 配置層的實現(xiàn)

配置層包括配置信息以及配置信息對象。配置信息是一個數(shù)據(jù)文件,它的數(shù)據(jù)框架由模擬器可配置信息組成,具體內(nèi)容由用戶填充。配置信息對象是一個類,它提供統(tǒng)一的接口給用戶操作配置信息。

模擬器系統(tǒng)采用配置信息可以實現(xiàn)兩個功能:機型的可選性和應用的動態(tài)加載。因為嵌入式支付系統(tǒng)適用于多種機型,對于不同的機型,它們的差異只是人機交互界面不同、內(nèi)存大小不同、Flash大小不同以及底層驅(qū)動的不一致,所以模擬器系統(tǒng)采用配置文件來動態(tài)繪制模擬器人機交互界面、動態(tài)申請模擬器內(nèi)存大小、動態(tài)設置模擬器Flash大小以及動態(tài)加載模擬器驅(qū)動。因此模擬器系統(tǒng)采用配置信息可以實現(xiàn)機型的可選性。對于同一機型的不同應用程序也同樣可以采用配置文件實現(xiàn)動態(tài)加載。

2.2 基礎系統(tǒng)模擬——“內(nèi)存池”模擬內(nèi)存管理

內(nèi)存池技術提供一種內(nèi)存分配方式,它向系統(tǒng)申請一大塊地址連續(xù)的內(nèi)存,然后根據(jù)自己的需求管理這塊內(nèi)存,如果出現(xiàn)內(nèi)存塊已經(jīng)不夠的情況時,繼續(xù)申請新的內(nèi)存。這種做法的優(yōu)點是能夠降低內(nèi)存碎片來提高性能。

在Windows上模擬嵌入式支付系統(tǒng)的內(nèi)存管理,理念上與內(nèi)存池技術非常類似:向Windows系統(tǒng)申請真機內(nèi)存條同等大小的內(nèi)存,使用該塊內(nèi)存模擬嵌入式支付系統(tǒng)的內(nèi)存管理機制。其與內(nèi)存池技術有以下兩個不同的地方:(1)如果出現(xiàn)內(nèi)存塊不足,拋出異常,而不是繼續(xù)申請;(2)模擬的目的不是為了減低內(nèi)存碎片,而是盡可能模擬嵌入式支付系統(tǒng)內(nèi)存的分配方式。

2.3 驅(qū)動集模擬

2.3.1 點陣映射模擬LCD驅(qū)動

LCD(Liquid Crystal Display,液晶顯示器)作為輸出設備,用戶將要顯示的信息傳送到顯示緩沖區(qū)中,然后LCD通過 “點燈”的方式將其顯示出來。在PC上也有LCD,是否可以通過PC上的LCD來模擬嵌入式支付真機的LCD?答案是可以的,只需要在PC上模擬嵌入式支付系統(tǒng)的LCD驅(qū)動即可。在PC上模擬LCD驅(qū)動就是將需要顯示的點陣數(shù)據(jù)繪制到PC的LCD上,目前WIN32將一個點陣數(shù)據(jù)顯示到LCD上可以有以下兩種方式:(1)采用 DOS下漢字的顯示原理,利用 SetPixel函數(shù)將點陣數(shù)據(jù)一個點一個點地畫,這種方式的好處是彩屏的繪制,但是繪制速度慢;(2)直接利用緩沖區(qū)的數(shù)據(jù)創(chuàng)建BMP對象,這種方式可以快速地刷屏,但是只能實現(xiàn)單色繪制[6]。本系統(tǒng)借鑒這兩種方法,采用雙緩沖機制,利用SetPixel函數(shù)將點陣數(shù)據(jù)繪制到一個中間DC(Device Context,設備描述表)中,在一定的條件下將該塊DC繪制到屏幕上。這樣既可以實現(xiàn)彩屏的繪制,繪制速度也可以控制。

2.3.2 文件模擬Flash驅(qū)動

Flash是一種存儲芯片,它是嵌入式支付真機重要組成部分。它不僅可以保存用戶的應用信息,也可以保持系統(tǒng)的配置信息[7]。

Flash其實是一大塊連續(xù)的地址區(qū)域,該區(qū)域里面的數(shù)據(jù)是可讀寫、可永久保存的。因為Flash的空間比較大,如果直接用內(nèi)存去模擬Flash,可能會導致一些配置比較低的PC內(nèi)存不夠。模擬器系統(tǒng)根據(jù)Flash可永久保存特性,采用文件對Flash進行模擬。把文件看成是一大塊連續(xù)的地址空間,打開文件后可以獲取該地址空間的首地址,加上偏移地址就可以獲得相應的地址空間。這樣Flash驅(qū)動的模擬就變得簡單了,通過WIN32對文件的打開、地址偏移、讀取、寫入、關閉函數(shù)來實現(xiàn)Flash驅(qū)動的初始化、讀取、寫入和擦除等操作。

2.4 支付業(yè)務支撐模塊的設計與實現(xiàn)

支付業(yè)務支撐模塊是與支付應用直接相關的模塊,該模塊為支付應用提供銀行卡卡號信息和部分加密算法。支付具體的流程由于不同銀行的支付協(xié)議不一致導致各不相同,因此具體的支付處理由應用層程序根據(jù)不同的需求實現(xiàn)不同應用,而嵌入式支付系統(tǒng)只提供用戶刷卡的銀行卡信息以及提供常見的幾個加密算法。

嵌入式支付系統(tǒng)由于嵌入式資源的限制,并不能包括所有的加密算法。其加解密算法包括des和3des的加解密。該部分內(nèi)容可以直接移植到模擬器中,不需要進行修改。

2.5 中間層的移植

在嵌入式支付系統(tǒng)中封裝一個middleware(中間層),該層的內(nèi)容是對底層信息的封裝,供給應用程序直接使用。目前模擬器系統(tǒng)middleware有GDI子系統(tǒng)、GUI子系統(tǒng)和 DB子系統(tǒng)。GDI(Graphics Device Interface,圖形設備接口)對底層LCD驅(qū)動進行封裝,提供接口給GUI模塊和應用程序調(diào)用。嵌入式支付系統(tǒng)中GDI模塊包括動態(tài)繪制區(qū)、繪圖、貼圖、文字、光標、滾動條和開機啟動提示。在LCD驅(qū)動已經(jīng)完成模擬的前提下,GDI調(diào)用LCD驅(qū)動接口完成繪制操作。在模擬器系統(tǒng)中,大部分GDI操作可以直接從嵌入式支付系統(tǒng)中移植,而以下兩部分內(nèi)容則需要模擬:(1)對char進行位操作實現(xiàn)相應bit位的讀寫、取反實現(xiàn)GDI中bit操作;(2)模擬器系統(tǒng)中采用直接讀取文字的bin文件來模擬文字的點陣信息的查詢操作。

2.6 WIN32函數(shù)隔離的設計與實現(xiàn)

嵌入式支付系統(tǒng)參考WIN32中的UI設計,設計了適合其終端應用的GUI子系統(tǒng)。這樣設計既方便不同產(chǎn)品、項目界面風格的統(tǒng)一,也方便應用對操作界面的開發(fā)。但它給嵌入式支付系統(tǒng)帶來便利的同時也給模擬器系統(tǒng)帶來一個問題:嵌入式支付系統(tǒng)GUI函數(shù)與WIN32中GUI函數(shù)存在大量重名,而且兩者的函數(shù)是不可替代的。例如在WIN32的GUI模塊中擁有CreateWindow函數(shù),在嵌入式支付系統(tǒng)中的GUI模塊中也有CreateWindow函數(shù),并且兩者的參數(shù)與實現(xiàn)功能不一致。又因為整個嵌入式支付系統(tǒng)采用C語言與匯編語言共同開發(fā),所以模擬器系統(tǒng)需要解決一個大問題:C環(huán)境下如何使得重名函數(shù)共存,并且使其調(diào)用不發(fā)生混亂,即在主控系統(tǒng)中調(diào)用的是WIN32中的GUI函數(shù),而在模擬器應用程序中調(diào)用模擬器GUI函數(shù)。如圖2所示,本系統(tǒng)提出利用DLL隔離、宏隔離以及區(qū)域隔離3種方式共同處理該問題。

圖2 WIN32函數(shù)隔離

3 實驗結果與分析

3.1 實驗環(huán)境

硬件環(huán)境:CPU為Pentium4及以上;內(nèi)存為1 024 MB及以上;可用硬盤空間為1 024 MB及以上。

軟件環(huán)境:操作系統(tǒng)為Microsoft Windows 7;開發(fā)工具為VS2010;開發(fā)語言為C和C++混合編程。

3.2 實驗結果分析

移植計算器應用(如圖3所示)、菜單應用、萬年歷應用程序到模擬器上進行測試,移植過程沒有進行源代碼的修改,只是將其轉(zhuǎn)換為DLL,運行結果與嵌入式支付真機上一致。

圖3 計算器應用

從測試結果可得出以下結論:

(1)模擬器的可靠性:實際運行在嵌入式支付真機上的4個應用程序源碼保持不變,只是將其轉(zhuǎn)換為DLL,通過X86VC編譯器編譯后可以運行在模擬器上,并且其結果與真機上的結果保持一致。通過以上4個應用程序的測試,說明該模擬器是可靠的。

(2)模擬器應用開發(fā)的優(yōu)越性:將應用程序移植到模擬器上之后,只需將該DLL配置到應用啟動項中就可以直接運行,期間遇到問題可以直接使用VS2010的調(diào)試工具進行調(diào)試。因此在模擬器上開發(fā)應用程序不需要真機,不需要燒片時間,可以通過VS2010提供的調(diào)試工具進行調(diào)試,大大加快了應用的開發(fā)測試速度。

4 結論

本文研究和開發(fā)了一個在Windows環(huán)境下的嵌入式支付系統(tǒng)模擬器,該模擬器基于功能模擬的基本思想,通過Windows現(xiàn)有API模擬基礎系統(tǒng),提出了保持對外接口不變、模擬函數(shù)功能的原則,實現(xiàn)底層驅(qū)動的模擬。通過配置文件,解決了模擬器適用于不同機型的問題。本文還提出同時利用DLL隔離、宏隔離以及區(qū)域隔離3種方式,解決了C環(huán)境下重名函數(shù)共存,并且調(diào)用不混亂的問題。

[1]李婷.ARM全系統(tǒng)模擬器中I2C模塊的設計與實現(xiàn)[D].成都:電子科技大學,2012.

[2]Zhang Xiuping, Yang Guowu, Zheng Desheng.Componentbased model for simulating the MMU coprocessor[C].2010 2nd InternationalConference on Information Engineering and Computer Science(ICIECS),2010,42(8):1-4.

[3]鄧漫齡.ARM嵌入式Linuz系統(tǒng)的研究與實現(xiàn)[D].北京:北京郵電大學,2009.

[4]柯化成.嵌入式系統(tǒng)全系統(tǒng)模擬器框架設計與實現(xiàn)[D].杭州:浙江大學,2006.

[5]Wang Ping.Research on the embedded system[J].Teaching Education Technology and Training,2008(1):21-22.

[6]GRANHAM I.面對對象方法原理與實踐 (英文版第3版)[M].北京:機械工業(yè)出版社,2003.

[7]王洋.NAND Flash在嵌入式系統(tǒng)中的仿真與應用[D].成都:電子科技大學,2011.

猜你喜歡
嵌入式信息系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 日韩欧美国产区| 亚洲v日韩v欧美在线观看| 永久天堂网Av| 色噜噜综合网| 欧美日韩综合网| 在线观看国产精品一区| 欧美日韩一区二区三区在线视频| 91色老久久精品偷偷蜜臀| 在线无码九区| 亚洲精选无码久久久| av在线无码浏览| 国产精品永久不卡免费视频 | 久久国产亚洲偷自| 国产欧美日韩视频怡春院| 欧美亚洲激情| 亚洲国产成人精品青青草原| 免费在线国产一区二区三区精品| 91无码国产视频| 国产欧美亚洲精品第3页在线| 无码免费视频| 8090午夜无码专区| 免费观看国产小粉嫩喷水| 国产欧美日韩18| 亚洲美女AV免费一区| 91青青草视频| 国产丝袜一区二区三区视频免下载| 精品无码日韩国产不卡av | 91成人在线免费视频| 欧美一级高清免费a| 精品免费在线视频| 国产欧美视频一区二区三区| 国产三级a| 天天综合网站| 国产精品部在线观看| 午夜啪啪福利| 欧美日韩综合网| 亚洲视频a| 99久久亚洲精品影院| 国产成人精品日本亚洲77美色| 午夜人性色福利无码视频在线观看| 日韩欧美国产综合| 婷婷丁香在线观看| 99精品热视频这里只有精品7| 丰满人妻一区二区三区视频| 美女被操91视频| a级毛片在线免费观看| 久久久亚洲色| 男女男精品视频| 欧美综合中文字幕久久| 日韩人妻无码制服丝袜视频| 波多野结衣一区二区三区四区视频 | 国产精品无码一区二区桃花视频| 亚洲一级无毛片无码在线免费视频 | 日本91视频| 亚洲男女在线| 国产精品福利尤物youwu| av一区二区人妻无码| 国产99热| 极品私人尤物在线精品首页| 日本欧美成人免费| 国产成熟女人性满足视频| 青青青视频免费一区二区| AV在线麻免费观看网站| 日韩欧美高清视频| 国产成人亚洲精品无码电影| 在线播放真实国产乱子伦| 精品久久久久久久久久久| 高清不卡毛片| 国产男女免费视频| 这里只有精品在线播放| 久久久久人妻一区精品| 无码中文字幕精品推荐| 在线欧美国产| 激情無極限的亚洲一区免费 | 国产网站黄| 一本大道在线一本久道| 久久精品人人做人人| 欧美国产中文| 色综合五月婷婷| 国产午夜一级毛片| 免费观看成人久久网免费观看| 国产精品丝袜视频|