摘要: 本文首先介紹了EVB2107評(píng)估板、評(píng)估板的系統(tǒng)開發(fā)工具和集成開發(fā)環(huán)境,然后對(duì)擴(kuò)展板上各模塊都從原理入手結(jié)合該模塊要實(shí)現(xiàn)的功能說明其設(shè)計(jì)思想和實(shí)現(xiàn)原理,并就各模塊驅(qū)動(dòng)程序的編程思想及流程進(jìn)行了論述。
關(guān)鍵詞:嵌入式系統(tǒng) EVB2107評(píng)估板 集成開發(fā)環(huán)境網(wǎng)絡(luò) 接口控制器
1 前言
嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)為基礎(chǔ)、軟件硬件均可剪裁、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。近年來,隨著計(jì)算機(jī)、微電子、通信及網(wǎng)絡(luò)技術(shù)的發(fā)展,嵌入式系統(tǒng)滲透到各個(gè)領(lǐng)域。由于嵌入式系統(tǒng)通常采用微控制器芯片來構(gòu)建,但微控制器生產(chǎn)商通常只提供芯片的編譯器和連接器,而不提供完整的開發(fā)平臺(tái);應(yīng)用開發(fā)商往往根據(jù)微控制器來構(gòu)建自己的應(yīng)用產(chǎn)品,通常不提供完整的尤其是通用的嵌入式系統(tǒng)開發(fā)平臺(tái);國外第三方公司提供的開發(fā)平臺(tái)一般都功能單一、結(jié)構(gòu)簡(jiǎn)單且價(jià)格昂貴。國內(nèi)的開發(fā)平臺(tái)一般也只是一個(gè)簡(jiǎn)單的評(píng)估板和調(diào)試平臺(tái),通常不能支持高檔微控制器。因此為了滿足開發(fā)各種應(yīng)用系統(tǒng)的需求,本文提出了嵌入式系統(tǒng)開發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)方法。
在硬件上,嵌入式系統(tǒng)開發(fā)平臺(tái)以各種微控制器為核心,以嵌入式系統(tǒng)的常用組成部件的并集為基本要素,構(gòu)建的硬件設(shè)計(jì)和調(diào)試平臺(tái)。作為通用的開發(fā)平臺(tái),平臺(tái)支持以8位、16位、32位微控制器家族中1~2款具有代表性的微控制器為核心,并且包括網(wǎng)絡(luò)通信、USB高速串行通信、存儲(chǔ)器系統(tǒng)擴(kuò)展、大屏幕液晶顯示器/觸摸屏控制器等常用部件。在軟件上,嵌入式系統(tǒng)開發(fā)平臺(tái)以嵌入式微內(nèi)核實(shí)時(shí)操作系統(tǒng)為核心,提供了各種軟硬件資源的管理程序,豐富的函數(shù)庫和調(diào)試工具,以及各種功能模塊的標(biāo)準(zhǔn)化應(yīng)用設(shè)計(jì)例程,構(gòu)造了一個(gè)基本的調(diào)試和開發(fā)平臺(tái)。在針對(duì)具體的嵌入式系統(tǒng)應(yīng)用開發(fā)時(shí),只需要在此平臺(tái)基礎(chǔ)上對(duì)軟、硬件進(jìn)行適當(dāng)剪裁、組裝,就可以完成一個(gè)實(shí)際的嵌入式系統(tǒng)。
2 EVB2107評(píng)估板的資源與開發(fā)環(huán)境
EVB2107評(píng)估板是以32位微控制器MMC2107為核心,擴(kuò)展了存儲(chǔ)器、OnCE接口、串行接口、電源電路等模塊,組成了一個(gè)板級(jí)的基本系統(tǒng),其邏輯結(jié)構(gòu)如圖1所示。
EVB2107評(píng)估板上提供了1MB的SRAM和2MB的FLASH存儲(chǔ)器,極大地?cái)U(kuò)展了板上存儲(chǔ)器容量??删幊踢壿嬈骷﨏PLD用來實(shí)現(xiàn)板內(nèi)的各種控制邏輯電路,可控制評(píng)估板上的LED指示燈顯示;采樣跳線開關(guān)設(shè)置值實(shí)現(xiàn)系統(tǒng)配置;產(chǎn)生存儲(chǔ)器地址、控制信號(hào),實(shí)現(xiàn)MMC2107對(duì)評(píng)估板上外部存儲(chǔ)器的16位或32位訪問。3個(gè)外圍端口引出插座,分別用來引出SPI、串行通信接口、定時(shí)器接口的信號(hào),引入外部中斷請(qǐng)求信號(hào),引入使用片內(nèi)QADC進(jìn)行模數(shù)轉(zhuǎn)換的模擬信號(hào)。用戶可以選擇20線的雙排扁平電纜或其它連接線其與擴(kuò)展板相連。用戶擴(kuò)展區(qū)(即面包板)提供給用戶添加自己的器件。2個(gè)RS232串行通信接口和OnCE接口用于調(diào)試;12V直流輸入電源轉(zhuǎn)換成板內(nèi)各種工作電源(如5V、3.3V),可為擴(kuò)展板上各模塊供電。
EVB2107評(píng)估板通過EBDI(Embedded Background Debug Interface)與主機(jī)相連。主機(jī)上選用Metrowerks公司提供的CodeWarrior IDE集成開發(fā)環(huán)境和Motorola公司提供的SysDS(M·CORE System Development Software),構(gòu)成了軟件調(diào)試環(huán)境。EBDI是EVB2107評(píng)估板與CodeWarrior IDE之間的硬件接口,EVB2107評(píng)估板上的OnCE接口與EBDI相連,EBDI通過串行線與主機(jī)的串行接口相連。進(jìn)行調(diào)試時(shí),CodeWarrior利用EBDI連接通路將程序下載到EVB2107評(píng)估板上,再利用CodeWarrior IDE中的Debug功能就可以進(jìn)行代碼的調(diào)試了。
3 USB接口模塊
該開發(fā)通過USB接口與外部設(shè)備連接,USB系統(tǒng)由主機(jī)(Host)、集線器(Hub)、設(shè)備(Device)構(gòu)成。它們之間通過USB總線相連構(gòu)成一個(gè)星型拓?fù)浣Y(jié)構(gòu)。在一個(gè)USB系統(tǒng)中,必須有而且只有一個(gè)主機(jī),主機(jī)利用USB主控制器來操縱主機(jī)和USB設(shè)備之間的數(shù)據(jù)傳輸。主控制器像其它I/O設(shè)備一樣掛在系統(tǒng)總線(PCI總線)下面,附著于主控制器的集線器是USB系統(tǒng)的根集線器(Root Hub),各級(jí)集線器提供若干個(gè)連接其它設(shè)備的下行端口。USB設(shè)備在邏輯上分成幾個(gè)層次,分別是設(shè)備、配置、接口和端點(diǎn),結(jié)構(gòu)如圖2所示。
每個(gè)USB設(shè)備內(nèi)有一個(gè)或多個(gè)邏輯連接點(diǎn),稱為端點(diǎn)(endpoint)。端點(diǎn)是一個(gè)儲(chǔ)存多個(gè)字節(jié)的緩沖器,用來作為數(shù)據(jù)的緩沖區(qū),設(shè)備通過端點(diǎn)和主機(jī)交換數(shù)據(jù)。每一個(gè)設(shè)備端點(diǎn)由一個(gè)端點(diǎn)號(hào)碼和數(shù)據(jù)方向組成,號(hào)碼范圍從00h到0Fh,方向如果為輸入(IN),表示流向主機(jī),如果為輸出(OUT),表示流出主機(jī)。端點(diǎn)0被用來傳送配置和控制信息,可以雙向傳輸數(shù)據(jù),其它端點(diǎn)均為單向的數(shù)據(jù)通道,即為接收端點(diǎn)或發(fā)送端點(diǎn)。USB提供有四種數(shù)據(jù)傳輸方式:控制(Control);同步(isochronous);中斷(interrupt);批量(bulk)。除端點(diǎn)0固定使用控制傳輸外,其它端點(diǎn)可根據(jù)實(shí)際傳輸數(shù)據(jù)的特點(diǎn)配置為其它三種傳輸方式。
對(duì)于相同性質(zhì)的一組端點(diǎn)的組合稱為接口(interface),如果一個(gè)設(shè)備包含不止一個(gè)接口就稱之為復(fù)合設(shè)備(composite device)。對(duì)大部分設(shè)備,一個(gè)接口就足夠了,但有些設(shè)備可以同時(shí)有多個(gè)作用的接口,且多個(gè)接口可同時(shí)使能。同樣,對(duì)于相同類型的接口組合稱為配置(configuration)。每個(gè)配置至少必須支持一個(gè)接口。大部分設(shè)備只有一個(gè)配置,但有些設(shè)備可支持多個(gè)配置,但在同一時(shí)間只有一個(gè)配置使能,一旦該配置激活,里面的接口和端點(diǎn)就都可以使用。描述符(Descriptor)是一個(gè)數(shù)據(jù)結(jié)構(gòu),是主機(jī)了解設(shè)備的格式化信息。主機(jī)在檢測(cè)設(shè)備的時(shí)候,要求設(shè)備傳回描述符以便了解設(shè)備并配置該設(shè)備,主機(jī)要求的首先是設(shè)備的設(shè)備描述符,然后是配置描述符以及每個(gè)配置的接口描述符,最后是端點(diǎn)描述符,還可能有可選的字符串描述符。
4 人機(jī)交互模塊
為給用戶提供一個(gè)良好的人機(jī)交互界面,本開發(fā)平臺(tái)上設(shè)計(jì)了一個(gè)由液晶顯示模塊和觸摸屏控制模塊組成的人機(jī)交互模塊,如圖3所示。液晶顯示模塊由LCD(液晶顯示)屏、LCD控制器和顯示緩沖存儲(chǔ)器三部分組成,其中LCD屏選用信利公司的MG320240型黑白液晶顯示屏,其上覆蓋有四線電阻式觸摸屏,LCD控制器選用EPSON公司的S1D13305芯片,顯示緩沖存儲(chǔ)器采用兩片62L256構(gòu)成,共64KB;觸摸屏控制模塊中的觸摸屏控制器采用BB公司的ADS7846,在ADS7846和MMC2107之間通過標(biāo)準(zhǔn)的SPI口相連。
4.1 液晶顯示模塊
S1D13305支持文本(即字符)顯示、圖形顯示以及文、圖相結(jié)合的顯示模式;LCD顯示分辨率可達(dá)640×256像素;LCD驅(qū)動(dòng)的占空系數(shù)變化范圍為1/2~1/256;內(nèi)部掩模有一個(gè)具有160字符、5×7像素點(diǎn)陣的字符發(fā)生器ROM;支持在片外設(shè)置一個(gè)具有256字符、最大達(dá)8×16象素點(diǎn)陣的字符發(fā)生器ROM或RAM;片外的顯示RAM(又稱顯示緩沖區(qū))可達(dá)64KB;光標(biāo)位置及形狀可編程控制;全部顯示屏面或部分顯示屏面可以在水平或豎直方向上平滑滾動(dòng);可以與6800系列和8080系列微控制器相接口;寬工作電壓范圍(2.7~5.5V);功耗低,在VDD=3.5V時(shí)工作電流為3.5mA,后備電流為0.05μA。
S1D13305有三方面的接口:微控制器、顯示存儲(chǔ)器(包括外部的字符發(fā)生器)和LCD模塊。它接受并執(zhí)行微控制器的命令,來完成各種顯示控制功能,共13種命令。它把顯示數(shù)據(jù)(字符代碼或位映射圖形數(shù)據(jù))從微控制器接收過來并產(chǎn)生寫訪問存儲(chǔ)器的信號(hào),把顯示數(shù)據(jù)寫入顯示存儲(chǔ)器,然后把顯示數(shù)據(jù)讀出轉(zhuǎn)化為顯示象素并生成LCD的各種時(shí)序信號(hào),把顯示象素?cái)?shù)據(jù)送給LCD顯示。微控制器只需向S1D13305發(fā)命令,在更新顯示內(nèi)容時(shí)向S1D13305送顯示數(shù)據(jù)即可,讀/寫顯示存儲(chǔ)器以及控制LCD掃描顯示的工作均由S1D13305來完成。
S1D13305可以與8080或6800兩種類型的微處理器接口,這里根據(jù)MMC2107的接口要求,選擇前者。在設(shè)計(jì)時(shí),S1D13305的數(shù)據(jù)線與MMC2107的數(shù)據(jù)線D[31:24]相連,S1D13305的地址A0與MMC2107的地址線ADDR1相連,用片選3(CS3#)作為S1D13305的片選信號(hào),在程序中,命令端口地址和數(shù)據(jù)端口地址定義如下:
#define lcd_command (*(INT8U*)(0x81800002)) // 命令端口
#define lcd_data (*(INT8U*)(0x81800000)) // 數(shù)據(jù)端口
4.2 觸摸屏模塊
ADS7846除了基本的X、Y坐標(biāo)測(cè)量功能外,還可測(cè)量系統(tǒng)供電電池電壓、芯片溫度、觸摸壓力和外模擬量。ADS7846的核心是一個(gè)12位的逐次逼近式A/D轉(zhuǎn)換器。內(nèi)部的6選1模擬多路開關(guān)根據(jù)微控制器送來的控制字,將X+、Y+、Y-、VBAT(電池電壓)、TEMP(溫度)和AUXIN(外模擬量)中的一個(gè)送入A/D轉(zhuǎn)換器。ADS7846可以對(duì)A/D轉(zhuǎn)換提供2.5V的內(nèi)參考電壓,也支持從VREF引腳輸入外參考電壓。
ADS7846與微控制器之間通過標(biāo)準(zhǔn)的SPI接口相連,它與微控制器完成一次通信需要3次SPI傳送。比如進(jìn)行坐標(biāo)測(cè)量,微控制器先按控制字格式傳送一條讀坐標(biāo)命令,ADS7846收到命令的同時(shí)進(jìn)行相應(yīng)坐標(biāo)的測(cè)量和A/D轉(zhuǎn)換,然后微控制器啟動(dòng)2次SPI讀,得到坐標(biāo)值,第一次讀得前7位數(shù)據(jù),第二次讀得后5位數(shù)據(jù)。ADS7846還設(shè)置有觸摸識(shí)別電路,當(dāng)檢測(cè)到有觸摸時(shí),該電路輸出一個(gè)低電平信號(hào),稱為PENIRQ#(筆中斷),微控制器可以用這個(gè)信號(hào)作為ADS7846的中斷請(qǐng)求信號(hào)。無觸摸時(shí),PENIRQ#由外加的上拉電阻輸出為高。筆中斷變低后,MMC2107檢測(cè)到這個(gè)信號(hào)并發(fā)出啟動(dòng)轉(zhuǎn)換命令,在轉(zhuǎn)換期間,MMC2107必須維持筆中斷為低。
5 創(chuàng)新點(diǎn)總結(jié)
本文的創(chuàng)新點(diǎn)在于將各種微控制器與嵌入式微內(nèi)核實(shí)時(shí)操作系統(tǒng)有機(jī)結(jié)合起來,開發(fā) 了一個(gè)嵌入式開發(fā)平臺(tái),在此基礎(chǔ)上可以大大縮短了應(yīng)用系統(tǒng)的開發(fā)周期,減少了系統(tǒng)開發(fā)成本投入,降低了系統(tǒng)開發(fā)風(fēng)險(xiǎn)。同時(shí)有能滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求,在未來的移動(dòng)計(jì)算機(jī)平臺(tái)、信息家電、無線通信設(shè)備和工業(yè)/商業(yè)控制等領(lǐng)域都有十分廣泛的應(yīng)用前景。