嵌入式系統(tǒng) 應(yīng)用實例課件_第1頁
嵌入式系統(tǒng) 應(yīng)用實例課件_第2頁
嵌入式系統(tǒng) 應(yīng)用實例課件_第3頁
嵌入式系統(tǒng) 應(yīng)用實例課件_第4頁
嵌入式系統(tǒng) 應(yīng)用實例課件_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章開發(fā)應(yīng)用實例9.1概述隨著現(xiàn)代物流業(yè)倉儲、超市等行業(yè)的快速發(fā)展,物品流動的速度越來越快,倉儲庫存周期也越來越短。這樣物流倉儲盤點行業(yè)的壓力也越來越大,傳統(tǒng)的人工盤點方式已經(jīng)不能適應(yīng)現(xiàn)代物流的發(fā)展。為了解決這一問題,國際上一些物流先進(jìn)國家已經(jīng)采用專業(yè)的盤點設(shè)備——盤點機,用于物流盤點。我們在設(shè)計時采用了目前流行的嵌入式微處理器作為系統(tǒng)核心部件。其微處理器選型是采用韓國三星公司生產(chǎn)的S3C2410微處理器,操作系統(tǒng)采用了WindowsCE.NET4.2嵌入式操作系統(tǒng)。整個系統(tǒng)的硬件部分主要分為三個大的模塊:核心板、系統(tǒng)板和專用鍵盤及LCD顯示器。1第9章開發(fā)應(yīng)用實例9.1概述1

在核心板上集成了微處理器、64MBSDRAM和64MBNANDFlash模塊及部分支持電路。在系統(tǒng)板上設(shè)計有與核心板連接的接口,同時又集成有顯示器接口,以太網(wǎng)接口,USB接口,串口,CF卡和IrDA條形碼掃描接口等各種外設(shè)及以相應(yīng)的控制部件,另外還有電源管理與轉(zhuǎn)換等一些附屬電路。31鍵的專用鍵盤是采用超低功耗的MSP430單片機作為控制器來對鍵盤進(jìn)行編解碼,通過自定義的串行鍵盤口接入系統(tǒng)板。顯示部分是采用192*64LCD字符型顯示器。本章首先介紹了系統(tǒng)硬件部分設(shè)計及工作原理,在軟件部分介紹了WindowsCE操作系統(tǒng)的移植和定制,驅(qū)動程序和支持軟件的編制。盤點機除了支持常用的設(shè)備,還需要支持串口條形碼掃描儀,CF卡等設(shè)備。2 在核心板上集成了微處理器、64MBSDRAM和64實物圖片便攜式盤點設(shè)備外觀3實物圖片便攜式盤點設(shè)備外觀39.2硬件平臺的設(shè)計嵌入式設(shè)備的硬件架構(gòu)一般都是以嵌入式微處理器為核心,通過處理器接口擴展以及系統(tǒng)硬件的支持,把眾多的外設(shè)單元集成到整個系統(tǒng)中,并通過CPLD等邏輯轉(zhuǎn)換器件和其它硬件電路完成對外設(shè)模塊進(jìn)行讀寫和控制操作。物流盤點機系統(tǒng)硬件原理框圖如圖9-1abc所示,硬件部分主要包含有核心板,系統(tǒng)板和專用鍵盤及LCD顯示器三個部分。1)系統(tǒng)核心板簡介核心板是整個系統(tǒng)的核心,集成了盤點機系統(tǒng)的微處理器、SDRAM單元、NANDFlash單元以及它們所需要的輔助部件,如晶體振蕩器(12MHZ和32KHZ兩組),電源模塊等等。核心板圖和PCB板圖如圖9.1b,c所示。49.2硬件平臺的設(shè)計嵌入式設(shè)備的硬件架構(gòu)一般

·圖9.1a硬件平臺示意圖5 ·圖9.1a硬件平臺示意圖5

2)FlashROM程序存儲器在核心板中,微處理器采用的是基于ARM920T核的S3C2410微處理器。系統(tǒng)的程序存儲器采用的是NANDFlash,芯片的型號是Samsung公司的K9F1208,容量為64MB,NANDFlashROM接口電路原理如圖9-2所示。它按頁進(jìn)行自動編程,每一頁大小為528(512+16)字節(jié),編程的典型時間為200μs。擦除則按照塊進(jìn)行,每一塊的大小為16K字節(jié),典型的擦除時間為2ms。它在頁面中讀取單個數(shù)據(jù)的時間為50ns。K9F1208總共有48個引腳,起作用的只有8根I/O口線、讀寫控制線和電源線等。I/O口是地址、命令輸入和數(shù)據(jù)輸出/輸入的復(fù)用端口。K9F1208還提供了ECC錯誤糾正碼,實現(xiàn)壞區(qū)檢測以及實時映射,這樣它具有高達(dá)10萬次的編程/擦除周期,數(shù)據(jù)保存長達(dá)10年。在S3C2410內(nèi)部集成有NANDFlash控制器,可以在硬件上直接與NANDFlash相連。在盤點機中,NANDFlash被用作裝載操作系統(tǒng)鏡像以及大容量的數(shù)據(jù)存儲,同時也是系統(tǒng)啟動存儲器。6 2)FlashROM程序存儲器6圖9.1b核心板部分的示意圖核心板是整個系統(tǒng)的核心,集成了盤點機系統(tǒng)的處理器,SDRAM單元,NANDFlash單元以及它們所需要的輔助部件7圖9.1b核心板部分的示意圖核心板是整個系統(tǒng)的核心,集成圖9.1c核心板PCB圖(6層)8圖9.1c核心板PCB圖(6層)8圖9-2NANDFlashROM的原理圖9圖9-2NANDFlashROM的原理圖9

3)SDRAM隨機存儲器SDRAM被用來運行操作系統(tǒng)以及各類數(shù)據(jù)的緩存,圖9-3是核心板SDRAM接口部分的原理圖,系統(tǒng)采用兩片HY57V56162016M×16BitSDRAM芯片,共同組成32Bit數(shù)據(jù)寬度,64MB內(nèi)存。HY57V561620是一款4Banks×4M×16Bit的SDRAM芯片,采用3.3V電源供電,比較適合嵌入式系統(tǒng)。SDRAM與其它的RAM相比,有許多獨特的優(yōu)點,容量大,功耗低,速度快,最快可以工作在166MHz頻率下,通常存儲時間為10ns。在高速存儲系統(tǒng)中SDRAM是必不可少的外部存儲設(shè)備。SDRAM通過S3C2410片內(nèi)的SDRAM控制器來管理,SDRAM掛接在BANK6上。10 3)SDRAM隨機存儲器10圖9-3核心板SDRAM部分的原理電路圖

11圖9-3核心板SDRAM部分的原理電路圖 11

4)核心板電源圖9-4是核心板電源部分的原理電路圖。圖中,采用MIC5207電源芯片將來自系統(tǒng)板的3.3V電壓轉(zhuǎn)換為兩組1.8V電壓供給處理器內(nèi)核使用。核心板上還有一些輔助電路,包括上拉電阻,濾波電容,以及供處理器使用的主時鐘晶振,供外設(shè)適用的輔助時鐘晶振等,它們一起構(gòu)成了ARM的最小硬件系統(tǒng)板。系統(tǒng)所使用的S3C2410處理器是一款FBGA封裝的高速處理器,運行時鐘頻率為203MHz,這種FBGA封裝的高速處理器需要使用多層電路板設(shè)計。本系統(tǒng)核心板工作在高速信號下,為了布線方便,減少干擾,采用了六層電路板設(shè)計,第二層為接地面,四層為電源面,其他各層為信號層。核心板通過標(biāo)準(zhǔn)144芯SIMM插座與母板連接。核心板是一個最小的ARM9硬件系統(tǒng)板,具有較好的通用性,可以作為不同產(chǎn)品開發(fā)設(shè)計的基礎(chǔ)。12 4)核心板電源12

圖9.4電源原理圖13 圖9.4電源原理圖139.2.2系統(tǒng)板(應(yīng)用板)的組成與工作原 系統(tǒng)板起兩方面的作用,一方面對核心板提供支持。如為核心板供電,提供外設(shè)到核心板的連接,另一方面為各種外設(shè)提供了接口。系統(tǒng)板主要集成有RJ-45網(wǎng)絡(luò)接口、USB主/從設(shè)備接口、串行接口、LCD顯示器接口、CF卡接口、鍵盤等接口電路。同時,還有包含有一些相應(yīng)的控制轉(zhuǎn)換電路(如可編程器件CPLD)和電源管理部分。核心板和母板之間采用標(biāo)準(zhǔn)SIMM插槽連接,外設(shè)和系統(tǒng)板之間采用相應(yīng)的外設(shè)接口連接。其中可編程器件CPLD采用的是Altera公司的EPM3032ATC44-10的CPLD芯片。CPLD器件可以實現(xiàn)高速的FIFO或者利用其靈活的可編程性,可以作為核心板與外部其他功能模塊的通用接口(如實現(xiàn)了一個IDE接口)。因為S3C2410本身沒有CF卡(半導(dǎo)體輔助存儲器中的一種)接口,所以為了連接CF卡,必須采用轉(zhuǎn)換接口。實際系統(tǒng)中采用了總線接口的IDE接口轉(zhuǎn)換為CF卡接口。149.2.2系統(tǒng)板(應(yīng)用板)的組成與工作原 系統(tǒng)板

系統(tǒng)板上的網(wǎng)絡(luò)接口芯片采用CS8900網(wǎng)絡(luò)接口芯片。CS8900芯片是CirrusLogic公司生產(chǎn)的一種局域網(wǎng)處理芯片,它的封裝是100-pinTQFP,內(nèi)部集成了在片RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口。本系統(tǒng)中采用16位接口方式。以太網(wǎng)接口原理圖如圖9-6所示,圖中HR601627是一種脈沖變壓器,在CS8900的前端對網(wǎng)絡(luò)信號進(jìn)行脈沖波形變換。

15 系統(tǒng)板上的網(wǎng)絡(luò)接口芯片采用CS8900網(wǎng)絡(luò)接口

圖9.6CS8900網(wǎng)絡(luò)接口原理圖。16 圖9.6CS8900網(wǎng)絡(luò)接口原理圖。16

系統(tǒng)采用了一款專用顯示器——192×64型LCD顯示器。該顯示器是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器、列驅(qū)動器及192×64全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示12×4個(16×16點陣)漢字,采用3.3V電源供電,與處理器接口采用8位并行輸入輸出數(shù)據(jù)總線和8條控制線。S3C2410處理器內(nèi)部集成了LCD控制器,但是該控制器不支持用戶選定的顯示器,只能采用其他方式接入該款顯示器,實際采用的是直接掛接到處理器的通用I/O口上的方式。17 系統(tǒng)采用了一款專用顯示器——192×64型LCD顯

S3C2410中集成了3.3VTTL電平的串行接口,可以直接使用。為了與標(biāo)準(zhǔn)RS232C串行設(shè)備通信,采用了一塊SP3243芯片用于電平的轉(zhuǎn)換,構(gòu)成了一個比較完整的串口。在盤點機的實際應(yīng)用中,需要外接串行口的條形碼掃描儀,該掃描儀采用標(biāo)準(zhǔn)串口9針D型插座,工作時需要通過串口第九針外接5V電源。為了方便使用該款掃描儀,設(shè)計時對串行接口進(jìn)行了改進(jìn),在串口第九針上采用電子開關(guān)疊加可控的5V電源。在作為標(biāo)準(zhǔn)串口使用時,5V電源和第九針斷開。當(dāng)外接掃描儀時第九針接入5V電源,驅(qū)動掃描儀正常工作。串口第九針是否接入5V電源在串口驅(qū)動程序中實現(xiàn),應(yīng)用程序通過串口設(shè)置系統(tǒng)調(diào)用函數(shù)來控制,接口電路如圖9-8所示。18 S3C2410中集成了3.3VTTL電平的圖9-8串行接口電路 19圖9-8串行接口電路 19

本系統(tǒng)中所用的設(shè)備較多,其中很多設(shè)備需要復(fù)位信號來保證正常可靠的復(fù)位。為此,在系統(tǒng)板上設(shè)計了復(fù)位信號模塊,該模塊采用電阻、電容和二極管構(gòu)成一個簡單適用的復(fù)位電路,在此基礎(chǔ)上采用74HC17芯片進(jìn)行波形調(diào)整、信號取反繼而生成符合設(shè)備需要的高、低電平兩組復(fù)位信號,供整個系統(tǒng)使用。復(fù)位電路的原理圖見圖9-9所示。S3C2410處理器片內(nèi)集成有USB接口,故系統(tǒng)板只是簡單的將此信號引出。20 本系統(tǒng)中所用的設(shè)備較多,其中很多設(shè)備需要復(fù)位信號來保圖9.8復(fù)位電路原理圖

21圖9.8復(fù)位電路原理圖 21盤點機的輸入信號則采用外接的串口鍵盤手動輸入和串口條形碼掃描儀讀入方式。串口鍵盤為自行設(shè)計的,適合盤點業(yè)需要的專用鍵盤,鍵盤采用了一款16位低功耗單片機——MSP430進(jìn)行管理。使用盤點機的目的是為了提高盤點效率,對于盤點人員而言,使用最多的就是掃描儀和鍵盤。掃描儀上只有一個按鍵,使用簡單。由于鍵盤的效率對于提高盤點的效率非常重要,所以在盤點機系統(tǒng)中設(shè)計一款最合適盤點使用的鍵盤是提高盤點效率的重要一環(huán)。盤點機是一款便攜式設(shè)備,鍵盤不可能做得很大,另一方面為了便于盤點人員實現(xiàn)盲打,按鍵的大小不能太小,特別是頻繁使用的按鍵還應(yīng)該比計算機標(biāo)準(zhǔn)鍵盤略大。在這種情況下,按鍵的個數(shù)就有所限制,經(jīng)過大量實踐,最終的鍵盤設(shè)計采用了31鍵的方案。其中字母和數(shù)據(jù)鍵在一般情況下作為數(shù)字鍵使用,配合Shift按鍵輸入字母,圖9-10為鍵盤部分的框圖。9.2.3專用鍵盤的設(shè)計

22盤點機的輸入信號則采用外接的串口鍵盤手動輸入和串口條

同時,為了使用方便,鍵盤上還設(shè)置了系統(tǒng)休眠、喚醒按鍵,與鍵盤接口一起通過排線接入系統(tǒng)板。鍵盤所用的控制器為MSP430F149,這是TI公司推出的一種具有16位RISC結(jié)構(gòu)、超低功耗的工業(yè)級混合信號控制器。這些控制器被設(shè)計為可用電池工作,而且可以有很長使用時間的應(yīng)用。CPU中的16個寄存器和常數(shù)發(fā)生器使MSP430微控制器能達(dá)到最高的代碼效率,靈活的時鐘源可以使器件達(dá)到最低的功率消耗,數(shù)字控制的振蕩器(DCO)可使器件從低功耗模式迅速喚醒,在少于6μs的時間內(nèi)激活到活躍的工作方式。程序中使用MSP430F149的外部中斷I/O口作為鍵盤掃描的信號線,經(jīng)過編碼后,通過片內(nèi)內(nèi)置的串口輸出到系統(tǒng)板。該芯片在1.8-3.6V電壓,1MHz的時鐘條件下運行,耗電電流在0.1-400μA之間(因不同的工作模式而不同)。CPU平時至于節(jié)電模式,按鍵時觸發(fā)中斷信號,CPU立即被喚醒,處理完鍵盤事件后,CPU再次進(jìn)入省電模式。23 同時,為了使用方便,鍵盤上還設(shè)置了系統(tǒng)休眠、喚醒按圖9-10為鍵盤部分的框圖

24圖9-10為鍵盤部分的框圖 24系統(tǒng)板圖10M以太網(wǎng)網(wǎng)卡CS8900條形碼掃描儀RS232接口網(wǎng)絡(luò)傳輸RJ45接口JTAG調(diào)試接口鍵盤RS232接口LCD顯示器接口電源模塊MAX60325系統(tǒng)板圖10M以太網(wǎng)條形碼掃描儀RS232接口網(wǎng)絡(luò)傳輸JT9.3軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件系統(tǒng)主要包括嵌入式操作系統(tǒng)選型、定制及裁減、硬件驅(qū)動程序和用戶應(yīng)用程序方面。9.3.1操作系統(tǒng)的定制與實現(xiàn)WindowCE具有良好的圖形交互界面,便于開發(fā)調(diào)試上層圖形應(yīng)用程序,所以本便攜式盤點機的操作系統(tǒng)選用了WindowsCE。MicrosoftWindowsCE.NET是支持多平臺的、可定制的32位嵌入式操作系統(tǒng)。支持多線程、完全搶占執(zhí)行和多任務(wù)。不僅適用于工業(yè)上的嵌入式設(shè)備,同時支持高度便攜性的個人計算設(shè)備,如掌上電腦、PDA和移動通信設(shè)備等。WindowsCE.NET在設(shè)計上采用完全的模塊化結(jié)構(gòu),可以根據(jù)硬件平臺和應(yīng)用目的靈活的進(jìn)行定制。對于應(yīng)用程序的開發(fā)者來說,WindowsCE.NET提供了同Windows環(huán)境相似的各種開發(fā)環(huán)境。MicrosoftWin32API、ActiveX控件、消息隊列、COM接口、ATL和MFC,這對于提高編程者的效率和從其他Windows平臺上移植成功的應(yīng)用程序很有好處。WindowsCE.NET內(nèi)建了對多媒體、通信(TCP/IP、SNMP、TAPI等)和安全的支持,并且提供了Windows用戶熟悉的常用的應(yīng)用程序。WindowsCE通過ActiveSync實現(xiàn)了目標(biāo)設(shè)備同臺式計算機之間的通信。269.3軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件系統(tǒng)主要包括嵌入式1)NANDFlashROM存儲空間的分配系統(tǒng)核心板上使用NANDFlashROM芯片內(nèi)部分為4個平面,每個平面包含1024個塊,每塊包含32頁,每頁512字節(jié)。芯片的讀寫以頁為單位,擦除以塊為單位。故存儲器的分配以塊為單位(16KB)。存儲器分為兩個大小相同的大區(qū),即系統(tǒng)區(qū)和用戶區(qū),均為2048塊。用戶區(qū)供用戶保存用戶程序和數(shù)據(jù)使用。系統(tǒng)區(qū)又具體分為三個區(qū)段:(1)NBoot區(qū)(0-1塊):大小為2塊(32KB),其前4KB是系統(tǒng)啟動代碼,用于引導(dǎo)EBoot(調(diào)試狀態(tài))或者WindowsCE(發(fā)行狀態(tài))內(nèi)核,其他部分可以保存啟動中可能需要的程序或者數(shù)據(jù)。(2)EBoot區(qū)(2-8塊):大小為7塊(112K),一般在調(diào)試時使用,主要作用是格式化NANDFlash,通過網(wǎng)絡(luò)下載WindowsCE內(nèi)核等。(3)WindowsCE區(qū)(其他塊):保存WindowsCE的系統(tǒng)文件。9.3.1WinCE操作系統(tǒng)的定制和實現(xiàn)271)NANDFlashROM存儲空間的分配9.3.1Wi2)WinCE操作系統(tǒng)的定制和實現(xiàn)搭建基于WindowsCE操作系統(tǒng)的平臺需要完成以下主要步驟:(1)導(dǎo)入和硬件平臺相關(guān)的.cec文件;(2)利用標(biāo)準(zhǔn)開發(fā)向?qū)?,根?jù)WindowsCE的架構(gòu)創(chuàng)建一個平臺;(3)利用附加項和目錄特征客戶化平臺;(4)為特定的目標(biāo)設(shè)備創(chuàng)建一個自引導(dǎo)程序和板級支持包(BoardSuportPackage);(5)加入BSP文件編譯操作系統(tǒng)鏡像文件,通過以太網(wǎng)將鏡像文件下載到目標(biāo)設(shè)備,并調(diào)試平臺。(6)平臺搭建并調(diào)試成功,為平臺應(yīng)用程序開發(fā)者導(dǎo)出軟件開發(fā)工具包(SDK)。這樣程序開發(fā)者就可以利用EVC開發(fā)應(yīng)用軟件了。282)WinCE操作系統(tǒng)的定制和實現(xiàn)搭建基于Wind

通常,在開發(fā)平臺的時候,首先將OS鏡像文件下載到一個硬件平臺,比如基于PC硬件的WindowsCE開發(fā)平臺(CEPC)。PlatformBuilder包含了CEPC和很多其他硬件開發(fā)平臺的自引導(dǎo)程序和板級支持包(BSPs)。在硬件開發(fā)平臺上把平臺提煉和調(diào)試之后使之適合目標(biāo)設(shè)備的要求。在下載鏡像文件到目標(biāo)設(shè)備前要先創(chuàng)建自引導(dǎo)裝入程序和原始設(shè)備制造商(OEM)適應(yīng)層(OAL)。OAL是介于內(nèi)核和目標(biāo)平臺固件之間的一個層。為了使WindowsCE系統(tǒng)能夠運行在多種硬件平臺上,微軟又提出了一個新的概念——OEM適配層(OAL)。這個OEM適配層(OAL)處于WindowsCE內(nèi)核和硬件平臺中間,它可以將特定設(shè)備的硬件特性與WindowsCE內(nèi)核功能隔離開,從而使WindowsCE的內(nèi)核可以通過這個硬件隔離層提供的標(biāo)準(zhǔn)抽象接口來實現(xiàn)與硬件平臺的通訊。OAL的存在可以隱藏各種與硬件有關(guān)的細(xì)節(jié),屏蔽不同平臺硬件的差異,保證WindowsCE上層內(nèi)核的獨立性,從而增強了整個系統(tǒng)的可移植性。29 通常,在開發(fā)平臺的時候,首先將OS鏡像文件下載到一

這一特性對于WindowsCE上層應(yīng)用設(shè)計的程序員來說無疑是一個福音,但是對于WindowsCE在特定平臺的移植以及底層硬件驅(qū)動設(shè)計的開發(fā)者來說,卻面臨著巨大的困難。面對一個結(jié)構(gòu)復(fù)雜、功能強大、設(shè)計先進(jìn)的操作系統(tǒng),如何全面認(rèn)識OAL設(shè)計結(jié)構(gòu)、如何實現(xiàn)OAL與特定硬件平臺正確交互以及如何建立OAL與上層內(nèi)核連接等關(guān)鍵技術(shù),在系統(tǒng)設(shè)計和移植時都是一個嚴(yán)峻的考驗。OAL提供的功能與底層硬件的控制和通信密不可分,不同的硬件平臺會有不同的OAL實現(xiàn)。與其它處理器平臺移植一樣,S3C2410處理器的OAL需要在系統(tǒng)體系結(jié)構(gòu)、板級支持包(BoardSupportPackage)兩個層面實現(xiàn)。本系統(tǒng)采用的處理器是S3C2410處理器,這是一款基于ARMV4版本的處理器,在定制操作系統(tǒng)過程中采用了ARMV4類型的BSP。在此基礎(chǔ)上,加載開發(fā)的本地驅(qū)動程序?qū)С龅?cec文件到PlatformBuilder的Catalog欄下,作為可選組件供操作系統(tǒng)選擇。30 這一特性對于WindowsCE上層應(yīng)用設(shè)計的程序員

由于WindowsCE內(nèi)核通常為20M-30M字節(jié),在調(diào)試機器時要經(jīng)常地將如此巨大的數(shù)據(jù)下載到RAM中,傳輸效率是最關(guān)鍵的問題。PlatformBuilder的下載服務(wù)提供了四種方式:(1)實時仿真下載服務(wù):它啟動仿真器并且在仿真器上引導(dǎo)操作系統(tǒng)的鏡像文件。仿真下載服務(wù)不需要通訊硬件,因為仿真器是在開發(fā)工作站上運行的。這是PlatformBuilder4.0版本開始提供的一個新技術(shù)。仿真器比目標(biāo)設(shè)備硬件有著更高的容錯性。可以監(jiān)控目標(biāo)板程序運行的各種狀態(tài)。(2)以太網(wǎng)下載服務(wù):它通過以太網(wǎng)連接利用WindowsCE的自引導(dǎo)裝入程序(EBoot)下載操作系統(tǒng)鏡像文件。這種服務(wù)方式需要在開發(fā)工作站上有一個以太網(wǎng)卡,目標(biāo)機上一個調(diào)試用的以太網(wǎng)卡。利用以太網(wǎng)下載服務(wù),所有連接到目標(biāo)設(shè)備的應(yīng)用程序和工具都可以通過一條簡單的網(wǎng)線來通訊。31 由于WindowsCE內(nèi)核通常為20M-30M字節(jié)

(3)并行下載服務(wù):也利用WinCE的自引導(dǎo)程序,然后通過并行口連接下載操作系統(tǒng)的鏡像文件。但是,在并行下載服務(wù)里沒有與之對應(yīng)的內(nèi)核傳輸。(4)串行下載服務(wù):串行下載服務(wù)是通過串行口由WinCE自引導(dǎo)裝入程序通過串行口連接下載操作系統(tǒng)鏡像文件。在這種服務(wù)里,無法在運行時配置設(shè)備方的設(shè)置。但是可以修改并重新編譯操作系統(tǒng)鏡像文件代碼來改變波特率。如果采用串口下載,假設(shè)采用最高傳輸速率115200bps,那么在20M的數(shù)據(jù)下載則需要大約23分鐘,故所需時間較長。在實際系統(tǒng)開發(fā)過程中,用以太網(wǎng)連接來下載操作系統(tǒng)的鏡像文件。系統(tǒng)自引導(dǎo)裝入程序(EBoot)與運行在開發(fā)工作站上的PlatformBuilder通信,下載鏡像文件和設(shè)置調(diào)試服務(wù)。以太網(wǎng)連接通過以太網(wǎng)服務(wù)可以提供更快的傳輸速度和更有效的集成功能。串行連接和并行連接相對以太網(wǎng)連接速度慢,效率比較低,只在監(jiān)視調(diào)試過程的時候偶爾用上。32 (3)并行下載服務(wù):也利用WinCE的自引導(dǎo)程序,然后通3)WindowsCE的啟動過程(1)在核心板上,將系統(tǒng)設(shè)置為NANDFlashROM啟動方式,即OM[l:0]設(shè)置為00;(2)上電復(fù)位后,系統(tǒng)自動將NANDFlashROM內(nèi)的前4KB字節(jié)(NBoot)拷貝到bootSRAM中,執(zhí)行bootSRAM中代碼。如果需要(NBoot>4KB),將NBoot區(qū)數(shù)據(jù)拷貝到SDRAM中,再執(zhí)行NBoot;(3)如果設(shè)置為調(diào)試狀態(tài),NBoot將EBoot區(qū)數(shù)據(jù)裝入SDRAM,執(zhí)行EBoot,EBoot程序按照用戶的指令通過以太網(wǎng)下載WindowsCE鏡像文件,并將鏡像文件寫入WindowsCE區(qū)段;(4)NBoot或者EBoot將WindowsCE區(qū)段數(shù)據(jù)裝入SDRAM,引導(dǎo)WindowsCE操作系統(tǒng)。333)WindowsCE的啟動過程(1)在核心板上,將系統(tǒng)

本系統(tǒng)配置為NANDFlashROM啟動,系統(tǒng)上電復(fù)位后,bootSDRAM被映射到地址0x00000000,系統(tǒng)自動將NANDFlash中的前4KB代碼拷貝到bootSDRAM中,開始執(zhí)行bootSRAM中的代碼,即NBoot程序。系統(tǒng)執(zhí)行的第一行代碼即為NBoot的第一行代碼。NBoot的功能比較簡單,只是用于初始化系統(tǒng),將復(fù)雜的系統(tǒng)軟件裝入SDRAM,之后就交出控制權(quán)。34 本系統(tǒng)配置為NANDFlashROM啟動,系統(tǒng)上9.3.2盤點系統(tǒng)驅(qū)動程序的開發(fā)1)WindowsCE驅(qū)動模型要把WindowsCE移植到目標(biāo)平臺上,必須為在硬件平臺上的硬件設(shè)備提供驅(qū)動程序。通過設(shè)備驅(qū)動程序可以將操作系統(tǒng)和外部設(shè)備連接起來,使得操作系統(tǒng)能夠識別這些設(shè)備,并為應(yīng)用程序提供設(shè)備服務(wù)。就像其它操作系統(tǒng)一樣,WindowsCE支持廣泛的基于各種CE平臺的設(shè)備驅(qū)動程序,同時也提供一些用于驅(qū)動程序開發(fā)的模型(model)。359.3.2盤點系統(tǒng)驅(qū)動程序的開發(fā)1)WindowsCE

WindowsCE的設(shè)備驅(qū)動設(shè)備模型有兩種形式:流接口驅(qū)動(StreamInterfaceDriver)和本地設(shè)備驅(qū)動(NativeDeviceDriver)]。兩者的差別在于它們向上層提供的編程接口不同,流接口驅(qū)動提供一組統(tǒng)一格式的流接口,而本地設(shè)備驅(qū)動則根據(jù)具體設(shè)備的需求提供相應(yīng)合適的接口。所有的設(shè)備驅(qū)動都是以動態(tài)鏈接庫(DLL)的方式實現(xiàn)和加載。WindowsCE中的許多模塊都可以管理設(shè)備驅(qū)動程序。例如與用戶界面有關(guān)的GWES模塊管理鍵盤、鼠標(biāo)、顯示和電源等驅(qū)動程序;設(shè)備管理(DeviceManager)根據(jù)注冊表中的內(nèi)容管理注冊過的設(shè)備驅(qū)動程序,如串口驅(qū)動。在盤點機系統(tǒng)中,內(nèi)部建立了設(shè)備的驅(qū)動程序,如顯示設(shè)備LCD,采用本地設(shè)備驅(qū)動方式,通過移植定、制微軟提供的驅(qū)動例程實現(xiàn)。其它外部設(shè)備,如串口、USBClient,采用流接口驅(qū)動實現(xiàn)。通過已經(jīng)定義好的流接口函數(shù)應(yīng)用程序可以用文件訪問的方式訪問接口設(shè)備,如用戶可以像文件操作一樣讀寫串行口。36 WindowsCE的設(shè)備驅(qū)動設(shè)備模型有兩種形式:流2)電源管理

移動設(shè)備的電源管理方式會對用戶使用移動設(shè)備產(chǎn)生很大的影響,因此在CPU及電路提供了電源管理硬件支持的基礎(chǔ)上,在操作系統(tǒng)中采用一套有效的電源管理方案也是非常重要的。當(dāng)成功的運行電源管理模塊時,移動設(shè)備用戶可以在任何時候長時間便利的使用移動設(shè)備,而不會意識到在任何時間都有一個復(fù)雜的工程系統(tǒng)正工作在設(shè)備內(nèi)以保持電池電量。由于移動手持設(shè)備在硬件資源和系統(tǒng)結(jié)構(gòu)的特殊要求,同傳統(tǒng)的PC機相比嵌入式操作系統(tǒng)對移動設(shè)備的電源管理需要不同的方法。下面以WindowsCE.NET為例介紹在嵌入式操作系統(tǒng)中電源管理的方案設(shè)計。

372)電源管理移動設(shè)備的電源管理方式會對用戶使用移動設(shè)

WindowsCE.NET是通過電源管理器來進(jìn)行系統(tǒng)的電源管理,提高整個系統(tǒng)的電源效率,并為每一個外圍設(shè)備模塊提供電源管理。通過電源管理不僅可以減少目標(biāo)設(shè)備上的電源損耗,而且可以在系統(tǒng)重啟、運行、空閑和掛起的電源狀態(tài)下保存RAM中的文件系統(tǒng)。電源管理器會同三種不同的客戶端程序發(fā)生作用,對于這三種客戶端電源管理器提供了不同的編程接口。其一電源管理器相關(guān)的設(shè)備驅(qū)動程序。其二是可以改變系統(tǒng)電源狀態(tài)或者改變設(shè)備性能的應(yīng)用程序,如一些需要改變系統(tǒng)時鐘頻率的應(yīng)用。其三是在電源相關(guān)事件發(fā)生時需要得到通知的應(yīng)用程序以及影響系統(tǒng)的電源狀態(tài)的改變的應(yīng)用程序,例如電池電量低時發(fā)出警告的程序。38 WindowsCE.NET是通過電源管理器來進(jìn)

完善的系統(tǒng)電源管理需要每個外設(shè)模塊的硬件設(shè)計以及驅(qū)動程序的支持。支持電源管理的設(shè)備驅(qū)動程序需完成確??梢栽谙到y(tǒng)枚舉時正確報告其電源管理能力,處理電源管理器發(fā)出的電源請求,在系統(tǒng)啟動和從空閑模式退出時盡可能快的完成設(shè)備上電過程,在系統(tǒng)關(guān)機或進(jìn)入空閑模式時使設(shè)備下電或進(jìn)入睡眠模式,對于支持喚醒能力的設(shè)備完成設(shè)備的喚醒功能等任務(wù)。對于每一個設(shè)備用戶都可以在注冊表中注冊設(shè)備驅(qū)動所支持的電源狀態(tài)。設(shè)備的電源狀態(tài)與系統(tǒng)的電源狀態(tài)應(yīng)有一定的對應(yīng)關(guān)系,且受系統(tǒng)電源狀態(tài)定義的限制。39 完善的系統(tǒng)電源管理需要每個外設(shè)模塊的硬件設(shè)計以及驅(qū)3)鍵盤驅(qū)動程序的實現(xiàn)標(biāo)準(zhǔn)WindowsCE支持兩種類型的鍵盤:PS/2鍵盤和矩陣鍵盤。本項目的鍵盤為串行接口,實際占用的是UART1,與兩種標(biāo)準(zhǔn)類型都不匹配。分析兩種標(biāo)準(zhǔn)WindowsCE鍵盤接口之后,決定在矩陣鍵盤模型的基礎(chǔ)上進(jìn)行修改,編寫驅(qū)動程序,滿足本項目的需求。WindowsCE系統(tǒng)中斷模型分為兩個部分,ISR和IST。WindowsCE也提供了OAL層供用戶使用,鍵盤驅(qū)動建立在OAL和中斷模型的基礎(chǔ)上。具體如下:403)鍵盤驅(qū)動程序的實現(xiàn)標(biāo)準(zhǔn)WindowsCE支持兩種類型

(1)將UART1配置為鍵盤接口;(2)修改OAL層中的系統(tǒng)中斷映射代碼,將UART1的硬件中斷映射為邏輯鍵盤中斷(SYSINTR_KEYBOARD);(3)在鍵盤中斷驅(qū)動程序中注冊鍵盤IST的中斷映射為SYSINTR_KEYBOARD,將SYSINTR_KEYBOARD映射到事件EVENT_KEYBOARD上,等待鍵盤事件發(fā)生;(4)EVENT_KEYBOARD事件被觸發(fā)后,在底層驅(qū)動模塊中讀取串口鍵盤代碼,填充鍵盤碼和按鍵狀態(tài)所需的數(shù)據(jù),提交給上一級模塊;(5)鍵盤管理模塊中修改掃描碼到虛鍵碼的轉(zhuǎn)換表,完成掃描碼到虛鍵碼的轉(zhuǎn)換。按照WindowsCE標(biāo)準(zhǔn)的鍵盤驅(qū)動結(jié)構(gòu)編寫鍵盤驅(qū)動程序,編譯之后的DLL程序掛入WindowsCE系統(tǒng),鍵盤即可正常工作。注意,本系統(tǒng)中小鍵盤的編碼工作由鍵盤本地的控制器(MSP430)來完成。41 (1)將UART1配置為鍵盤接口;41鍵盤驅(qū)動程序KeybdIstLoop(KEYDB_IST*pKeyDBIst)structKEYBD_IST{HANDLEhevInterrupt;DWORDdwSysIntr_Keybd;UINTuiPddId;PFN_KEYBD_PDD_GET_KEYBD_EVENTpfnGetKeybdEvent;PFN_KEYBD_EVENTpfnKeybdEvent;}42鍵盤驅(qū)動程序KeybdIstLoop(KEYDB_IST*9.3.3用戶應(yīng)用程序的開發(fā)因為系統(tǒng)采用了一款專用的非標(biāo)準(zhǔn)顯示器,分辨率為192*64點,無法運行WindowsCE的圖形界面,故需要專門編寫出一整套管理界面供用戶使用。用戶對界面的要求實類似Dos的界面,功能要求如下:(1)系統(tǒng)管理包括聲音設(shè)置,日期/時間設(shè)置,鍵盤設(shè)置,各種系統(tǒng)自檢;(2)文件管理包括文件的瀏覽,查找,刪除,上穿,運行,編輯等;(3)網(wǎng)絡(luò)配置包括IP地址的設(shè)定以及與服務(wù)器的同步等;(4)系統(tǒng)重啟與版本說明等。各個功能程序的編制在EmbeddedVisualC++4.2環(huán)境中完成,開發(fā)環(huán)境和桌面系統(tǒng)VisualC++6.0的環(huán)境類似,在此不再說明。439.3.3用戶應(yīng)用程序的開發(fā)因為系統(tǒng)采用了一款專用的非第9章開發(fā)應(yīng)用實例9.1概述隨著現(xiàn)代物流業(yè)倉儲、超市等行業(yè)的快速發(fā)展,物品流動的速度越來越快,倉儲庫存周期也越來越短。這樣物流倉儲盤點行業(yè)的壓力也越來越大,傳統(tǒng)的人工盤點方式已經(jīng)不能適應(yīng)現(xiàn)代物流的發(fā)展。為了解決這一問題,國際上一些物流先進(jìn)國家已經(jīng)采用專業(yè)的盤點設(shè)備——盤點機,用于物流盤點。我們在設(shè)計時采用了目前流行的嵌入式微處理器作為系統(tǒng)核心部件。其微處理器選型是采用韓國三星公司生產(chǎn)的S3C2410微處理器,操作系統(tǒng)采用了WindowsCE.NET4.2嵌入式操作系統(tǒng)。整個系統(tǒng)的硬件部分主要分為三個大的模塊:核心板、系統(tǒng)板和專用鍵盤及LCD顯示器。44第9章開發(fā)應(yīng)用實例9.1概述1

在核心板上集成了微處理器、64MBSDRAM和64MBNANDFlash模塊及部分支持電路。在系統(tǒng)板上設(shè)計有與核心板連接的接口,同時又集成有顯示器接口,以太網(wǎng)接口,USB接口,串口,CF卡和IrDA條形碼掃描接口等各種外設(shè)及以相應(yīng)的控制部件,另外還有電源管理與轉(zhuǎn)換等一些附屬電路。31鍵的專用鍵盤是采用超低功耗的MSP430單片機作為控制器來對鍵盤進(jìn)行編解碼,通過自定義的串行鍵盤口接入系統(tǒng)板。顯示部分是采用192*64LCD字符型顯示器。本章首先介紹了系統(tǒng)硬件部分設(shè)計及工作原理,在軟件部分介紹了WindowsCE操作系統(tǒng)的移植和定制,驅(qū)動程序和支持軟件的編制。盤點機除了支持常用的設(shè)備,還需要支持串口條形碼掃描儀,CF卡等設(shè)備。45 在核心板上集成了微處理器、64MBSDRAM和64實物圖片便攜式盤點設(shè)備外觀46實物圖片便攜式盤點設(shè)備外觀39.2硬件平臺的設(shè)計嵌入式設(shè)備的硬件架構(gòu)一般都是以嵌入式微處理器為核心,通過處理器接口擴展以及系統(tǒng)硬件的支持,把眾多的外設(shè)單元集成到整個系統(tǒng)中,并通過CPLD等邏輯轉(zhuǎn)換器件和其它硬件電路完成對外設(shè)模塊進(jìn)行讀寫和控制操作。物流盤點機系統(tǒng)硬件原理框圖如圖9-1abc所示,硬件部分主要包含有核心板,系統(tǒng)板和專用鍵盤及LCD顯示器三個部分。1)系統(tǒng)核心板簡介核心板是整個系統(tǒng)的核心,集成了盤點機系統(tǒng)的微處理器、SDRAM單元、NANDFlash單元以及它們所需要的輔助部件,如晶體振蕩器(12MHZ和32KHZ兩組),電源模塊等等。核心板圖和PCB板圖如圖9.1b,c所示。479.2硬件平臺的設(shè)計嵌入式設(shè)備的硬件架構(gòu)一般

·圖9.1a硬件平臺示意圖48 ·圖9.1a硬件平臺示意圖5

2)FlashROM程序存儲器在核心板中,微處理器采用的是基于ARM920T核的S3C2410微處理器。系統(tǒng)的程序存儲器采用的是NANDFlash,芯片的型號是Samsung公司的K9F1208,容量為64MB,NANDFlashROM接口電路原理如圖9-2所示。它按頁進(jìn)行自動編程,每一頁大小為528(512+16)字節(jié),編程的典型時間為200μs。擦除則按照塊進(jìn)行,每一塊的大小為16K字節(jié),典型的擦除時間為2ms。它在頁面中讀取單個數(shù)據(jù)的時間為50ns。K9F1208總共有48個引腳,起作用的只有8根I/O口線、讀寫控制線和電源線等。I/O口是地址、命令輸入和數(shù)據(jù)輸出/輸入的復(fù)用端口。K9F1208還提供了ECC錯誤糾正碼,實現(xiàn)壞區(qū)檢測以及實時映射,這樣它具有高達(dá)10萬次的編程/擦除周期,數(shù)據(jù)保存長達(dá)10年。在S3C2410內(nèi)部集成有NANDFlash控制器,可以在硬件上直接與NANDFlash相連。在盤點機中,NANDFlash被用作裝載操作系統(tǒng)鏡像以及大容量的數(shù)據(jù)存儲,同時也是系統(tǒng)啟動存儲器。49 2)FlashROM程序存儲器6圖9.1b核心板部分的示意圖核心板是整個系統(tǒng)的核心,集成了盤點機系統(tǒng)的處理器,SDRAM單元,NANDFlash單元以及它們所需要的輔助部件50圖9.1b核心板部分的示意圖核心板是整個系統(tǒng)的核心,集成圖9.1c核心板PCB圖(6層)51圖9.1c核心板PCB圖(6層)8圖9-2NANDFlashROM的原理圖52圖9-2NANDFlashROM的原理圖9

3)SDRAM隨機存儲器SDRAM被用來運行操作系統(tǒng)以及各類數(shù)據(jù)的緩存,圖9-3是核心板SDRAM接口部分的原理圖,系統(tǒng)采用兩片HY57V56162016M×16BitSDRAM芯片,共同組成32Bit數(shù)據(jù)寬度,64MB內(nèi)存。HY57V561620是一款4Banks×4M×16Bit的SDRAM芯片,采用3.3V電源供電,比較適合嵌入式系統(tǒng)。SDRAM與其它的RAM相比,有許多獨特的優(yōu)點,容量大,功耗低,速度快,最快可以工作在166MHz頻率下,通常存儲時間為10ns。在高速存儲系統(tǒng)中SDRAM是必不可少的外部存儲設(shè)備。SDRAM通過S3C2410片內(nèi)的SDRAM控制器來管理,SDRAM掛接在BANK6上。53 3)SDRAM隨機存儲器10圖9-3核心板SDRAM部分的原理電路圖

54圖9-3核心板SDRAM部分的原理電路圖 11

4)核心板電源圖9-4是核心板電源部分的原理電路圖。圖中,采用MIC5207電源芯片將來自系統(tǒng)板的3.3V電壓轉(zhuǎn)換為兩組1.8V電壓供給處理器內(nèi)核使用。核心板上還有一些輔助電路,包括上拉電阻,濾波電容,以及供處理器使用的主時鐘晶振,供外設(shè)適用的輔助時鐘晶振等,它們一起構(gòu)成了ARM的最小硬件系統(tǒng)板。系統(tǒng)所使用的S3C2410處理器是一款FBGA封裝的高速處理器,運行時鐘頻率為203MHz,這種FBGA封裝的高速處理器需要使用多層電路板設(shè)計。本系統(tǒng)核心板工作在高速信號下,為了布線方便,減少干擾,采用了六層電路板設(shè)計,第二層為接地面,四層為電源面,其他各層為信號層。核心板通過標(biāo)準(zhǔn)144芯SIMM插座與母板連接。核心板是一個最小的ARM9硬件系統(tǒng)板,具有較好的通用性,可以作為不同產(chǎn)品開發(fā)設(shè)計的基礎(chǔ)。55 4)核心板電源12

圖9.4電源原理圖56 圖9.4電源原理圖139.2.2系統(tǒng)板(應(yīng)用板)的組成與工作原 系統(tǒng)板起兩方面的作用,一方面對核心板提供支持。如為核心板供電,提供外設(shè)到核心板的連接,另一方面為各種外設(shè)提供了接口。系統(tǒng)板主要集成有RJ-45網(wǎng)絡(luò)接口、USB主/從設(shè)備接口、串行接口、LCD顯示器接口、CF卡接口、鍵盤等接口電路。同時,還有包含有一些相應(yīng)的控制轉(zhuǎn)換電路(如可編程器件CPLD)和電源管理部分。核心板和母板之間采用標(biāo)準(zhǔn)SIMM插槽連接,外設(shè)和系統(tǒng)板之間采用相應(yīng)的外設(shè)接口連接。其中可編程器件CPLD采用的是Altera公司的EPM3032ATC44-10的CPLD芯片。CPLD器件可以實現(xiàn)高速的FIFO或者利用其靈活的可編程性,可以作為核心板與外部其他功能模塊的通用接口(如實現(xiàn)了一個IDE接口)。因為S3C2410本身沒有CF卡(半導(dǎo)體輔助存儲器中的一種)接口,所以為了連接CF卡,必須采用轉(zhuǎn)換接口。實際系統(tǒng)中采用了總線接口的IDE接口轉(zhuǎn)換為CF卡接口。579.2.2系統(tǒng)板(應(yīng)用板)的組成與工作原 系統(tǒng)板

系統(tǒng)板上的網(wǎng)絡(luò)接口芯片采用CS8900網(wǎng)絡(luò)接口芯片。CS8900芯片是CirrusLogic公司生產(chǎn)的一種局域網(wǎng)處理芯片,它的封裝是100-pinTQFP,內(nèi)部集成了在片RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口。本系統(tǒng)中采用16位接口方式。以太網(wǎng)接口原理圖如圖9-6所示,圖中HR601627是一種脈沖變壓器,在CS8900的前端對網(wǎng)絡(luò)信號進(jìn)行脈沖波形變換。

58 系統(tǒng)板上的網(wǎng)絡(luò)接口芯片采用CS8900網(wǎng)絡(luò)接口

圖9.6CS8900網(wǎng)絡(luò)接口原理圖。59 圖9.6CS8900網(wǎng)絡(luò)接口原理圖。16

系統(tǒng)采用了一款專用顯示器——192×64型LCD顯示器。該顯示器是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器、列驅(qū)動器及192×64全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示12×4個(16×16點陣)漢字,采用3.3V電源供電,與處理器接口采用8位并行輸入輸出數(shù)據(jù)總線和8條控制線。S3C2410處理器內(nèi)部集成了LCD控制器,但是該控制器不支持用戶選定的顯示器,只能采用其他方式接入該款顯示器,實際采用的是直接掛接到處理器的通用I/O口上的方式。60 系統(tǒng)采用了一款專用顯示器——192×64型LCD顯

S3C2410中集成了3.3VTTL電平的串行接口,可以直接使用。為了與標(biāo)準(zhǔn)RS232C串行設(shè)備通信,采用了一塊SP3243芯片用于電平的轉(zhuǎn)換,構(gòu)成了一個比較完整的串口。在盤點機的實際應(yīng)用中,需要外接串行口的條形碼掃描儀,該掃描儀采用標(biāo)準(zhǔn)串口9針D型插座,工作時需要通過串口第九針外接5V電源。為了方便使用該款掃描儀,設(shè)計時對串行接口進(jìn)行了改進(jìn),在串口第九針上采用電子開關(guān)疊加可控的5V電源。在作為標(biāo)準(zhǔn)串口使用時,5V電源和第九針斷開。當(dāng)外接掃描儀時第九針接入5V電源,驅(qū)動掃描儀正常工作。串口第九針是否接入5V電源在串口驅(qū)動程序中實現(xiàn),應(yīng)用程序通過串口設(shè)置系統(tǒng)調(diào)用函數(shù)來控制,接口電路如圖9-8所示。61 S3C2410中集成了3.3VTTL電平的圖9-8串行接口電路 62圖9-8串行接口電路 19

本系統(tǒng)中所用的設(shè)備較多,其中很多設(shè)備需要復(fù)位信號來保證正常可靠的復(fù)位。為此,在系統(tǒng)板上設(shè)計了復(fù)位信號模塊,該模塊采用電阻、電容和二極管構(gòu)成一個簡單適用的復(fù)位電路,在此基礎(chǔ)上采用74HC17芯片進(jìn)行波形調(diào)整、信號取反繼而生成符合設(shè)備需要的高、低電平兩組復(fù)位信號,供整個系統(tǒng)使用。復(fù)位電路的原理圖見圖9-9所示。S3C2410處理器片內(nèi)集成有USB接口,故系統(tǒng)板只是簡單的將此信號引出。63 本系統(tǒng)中所用的設(shè)備較多,其中很多設(shè)備需要復(fù)位信號來保圖9.8復(fù)位電路原理圖

64圖9.8復(fù)位電路原理圖 21盤點機的輸入信號則采用外接的串口鍵盤手動輸入和串口條形碼掃描儀讀入方式。串口鍵盤為自行設(shè)計的,適合盤點業(yè)需要的專用鍵盤,鍵盤采用了一款16位低功耗單片機——MSP430進(jìn)行管理。使用盤點機的目的是為了提高盤點效率,對于盤點人員而言,使用最多的就是掃描儀和鍵盤。掃描儀上只有一個按鍵,使用簡單。由于鍵盤的效率對于提高盤點的效率非常重要,所以在盤點機系統(tǒng)中設(shè)計一款最合適盤點使用的鍵盤是提高盤點效率的重要一環(huán)。盤點機是一款便攜式設(shè)備,鍵盤不可能做得很大,另一方面為了便于盤點人員實現(xiàn)盲打,按鍵的大小不能太小,特別是頻繁使用的按鍵還應(yīng)該比計算機標(biāo)準(zhǔn)鍵盤略大。在這種情況下,按鍵的個數(shù)就有所限制,經(jīng)過大量實踐,最終的鍵盤設(shè)計采用了31鍵的方案。其中字母和數(shù)據(jù)鍵在一般情況下作為數(shù)字鍵使用,配合Shift按鍵輸入字母,圖9-10為鍵盤部分的框圖。9.2.3專用鍵盤的設(shè)計

65盤點機的輸入信號則采用外接的串口鍵盤手動輸入和串口條

同時,為了使用方便,鍵盤上還設(shè)置了系統(tǒng)休眠、喚醒按鍵,與鍵盤接口一起通過排線接入系統(tǒng)板。鍵盤所用的控制器為MSP430F149,這是TI公司推出的一種具有16位RISC結(jié)構(gòu)、超低功耗的工業(yè)級混合信號控制器。這些控制器被設(shè)計為可用電池工作,而且可以有很長使用時間的應(yīng)用。CPU中的16個寄存器和常數(shù)發(fā)生器使MSP430微控制器能達(dá)到最高的代碼效率,靈活的時鐘源可以使器件達(dá)到最低的功率消耗,數(shù)字控制的振蕩器(DCO)可使器件從低功耗模式迅速喚醒,在少于6μs的時間內(nèi)激活到活躍的工作方式。程序中使用MSP430F149的外部中斷I/O口作為鍵盤掃描的信號線,經(jīng)過編碼后,通過片內(nèi)內(nèi)置的串口輸出到系統(tǒng)板。該芯片在1.8-3.6V電壓,1MHz的時鐘條件下運行,耗電電流在0.1-400μA之間(因不同的工作模式而不同)。CPU平時至于節(jié)電模式,按鍵時觸發(fā)中斷信號,CPU立即被喚醒,處理完鍵盤事件后,CPU再次進(jìn)入省電模式。66 同時,為了使用方便,鍵盤上還設(shè)置了系統(tǒng)休眠、喚醒按圖9-10為鍵盤部分的框圖

67圖9-10為鍵盤部分的框圖 24系統(tǒng)板圖10M以太網(wǎng)網(wǎng)卡CS8900條形碼掃描儀RS232接口網(wǎng)絡(luò)傳輸RJ45接口JTAG調(diào)試接口鍵盤RS232接口LCD顯示器接口電源模塊MAX60368系統(tǒng)板圖10M以太網(wǎng)條形碼掃描儀RS232接口網(wǎng)絡(luò)傳輸JT9.3軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件系統(tǒng)主要包括嵌入式操作系統(tǒng)選型、定制及裁減、硬件驅(qū)動程序和用戶應(yīng)用程序方面。9.3.1操作系統(tǒng)的定制與實現(xiàn)WindowCE具有良好的圖形交互界面,便于開發(fā)調(diào)試上層圖形應(yīng)用程序,所以本便攜式盤點機的操作系統(tǒng)選用了WindowsCE。MicrosoftWindowsCE.NET是支持多平臺的、可定制的32位嵌入式操作系統(tǒng)。支持多線程、完全搶占執(zhí)行和多任務(wù)。不僅適用于工業(yè)上的嵌入式設(shè)備,同時支持高度便攜性的個人計算設(shè)備,如掌上電腦、PDA和移動通信設(shè)備等。WindowsCE.NET在設(shè)計上采用完全的模塊化結(jié)構(gòu),可以根據(jù)硬件平臺和應(yīng)用目的靈活的進(jìn)行定制。對于應(yīng)用程序的開發(fā)者來說,WindowsCE.NET提供了同Windows環(huán)境相似的各種開發(fā)環(huán)境。MicrosoftWin32API、ActiveX控件、消息隊列、COM接口、ATL和MFC,這對于提高編程者的效率和從其他Windows平臺上移植成功的應(yīng)用程序很有好處。WindowsCE.NET內(nèi)建了對多媒體、通信(TCP/IP、SNMP、TAPI等)和安全的支持,并且提供了Windows用戶熟悉的常用的應(yīng)用程序。WindowsCE通過ActiveSync實現(xiàn)了目標(biāo)設(shè)備同臺式計算機之間的通信。699.3軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件系統(tǒng)主要包括嵌入式1)NANDFlashROM存儲空間的分配系統(tǒng)核心板上使用NANDFlashROM芯片內(nèi)部分為4個平面,每個平面包含1024個塊,每塊包含32頁,每頁512字節(jié)。芯片的讀寫以頁為單位,擦除以塊為單位。故存儲器的分配以塊為單位(16KB)。存儲器分為兩個大小相同的大區(qū),即系統(tǒng)區(qū)和用戶區(qū),均為2048塊。用戶區(qū)供用戶保存用戶程序和數(shù)據(jù)使用。系統(tǒng)區(qū)又具體分為三個區(qū)段:(1)NBoot區(qū)(0-1塊):大小為2塊(32KB),其前4KB是系統(tǒng)啟動代碼,用于引導(dǎo)EBoot(調(diào)試狀態(tài))或者WindowsCE(發(fā)行狀態(tài))內(nèi)核,其他部分可以保存啟動中可能需要的程序或者數(shù)據(jù)。(2)EBoot區(qū)(2-8塊):大小為7塊(112K),一般在調(diào)試時使用,主要作用是格式化NANDFlash,通過網(wǎng)絡(luò)下載WindowsCE內(nèi)核等。(3)WindowsCE區(qū)(其他塊):保存WindowsCE的系統(tǒng)文件。9.3.1WinCE操作系統(tǒng)的定制和實現(xiàn)701)NANDFlashROM存儲空間的分配9.3.1Wi2)WinCE操作系統(tǒng)的定制和實現(xiàn)搭建基于WindowsCE操作系統(tǒng)的平臺需要完成以下主要步驟:(1)導(dǎo)入和硬件平臺相關(guān)的.cec文件;(2)利用標(biāo)準(zhǔn)開發(fā)向?qū)?,根?jù)WindowsCE的架構(gòu)創(chuàng)建一個平臺;(3)利用附加項和目錄特征客戶化平臺;(4)為特定的目標(biāo)設(shè)備創(chuàng)建一個自引導(dǎo)程序和板級支持包(BoardSuportPackage);(5)加入BSP文件編譯操作系統(tǒng)鏡像文件,通過以太網(wǎng)將鏡像文件下載到目標(biāo)設(shè)備,并調(diào)試平臺。(6)平臺搭建并調(diào)試成功,為平臺應(yīng)用程序開發(fā)者導(dǎo)出軟件開發(fā)工具包(SDK)。這樣程序開發(fā)者就可以利用EVC開發(fā)應(yīng)用軟件了。712)WinCE操作系統(tǒng)的定制和實現(xiàn)搭建基于Wind

通常,在開發(fā)平臺的時候,首先將OS鏡像文件下載到一個硬件平臺,比如基于PC硬件的WindowsCE開發(fā)平臺(CEPC)。PlatformBuilder包含了CEPC和很多其他硬件開發(fā)平臺的自引導(dǎo)程序和板級支持包(BSPs)。在硬件開發(fā)平臺上把平臺提煉和調(diào)試之后使之適合目標(biāo)設(shè)備的要求。在下載鏡像文件到目標(biāo)設(shè)備前要先創(chuàng)建自引導(dǎo)裝入程序和原始設(shè)備制造商(OEM)適應(yīng)層(OAL)。OAL是介于內(nèi)核和目標(biāo)平臺固件之間的一個層。為了使WindowsCE系統(tǒng)能夠運行在多種硬件平臺上,微軟又提出了一個新的概念——OEM適配層(OAL)。這個OEM適配層(OAL)處于WindowsCE內(nèi)核和硬件平臺中間,它可以將特定設(shè)備的硬件特性與WindowsCE內(nèi)核功能隔離開,從而使WindowsCE的內(nèi)核可以通過這個硬件隔離層提供的標(biāo)準(zhǔn)抽象接口來實現(xiàn)與硬件平臺的通訊。OAL的存在可以隱藏各種與硬件有關(guān)的細(xì)節(jié),屏蔽不同平臺硬件的差異,保證WindowsCE上層內(nèi)核的獨立性,從而增強了整個系統(tǒng)的可移植性。72 通常,在開發(fā)平臺的時候,首先將OS鏡像文件下載到一

這一特性對于WindowsCE上層應(yīng)用設(shè)計的程序員來說無疑是一個福音,但是對于WindowsCE在特定平臺的移植以及底層硬件驅(qū)動設(shè)計的開發(fā)者來說,卻面臨著巨大的困難。面對一個結(jié)構(gòu)復(fù)雜、功能強大、設(shè)計先進(jìn)的操作系統(tǒng),如何全面認(rèn)識OAL設(shè)計結(jié)構(gòu)、如何實現(xiàn)OAL與特定硬件平臺正確交互以及如何建立OAL與上層內(nèi)核連接等關(guān)鍵技術(shù),在系統(tǒng)設(shè)計和移植時都是一個嚴(yán)峻的考驗。OAL提供的功能與底層硬件的控制和通信密不可分,不同的硬件平臺會有不同的OAL實現(xiàn)。與其它處理器平臺移植一樣,S3C2410處理器的OAL需要在系統(tǒng)體系結(jié)構(gòu)、板級支持包(BoardSupportPackage)兩個層面實現(xiàn)。本系統(tǒng)采用的處理器是S3C2410處理器,這是一款基于ARMV4版本的處理器,在定制操作系統(tǒng)過程中采用了ARMV4類型的BSP。在此基礎(chǔ)上,加載開發(fā)的本地驅(qū)動程序?qū)С龅?cec文件到PlatformBuilder的Catalog欄下,作為可選組件供操作系統(tǒng)選擇。73 這一特性對于WindowsCE上層應(yīng)用設(shè)計的程序員

由于WindowsCE內(nèi)核通常為20M-30M字節(jié),在調(diào)試機器時要經(jīng)常地將如此巨大的數(shù)據(jù)下載到RAM中,傳輸效率是最關(guān)鍵的問題。PlatformBuilder的下載服務(wù)提供了四種方式:(1)實時仿真下載服務(wù):它啟動仿真器并且在仿真器上引導(dǎo)操作系統(tǒng)的鏡像文件。仿真下載服務(wù)不需要通訊硬件,因為仿真器是在開發(fā)工作站上運行的。這是PlatformBuilder4.0版本開始提供的一個新技術(shù)。仿真器比目標(biāo)設(shè)備硬件有著更高的容錯性??梢员O(jiān)控目標(biāo)板程序運行的各種狀態(tài)。(2)以太網(wǎng)下載服務(wù):它通過以太網(wǎng)連接利用WindowsCE的自引導(dǎo)裝入程序(EBoot)下載操作系統(tǒng)鏡像文件。這種服務(wù)方式需要在開發(fā)工作站上有一個以太網(wǎng)卡,目標(biāo)機上一個調(diào)試用的以太網(wǎng)卡。利用以太網(wǎng)下載服務(wù),所有連接到目標(biāo)設(shè)備的應(yīng)用程序和工具都可以通過一條簡單的網(wǎng)線來通訊。74 由于WindowsCE內(nèi)核通常為20M-30M字節(jié)

(3)并行下載服務(wù):也利用WinCE的自引導(dǎo)程序,然后通過并行口連接下載操作系統(tǒng)的鏡像文件。但是,在并行下載服務(wù)里沒有與之對應(yīng)的內(nèi)核傳輸。(4)串行下載服務(wù):串行下載服務(wù)是通過串行口由WinCE自引導(dǎo)裝入程序通過串行口連接下載操作系統(tǒng)鏡像文件。在這種服務(wù)里,無法在運行時配置設(shè)備方的設(shè)置。但是可以修改并重新編譯操作系統(tǒng)鏡像文件代碼來改變波特率。如果采用串口下載,假設(shè)采用最高傳輸速率115200bps,那么在20M的數(shù)據(jù)下載則需要大約23分鐘,故所需時間較長。在實際系統(tǒng)開發(fā)過程中,用以太網(wǎng)連接來下載操作系統(tǒng)的鏡像文件。系統(tǒng)自引導(dǎo)裝入程序(EBoot)與運行在開發(fā)工作站上的PlatformBuilder通信,下載鏡像文件和設(shè)置調(diào)試服務(wù)。以太網(wǎng)連接通過以太網(wǎng)服務(wù)可以提供更快的傳輸速度和更有效的集成功能。串行連接和并行連接相對以太網(wǎng)連接速度慢,效率比較低,只在監(jiān)視調(diào)試過程的時候偶爾用上。75 (3)并行下載服務(wù):也利用WinCE的自引導(dǎo)程序,然后通3)WindowsCE的啟動過程(1)在核心板上,將系統(tǒng)設(shè)置為NANDFlashROM啟動方式,即OM[l:0]設(shè)置為00;(2)上電復(fù)位后,系統(tǒng)自動將NANDFlashROM內(nèi)的前4KB字節(jié)(NBoot)拷貝到bootSRAM中,執(zhí)行bootSRAM中代碼。如果需要(NBoot>4KB),將NBoot區(qū)數(shù)據(jù)拷貝到SDRAM中,再執(zhí)行NBoot;(3)如果設(shè)置為調(diào)試狀態(tài),NBoot將EBoot區(qū)數(shù)據(jù)裝入SDRAM,執(zhí)行EBoot,EBoot程序按照用戶的指令通過以太網(wǎng)下載WindowsCE鏡像文件,并將鏡像文件寫入WindowsCE區(qū)段;(4)NBoot或者EBoot將WindowsCE區(qū)段數(shù)據(jù)裝入SDRAM,引導(dǎo)WindowsCE操作系統(tǒng)。763)WindowsCE的啟動過程(1)在核心板上,將系統(tǒng)

本系統(tǒng)配置為NANDFlashROM啟動,系統(tǒng)上電復(fù)位后,bootSDRAM被映射到地址0x00000000,系統(tǒng)自動將NANDFlash中的前4KB代碼拷貝到bootSDRAM中,開始執(zhí)行bootSRAM中的代碼,即NBoot程序。系統(tǒng)執(zhí)行的第一行代碼即為NBoot的第一行代碼。NBoot的功能比較簡單,只是用于初始化系統(tǒng),將復(fù)雜的系統(tǒng)軟件裝入SDRAM,之后就交出控制權(quán)。77 本系統(tǒng)配置為NANDFlashROM啟動,系統(tǒng)上9.3.2盤點系統(tǒng)驅(qū)動程序的開發(fā)1)WindowsCE驅(qū)動模型要把WindowsCE移植到目標(biāo)平臺上,必須為在硬件平臺上的硬件設(shè)備提供驅(qū)動程序。通過設(shè)備驅(qū)動程序可以將操作系統(tǒng)和外部設(shè)備連接起來,使得操作系統(tǒng)能夠識別這些設(shè)備,并為應(yīng)用程序提供設(shè)備服務(wù)。就像其它操作系統(tǒng)一樣,WindowsCE支持廣泛的基于各種CE平臺的設(shè)備驅(qū)動程序,同時也提供一些用于驅(qū)動程序開發(fā)的模型(model)。789.3.2盤點系統(tǒng)驅(qū)動程序的開發(fā)1)WindowsCE

WindowsCE的設(shè)備驅(qū)動設(shè)備模型有兩種形式:流接口驅(qū)動(StreamInterfaceDriver)和本地設(shè)備驅(qū)動(NativeDeviceDriver)]。兩者的差別在于它們向上層提供的編程接口不同,流接口驅(qū)動提供一組統(tǒng)一格式的流接口,而本地設(shè)備驅(qū)動則根據(jù)具體設(shè)備的需求提供相應(yīng)合適的接口。所有的設(shè)備驅(qū)動都是以動態(tài)鏈接庫(DLL)的方式實現(xiàn)和加載。WindowsCE中的許多模塊都可以管理設(shè)備驅(qū)動程序。例如與用戶界面有關(guān)的GWES模塊管理鍵盤、鼠標(biāo)、

溫馨提示

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

評論

0/150

提交評論