基于uClinux的嵌入式多功能信息交互終端
信息交互終端是一種以信息交流為主要目的,為個性化用戶提供信息處理、存儲和查詢等功能的嵌入式設(shè)備。與個人電腦機相比,該設(shè)備結(jié)構(gòu)簡單、功能專一、操作簡單。目前,信息交互終端主要應(yīng)用于銀行、移動通信和視頻會議等領(lǐng)域。
1) 銀行金融終端。銀行金融終端是一種以通過網(wǎng)絡(luò)進行金融交易為主要功能的低端設(shè)備,能24 小時為客戶提供服務(wù),即客戶能夠隨時通過該終端實現(xiàn)存取款、轉(zhuǎn)帳、查詢等操作。目前該類型終端已經(jīng)走入我國的大中型城市,但其應(yīng)用功能較少。
2) 移動通信終端。移動通信終端主要以手機和掌上電腦( PDA) 為主要代表。其中手機以語音傳輸為主,兼有收發(fā)短消息、WAP (無線應(yīng)用協(xié)議) 上網(wǎng)的功能;PDA 具有個人數(shù)據(jù)管理、網(wǎng)絡(luò)通訊等功能,并且攜帶方便,但價格較高。
3) 視頻會議終端。視頻會議終端以視頻通訊作為一種有效的多媒體通訊方式,已經(jīng)成為個人內(nèi)容服務(wù)和企業(yè)內(nèi)容服務(wù)的主要信息交流工具,但目前還處于初級階段。
總之,信息交互終端正在全球蓬勃發(fā)展,并成為人們生活和工作中不可缺少的信息交流工具,但由于它們應(yīng)用功能少、性價比低,造成其在信息家電等領(lǐng)域得不到廣泛應(yīng)用。目前,多種功能一體化和應(yīng)用于不同領(lǐng)域已成為信息交互終端的研究重點。其一,具有單一功能的信息交互只能滿足客戶的部分需求,不能滿足客戶對產(chǎn)品多功能合一的需求,因此在信息交互終端具備專一性的基礎(chǔ)上,多功能一體化已成為信息交互終端產(chǎn)品的一個主要發(fā)展方向。其二,為了滿足不同的功能需求,還要求信息交互終端具有很強的可定制性,便于用戶或開發(fā)人員對其個性化定制,使其能在銀行金融等之外的領(lǐng)域得到應(yīng)用。因此很有必要研究具有多種功能、信息交流強和可靠性高的信息交互終端。
多功能信息交互終端
作者針對傳統(tǒng)信息交互終端的不足,提出了MIIT ( multifunctional information - interactive terminalbased on uClinux) ,基于uClinux (micro cont rol linux 微控制操作系統(tǒng)) 的嵌入式多功能信息交互終端的產(chǎn)品概念。MIIT 是一種能夠以多種方式進行信息交流,并具有滿足多種應(yīng)用需求的多種功能(如串口通訊、有線/ 無線網(wǎng)絡(luò)通訊、語音傳輸?shù)龋?,應(yīng)用于信息家電、移動通訊、工業(yè)控制、甚至軍事等領(lǐng)域的嵌入式設(shè)備。它具有:可靠的嵌入式uClinux 操作系統(tǒng);多種功能一體化;可個性化定制,信息交流強等優(yōu)點。
MIIT 的軟硬件結(jié)構(gòu)
MIIT 的硬件結(jié)構(gòu)
MIIT 的硬件系統(tǒng)主要包括微處理器、存儲器、外部設(shè)備,其硬件結(jié)構(gòu)如圖1 所示。
EMPU (嵌入式微處理器) 是整個終端系統(tǒng)的核心,它主要由運算器和控制邏輯構(gòu)成,通過控制總線、地址總線控制外部設(shè)備和存儲器之間、存儲器和存儲器之間、外部設(shè)備和外部設(shè)備之間的信息傳輸。選擇時裝配EMPU 的電路板上必須包括SDRAM(同步動態(tài)隨機存儲器) 、總線接口、各種外設(shè)接口等器件。存儲器主要是用來存儲數(shù)據(jù),選擇時要考慮存儲數(shù)據(jù)大小,這里選用4M 的FLASH ROM (閃存) 和16M 的SDRAM。外部設(shè)備(輸入設(shè)備和輸出設(shè)備) 是MIIT與用戶及其它設(shè)備之間通訊的橋梁。其中輸入設(shè)備(如鍵盤) 將外來的數(shù)據(jù)傳輸給MIIT ,輸出設(shè)備(如微型打印機) 將MIIT 處理結(jié)果顯示或傳遞給其它設(shè)備。
MIIT 軟件系統(tǒng)結(jié)構(gòu)
嵌入式軟件系統(tǒng)主要包括嵌入式操作系統(tǒng)、驅(qū)動程序、應(yīng)用程序3 部分,其結(jié)構(gòu)如圖2 所示。嵌入式操作系統(tǒng)是將MPU 時間、中斷、I/ O、定時器等資源包裝起來,留給用戶一個API 接口的系統(tǒng)。它主要負責(zé)進程管理;系統(tǒng)時鐘管理;進程間通信管理和系統(tǒng)中斷管理。MIIT 的操作系統(tǒng)采用嵌入式uClinux ,它是一個以Linux 為內(nèi)核的嵌入式操作系統(tǒng),具有Linux 大部分優(yōu)點,適用于工控領(lǐng)域。驅(qū)動程序作為操作系統(tǒng)內(nèi)核與機器硬件之間的接口,對上層來說它只是調(diào)用HAL (硬件抽象層) 提供的功能,對下層來說負責(zé)對外圍設(shè)備的控制、管理和讀寫操作。
應(yīng)用程序由C 語言編寫的多種功能的程序構(gòu)成,它是系統(tǒng)應(yīng)用功能的具體體現(xiàn),其內(nèi)部各函數(shù)之間采用函數(shù)調(diào)用的方式進行連接。嵌入式操作系統(tǒng)、驅(qū)動程序、應(yīng)用程序這三者之間,嵌入式uClinux 是整個軟件系統(tǒng)的樞紐,它采用系統(tǒng)調(diào)用的工作模式,通過文件系統(tǒng)、進程管理等與各種硬件驅(qū)動程序(如圖形驅(qū)動、FLASH(閃存) 驅(qū)動、串口驅(qū)動以及打印驅(qū)動等) 進行數(shù)據(jù)交換,通過API (application interface) 與應(yīng)用程序進行數(shù)據(jù)交換。
MIIT 的關(guān)鍵實現(xiàn)技
鍵盤的實現(xiàn)
鍵盤的實現(xiàn)有兩種方案—采用I/ O (輸入/ 輸出)口或SPI(serial peripheral interface) 口。使用I/ O 口傳輸速度較快,但占用引腳較多,實現(xiàn)16 個按鍵的矩陣式鍵盤需要9 個引腳(4 個輸入、4 個輸出和1 個中斷請求) ; 用SPI 接口傳輸速度較慢,但只需要IN、OU T、CL K、CS0 、CLR 五個引腳。在主頻為66MHz的MCF5272 (Motorola 摩托羅拉) 之上,采用SPI 口基本滿足鍵盤傳輸速度的要求。
MIIT 鍵盤硬件電路通過兩片74LS164 級聯(lián)實現(xiàn)16 個按鍵。其中,164 的輸入引腳A 要與B 相連,再接QSPI 的引腳。另外,鍵盤電路工作時必須將164的CLR 引腳設(shè)置為低電平(低電平有效) 。
實現(xiàn)MIIT 鍵盤的SPI 口工作在主模式下。SPI口數(shù)據(jù)發(fā)送操作是通過向command RAM(命令) 中寫數(shù)據(jù)觸發(fā)的,經(jīng)過8 位時鐘周期完成1 個字節(jié)的發(fā)送。鍵盤掃描碼作為輸入數(shù)據(jù)保留在transmit RAM (傳輸) 中,數(shù)據(jù)發(fā)送完畢后QIR(interrupt register) 自動置位,產(chǎn)生中斷。鍵盤掃描程序檢測到該中斷信息后,讀取Receive RAM(接收) 中的數(shù)據(jù),而該數(shù)據(jù)就是t ransmit RAM 中的鍵盤掃描碼通過鍵盤電路處理后得到的鍵盤檢測值,軟件系統(tǒng)對該檢測值進行處理后得到鍵盤相應(yīng)按鍵值。
基于uCLinux 的串口數(shù)據(jù)采集
基于uCLinux 的和停止位的設(shè)置) 、串口write 和read (讀寫) 、串口close (關(guān)閉) 等內(nèi)容。數(shù)據(jù)采集程序?qū)崿F(xiàn)上與windows操作系統(tǒng)下的串口通訊不一樣,其中有三點值得特別注意:
1) MIIT 只是通過串口傳輸數(shù)據(jù),不需通過串口模擬終端通信,所以MIIT 串口采用了Raw Mode (原始模式) 方式。設(shè)置方式如下:
options. c-lflag & = ~ ( ICANON | ECHO | ECHOE | ISIG) ( Input) ;
options. c-oflag & = ~OPOST(Output) ;
2) 在設(shè)置串口時,發(fā)送方和接收方的波特率、效驗位和停止位要相同,否則雙方將不能通訊;
3) 為了防止所采集的數(shù)據(jù)出現(xiàn)亂碼,需要把串口控制字符集control characters 中的VTIME 和VMIN設(shè)置為0 和1 。0 表示打開串口后隨時接收數(shù)據(jù);1 被當(dāng)做逾時設(shè)定值為一字元。
特定應(yīng)用程序的實現(xiàn)
應(yīng)用程序主要包括系統(tǒng)設(shè)置、基礎(chǔ)數(shù)據(jù)、采集數(shù)據(jù)、網(wǎng)絡(luò)通訊和打印等。應(yīng)用程序采用單任務(wù)的控制方式,軟件系統(tǒng)接到按鍵事件后執(zhí)行相關(guān)操作,如網(wǎng)絡(luò)通訊、打印等。例如,MIIT 在接到自動數(shù)據(jù)采集的按鍵命令后,執(zhí)行采集任務(wù),然后將采集的數(shù)據(jù)交與數(shù)據(jù)庫處理,完成后等待新的按鍵事件。
結(jié) 論
采用性能可靠嵌入式uClinux 操作系統(tǒng)作為MIIT 的操作系統(tǒng),無疑確保了程序的可靠性、簡化了多功能信息交互軟件實現(xiàn)的復(fù)雜程度。在MIIT 系統(tǒng)上關(guān)鍵技術(shù)的實現(xiàn),解決了MIIT 中的鍵盤輸入、基于Linux 串口數(shù)據(jù)采集、特定應(yīng)用程序等問題,為MIIT能夠在信息家電、工業(yè)控制等領(lǐng)域得到應(yīng)用和發(fā)展奠定了一定的理論和實踐基礎(chǔ)。