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