《嵌入式系統(tǒng)設(shè)計》課程設(shè)計基于MCF5272的工業(yè)以太網(wǎng)控制器設(shè)計_第1頁
《嵌入式系統(tǒng)設(shè)計》課程設(shè)計基于MCF5272的工業(yè)以太網(wǎng)控制器設(shè)計_第2頁
《嵌入式系統(tǒng)設(shè)計》課程設(shè)計基于MCF5272的工業(yè)以太網(wǎng)控制器設(shè)計_第3頁
《嵌入式系統(tǒng)設(shè)計》課程設(shè)計基于MCF5272的工業(yè)以太網(wǎng)控制器設(shè)計_第4頁
《嵌入式系統(tǒng)設(shè)計》課程設(shè)計基于MCF5272的工業(yè)以太網(wǎng)控制器設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華 中 科 技 大 學(xué)研究生課程考試答題本考生姓名 考生學(xué)號 系、年級 計算機學(xué)院碩士051班 類 別 碩士(非定向) 考試科目 嵌入式系統(tǒng)設(shè)計 考試日期 評 分題 號得 分題 號得 分總分:評卷人:注:1、無評卷人簽名試卷無效。2、必須用鋼筆或圓珠筆閱卷,使用紅色。用鉛筆閱卷無效。嵌入式系統(tǒng)設(shè)計課程設(shè)計任務(wù)書2006年3月31日一 考核方式根據(jù)本課程教學(xué)大綱“鼓勵通過做針對特定系統(tǒng)的嵌入式系統(tǒng)設(shè)計方式進行考核”精神,本次考試的考核采用“嵌入式系統(tǒng)設(shè)計”方式進行。二 題目鼓勵研究生根據(jù)所在課題組的嵌入式系統(tǒng)方面的實際課題進行本課程設(shè)計的選題。所選題目、設(shè)計任務(wù)、設(shè)計內(nèi)容均須征得研究生的導(dǎo)師和本

2、課程的任課教師的同意。允許不受下面規(guī)定內(nèi)容的約束,根據(jù)實際課題的需要,有側(cè)重的進行嵌入式系統(tǒng)硬件、或者嵌入式系統(tǒng)軟件方面的設(shè)計,但是設(shè)計工作量必須與下面提出的要求相當。如果課題組沒有實際課題,可以由研究生根據(jù)本課程內(nèi)容和本人所學(xué)專業(yè)的研究情況自行擬定題目。如:溫度測量嵌入式系統(tǒng)設(shè)計、光電系統(tǒng)中的嵌入式系統(tǒng)設(shè)計、嵌入式internet網(wǎng)關(guān)系統(tǒng)設(shè)計等等。課程設(shè)計不得涉密。三 設(shè)計內(nèi)容(非實際課題)設(shè)計內(nèi)容應(yīng)該包括:(1) 概述 簡述所設(shè)計系統(tǒng)的發(fā)展歷史、發(fā)展現(xiàn)狀、發(fā)展方向等。(2) 系統(tǒng)原理 詳細描述該系統(tǒng)的工作原理,設(shè)計依據(jù),設(shè)計方法、技術(shù)路線、實時性要求及相關(guān)的調(diào)度、控制、處理、各種不同方案的

3、比較與論證等。(3) 硬件系統(tǒng)設(shè)計 包括:嵌入式處理器選型設(shè)計、存儲系統(tǒng)設(shè)計(程序存儲、動態(tài)存儲、容量、地址分配、讀寫控制等)、接口設(shè)計(串口、并行口、鍵盤、顯示、a/d口、d/a口、讀寫控制等)、端口地址譯碼(設(shè)備片選信號、設(shè)備端口地址等)、電路設(shè)計(電源、去耦、放大、濾波、光電隔離等)、元器件選型設(shè)計、元器件和電路參數(shù)計算。(4) 硬件系統(tǒng)電路原理圖 用protel繪出硬件系統(tǒng)電路原理圖。(5) 軟件系統(tǒng)設(shè)計 包括軟件實時環(huán)境支撐(如:有沒有實時操作系統(tǒng)支持)、嵌入式系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu)(如:常量、變量、結(jié)構(gòu)、棧、隊列、鏈表等)、程序結(jié)構(gòu)(如:主程序、子例程、實時響應(yīng)和實時調(diào)度的程序、中斷處

4、理及中斷服務(wù)子例程等的結(jié)構(gòu))、軟件算法(rm、edf等)。可以用流程圖、偽碼等詳細描述,并且輔之以必要的文字說明和解釋。不要求實際編程,但鼓勵用c語言實現(xiàn)。四 評分標準(非實際課題)(1) 概述部分滿分10分。其中:發(fā)展歷史滿分2分、發(fā)展現(xiàn)狀滿分3分、發(fā)展方向滿分3分、其他滿分2分。(2) 系統(tǒng)原理部分滿分15分。其中:工作原理滿分5分、設(shè)計依據(jù)和設(shè)計方法滿分5分、其他滿分5分。(3) 硬件系統(tǒng)設(shè)計部分滿分25分。其中:嵌入式處理器選型設(shè)計滿分5分、存儲系統(tǒng)設(shè)計滿分5分、接口設(shè)計(包括端口地址譯碼)滿分10分(必需包括鍵盤、顯示、a/d轉(zhuǎn)換部件)、其他滿分5分。(4) 硬件系統(tǒng)電路原理圖部分滿

5、分10分。凡不用protel繪出硬件系統(tǒng)電路原理圖者本部分得0分。(5) 軟件系統(tǒng)設(shè)計部分滿分30分。其中:嵌入式系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu)滿分7分、程序結(jié)構(gòu)滿分10分、軟件算法滿分8分、其他滿分5分。(6)系統(tǒng)實現(xiàn) 滿分10分五 時間安排 2006年7月1日上午9:00將設(shè)計報告交到任課老師實驗室(保衛(wèi)處一樓西邊),并且履行簽收手續(xù)。六 規(guī)定1 全部設(shè)計內(nèi)容請打印到答題本上或者打印到其他紙張然后粘貼到答題本上。2 提交設(shè)計內(nèi)容軟盤。3 只有答題本上內(nèi)容才能作為評分依據(jù)。4 自行打印本任務(wù)書并夾在答題本內(nèi)?;趍cf5272的工業(yè)以太網(wǎng)控制器設(shè)計李艷國 華中科技大學(xué)計算機學(xué)院1 概述工業(yè)以太網(wǎng),是指技

6、術(shù)上與商用以太網(wǎng)(即ieee802.3標準)兼容,但在產(chǎn)品設(shè)計時,在材質(zhì)的選用、產(chǎn)品的強度、適用性以及實時性等方面能滿足工業(yè)現(xiàn)場的需要。簡言之,工業(yè)以太網(wǎng)是將以太網(wǎng)應(yīng)用于工業(yè)控制和管理的局域網(wǎng)技術(shù)。傳統(tǒng)的控制系統(tǒng)在消息層大都采用以太網(wǎng),而在控制層和設(shè)備層則采用不同的現(xiàn)場總線或其他專用網(wǎng)絡(luò)。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與普及推廣,ethernet技術(shù)也得到了迅速的發(fā)展,ethernet傳輸速率的提高和ethernet交換技術(shù)的發(fā)展,給解決ethernet通信的非確定性問題帶來了希望,目前以太網(wǎng)已經(jīng)滲透到了控制層和設(shè)備層,開始成為現(xiàn)場控制網(wǎng)絡(luò)的一員??刂凭W(wǎng)絡(luò)的發(fā)展,其基本趨勢是逐漸趨向于開放性、透明的通訊

7、協(xié)議以及能夠方便的和信息網(wǎng)絡(luò)融合、實現(xiàn)資源共享,工業(yè)以太網(wǎng)技術(shù)就是適應(yīng)這一需要而迅速發(fā)展起來的控制網(wǎng)絡(luò)技術(shù)。以太網(wǎng)技術(shù)在控制網(wǎng)絡(luò)和實現(xiàn)一般基于兩種方式,其以是采用嵌入式網(wǎng)關(guān)的以太網(wǎng)和現(xiàn)場總線的混合控制網(wǎng)絡(luò),它在一定程度上解決了現(xiàn)場總線在控制系統(tǒng)的分散性和開放性問題,比較適合改造現(xiàn)有的現(xiàn)場總線網(wǎng)絡(luò);其二就是嵌入式internet網(wǎng)絡(luò),實現(xiàn)嵌入式internet的基礎(chǔ)是嵌入式處理器、嵌入式操作系統(tǒng)和接入internet的通信協(xié)議。 早期的控制器都是基于現(xiàn)場應(yīng)用而設(shè)計的,網(wǎng)絡(luò)處理能力不強,隨著工業(yè)控制系統(tǒng)的發(fā)展,對現(xiàn)場控制要求實現(xiàn)的功能復(fù)雜、可靠性高,網(wǎng)絡(luò)信息處理能力越來越強。嵌入式處理器和嵌入式操

8、作系統(tǒng)的出現(xiàn),為解決復(fù)雜的工業(yè)以太網(wǎng)應(yīng)用提供了可靠的保障。工業(yè)控制是嵌入式系統(tǒng)應(yīng)用的一個典型領(lǐng)域,對控制器的研究多數(shù)是基于嵌入式技術(shù)的。 國內(nèi)傳統(tǒng)的控制器是以單芯片為核心的可編程控制器形式的系統(tǒng),同時具有與監(jiān)測、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些專業(yè)性很強的工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持,通過匯編語言編程對系統(tǒng)進行直接控制,運行結(jié)束后清除內(nèi)存。這樣的控制器系統(tǒng)結(jié)構(gòu)和功能都相對單一,處理效率較底,存儲容量較小,幾乎沒有用戶接口,系統(tǒng)維護性、可移植性不高,已經(jīng)不能適應(yīng)高效的、需要大容量存儲介質(zhì)的現(xiàn)代化工業(yè)控制的需求。 目前,國內(nèi)外針對嵌入式網(wǎng)絡(luò)控制器的研究日漸興起,不過它

9、們多是針對特定的應(yīng)用領(lǐng)域,不如環(huán)境檢測、網(wǎng)絡(luò)通信、醫(yī)療電子、視頻電話等,不具備工業(yè)現(xiàn)場控制器的通用性。在嵌入式技術(shù)和控制網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,嵌入式網(wǎng)絡(luò)控制器應(yīng)該具備如下特點:集成輸入輸出i/o點,能夠?qū)崿F(xiàn)現(xiàn)場控制;集成顯示和操作模塊,能夠?qū)崿F(xiàn)現(xiàn)場狀態(tài)顯示以及人機操作功能;具有多種網(wǎng)絡(luò)接口,可以和周圍設(shè)備互連組成控制網(wǎng)絡(luò);具有低成本的ethernet接口,能夠?qū)崿F(xiàn)遠程監(jiān)測和控制功能;控制系統(tǒng)穩(wěn)定可靠,可以實現(xiàn)網(wǎng)絡(luò)冗余控制;集成嵌入式操作系統(tǒng),支持多任務(wù)調(diào)度等。因此,研究基于嵌入式系統(tǒng)和控制網(wǎng)絡(luò)技術(shù)的嵌入式網(wǎng)絡(luò)控制器,是當前控制系統(tǒng)發(fā)展的一個趨勢。2 系統(tǒng)原理以太網(wǎng)在局域網(wǎng)中大量應(yīng)用總線型結(jié)構(gòu)

10、,這種結(jié)構(gòu)在辦公網(wǎng)絡(luò)中不會出現(xiàn)什么問題,而如果應(yīng)用到實時性、可靠性要求都高得多的工業(yè)現(xiàn)場領(lǐng)域,很有可能導(dǎo)致重大的現(xiàn)場事故。所以以太網(wǎng)要應(yīng)用到現(xiàn)場領(lǐng)域,必須解決好帶寬、可靠性、數(shù)據(jù)交換等問題,必須克服現(xiàn)場惡劣環(huán)境帶來的負面影響,針對這些問題,必須提出一種可行的工業(yè)以太網(wǎng)控制系統(tǒng)體系結(jié)構(gòu)。如圖1所示,工業(yè)以太網(wǎng)控制器之間、其他設(shè)備之間的通信都通過以太網(wǎng)交換機,這樣解決了帶寬問題,一定程度上也解決了由共享式以太網(wǎng)帶來的碰撞問題;為了增強網(wǎng)絡(luò)的可靠性,采用冗余環(huán)技術(shù);為了增加系統(tǒng)的擴展性和數(shù)據(jù)交換能力,采用了opc服務(wù)器。如果把企業(yè)的網(wǎng)絡(luò)分成三層:設(shè)備層、控制層和信息層,從圖1中可以看到,從設(shè)備層到控

11、制層,再到信息層,都采用以太網(wǎng),真正實現(xiàn)了企業(yè)辦公自動化(oa)網(wǎng)絡(luò)和工業(yè)自動化(ia)網(wǎng)絡(luò)的無縫連接,有利于企業(yè)的信息集成。圖1工業(yè)以太網(wǎng)控制系統(tǒng)體系結(jié)構(gòu)本課題要完成圖1中工業(yè)以太網(wǎng)控制器的設(shè)計,控制器的cpu采用motorola的mcf5272微處理器,控制器控制器具有a/d轉(zhuǎn)換接口、d/a轉(zhuǎn)換接口、以太網(wǎng)接口、rs232接口和usb接口,通過觸摸屏和lcd進行人機交互。控制器的操作系統(tǒng)采用嵌入式的uclinux,支持tcp/ip協(xié)議,實現(xiàn)控制信息的網(wǎng)絡(luò)化傳輸。工業(yè)以太網(wǎng)控制器由硬件和軟件兩大部分組成的,前者是整個系統(tǒng)的物理基礎(chǔ),它提供軟件運行平臺和通信(包括人機交互)接口,后者實際控制系

12、統(tǒng)的運行。2.1 工業(yè)以太網(wǎng)控制器設(shè)計原則 工業(yè)以太網(wǎng)控制器應(yīng)用于現(xiàn)代工業(yè)測量和控制,其設(shè)計遵循能夠?qū)崿F(xiàn)現(xiàn)場測控和網(wǎng)絡(luò)測控這兩個基本要求,具體實現(xiàn)以下幾個方面: 1工業(yè)以太網(wǎng)控制器用于現(xiàn)場測控,控制器應(yīng)該具有輸入輸出端口進行i/o讀寫,用于現(xiàn)場信號的測量和現(xiàn)場設(shè)備的驅(qū)動。 2工業(yè)以太網(wǎng)控制器用于現(xiàn)場測控,控制器應(yīng)集成現(xiàn)場顯示模塊和人機操作接口,使用戶能夠方便對其操作和維護。 3工業(yè)以太網(wǎng)控制器用于網(wǎng)絡(luò)測控,控制器需要集成當前流行的以太網(wǎng)接口。這樣能夠使控制器接入以太網(wǎng)網(wǎng)絡(luò),有利于實現(xiàn)遠程測控和信息資源的共享。 4工業(yè)以太網(wǎng)控制器實現(xiàn)網(wǎng)絡(luò)冗余控制,應(yīng)該具有通用rs232接口,能夠?qū)崿F(xiàn)控制器之間的

13、冗余切換。 5工業(yè)以太網(wǎng)控制器具有usb接口,可以和usb主機進行數(shù)據(jù)通訊。 6工業(yè)以太網(wǎng)控制器用于工業(yè)現(xiàn)場測控和遠程網(wǎng)絡(luò)測控,能夠解決一些復(fù)雜的多任務(wù)的處理工作,因此控制器需要移植嵌入式操作系統(tǒng),以此為基礎(chǔ)開發(fā)控制器系統(tǒng)應(yīng)用,使軟件開發(fā)簡單。2.2 控制器硬件平臺的選擇嵌入式開發(fā)硬件平臺的選擇主要是嵌入式處理器的選擇。當前嵌入式微處理器種類比較豐富,適合應(yīng)用于不同的領(lǐng)域。在一個系統(tǒng)中使用什么樣的嵌入式微處理器主要取決于應(yīng)用領(lǐng)域、用戶的需求、成本問題、開發(fā)的難易程度等因素。嵌入式微處理器很多種流行的處理器核,芯片生產(chǎn)廠家一般都基于這些處理器核生產(chǎn)不同型號的芯片,表1中列出了幾種常見的嵌入式處理

14、器內(nèi)核的特性。根據(jù)工業(yè)控制的應(yīng)用需求和成本估算,確定采用coldfire內(nèi)核的微處理器,coldfire有多種內(nèi)核結(jié)構(gòu),v2、v3、v 4等。它們適用于不同的環(huán)境中,v2適合使用于家庭網(wǎng)關(guān),工業(yè)控制,v3針對工業(yè)測控系統(tǒng),v4適用于多媒體處理技術(shù)。因此選擇了性價比較高的v2核處理器,內(nèi)部集成了dsp運算功能,以滿足設(shè)計要求。表1 常見的嵌入式處理器內(nèi)核內(nèi)核類型價格性能用途arm低中功耗低,用于便攜式設(shè)備dragon ball低低速度低,用于pda設(shè)備coldfire低中功耗低,用于工業(yè)控制,家用電器power pc高高通信、網(wǎng)絡(luò)等設(shè)備 coldfire v2是當前應(yīng)用比較廣泛的32位高性能嵌入

15、式risc處理器,三級流水線馮諾依曼結(jié)構(gòu)。coldfire v2核具有如下性能:變長精簡指令集;兩個獨立分離線程ifp和oep;三級流水線緩沖結(jié)構(gòu);32位的內(nèi)部地址總線提供4g的尋址空間;32位數(shù)據(jù)線;1個用戶可以訪問的32位通用寄存器;用戶態(tài)、特權(quán)態(tài)編程模式;向量基址寄存器分配異常向量表;優(yōu)化的代碼語言結(jié)構(gòu);全面調(diào)試支持。2.3 以太網(wǎng)控制器操作系統(tǒng)的選擇 在嵌入式系統(tǒng)的開發(fā)中,嵌入式軟件是實現(xiàn)系統(tǒng)功能的關(guān)鍵,也是計算機技術(shù)最活躍的研究方向之一。在進行軟件開發(fā)之前,必須做好嵌入式操作系統(tǒng)選型這關(guān)鍵一步。不同應(yīng)用對嵌入式軟件系統(tǒng)有不同的要求,并且隨著計算機技術(shù)的發(fā)展,這些要求也在不斷變化。通常

16、,應(yīng)用系統(tǒng)對嵌入式軟件的基本要求是體積小、執(zhí)行速度快,并具有較好的可裁剪性和可移植性。 嵌入式系統(tǒng)覆蓋面很廣,從很簡單到復(fù)雜度很高的都有,這主要是由具體應(yīng)用要求決定的。簡單的嵌入式系統(tǒng)沒有操作系統(tǒng),而只是一個控制循環(huán)。但是,當系統(tǒng)變得越來越復(fù)雜時,就需要一個嵌入式操作系統(tǒng)來支持,否則,應(yīng)用軟件就會變得過于復(fù)雜,使開發(fā)難度過大,安全性和可靠性都難于保證。 目前,嵌入式操作系統(tǒng)有多種,如何選擇一款既能滿足應(yīng)用要求,性能價格比又能達到最佳的實時操作系統(tǒng)使開發(fā)中的關(guān)鍵一步。嵌入式操作系統(tǒng)的選擇主要從一下幾個方面考慮: 1可移植性當進行嵌入式系統(tǒng)開發(fā)時,嵌入式操作系統(tǒng)的可移植性是重點考慮的部分。因為該操

17、作系統(tǒng)只有對該處理器提供支持,才能相對比較容易的實現(xiàn)移植。 2開發(fā)工具的支持程度選擇嵌入式操作系統(tǒng)時必須要考慮與之相關(guān)的開發(fā)工具。編譯器、匯編器、連接器等也都不同程度的影響著操作系統(tǒng)。 3應(yīng)用性能要求有的嵌入式操作系統(tǒng)的代碼只有幾kb,這樣可以大大節(jié)省系統(tǒng)的內(nèi)存空間,可以節(jié)約費用,這對嵌入式系統(tǒng)的開發(fā)是很重要的,但選用它必須滿足系統(tǒng)需求。所以選擇嵌入式操作系統(tǒng)時,一定要了解內(nèi)核中包括了什么。最小的內(nèi)核往往支持很少的特性,典型的配置可能產(chǎn)生大得多的內(nèi)核。 考慮上述各種因素之后,通常都可以找到一個合適的嵌入式操作系統(tǒng)?,F(xiàn)在市場上的商用型系統(tǒng)的費用都比較貴,考慮到成本問題,以及嵌入式操作系統(tǒng)對微處理

18、器的支持,借助網(wǎng)上免費資料移植嵌入式uclinux操作系統(tǒng)到工業(yè)以太網(wǎng)控制器中是一個不錯的選擇。 uclinux能夠?qū)oldfire內(nèi)核的微處理器提供很好的支持,uclinux具有如下特性:開放源代碼,豐富的軟件資源:內(nèi)核功能強大,性能高效、穩(wěn)定、多任務(wù):支持多種體系結(jié)構(gòu):完善的網(wǎng)絡(luò)通信,文件管理機制,內(nèi)嵌完整的tcp/ip協(xié)議棧:支持大部分的周邊外圍硬件設(shè)備,驅(qū)動豐富:大小功能都可以定制,內(nèi)核小于512kb,內(nèi)核和工具小于900kb??刂破饕詢?yōu)化改進的嵌入式uclinux為核心,結(jié)合大量模塊化集成的嵌入式領(lǐng)域新技術(shù),可以為工業(yè)測控系統(tǒng)提供一個性能優(yōu)良的網(wǎng)絡(luò)開發(fā)平臺和應(yīng)用平臺。3 硬件系統(tǒng)設(shè)

19、計 從圖2中可以看到,本設(shè)計選用mcf5272作為微處理器,具有以太網(wǎng)接口、usb接口、支持rs232的串口、lcd和觸摸屏、4mb的flash、16mb的sdram、2路d/a接口、8路a/d接口、電源、時鐘電路和復(fù)位電路。3.1 嵌入式處理器的選型設(shè)計 在選擇嵌入式處理器是,通常需要考慮系統(tǒng)外圍設(shè)備情況:總線的需求、是否有通用串行uart、是否有ethernet接口、是否有sfi總線、外設(shè)接口、是否需要i/o控制接口、是否需要a/d或者d/a轉(zhuǎn)換等。另外,還需要考慮處理器的尋址空間,有沒有片上的flash存儲器,處理器是否容易調(diào)試,仿真調(diào)試工具的成本和易用性等相關(guān)信息。 在實際過程中,選擇

20、硬件是一項復(fù)雜的工作,根據(jù)工業(yè)控制應(yīng)用的實際需求,最后選用了motorola公司的mcf5272微處理器。mcf5272是最高集成度的coldfire v2標準產(chǎn)品,它在最小的面積上把v2核設(shè)計成最大的代碼密度和性能。并且該微處理器性能優(yōu)良,集成了豐富的外圍器件和網(wǎng)絡(luò)接口,易于控制器外圍器件擴展,mcf5272的結(jié)構(gòu)如圖3所示。mcf5272微處理器以太網(wǎng)phyrj45usb接口rs232驅(qū)動器9針串口flash(4mb)2片am29lv160bsdram(16mb)2片hy57v651620btc108路a/d接口2路d/a接口lcd+觸摸屏電源時鐘電路復(fù)位電路圖2 以太網(wǎng)控制器硬件總體架構(gòu)

21、mcf5272新型外圍設(shè)備包括如下幾部分:快速以太網(wǎng)媒體存取控制mac,支持100mbps mii,10mbps mii和10mbps 7線實際接口;符合usb1. 1標準,可操作內(nèi)外收發(fā)器的設(shè)備控制器;時分多工tdm控制器,可使產(chǎn)品以物理級水平與外部編碼、isdn收發(fā)器以及其它使用gci (general circuit interface)或idli(interchip digital link)串行接口協(xié)議的外圍設(shè)備連接;多信道hdlc軟件模塊;qspi模塊,提供帶有序列傳輸性能的串行外圍接口;用于控制應(yīng)用的脈沖寬度調(diào)制(pwm)單元;mcf5272設(shè)備同時還提供許多嵌入式應(yīng)用產(chǎn)品所共有

22、的外圍產(chǎn)品,如sdram控制器、dma、計時器、uart、芯片選擇、通用i/o、片上存儲以及全局的coldfire除錯模塊,所有這些都采取高效節(jié)省的方式,從而減少系統(tǒng)成本,加速系統(tǒng)設(shè)計。因此,選用mcf5272微處理器使控制器易于擴展,提高性能。圖3 mcf5272芯片結(jié)構(gòu)3.2 存儲系統(tǒng)設(shè)計 在進行存儲系統(tǒng)的設(shè)計時,必須明確mcf5272的數(shù)據(jù)總線寬度和端口數(shù)據(jù)寬度的設(shè)置方式。mcf5272的數(shù)據(jù)總線支持16位和32位模式,當reset時檢測到qspi_dout/wsel為低電平時,數(shù)據(jù)總線寬度設(shè)為32位,當reset時檢測到qspi_dout/wsel為高電平時,數(shù)據(jù)總線寬度設(shè)為16位,在

23、本設(shè)計中用一個4.7千歐的下拉電阻將qspi_dout/wsel設(shè)置為低電平,將數(shù)據(jù)總線寬度設(shè)為32位。mcf5272有/cs0/cs7 共8個片選信號,這8個片選信號對應(yīng)的8個端口的數(shù)據(jù)寬度是可以配置的,/cs0/cs7分別對應(yīng)寄存器csbr0csbr7,寄存器csbr0csbr7中都有一個2位的bw字段,用來設(shè)置端口的數(shù)據(jù)寬度,csbr0的bw字段是沒有意義的,因為/cs0對應(yīng)端口的數(shù)據(jù)寬度是由qspi_cs0/busw1 和qspi_clk/busw0引腳的電平值決定,而/cs1/cs7對應(yīng)端口的數(shù)據(jù)寬度則由csbr1csbr7中的bw字段確定,reset后bw字段的值為“11”,對應(yīng)端

24、口的數(shù)據(jù)寬度缺省設(shè)置為cache line的32位寬模式,根據(jù)設(shè)計的需要,在初始化程序中向csbr1csbr7中的bw字段寫數(shù)據(jù),以確定對應(yīng)端口的數(shù)據(jù)寬度。 mcf5272內(nèi)嵌4kb的sram和16kb的rom,還需要在片外對存儲系統(tǒng)進行擴展,本設(shè)計用兩片amd公司的am29lv160b flash存儲器芯片構(gòu)成flash電路,用兩片現(xiàn)代公司的hy57v651620btc10 sdram芯片構(gòu)成sdram電路。 am29lv160b的基本特性包括:am29lv160b的單片存儲容量為16m位(2m字節(jié)),工作電壓為2.7v3 .6v,采用48腳tsop封裝或48腳fbga封裝,16位數(shù)據(jù)寬度,

25、可以以8位(字節(jié)模式)或16位(字模式)數(shù)據(jù)寬度的方式工作。am29lv160b僅需單3v電壓即可完成在系統(tǒng)的編程與擦除操作,通過對其內(nèi)部的命令寄存器寫入標準的命令序列,可對flash進行編程(燒寫)、整片擦除、按扇區(qū)擦除以及其他操作。 考慮到程序容量的擴展性,選用兩片am29lv160b構(gòu)成flash電路,對應(yīng)的片選信號分別為/cs0和/cs1,用于存放矢量表、uclinux嵌入式操作系統(tǒng)內(nèi)核映像,以及romfs文件系統(tǒng)、應(yīng)用程序、控制器狀態(tài)信息和現(xiàn)場采集的數(shù)據(jù)。兩片am29lv160b的byte#引腳都接高電平,將flash的數(shù)據(jù)寬度設(shè)置為16位的字模式,兩片am29lv160b的地址線a

26、19a0與mcf5272的地址總線a20a1連接,兩片am29lv160b的數(shù)據(jù)線dq15dq0與mcf5272的數(shù)據(jù)總線d31d16連接。當reset完成后,mcf5272會默認選中/cs0對應(yīng)的器件,從復(fù)位地址0x0處讀取ssp和pc指針,運行啟動代碼完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入sdram中運行,提高系統(tǒng)的運行速度。需要注意的是,雖然am29lv160b的byte#引腳接了高電平,flash數(shù)據(jù)寬度設(shè)為16位,但是mcf5272的/cs0和/cs1對應(yīng)端口的數(shù)據(jù)寬度也需要設(shè)置。前面已經(jīng)提到,/cs0對應(yīng)端口的數(shù)據(jù)寬度是由qspi_cs0/busw1 和qspi_clk/busw0

27、引腳的電平值決定,為了將/cs0對應(yīng)端口的數(shù)據(jù)寬度設(shè)置為16位,qspi_cs0/busw1 和qspi_clk/busw0分別連接4.7千歐的上拉電阻和下拉電阻,要將/cs1對應(yīng)端口的數(shù)據(jù)寬度設(shè)置為16位,csbr1寄存器的bw字段設(shè)為“10”。 sdram具有單位空間存儲容量大和價格便宜的優(yōu)點,已廣泛應(yīng)用到各種嵌入式系統(tǒng)中。與flash存儲器相比較,sdram不具有掉電保持數(shù)據(jù)的特性,但其存取速度大大高于flash存儲器,且具有讀寫屬性。因此,sdram在系統(tǒng)中主要用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。sdram采用現(xiàn)代公司的兩片hy57v651620btc10,容量為 4m 16bit,共同

28、組成8m32bit的系統(tǒng)主存儲器,該芯片常見封裝為54腳tsop,兼容lvttl接口,支持自動刷新和自刷新功能。mcf5272內(nèi)部集成sdram控制器,因此外圍電路設(shè)計簡單。兩片sdram的數(shù)據(jù)線分別接mcf5272的高16位和低16位數(shù)據(jù)總線,拼成32位的sdram使用,所以兩片sdram共享一個/cs7。3.3 以太網(wǎng)接口和串行接口設(shè)計從硬件角度看,以太網(wǎng)接口電路主要由mac控制器和物理層接口 (phy)兩大部分構(gòu)成。mcf5272內(nèi)嵌一個mac控制器,支持媒體獨立接口(mii)??稍诎腚p工或全雙工模式下提供10m/100mbps的以太網(wǎng)接入。在半雙工模式下,控制器支持csma/cd協(xié)議,

29、在全雙工模式下支持ieee802.3mac控制層協(xié)議。 mcf5272內(nèi)部包含了以太網(wǎng)mac控制模塊,但沒有提供物理層接口,所以需外接一片物理層芯片以提供完整的以太網(wǎng)接口電路。本設(shè)計選用realtek的rtl8201bl芯片作為以太網(wǎng)的物理層接口。mcf5272內(nèi)嵌帶mii接口的mac控制器,rtl8201bl也提供了mii接口,將mii接口對應(yīng)的信號連接起來就可以了。要注意rtl8201bl與rj45的連接,一般需要使用隔離變壓器對rtl8201bl與rj45進行隔離,本設(shè)計沒有選用專用的隔離變壓器,而是將rj45與隔離電路進行一體化設(shè)計,具體電路見附錄。 3.4 usb接口設(shè)計 mcf52

30、72包含usb模塊,能夠與usb主機(例如pc機)進行設(shè)備模式的數(shù)據(jù)通訊,mcf5272的usb模塊內(nèi)部包含一個usb收發(fā)器,mcf5272也為外接的usb收發(fā)器提供了接口,本著充分利用mcf5272已有的接口資源的原則,不使用外接的usb收發(fā)器,直接利用mcf5272內(nèi)含的usb收發(fā)器,在mcf5272外部使用一個如圖4所示的保護電路,構(gòu)成一個完整的usb接口。mcf5272的usb_d+和usb_d與保護電路連接;mcf5272的usb_clk引腳連接一個能產(chǎn)生48mhz時鐘信號的有源晶振。 圖4 usb接口保護電路3.5 a/d和d/a接口設(shè)計 模擬量輸入接口選用了高速低功耗、8通道、串

31、行12位max186模數(shù)轉(zhuǎn)換芯片,可以完成模擬量信號采集?,F(xiàn)場420ma測量信號經(jīng)過2000精密電阻變?yōu)?.84v電壓,進入max186的輸入通道。max186具有一個內(nèi)部4. 096v基準源,每一通道帶跟蹤/保持(t/h)電路,最高采樣頻率可達133kh。其sclk、din、dou、cs#引腳分別與mcf5272芯片的qspi_clk、 qspi_dout ,qspi_din,qspi_cs0相連。max186的控制字的寫入與轉(zhuǎn)換數(shù)據(jù)的輸出通過串行數(shù)據(jù)線完成,其各個輸入通道由控制字進行選擇。 max186支持單端和差分兩種模擬量輸入方式,當選擇單端模擬量輸入方式時,ch0為8路相對于模擬地(

32、agnd)的單端模擬輸入:當選擇差分模擬輸入方式時,ch0ch7分為四對模擬量輸入:ch0/ch1, ch2/ch3, ch4/ch5和ch6/ch7, ad轉(zhuǎn)換對兩個模擬量的差值電壓進行轉(zhuǎn)換。max186支持單雙極性轉(zhuǎn)換,單極性模擬量輸入范圍是0vref:雙極性模式下,輸入范圍為vref/2+vref/2.max186收到有效的cs#信號以后,就在每一個時鐘sclk的每一個上升沿把一個最高位為“1”的控制字節(jié)的各位送入輸入移位寄存器,控制器收到控制字節(jié)后,選擇控制字中給定的模擬通道并在sclk的下降沿啟動轉(zhuǎn)換。 模擬量輸出接口選用dac7612做為數(shù)模轉(zhuǎn)換器件,支持2通道12位,04.095

33、v模擬電壓輸出,能夠容納或接受5ma電流,低功耗。dac7612支持單一+5v供電,包括一個移位寄存器,鎖存,參考電壓2.435v。相對于ad轉(zhuǎn)換器件max186,da轉(zhuǎn)換芯片dac7612其控制邏輯相對比較簡單。dac7612數(shù)據(jù)通過sdi引腳傳送,開始兩位表示dac地址用來選擇輸出寄存器a/b,后面12位表示送往dac的12位數(shù)據(jù),從高位開始送入移位寄存器。 dac內(nèi)部采用雙緩沖結(jié)構(gòu),這樣新的數(shù)據(jù)不會影響進入dac的數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)從串行移位寄存器送入dac寄存器,loaddacs#引腳會產(chǎn)生一個有高到低的跳變信號。在傳輸數(shù)據(jù)的時應(yīng)該先置loaddacs#為高電平。dac7612和mcf52

34、72的qspi模塊連接,其clk、sdi、loaddacs#、cs#引腳分別與mcf5272芯片的qspi_clk、pa0、 qspi_din,qspi_cs1相連。需要注意的是,mcf52782通過gpio模塊的pa0控制dac的 loaddacs#,gpio模塊的信號都是與其他模塊的信號復(fù)用的,pa0是gpio口與usb模塊的usbtp信號復(fù)用,但是本設(shè)計中沒有使用外接的usb收發(fā)器,因此usbtp信號沒有使用,所以可以用pa0控制dac的 loaddacs#。 3.6 lcd接口設(shè)計 嵌入式網(wǎng)絡(luò)控制器采用mtgs32240液晶顯示模塊,是臺灣微端公司的一種中等顯示規(guī)模的黑白液晶顯示模塊,

35、320點240行,占空系數(shù)1/240,像點細膩,藍底白字,集成sed1335控制器,適合用于工業(yè)控制??刂破骷蒷cd顯示模塊,可以用于現(xiàn)場數(shù)據(jù)顯示和故障診斷。lcd顯示模塊和cpu接口設(shè)計比較簡單,外部8位數(shù)據(jù)總線和mcf5272的數(shù)據(jù)總線的最高8位連接。片選信號連接mcf5272的/cs6,當訪問lcd顯示模塊時,設(shè)置/cs6對應(yīng)端口的數(shù)據(jù)寬度為8位。讀寫信號分別和cpu的讀寫信號相連接。為了能夠和motorola的cpu進行通信,應(yīng)使lcd顯示模塊的sel1接高電平,sel2接地。 mtgs32240中集成了日本seikoepson公司sed1335液晶控制器。sed1335具有功能較強

36、的i/o緩沖器,微控制器在訪問sed1335時不需判斷其是否“忙”,sed1335隨時準備接受mcf5272的訪問并在內(nèi)部時序下及時的把微控制器發(fā)送來的指令和數(shù)據(jù)傳輸就位。 sed1335接口引腳有db0db7直接掛在微控制器數(shù)據(jù)總線上,其cs片選信號低電平有效;a0:i/o緩沖器選擇信號,a0=1,寫指令代碼和讀數(shù)據(jù),a0=0寫數(shù)據(jù)參數(shù)和讀忙標志;/rd是讀使能信號;/wr是寫操作信號;/res是復(fù)位信號,低電平有效;sel1,sel2接口類型選擇信號,sed1335可以與具有8080類微處理器的微控制器接口,也可以與具有6800類微處理器的微控制器接口,mcf5272是6800類微處理器。

37、因此,設(shè)置sel1=1、sel2=0和mcf5272接口。 當顯示漢字時,需要用1616像素的點陣,一種方法時把漢字作為1616像素的圖形來顯示,一個漢字需要兩列816像素組成,共32個字節(jié),這32個字節(jié)數(shù)據(jù)應(yīng)按奇數(shù)字節(jié)的列的數(shù)據(jù)寫入sed1335的vram,然后對偶數(shù)字節(jié)進行同樣的操作;另一種方法就是使用漢字硬件字庫的方法,把漢字庫文件下載到第二片flash中,本設(shè)計選擇在flash中存放漢字字庫。3.7觸摸屏接口設(shè)計 觸摸屏附著在lcd顯示器的表面,與lcd顯示器配合使用,測量出觸摸點在屏幕上的坐標位置,則可根據(jù)顯示屏上對應(yīng)坐標點的顯示內(nèi)容或圖標獲知觸摸者的意圖。把觸摸屏應(yīng)用到工業(yè)以太網(wǎng)控

38、制器中,與lcd配合使用,將使現(xiàn)操作簡單易用。 觸摸屏輸入系統(tǒng)實際上是由觸摸屏控制器、觸摸屏和微控制器組成。觸摸屏控制器選用德州儀器公司的ads7846,觸摸屏選用四線式電阻觸摸屏,與mcf5272其的接口框圖如圖5所示。y-y-x-x+int1qspi_doutqspi_dinqspi_cs2qspi_clk mcf5272ads7846觸摸屏圖5 ads7846與mcf5272的接口框圖從圖中可以看出,中斷信號選用了mcf5272的/int1,因為即使在同等的優(yōu)先級下,/int1也具有最高的優(yōu)先權(quán),而觸摸屏作為人機交互的途徑,顯然應(yīng)該具有最高的優(yōu)先級。 觸摸屏輸入應(yīng)用中還要解決觸摸抖動和連

39、擊問題。采用延遲測量法,即在接收到觸摸屏筆中斷時延遲一段時間(抖動延時30ms)后再測量,可消除抖動;測量完后再次延遲一段時間(連擊延時300ms)后打開筆中斷,可避免連擊現(xiàn)象的出現(xiàn)。延遲的實現(xiàn)使用了mcf5272的可編程中斷定時器tmr1。在主程序中完成初始化qspi寄存器、可編程中斷定時器tmr1和筆中斷/int1。在筆中斷中主要完成關(guān)筆中斷,設(shè)置筆中斷標志和將定時計數(shù)值設(shè)置為抖動延時,在定時器中斷程序中實現(xiàn)坐標值的測量、延時功能。3.8 端口地址譯碼電路設(shè)計本設(shè)計沒有專門的端口地址譯碼電路,因為mcf5272提供了/cs0/cs7共8個片選信號,可以選擇8個端口,任何時候,最多只有1個/

40、cs信號有效,與此相對應(yīng),mcf5272內(nèi)部有csbr0csbr7和csor0csor7共16個寄存器,csbr寄存器中有一個20位的ba(base address)字段,csor寄存器中有一個20位的bam(base address mask)字段,當mcf5272要根據(jù)某個地址片選某個端口時,先讀取csor0和csbr0的bam字段和ba字段,根據(jù)bam字段的值取該地址的高若干位,然后將這若干位地址與ba字段的對應(yīng)位比較,如果相等,則有效對應(yīng)的/cs0信號,如果不相等,再讀取csor1和csbr1的bam字段和ba字段,直到命中為止,可見在端口地址譯碼的過程中,/cs0/cs7對應(yīng)的優(yōu)先級

41、別是從高到低的。舉一個例子,假設(shè)csor0寄存器的bam字段為“0xffe00”,表示要取32位地址的高11位進行比較,csbr0寄存器的ba字段為“0xff800”,某個32位地址為“0xff9a256b7”,取該地址的高11位“11111111100”與ba字段的高11位比較,正好相等,則/cs0信號有效。在reset完成后,寄存器csbr0csbr7和csor0csor7都有缺省值,/cs0信號有效,這些缺省值不一定滿足設(shè)計的需要,所以要在初始化程序中改變這些寄存器的值。由于mcf5272內(nèi)嵌了端口地址譯碼電路,所以本設(shè)計要做的只是在初始化程序中設(shè)置寄存器csbr0csbr7和csor0

42、csor7,為/cs引腳對應(yīng)的端口分配合適的地址空間。地址空間分配程序段如下:void init_chipselects() g_pchipselect-csbr0=0xff800201; /* chipselect0 - 2mb flash*/ g_pchipselect-csor0=0xffe00014; g_pchipselect-csbr1=0xff000201; /* chipselect1 - 2mb flash*/ g_pchipselect-csor1=0xffe00014; g_pchipselect-csbr2=0; g_pchipselect-csor2=0; g_pch

43、ipselect-csbr3=0; g_pchipselect-csor3=0; g_pchipselect-csbr4=0; g_pchipselect-csor4=0; g_pchipselecr-csbr5=0; g_pchipselect-csor5=0; g_pchipselect-csbr6=0xdooood01; /* chipselect 6 - lcd控制*/ g_pchipselect-csor6=0xfffffe50; g_pc11ipselect-csbr7=0x00000701; g_pc1flpselect-csor7 = 0xff0007c; /* chipsel

44、ect 7 - 16mb sdram*/3.9 電源電路設(shè)計本設(shè)計選用的芯片需要3.3v和5v兩種直流電源,選用了轉(zhuǎn)換效率比較高的lm2596-3.3和lm2596-5開關(guān)穩(wěn)壓電源芯片。lm2596是國家半導(dǎo)體公司的開關(guān)穩(wěn)壓芯片,具有150khz的開關(guān)頻率和3a的工作電流,可以滿足系統(tǒng)需要。lm2596的功能是將未穩(wěn)壓的直流電源轉(zhuǎn)換成一定電壓的理想直流電源,根據(jù)lm2596 datasheet提供的數(shù)據(jù),選擇lm2596的電源輸入為未穩(wěn)壓的12v直流輸入。lm2596需要的未穩(wěn)壓的12v直流電源由220v、50hz的交流電經(jīng)過變壓、整流和濾波后產(chǎn)生。進行l(wèi)cd接口電路的設(shè)計時需要注意,lcd的

45、驅(qū)動需要負壓輸入,本設(shè)計選用臺灣沛亨公司的aic1652產(chǎn)生可調(diào)負壓輸出,供lcd接口電路使用。此外,本設(shè)計選用的lcd模塊采用的是冷陰極熒光燈(ccfl)背光,而冷陰極熒光燈需要在高壓交流電的驅(qū)動下才能正常工作,通常需要將直流低壓電逆變?yōu)楦邏航涣麟姡鴐tg-s32240沒有提供ccfl逆變器,因此本設(shè)計選用了國產(chǎn)的tad165-4 ccfl逆變器為lcd的背光提供高壓交流電輸入。產(chǎn)生lcd驅(qū)動需要的負壓輸入和lcd背光需要的高壓交流電輸入的電路可以認為是電源設(shè)計的一部分,但由于其特定的應(yīng)用,在畫硬件系統(tǒng)電路原理圖時將這兩部分電路畫在了lcd接口電路中。3.10復(fù)位和時鐘電路設(shè)計本設(shè)計選用m

46、ax708tcsa芯片實現(xiàn)復(fù)位電路,具體電路如圖6所示。該復(fù)位電路的工作原理如下:在系統(tǒng)上電時,當vcc沒有達到3.3v時,系統(tǒng)處于復(fù)位狀態(tài),/reset輸出為低;當vcc的電壓達到高電平的門限電壓時,/reset端輸出為高電平,系統(tǒng)進入正常工作狀態(tài)。當按下s1時,/mr端接地,/reset也輸出為低,系統(tǒng)復(fù)位。圖6 復(fù)位電路 mcf5272的cpu外部時鐘輸入引腳clkin的輸入頻率范圍是從直流到66mhz,為了獲得最高性能,clkin的輸入采用66mhz時鐘,由66mhz的有源晶振產(chǎn)生。 mcf5272的usb模塊的usb_clk引腳需要48mhz時鐘輸入,由48mhz的有源晶振產(chǎn)生。 本

47、設(shè)計的rs232接口支持的最大數(shù)據(jù)傳輸率為120 kbit/s,rs232接口與uart模塊連接,uart模塊有一個外部時鐘輸入引腳urt_clk,這個引腳可以被屏蔽,urt_clk被屏蔽后,uart模塊使用mcf5272的cpu外部時鐘輸入clkin作為時鐘源,clkin在uart模塊內(nèi)部經(jīng)過分頻,從而支持120 kbit/s的數(shù)據(jù)傳輸率。因為uart模塊可以使用clkin作為時鐘輸入,所以為了簡化設(shè)計,不使用urt_clk,節(jié)省了一個有源晶振。 本設(shè)計選用的phy芯片rtl8201bl需要25mhz的時鐘輸入,該時鐘由25mhz的無源晶振提供。4軟件系統(tǒng)設(shè)計本設(shè)計選用uclinux作為操作

48、系統(tǒng),uclinux本身并不支持實時性,目前存在兩種不同的方案提供uclinux對實時性的支持,它們分別是rtlinux( rtl) 和rtai(real time application interface)。有了這兩種方案,uclinux可以應(yīng)用到對實時性要求較高的場合。開發(fā)uclinux通常用標準的gnu工具鏈。經(jīng)過修改的工具鏈支持一些高級特性,比如eip (execute-in-place)技術(shù),共享庫支持等。 uclinux與標準linux兼容,uclinux除了不能實現(xiàn)fork( ) 而是使用vfork() 外,其余uclinux的api函數(shù)與標準linux的完全相同。這并不是意味

49、著uclinux不能實現(xiàn)多進程,實際上uclinux多進程管理是通過vfork()來實現(xiàn)的,或者是子進程代替父進程執(zhí)行,直到子進程調(diào)用exit ( )函數(shù)退出,或者是子進程調(diào)用exec ( )函數(shù)執(zhí)行一個新的進程。大多數(shù)標準的linux應(yīng)用程序在從linux操作系統(tǒng)移植到uclinux系統(tǒng)時,幾乎不用做什么大的改動,就可以完全達到對一個嵌入式應(yīng)用程序的要求(例如合理的資源使用)。uclibc對libc(可用于標準linux的函數(shù)庫)做了修改為uclinux提供了更為精簡的應(yīng)用程序庫。uclinux帶有一個完整的tcp/ip協(xié)議,同時它還支持許多其他網(wǎng)絡(luò)協(xié)議。uclinux對于嵌入式系統(tǒng)來說是一

50、個網(wǎng)絡(luò)完備的操作系統(tǒng)。一般uclinux都自帶了常用的設(shè)備驅(qū)動,字符設(shè)備驅(qū)動的典型例子有串口驅(qū)動,打印驅(qū)動,usb設(shè)備驅(qū)動等,塊設(shè)備驅(qū)動的典型例子有romfs,jffs驅(qū)動,硬盤驅(qū)動等;以太網(wǎng)驅(qū)動的典型例子有fec驅(qū)動,用戶只需開發(fā)自己添加設(shè)備的驅(qū)動。 4.1 修改引導(dǎo)程序 引導(dǎo)程序在嵌入式uclinux中代碼量較小,但是作用較大。這里的引導(dǎo)程序包括兩個方面的內(nèi)容:引導(dǎo)內(nèi)核的bootloader和內(nèi)核自身的引導(dǎo)程序部分。bootloader是cpu開機后執(zhí)行的第一個程序,它的任務(wù)就是將內(nèi)核裝載到內(nèi)核要求的地址。內(nèi)核引導(dǎo)程序是指內(nèi)核運行前的一段代碼,也可以說是內(nèi)核初始化部分。比如初始化硬件,初始

51、化ram;把uclinux內(nèi)核中的數(shù)據(jù)段拷貝到ram中去;清空bss段等。使用bootloader啟動引導(dǎo)程序可以使系統(tǒng)做更多的事情,通過它可以初始化硬件,ram和系統(tǒng)的i/o設(shè)備等。同時它還可以裝載寫在flash上的不同內(nèi)核,或者通過外部設(shè)備傳輸過一個內(nèi)核并且裝載運行它??梢酝ㄟ^串口串口或者以太網(wǎng)口加載pc機上編譯好的uclinux內(nèi)核或者根文件系統(tǒng)。一般情況下bootloader都是固定的燒寫在flash上面并且一般采用鎖定的方法防止被擦除。作為系統(tǒng)啟動程序,最先要考慮的是cpu在加電的時候運行那個地址的代碼。本設(shè)計計劃選用motorola為coldfire設(shè)計的dbug程序作為uclin

52、ux啟動支持,它的任務(wù)是初始化硬件系統(tǒng),把uclinux拷貝到內(nèi)存處,然后從該處運行uclinux。它可以完成bootloader的所有任務(wù),支持從網(wǎng)絡(luò)上燒寫uclinux (image.bin)到flash中。dbug的源代碼可以motorola的網(wǎng)站上下載,針對本設(shè)計,只需要修改它的幾個初始化文件就可以用在目標系統(tǒng)上。 4.2 lcd驅(qū)動程序的設(shè)計uclinux的lcd控制芯片sed1335與內(nèi)核接口的驅(qū)動程序可分為三部分:與內(nèi)核接口,通過數(shù)據(jù)結(jié)構(gòu)file_operations來完成;與系統(tǒng)啟動代碼的接口,對設(shè)備進行初始化;與設(shè)備的接口,對設(shè)備的讀寫等操作。在uclinux操作系統(tǒng)中,系統(tǒng)

53、引導(dǎo)時,通過syse_setup(linux/fs/filesystems.c)進行系統(tǒng)初始化。sys_setup又調(diào)用device_setup進行設(shè)備初始化。lcd設(shè)備初始化由函數(shù)。chr_dev_init(linux/drivers/char/mem.c)調(diào)用初始化函數(shù)lcdset()。lcd控制芯片sed1335設(shè)備驅(qū)動程序設(shè)計具體步驟如下:(1) 在/dev/下用mknod手工創(chuàng)建一個設(shè)備,設(shè)備名即下面要注冊使用的設(shè)備名。即touchfb c 23 0。其中fb表示設(shè)備名稱,代表字符設(shè)備,23代表主設(shè)備號,0代表次設(shè)備號。uclinux自帶工具集中的genromfs工具會將fb自動轉(zhuǎn)換

54、為fb。(2) 在程序中定義一個file_operations結(jié)構(gòu),指定向上提供的接口操作。struct file_operationsread sed1335fb_read(),write sed1335fb_write(),ioctl sed1335fb_ioctl(),mmap sed1335fb_mmap(),open sed1335fb_open(),release sed1335fb_release(), sed1335fb_fops;此 設(shè)備 驅(qū) 動程序分為:read, write, ioctl, mmap, open和release等函數(shù)操作,這是構(gòu)成整個驅(qū)動程序的核心部分,實

55、現(xiàn)了與用戶空間操作的接口。編寫lcd初始化程序lcdset (),初始化lcd設(shè)備。(3) 驅(qū)動程序的注冊。實際上就是向內(nèi)核注冊lcd設(shè)備文件(主設(shè)備號/次設(shè)備號)及其一系列標準操作接口。注冊的工作就是向uclinux管理的設(shè)備鏈表中加入一個節(jié)點。注冊函數(shù)調(diào)用為:result=register_chrdev(sed1345fb_major,fb,&sed1335fb_fops),其中sed1345fbes_major登記lcd設(shè)備的主設(shè)備號;fb是lcd設(shè)備的名稱,sedl335fb_fops是lcd驅(qū)動程序?qū)崿F(xiàn)的文件操作集。4.3 觸摸屏驅(qū)動程序的設(shè)計本設(shè)計中,觸摸屏驅(qū)動程序采用字符設(shè)備方式

56、,其結(jié)構(gòu)如圖7所示。其中:中斷處理程序完成對觸摸屏觸摸點的位置讀??;ts-open()給觸摸屏驅(qū)動程序分配中斷源;ts-init()對mcf5272的qspi功能寄存器進行初始化;ts-ioctl()函數(shù)的功能是把從中斷處理程序中獲得的x、y方向的a/d轉(zhuǎn)換值賦給用戶空間的程序。touchscreendriver中斷處理程序ts_open()ts_init()ts_ioctl()圖7 觸摸屏驅(qū)動程序結(jié)構(gòu)在本系設(shè)計中,對觸摸屏操作過程為:當啟動uclinux操作系統(tǒng)時,完成其觸摸屏驅(qū)動程序的初始化,即完成ts-init()函數(shù)中的功能;當uclinux操作系統(tǒng)用戶空間的程序打開觸摸屏驅(qū)動程序時,即執(zhí)行驅(qū)動程序中ts-open()函

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論