IP網(wǎng)絡終端系統(tǒng)方案設計_第1頁
IP網(wǎng)絡終端系統(tǒng)方案設計_第2頁
IP網(wǎng)絡終端系統(tǒng)方案設計_第3頁
IP網(wǎng)絡終端系統(tǒng)方案設計_第4頁
IP網(wǎng)絡終端系統(tǒng)方案設計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

IP網(wǎng)絡終端系統(tǒng)方案設計2020年5月29日IP是我們公司根據(jù)市場需求將開發(fā)的第二代網(wǎng)絡終端WINDOWS風格的人機交互界面,在滿足傳統(tǒng)終端全,實現(xiàn)以太網(wǎng)聯(lián)機功能(實現(xiàn)TELNET遠程登錄協(xié)議,要求具有友好的類部功能基礎上)和支持多任務的一種更新?lián)Q代產(chǎn)品。功能需求簡述如下:提供類WINDOWS風格的,采用桌面圖標的用戶界面方式啟動任務實現(xiàn)TELNET遠程登錄協(xié)議支持最多達8個任務同時運行支持PS/2鼠標支持網(wǎng)絡版本更新支持網(wǎng)關功能支持本地和網(wǎng)絡打印機在此需求前提下,我們決定采用多任務嵌入式操作系統(tǒng)(EOS)+嵌入式GUI+終端仿真的結構來實現(xiàn)需求,系統(tǒng)結構框圖描述如下:

文檔僅供參考AP終端仿真實例1終端仿真實例2終端仿真實例7終端仿真實例8GUI窗口管理圖形界面API支持中文支持系統(tǒng)設備接口虛線箭頭表示控制流實線箭頭表示數(shù)據(jù)流網(wǎng)絡支持EOS進程管理文件系統(tǒng)中斷和系統(tǒng)調(diào)用內(nèi)存管理設備驅(qū)動IO控制硬件平臺顯示器鍵盤網(wǎng)絡設備鼠標SUPERI/O一、結構設計在此系統(tǒng)框圖的基礎上,我們分別對各層次進行結構設計分析:1、EOS設計當前存在的嵌入式系統(tǒng)多不勝數(shù),流行的有WinCE、PalmOS、Vxwork、pSOS、Neculeus等多種系統(tǒng)。從當前嵌入式系統(tǒng)使用最32020年5月29日文檔僅供參考廣泛的信息家電行業(yè)和通訊行業(yè)分析,PalmOS和WinCE、Vxwork是當前應用最廣泛的三種:WindowsCE:MicrosoftWindowsCE是一個簡潔的Windows95版本,而是從整體上為有限資源的平臺設計的多線程,完整優(yōu)先權,多任務的腦到專用的工業(yè)控制器的用戶,高效率的多平臺操作系統(tǒng)。它不是削減的操作系統(tǒng)。它的模塊化設計允許它對于從掌上電電子設備進行定制,但WinCE是非開放性操作系統(tǒng),使第三方很難實現(xiàn)產(chǎn)品的定制,嵌入式操作系統(tǒng)追求高效、節(jié)能,而WinCE在這方面是笨拙的,它占用過多的內(nèi)存,應用程序龐大,而且入門費和許可費較高,使得整個產(chǎn)品的成本急劇上升。因此WinCE多用于從高檔的產(chǎn)品。VxWorks:VxWorks所在的公司W(wǎng)indRiver兼并了pSOS的ISI公司,使得該公司現(xiàn)在有兩大RTOS系統(tǒng)。VxWorks是當前嵌入式系統(tǒng)領域中使用最廣泛,市場占有率最高的系統(tǒng)。它支持多種處理器,如x86,i960,SunSparc,MotorolaMC68xxx,MIPSRX000,POWERPC等等。使用的是和UNIX不兼容的環(huán)境,大多數(shù)的VxWorksAPI是專有的。采用GNU的編譯和調(diào)試器。pSOS:ISI公司已經(jīng)被WinRiver公司兼并,現(xiàn)在是屬于WindRiver42020年5月29日

文檔僅供參考公司的產(chǎn)品。這個系統(tǒng)是一個模塊化,高性能的實時操作系統(tǒng),專為嵌入式微處理器設計,提供一個完全多任務環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和搞可靠性。能夠讓開發(fā)者將操作系統(tǒng)的功能和內(nèi)存需求定制成每一個應用所需的系統(tǒng)。開發(fā)者能夠利用它來實現(xiàn)從簡單的單個獨立設備到復雜的、網(wǎng)絡化的多處理器系統(tǒng)。QNX:QNX是一個實時的序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(實時擴展)。它提供核以及一些可選的配合進程。其內(nèi)核僅提供4種服務:進程調(diào)度、進程間通信、底層網(wǎng)絡通信和中斷處理,其進程在獨立的地址空間運。行所有其它OS服,可擴充的操作系統(tǒng),它遵循POSIX.1(程了一個很小的微內(nèi)務,都實現(xiàn)為協(xié)作的用戶進程,因此QNX內(nèi)核非常小巧(QNX4.x大約為12Kb)而且運行速度極快。這個靈活的結構能夠使用戶根據(jù)實際的需求將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個處理器的超級虛擬機操作系統(tǒng)。PalmOS:3Com公司的PalmOS在PDA市場上占有很大的市場份額,它有開放的操作系統(tǒng)應用程序接口(API),開發(fā)商能夠根據(jù)需要自行開發(fā)所需要的應用當前已經(jīng)有總共3500多個應用程序。程序能夠運行在PalmPilot上,其中大部分應用程序均為其它廠52020年5月29日

文檔僅供參考商和個人所開發(fā),使得PalmPilot的功能得以不斷增多。這些軟件包括計算器、各種游戲、電子寵物、地理信息等等。在開發(fā)環(huán)境方面,能夠在Windows95/98,WindowsNT以及Macintosh下安裝PalmPilotDesktop;PlamPilot能夠與流行的PC平臺上的應用程序如Word,Excel等進行數(shù)據(jù)交換。OS-9:Microwave的OS-9是為微處理器的操作系統(tǒng),廣泛應用于高科技產(chǎn)品中,包括消費電子產(chǎn)品,工業(yè)自動化,無線通訊產(chǎn)品,醫(yī)療儀器,數(shù)字電視/多媒體設備中。它提供嵌入式系統(tǒng)相比,它的靈關鍵實時任務而設計的了很好的安全性和容錯性。與其它的活性和可升級性非常突出。LynxOS:LynxReal-timeSystems的LynxOS是一個分布式、嵌入式、可規(guī)模擴展的實時操作系統(tǒng),它遵循POSIX.1a、POSIX.1b和POSIX.1c標準。LynxOS支持線程概念,提供256個全局用戶線程優(yōu)先級;提供一些傳統(tǒng)的,非實時系統(tǒng)的服務特征;包括基于調(diào)用需求的虛擬內(nèi)存,一個基于Motif的用戶圖形界面,與工業(yè)標準兼容的網(wǎng)絡系統(tǒng)以Linux:Linux在嵌入式領域獲得了飛速發(fā)展,當前正在開發(fā)的嵌入式系統(tǒng)中,49%的項目選擇Linux作為嵌入式操作系統(tǒng)。Linux之及應用開發(fā)工具。62020年5月29日

文檔僅供參考因此能在嵌入式系統(tǒng)市場上取得如此迅速的發(fā)展,與它自身的優(yōu)良特性有著不可分割的關系:免費、開放源碼,豐富的軟件資源;功能強大的內(nèi)核,性能高效、穩(wěn)定,多任務;支持多種體系結構,如X86、ARM、MIPS、ALPHA、SPARC等;完善的網(wǎng)絡通信、圖形、文件管理機制;支持大量的周邊硬件設備,驅(qū)動豐富;大小、功能都可定制;良好的開發(fā)環(huán)境,不斷發(fā)展的開發(fā)工具集;廣泛的軟件開發(fā)者的支持;價格低廉。從我們IP網(wǎng)絡終端的需求和當前網(wǎng)絡終端的市場來分析,當前我們公司已有的產(chǎn)品IP1000采用Linux+Microwin這種方式已基本實現(xiàn)網(wǎng)絡終端的需求,只是在界面的美觀程度和系統(tǒng)速度上比同類型的較為突出的實達netterm860終端有所不足,但從系統(tǒng)的角度和開發(fā)進度以及成本的角度考慮,重新引進一種新的嵌入式操作系統(tǒng),以上介紹的幾種EOS引進的門檻成本太高,且需要較長時間消化和熟悉,移植到我們的硬件平臺也需要長時間的過程,綜合考慮,我們還是決定在博利思提供的Linux內(nèi)核的基礎上構筑我們的IP的OS,并準備對內(nèi)核作如下改進:72020年5月29日

文檔僅供參考優(yōu)化framebuffer代碼,并在原有256色的基礎上增加16色支持修改ttyS0/1的設備驅(qū)動,解決當前IP1000存在的所有由于串口造成的問題2、GUI設計經(jīng)過對當前幾種基于Linux的嵌入式GUI的詳細分析,較好的嵌入式GUI一般結合面向?qū)ο蠓椒ú捎枚鄬营毩⒃O計,具有以下結構:設備相關層(driver)在這一層的功能應該是將系統(tǒng)中與設備和操作系統(tǒng)平臺的具體細節(jié)屏蔽起來。它利用實際的設備驅(qū)動程序接口或者OS系統(tǒng)調(diào)用來與硬件設備交互,這些硬件設備主要包括screen、mouse和keyboard等。我們使用設備對象(deviceobject)的概念來描述一類設備,每一個對象描述了一類實際設備的屬性和方法。比如,screen設備對象就描述了screen設備的各種屬性(屏幕尺寸、分辨率、像素深度、像素格式、邏輯顯存首地址等等)和基本方法(打開和關閉顯示器、設置調(diào)色板、返回屏幕屬性、讀寫像素點等等)。對于同一類設備在不同驅(qū)動或者平臺上的具體情況則以設備對象實例來描述,比如screen類型的設備,我們可能讓它工作在Linux上,經(jīng)過82020年5月29日

文檔僅供參考framebuffer或者SVGALib驅(qū)動來操作它。她們的對象類相同,可是類的屬性和方法的實現(xiàn)不一樣。中間層看到的只是該類設備的可選的對象實例,不用關心底層是如何操作的(也就是對象的方法是怎樣實現(xiàn)的)。最底層實際上是以設備對象的方式為中間層提供了一個抽象的設備驅(qū)動界面。為了移植更容易,最底層應盡量簡潔,只實現(xiàn)最基本的設備功能函數(shù)。能夠看到,當系統(tǒng)要移植到另外的平臺上時,我們只要按照各類設備對象的定義實現(xiàn)相對較少的函數(shù)就能建立新的設備對象實例并讓中間層選擇她們就能夠了。設備無關層(engine)這一層的功能是提供一個能夠為各種應用層共享的與設備無關的核心圖形引擎,其中的主要工作就是實現(xiàn)各種圖形函數(shù)和輸入設備的功能函數(shù)。對于中間層,它向下看到的是各類設備對象,向上則是要提供一個抽象的核心圖形界面,使得上面的應用層對它所使用的到底是什么設備對象不用去理會。很顯然,這一層根據(jù)不同的設備和平臺選擇相應的設備對象實例來實現(xiàn)核心圖形引擎。由于每類設備的各個實例擁有同樣的對象類型定義,因此中間層基于設備對象所實現(xiàn)的功能是不會因為設備和平臺的更改而受影響的。同時,中間層把消息驅(qū)動機制、窗口管理機制交給應用層去完成,因此,對于各類型的應用層(Win32或者是X-Windows),中92020年5月29日

文檔僅供參考間層完成的功能都是通用的。應用層(API)這一層的功能是按照應用的具體要求為應用程序提供適當?shù)膽脤佑糜脩糇远x圖形界面將十分簡單,甚至能戶需要完善的多任務窗口系統(tǒng),比如是類Win32的,能夠使用程序編程接口(API)以及窗口和消息機制等。嵌入式GUI的體系結構的抽象參考模型如下:戶界面。當應用程序不需要窗口系統(tǒng)的時候,夠什么都不做而直接使用中間層提供的抽象核心界面。如果用抽象核心界面來實現(xiàn)其應用framb-uff顯示驅(qū)動設抽備象和對平設備和平臺無關層類WIN32圖應形用戶界面GUI類WIN32用戶程序開發(fā)鼠標驅(qū)動svgal-ib鍵盤驅(qū)動用中文象支持臺類X-WINDOW圖形用戶類X-WINDOW用戶程序開發(fā)libggi設相輸入法支持適應于不同平備關臺的圖形引擎層界面GUI觸摸屏驅(qū)動集層xwind-ow當前采用此套結構的比較成熟的嵌入式GUI有Microwindow和MiniGUI兩種GUI平臺,Microwindow平臺提出較早,而且經(jīng)過多102020年5月29日文檔僅供參考年的實踐,已經(jīng)比較成熟,當前國內(nèi)的眾多嵌入式系統(tǒng)廠商包括聯(lián)想、中軟、紅旗、桑夏科技、華恒等都采用Micorwindow作為基礎開發(fā)自己嵌入式GUI,但因為該項目缺少強有力的核心代碼維護,代碼質(zhì)量參差不齊,因此在另外一種GUIQt/Embedded發(fā)布以來,它就長時間停留在了0.89Pre7版本,近幾年來發(fā)展緩慢;MiniGUI項目起源于清華大學一個采用嵌入式Linux系統(tǒng)的工業(yè)控制系統(tǒng)項目,開發(fā)之初借鑒了Microwindow的一些經(jīng)驗,但后來在發(fā)展速度上超過了Microwindow(MiniGUI已是1.2.0版本,但Microwindow至今還是0.89pre版本),由于兩者都是自由軟件項目,開放源代碼和所有文檔,可作為我們IP網(wǎng)絡終端的GUI設計的參考選擇,我們能夠在其中一種的基礎上構筑我們自己的GUI平臺。由于IP網(wǎng)絡終端有多任務功能需求,因此我們的GUI設計必須能夠滿足適應多任務的需求,經(jīng)過對已有的兩種GUI進行預研,我們發(fā)現(xiàn),GUI的多任務設計一般有兩種方法:采用C/S結構C/S結構是天然的多任務,在Sever端專門負責監(jiān)控外部事件和隨之的消息傳遞和分發(fā),Client完成消息的處理,各個Client之間互不干擾和影響。采用這種方法實現(xiàn)多任務支持的有Microwindows的Nano-x方案和MiniGUI,但兩種GUI實現(xiàn)的機制有很大差別,MicroWindows為了追求和XWindow的兼容,112020年5月29日

文檔僅供參考采用了傳統(tǒng)的基于Unix套接字通訊方式的C/S系統(tǒng)結構/內(nèi)核/服務器之間傳遞,增加了系統(tǒng)負荷,占,降低了系統(tǒng)的圖形效率,并不適應于CPU速度較慢和系統(tǒng)資源有限的一般嵌入式場合。而MiniGUi吸Microwindows的經(jīng)驗,采用了,它的最初線程機制來實現(xiàn)C/S結構,這樣所有的應用程序都運行在同一個地址空間,大大提高了,但這種結構也導致了系統(tǒng)整體的脆弱,如果某個線程因為非法的數(shù)據(jù)訪問而終止運行,整個進程都將受到影響,不過,這種體系結構對關鍵的實時控制系統(tǒng)來說,還是非常適合的,后期發(fā)展的,這樣大量的數(shù)據(jù)在客戶用了更多系統(tǒng)資源取了獨特的體系結構版本采用程序之間的通信效率MiniGUI-Lite版本則作了一些改進,在獨立多進程和系統(tǒng)效率之間作了一些綜合,采用套接字和共享內(nèi)存結合的方式支持多進程,而且提供前后臺進程的切換,經(jīng)過共享內(nèi)存機制提供全局資源的共享,以便減少實際內(nèi)存的消耗,但仿佛MiniGUI的圖形引擎不是直接建立在內(nèi)核framebuffer驅(qū)動上,而要由如Libggi或Svgalib等更高一級的圖形庫支持,而且由于MiniGUI采用了獨特的接口設計,其應用程序的可移植性很差,而MicroWindows的Nano-x方案則采用XWindow的兼容接口設計,大大方便了許多基于XWindow的應用程序的移植和代碼復用。采用GUI上下文共享的方法122020年5月29日

文檔僅供參考一般在單任務GUI基礎上開發(fā)圖形界面應用有如下圖左邊的系統(tǒng)流程,應用程序經(jīng)過調(diào)用GUI的API實現(xiàn)相應功能,而且這些上下文主要是經(jīng)過數(shù)據(jù)空間的形式(data&BSS)來,如果在同一進程中創(chuàng)立并使用,也不會造成GUI的沖突。例如,能夠在一個進程中構造,兩個窗口都能夠正常地運行,因為任一時刻只有一(使用或改變GUI上下文證的。假如把GUI使用的上下文,一個應用,如果,則不能解決一些系統(tǒng)公共的設備例如鼠標、鍵盤、輸入法等事件的檢測、轉(zhuǎn)換、分派以及系統(tǒng)龐大等許多問題(在C/S結構中是由Sever來完成這個工作的)。由此只能在各個任務之間共享GUI上下文,同步訪問的方法來實現(xiàn)多任務,但在這種方法下,而這些函數(shù)有自己的上下文保持的。由于消息系統(tǒng)的同步功能多個窗口記事本和計算器個窗口接受消息隊列的消息分發(fā)并處理)——這種同步是由消息系統(tǒng)來保和應用其它部分的上下文分開完全是能夠正常運行的。如果把這種方法應用到多任務的系統(tǒng)各個任務獨有自己的GUI上下文,文檔僅供參考可能出現(xiàn)上圖右部的狀況,兩個應用的GUIAPI接口函數(shù)會不可預知地改寫GUI的上下文,會造成嚴重沖突,為了避免這種情況,經(jīng)過OS的鎖機制來實現(xiàn)在不同進程間實現(xiàn)同步地訪問GUI上下文,則可實現(xiàn)不同進程有秩序地協(xié)同作,達到多任務的目的,一般經(jīng)過采用了嵌入式Linux中常見的一些工具,包括ld腳本、ld、nm、objcopy、awk、objdump等把ELF文件各部分抽取出來、并重新定位,用共享內(nèi)存函數(shù)把指定的內(nèi)存映射到固定的地址的方法,把抽取的GUI上下文運行時結構如下圖所示:裝載到固定位置的方法來實現(xiàn)共享。共享GUI上下文的各進程142020年5月29日

文檔僅供參考進程1sharedata&bssdata&bsscodeDATA&BSSCODESTATCKstatck進程NSHAREDATA&BSSsharedata&bssDATA&BSSdata&bsscodeSTACKstatck進程私有空間進程虛擬空間進程共享空間其中sharedata&BSS就是GUI的上下文。采用這種方法來設計GUI多任務支持的我們公司IP1000多任務版網(wǎng)絡終端設計GUI,該GUI是在Microwindows的基礎上改進后的設計,事實上,這種設計方法也有博利思公司為是借鑒了MiniGUI-Lite版本的一些技術,用一個主進程作為虛擬Sever處理所有的外部事件,完成消息轉(zhuǎn)換后完成消息的分發(fā)并完成窗口維護和管理,同時負責用戶進程的啟動(用fork的方式復制子進程,因而主進程和所有用戶進程之間皆為父子關系,各用戶進程之間則互為兄弟進程),各用戶進程則接受并完成消152020年5月29日文檔僅供參考息處理。主進程和用戶進程經(jīng)過共享內(nèi)存的方式來實現(xiàn)GUI上下文共享和通訊,而且采用主進程附加調(diào)度的方式:在LINUX內(nèi)核進程調(diào)度的基礎上再建立應用調(diào)度,任意時刻只讓其中一個用戶進程運行(Running狀態(tài)),其它用戶進程則讓其進入Sleep-o狀n態(tài),主進程并用消息分發(fā)的主動權采用消息驅(qū)動的機制完成各用戶進程間的調(diào)度,并實現(xiàn)前后臺時間片的主動分配這種方法不但可實現(xiàn)共享GUI的訪問沖突,同時也提高系統(tǒng)的效率――決不使空閑的用戶進程占用寶貴的CPU時間片資源,,但這種方法的缺點也是顯而易見的。對于我們GUI的設計,我們進行了較長時間的預研,并對Microwindows/Nano-x和MiniGUI的多任務機制進行了較為詳細的剖析,覺得兩者實現(xiàn)多任務的C/S結構對于我們的arm7500硬件平臺并不適合,由于C/S結構系統(tǒng)效率較低,在我們這種硬件平臺資源的基礎上,性能遠遠不能達到我們的功能需求,鑒如此,我們決定在IP1000多任務版本GUI的基礎上,開發(fā)IP的GUI,主要是完善在IP1000開發(fā)過程中已發(fā)現(xiàn)的缺陷,并增加如下功能的支持:對Microwindows桌面和窗口管理進行完善,使整個桌面和窗口管理與windows風格更加類似,從而為IP設計出更好的人機界面:多窗口操作,圖標的拖動,窗口最大、最小化操作等162020年5月29日

文檔僅供參考參照MiniGUI改進Microwindows圖形引擎的一些算法,提高GUI的效率增加業(yè)務窗口下拉菜單的支持(參考MiniGUI菜單組件設計)增加國際標準化漢字系統(tǒng):支持16x16(大字符集)、24x24漢字庫(GB2312)多種漢字字體字符顯示驅(qū)動增加16色支持尋找替代單消息隊列共享的進程間通訊機制,避免某個用戶進程崩潰導致整個系統(tǒng)崩潰。3、仿真設計設計目標降低模塊間的耦合關系減少中間層方便各個平臺的移植設計方法將IP1000的仿真程序進行整合,按模塊封裝成API。針對幾個關鍵點進行技術改進,爭取最大程度地發(fā)揮系統(tǒng)和硬件平臺的優(yōu)點。在縱向的層次上只有相鄰的兩層有調(diào)用和被調(diào)用的關系,相同的層次能夠調(diào)用和被調(diào)用。172020年5月29日

文檔僅供參考仿真結構設計全局模塊、命令分析模塊仿真層鍵盤模塊顯示模塊打印模塊外設模塊通訊模塊自檢模塊鍵盤仿真driver顯示仿真打印仿真driverdriver外設仿真driver通訊仿真自檢仿真NVR操作driverdriver仿真driver層鍵盤API顯示API打印API串口API網(wǎng)絡APINVRAPI中文輸入法microwin模塊說明1)、仿真全局模塊,包括:初始化Gblint的數(shù)據(jù)改變漢字通訊碼的顯示拼字入口設置輸入/輸出入口(將終端仿真軟件從功能上分為輸入、輸出兩大部分)復位通用命令分析器根據(jù)參數(shù)初始化串口恢復、保存、缺省NVR參數(shù)2)、命令分析使用有限狀態(tài)自動機來解析命令序列。3)、鍵盤模塊仿真上層:處理控制碼(ESC、CAN、BS、CR、XON、182020年5月29日文檔僅供參考XOFF)處理ASCII碼處理本地功能鍵處理用戶自定義序列鍵處理缺省功能鍵漢字譯碼并發(fā)送仿真driver層:將系統(tǒng)發(fā)來的鍵盤消息WM_KEYDOWN、WM_KEYUP轉(zhuǎn)換成終端所需的鍵碼(高字節(jié)掃描碼+低字節(jié)Ascii碼)GUI層:在鍵盤有數(shù)據(jù)時,更新鍵盤狀態(tài),分發(fā)鍵盤事件。將原始碼轉(zhuǎn)換成終端所需的鍵碼如果是輸入法相關鍵且輸入法有效,進輸入法處理;否則向上層發(fā)WM_KEYDOWN或WM_KEYUP消息。4)、顯示模塊將顯示從操作對象上能夠分為5個部分:屏幕、光標、字符顯示、滾屏、圖形。仿真上層:根據(jù)通訊方式的不同,TTY顯示一個國標碼/ASCII192020年5月29日

文檔僅供參考碼/ID碼/CNC碼。能在光標的當前位置以當前屬性和字符集顯示一個ASCII字符屏幕開關顯背景色設置仿真driver層:初始化顯示。主要是創(chuàng)立光標、設置光標的屬性、顯示光標、設置屏幕行數(shù)和列數(shù)。光標控制:設置光標屬性、位置顯示光標屬性、位置移動光標得到光標的位置和光標左右的字符。清除光標支持多個光標GUI層:光標驅(qū)動:創(chuàng)立光標、釋放(清除)光(點/線、固定/閃爍/消隱)支持光標屬性屏幕驅(qū)動202020年5月29日

文檔僅供參考開/關顯、節(jié)電模式支持分辨率、背景色設置支持字符顯示驅(qū)動西文、漢字、漢字左半、漢字右半顯示支持自造漢字顯示支持字符屬性(上/下/左/右劃線、高/低亮/正常、倍高/寬、顯示/消隱)支持滾屏驅(qū)動向上滾屏、向下滾屏支持顯存數(shù)據(jù)操作支持圖形驅(qū)動點、線、圓等基本圖形操作支持5)、打印模塊仿真上層選擇打印機打印機字庫打印終端字庫打印正常打印拷貝屏幕自動打印屏幕上的一行透明打印212020年5月29日

文檔僅供參考條碼打印一個字符退出打印打印出錯時彈出模態(tài)窗口,顯示提示信息,用鍵盤或鼠標選擇Y/N來決定繼續(xù)打印/退出打印。仿真driver層得到當前行列的VRAM地址打印字符屬性處理將顯示點陣轉(zhuǎn)換成打印點陣打印一個字符(串)到設置的打印端口。最多查詢打印端口0x7ff次,若就緒就送打印,若打印機錯退出。打印測試GUI層后臺打印字符緩沖區(qū)支持并口支持6)、外設、通訊外設模塊和通訊模塊的程序結構以及兩個模塊之間的關系如下圖所示:外設通訊仿真上層串口通訊網(wǎng)絡通訊仿真driver222020年5月29日文檔僅供參考串口API網(wǎng)絡API外設模塊仿真上層:打開/關閉端口打開/關閉密碼鍵盤送、讀密碼鍵盤的數(shù)據(jù)向主機發(fā)輔串口、透明打印等命令分析向輔串1~n輸出數(shù)據(jù)讀輔串口數(shù)據(jù)向主機發(fā)送串口拷屏串口打印一個字符通訊模塊仿真上層:通訊初始化經(jīng)過主通訊口(主串口或網(wǎng)絡口)以非阻塞方式從主機讀數(shù)據(jù)。經(jīng)過主通訊口(主串口或網(wǎng)絡口)以阻塞方式從主機讀數(shù)據(jù)。寫一個字節(jié)數(shù)據(jù)到主通訊口(串口或網(wǎng)絡口)寫一串數(shù)據(jù)到主通訊口(串口或網(wǎng)絡口)外設模塊仿真driver層:串口通訊初始化向主串、輔串輸出數(shù)據(jù)232020年5月29日文檔僅供參考從主串、輔串讀數(shù)據(jù)設置串口參數(shù)串口復位串口測試網(wǎng)絡模塊仿真driver層:網(wǎng)絡通訊初始化ping功能支持打開/關閉一個Telnet會話從一個Telnet會話中讀數(shù)據(jù)向一個Telnet會話中寫數(shù)據(jù)外設模塊GUI層:打開/關閉串口從串口讀數(shù)據(jù)往串口發(fā)送數(shù)據(jù)設置串口參數(shù)讀取串口參數(shù)網(wǎng)絡模塊GUI層:打開/關閉一個網(wǎng)絡聯(lián)接從網(wǎng)絡讀數(shù)據(jù)經(jīng)過網(wǎng)絡發(fā)送數(shù)據(jù)7)、輸入入法模塊242020年5月29日

文檔僅供參考輸入法放嵌入GUI層,并支持輸入法掛接接口設計。切換輸入狀態(tài)切換輸入法取得輸入鍵的Ascii碼,查表取得相應的漢字內(nèi)碼,把漢字的內(nèi)碼發(fā)送給提示行,用數(shù)字鍵選擇漢字自造漢字和短語輸入支持提供修改默認輸入法的API8)、NVR模塊仿真driver層:讀取/保存終端參數(shù)讀取/保存自造短語讀取/保存自造漢字GUI層:讀NVR到緩沖區(qū)保存緩沖區(qū)到NVR從緩沖區(qū)中讀數(shù)據(jù)NVR校驗讀NVR校驗寫讀取自造短語、自造漢字252020年5月29日

文檔僅供參考9)、自檢模塊鍵盤測試串口測試并口測試網(wǎng)絡測試循環(huán)自檢演示測試報告自檢結果二、流程設計在以上設計的基礎上,我們采用SDT方法作如下基于消息驅(qū)動機制數(shù)據(jù)流程的詳細流程設計(圖見基于消息驅(qū)動機制數(shù)據(jù)流程設計):262020年5月29日

文檔僅供參考基于消息驅(qū)動機制數(shù)據(jù)流程設計消息循環(huán)消息處理流程WM_LBUTTONUP啟動當前應用,換切到前臺,申請當前應用socket號的主桌WM_KEYDOWN面消息處理WM_COMMANDPeekMessage()查詢消息隊列消息分發(fā)業(yè)務進程繪制主桌面WM_COMMAND調(diào)度出口系統(tǒng)公用消息隊列WM_SETFOCUS傳統(tǒng)終端仿真處理入口WM_KEYDOWN處理鍵盤連發(fā)讀鼠標button以及位置狀態(tài)鼠標消息終端仿真KbProWM_FDINPUT/OUPUT檢測網(wǎng)絡狀態(tài)消息WM_KEYUP系統(tǒng)調(diào)用select()查詢所有公共設備和注冊設備處理1WM_FDINPUT/OUPUT檢測串口狀態(tài)WM_CHARSysOut顯示模塊讀鍵盤狀態(tài)鍵盤消息輸入法處理讀取串口或網(wǎng)絡數(shù)據(jù)xWM_FDINPUT獲取上下文全局上下文共享釋放上下文WM_CREATE注冊sockfdWM_PAINT仿真顯示上層GUI顯示驅(qū)點陣讀取(數(shù)組方式)動屏幕、狀態(tài)行刷新如果需要,網(wǎng)絡初始化行屬性表VRAM字符屬性變換DRAM操作終端仿真消息處理N顯示模塊到屏末引起逐行memmove方式滾屏操作272020年5月29日文檔僅供參考如上圖所示我們可取得如下結論:1、流程設計的幾個基本原則:消息循環(huán)的速度必須足夠快,也就是說從事件的檢測――->完成消息的轉(zhuǎn)換――>進入消息隊列――>從消息隊列取出分發(fā)――>相應消息回調(diào)函數(shù)處理完成――>事件檢測這整個循限定時間內(nèi)完成,才不會造成事件丟失和消息處理滯后,應用不能有長時間的處理流程。應用系統(tǒng)共享一個消息隊列,所有消息環(huán)必須在某個某個消息由于整個處理在不非法操作造成系統(tǒng)崩潰的基礎上都必須能夠正確返回,否則某次消息的處理會造成消息循環(huán)停止,造成系統(tǒng)停止。2、性能分析:我們的傳統(tǒng)終端810C/910/920等型號和IP1000/都是采用CLPS-7500硬件平臺,分析兩者的流程,我們可作出如下圖所示對比分析,為了支持圖形界面、多任務、網(wǎng)絡,我們不得不在我們的系統(tǒng)中引入OS、GUI,隨之而來的則是許多中間流程的引入,使我們整機效率和處理速度等性能的降低,因此我們IP功能指標如刷屏、滾屏、處理速度等所能達到的終極目標就是采用同類型CPU的傳統(tǒng)終端,一般來說,達到80%左右當屬正常。一般來說,可考慮如下角度優(yōu)化影響性能指標的流程:頻繁在內(nèi)核態(tài)和用戶態(tài)之間切換282020年5月29日

文檔僅供參考各層次之間接口混亂、冗余GUI操作效率低下多任務各進程之間數(shù)據(jù)通訊效率低下BIOS層算法、代碼效率低下對比分析傳統(tǒng)終端網(wǎng)絡終端外部中斷事件外部中斷事件終端仿真AP內(nèi)核態(tài)主循環(huán)事件查詢->>終端仿真數(shù)據(jù)分析->處理OS內(nèi)核處理分發(fā)-OS消息循環(huán)(查詢、組裝、BIOS顯示BIOS其他出口GUI分發(fā))用戶態(tài)終端仿真數(shù)據(jù)分析-->處理AP顯示BIOS其他出口BIOS3、IP1000當前所存在的幾個未解決問題的初步分析系統(tǒng)處理速度較慢系統(tǒng)處理速度主要由數(shù)據(jù)通訊方法、顯示、滾屏等因素綜合構成,這個指標的瓶頸也就要根據(jù)實際情況分析,舉個例子:假如我們采用Nano-x方案實現(xiàn)多任務,則在SERVER和CLIENT之間數(shù)據(jù)傳遞的低效的套接字方法就成為了我們速度的瓶頸,我們292020年5月29日文檔僅供參考采用了較高效率的共享內(nèi)存方式傳遞數(shù)據(jù),則顯示、滾屏BIOS的算法就成為我們速度提高的關鍵,而且從IP1000串口聯(lián)機和網(wǎng)絡聯(lián)機處理速度的差異分析,我們也可得出在AP層數(shù)據(jù)處理的方法和訪問上下文的一個WM_FDINPUT消息對應處理一個數(shù)據(jù)包,而串口一個WM_FDINPUT消息則,造成串口聯(lián)機處理速度機制也可成為影響性能的關鍵:網(wǎng)絡聯(lián)機只處理單個數(shù)據(jù)很慢。滾屏、刷新速度較慢刷新速度主要是由終端仿真的顯示結構和GUI字符顯示的方法(算法)決定,滾屏速度則與滾屏所采用的機制(行滾?屏滾?)關系最大,當然也與系統(tǒng)數(shù)據(jù)傳遞的底層的實現(xiàn)有關,我們可從改進這三個方面作為突破口,可望有較大性能提高。另外如果在維持16不變的情況下,采用16色,各種速度及顯示指標能夠有較大幅度的提高。(已初步做過試驗)CTRL+D問題從流程圖我們可看出,這個問題的出現(xiàn)在于我們在主進程中分配業(yè)務進程的socket號,當我們在業(yè)務進程中間按下CTRL+D退出本次TELNET連接時,如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論