版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章嵌入式系統(tǒng)開發(fā)平臺(tái)《單片機(jī)與嵌入式系統(tǒng)》2023/12/272第8章嵌入式系統(tǒng)開發(fā)平臺(tái)1.如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2.數(shù)據(jù)隊(duì)列3.串口驅(qū)動(dòng)4.MODEM接口模塊5.I2C總線模塊6.SPI總線模塊2023/12/2738.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)平臺(tái)的概念平臺(tái)是一個(gè)意義很廣泛的詞,要準(zhǔn)確的定義平臺(tái)不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺(tái)具有如下特點(diǎn):1、層次性2、服務(wù)性3、規(guī)范性4、通用性5、技術(shù)密度2023/12/2748.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)嵌入式系統(tǒng)中的開發(fā)平臺(tái)特點(diǎn):1、層次性層次性首先表現(xiàn)在平臺(tái)本身具有層次,高層的平臺(tái)是以低層平臺(tái)為基礎(chǔ)搭建起來(lái)的。還表現(xiàn)在每個(gè)層次的平臺(tái)的內(nèi)部還有層次性。越高層次平臺(tái)越容易使用,對(duì)使用者的要求也就越低。2、服務(wù)性平臺(tái)是為應(yīng)用服務(wù)的,沒(méi)有應(yīng)用的平臺(tái)是無(wú)意義的,沒(méi)有存在的必要。對(duì)于元器件來(lái)說(shuō),線路板就是它的應(yīng)用。而API是硬件平臺(tái)的應(yīng)用,應(yīng)用程序又是API的應(yīng)用。2023/12/2758.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)嵌入式系統(tǒng)中的開發(fā)平臺(tái)特點(diǎn):3、規(guī)范性當(dāng)一個(gè)平臺(tái)建立起來(lái)后,其對(duì)應(yīng)用的接口就具有一定的規(guī)范。一個(gè)軟件模塊一旦開發(fā)完畢,其接口函數(shù)及使用方法就確定了,應(yīng)用程序就需要按照規(guī)范使用。4、通用性平臺(tái)從來(lái)不是給一個(gè)應(yīng)用使用的。如果一個(gè)平臺(tái)只能給一個(gè)應(yīng)用使用,作為平臺(tái)來(lái)說(shuō),其設(shè)計(jì)是失敗的(盡管其作為最終應(yīng)用可能是成功的)。這是平臺(tái)的服務(wù)性決定的。5、技術(shù)密度平臺(tái)特別是商業(yè)平臺(tái)通常由相關(guān)領(lǐng)域的專家建立。這是因?yàn)樾枰m應(yīng)不同的應(yīng)用的要求,所以其需要的技術(shù)含量是很高的。2023/12/276應(yīng)用程序應(yīng)用程序接口電路板元器件層次性服務(wù)性規(guī)范性通用性技術(shù)密度本章重點(diǎn)介紹該層平臺(tái)的例子2023/12/2778.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)使用平臺(tái)開發(fā)的優(yōu)勢(shì)應(yīng)用程序接口這個(gè)嵌入式軟件開發(fā)平臺(tái)的提出和應(yīng)用是因?yàn)槠淠軌蚪鉀Q當(dāng)前及今后的嵌入式開發(fā)過(guò)程中出現(xiàn)的一些矛盾。使用嵌入式軟件開發(fā)平臺(tái)(API)開發(fā)的優(yōu)點(diǎn):縮短開發(fā)時(shí)間降低對(duì)開發(fā)人員的要求降低開發(fā)成本增加穩(wěn)定性和可靠性降低軟件對(duì)硬件變化的敏感性2023/12/2788.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)不適合使用平臺(tái)開發(fā)的場(chǎng)合極大批量的產(chǎn)品:這種產(chǎn)品往往要求硬件成本和生產(chǎn)成本最低化。而使用平臺(tái)開發(fā)不可避免帶來(lái)資源占用的增加,反映到硬件上就是成本的增加。沒(méi)有合適的平臺(tái)但產(chǎn)品需要盡快上市時(shí):開發(fā)平臺(tái)是需要時(shí)間的,甚至比當(dāng)前的項(xiàng)目的時(shí)間更長(zhǎng)。需要極度榨取硬件性能的場(chǎng)合:只有科學(xué)研究和一些一件一件制造的高價(jià)值產(chǎn)品(如巨型機(jī))需要這樣做。2023/12/2798.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)建立開發(fā)平臺(tái)的方法選擇操作系統(tǒng)(OS):基礎(chǔ)軟件平臺(tái)。建立軟件開發(fā)平臺(tái)(自己的API)首先需要選擇一個(gè)合適的操作系統(tǒng)——嵌入式操作系統(tǒng)。制定API規(guī)范及應(yīng)用程序:有了操作系統(tǒng),就可以制訂API規(guī)范和程序編寫規(guī)范了。這些規(guī)范一部分已經(jīng)被操作系統(tǒng)規(guī)定好了,另一部分需要自己制訂。獲取成熟的軟件模塊并修改適合制定的規(guī)范:開發(fā)人員可以通過(guò)各種途徑獲取成熟的軟件模塊,并修改為符合自己規(guī)范需要的模塊編寫自己的軟件模塊:通過(guò)外部途徑不一定能夠獲取所有必須的軟件模塊,此時(shí)就需要自己編寫軟件模塊了。2023/12/27108.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)編寫自己的軟件模塊因?yàn)殚_發(fā)平臺(tái)基于操作系統(tǒng),所以很可能多個(gè)任務(wù)和/或同時(shí)訪問(wèn)同一個(gè)API函數(shù)。這就需要API函數(shù)必須是可重入的。1、使用任務(wù)2、禁止然后允許中斷3、使用信號(hào)量4、使用數(shù)據(jù)隊(duì)列5、禁止然后允許任務(wù)調(diào)度6、使用一個(gè)任務(wù)作為模塊服務(wù)器7、復(fù)合方法2023/12/2711鍵盤掃描任務(wù)顯示任務(wù)用戶任務(wù)操作系統(tǒng)內(nèi)核通信通信8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)1、使用任務(wù)有一些設(shè)備需要CPU周期為其服務(wù),典型的是掃描顯示和掃描鍵盤。可以給它們分配相應(yīng)的任務(wù),與用戶任務(wù)一起調(diào)度。這樣,就可以使用任何任務(wù)間通信的方法實(shí)現(xiàn)。2023/12/2712任務(wù)A允許中斷禁止中斷中斷服務(wù)函數(shù)全局變量8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2、禁止然后允許中斷有一些設(shè)備需要的訪問(wèn)時(shí)間很短,如全局變量。它們可以通過(guò)禁止中斷——訪問(wèn)設(shè)備——允許中斷的方式編寫軟件模塊。2023/12/2713信號(hào)量訪問(wèn)獨(dú)享資源之前申請(qǐng)信號(hào)量其它任務(wù)申請(qǐng)信號(hào)量受阻,不能訪問(wèn)獨(dú)享資源獨(dú)享資源任務(wù)A任務(wù)B任務(wù)C信號(hào)量信號(hào)量申請(qǐng)成功后,可以訪問(wèn)獨(dú)享資源8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)3、使用信號(hào)量一些設(shè)備需要的訪問(wèn)時(shí)間比較長(zhǎng),使用方法2可能造成關(guān)中斷時(shí)間過(guò)長(zhǎng)。此時(shí)可以使用信號(hào)量來(lái)編寫軟件模塊。具體過(guò)程為申請(qǐng)信號(hào)量——訪問(wèn)設(shè)備——發(fā)送信號(hào)量。2023/12/2714任務(wù)A任務(wù)B任務(wù)C中斷服務(wù)函數(shù)
數(shù)據(jù)隊(duì)列8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)4、使用數(shù)據(jù)隊(duì)列有一些設(shè)備具有自己的中斷,典型的是串口輸出??梢岳孟㈥?duì)列將用戶任務(wù)需要的服務(wù)通過(guò)消息隊(duì)列排隊(duì)、緩沖起來(lái),利用中斷功能依次服務(wù)。2023/12/2715任務(wù)A允許任務(wù)切換禁止任務(wù)切換中斷服務(wù)函數(shù)獨(dú)享資源8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)5、禁止然后允許任務(wù)調(diào)度當(dāng)中斷服務(wù)程序不可能訪問(wèn)這個(gè)資源時(shí),可以使用本方法避免實(shí)現(xiàn)函數(shù)重入。但是不推薦用戶使用此方法。2023/12/27168.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)6、使用一個(gè)任務(wù)作為模塊服務(wù)器當(dāng)一個(gè)軟件模塊十分復(fù)雜,使用上述方法難以保證API函數(shù)可重入性時(shí),或軟件模塊需要在單任務(wù)環(huán)境和多任務(wù)環(huán)境都能夠使用時(shí),可以依照單任務(wù)的方式編寫,然后編寫一個(gè)任務(wù)作為服務(wù)器,由這個(gè)服務(wù)器直接操作這個(gè)軟件模塊,而其它的任務(wù)通過(guò)消息隊(duì)列等方式與之通訊,把需要的操作提交給服務(wù)器,而服務(wù)器通過(guò)消息郵箱等方式返回操作結(jié)果。服務(wù)器任務(wù)任務(wù)A任務(wù)B...任務(wù)N軟件包
數(shù)據(jù)隊(duì)列2023/12/27178.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)7、復(fù)合方法有一些驅(qū)動(dòng)程序比較復(fù)雜(例如通訊協(xié)議),可以結(jié)合兩種或兩種以上的方法實(shí)現(xiàn)。2023/12/2718硬件平臺(tái)A硬件平臺(tái)B硬件平臺(tái)C硬件驅(qū)動(dòng)A硬件驅(qū)動(dòng)B硬件驅(qū)動(dòng)C軟件模塊軟件模塊軟件模塊軟件模塊應(yīng)用于不同的硬件平臺(tái)時(shí),只需要修改相應(yīng)的硬件驅(qū)動(dòng)8.1如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)編寫自己的軟件模塊編寫軟件模塊有一個(gè)要注意的地方是:必須把與硬件相關(guān)的部分和與硬件無(wú)關(guān)的部分分開。這可以通過(guò)把與硬件相關(guān)的部分放在驅(qū)動(dòng)程序中實(shí)現(xiàn)。這樣,硬件變化時(shí)只需要重新編寫驅(qū)動(dòng)程序即可。驅(qū)動(dòng)程序也可以分層實(shí)現(xiàn)。也可以通過(guò)配置實(shí)現(xiàn),不過(guò)這有時(shí)不太容易實(shí)現(xiàn)。當(dāng)然可以合并使用。2023/12/2719第8章嵌入式系統(tǒng)開發(fā)平臺(tái)1.如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2.數(shù)據(jù)隊(duì)列3.串口驅(qū)動(dòng)4.MODEM接口模塊5.I2C總線模塊6.SPI總線模塊2023/12/27208.2數(shù)據(jù)隊(duì)列簡(jiǎn)介數(shù)據(jù)隊(duì)列一般用于數(shù)據(jù)緩存,可以用來(lái)平衡速率不同的兩個(gè)部件,使快速部件無(wú)需等待慢速部件。任務(wù)A任務(wù)B數(shù)據(jù)隊(duì)列任務(wù)A產(chǎn)生信息快而短促任務(wù)B處理信息相對(duì)較慢2023/12/27218.2數(shù)據(jù)隊(duì)列簡(jiǎn)介數(shù)據(jù)隊(duì)列一般是先入先出(FIFO)的,但本數(shù)據(jù)隊(duì)列可以配置為后入先出。本數(shù)據(jù)隊(duì)列是可配置可裁減的模塊,并且不依賴于操作系統(tǒng),可以在前后臺(tái)系統(tǒng)中使用。數(shù)據(jù)隊(duì)列使用的空間由用戶分配且由這個(gè)空間的地址唯一識(shí)別一個(gè)數(shù)據(jù)隊(duì)列。2023/12/27228.2數(shù)據(jù)隊(duì)列API函數(shù)
數(shù)據(jù)隊(duì)列軟件模塊包括的API函數(shù)API函數(shù)名功能簡(jiǎn)介QueueCreate
建立數(shù)據(jù)隊(duì)列QueueRead
獲取隊(duì)列中的數(shù)據(jù)QueueWrite
FIFO(先進(jìn)先出)方式發(fā)送數(shù)據(jù)QueueWriteFront
LIFO(后進(jìn)先出)方式發(fā)送數(shù)據(jù)QueueFlush
清空隊(duì)列QueueNData
取得隊(duì)列中已存儲(chǔ)數(shù)據(jù)的數(shù)目QueueSize取得隊(duì)列中總共可以存儲(chǔ)的數(shù)據(jù)數(shù)目2023/12/27238.2數(shù)據(jù)隊(duì)列API函數(shù)45673012數(shù)據(jù)隊(duì)列有效數(shù)據(jù)空間空閑數(shù)據(jù)空間QueueRead讀隊(duì)列中數(shù)據(jù)QueueWriteFIFO方式寫數(shù)據(jù)QueueWriteFrontLIFO方式寫數(shù)據(jù)QueueCreateQueueFlushQueueNDataQueueSize2023/12/2724第8章嵌入式系統(tǒng)開發(fā)平臺(tái)1.如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2.數(shù)據(jù)隊(duì)列3.串口驅(qū)動(dòng)4.MODEM接口模塊5.I2C總線模塊6.SPI總線模塊2023/12/27258.3串口驅(qū)動(dòng)簡(jiǎn)介在實(shí)際應(yīng)用中,嵌入式系統(tǒng)往往不是作為一個(gè)獨(dú)立的控制單元而存在,它還要和其它控制單元進(jìn)行通信。這些控制單元可以是另一個(gè)嵌入式系統(tǒng),也可以是PC機(jī)。如果雙方均遵循同樣的通訊協(xié)議,就可以互相通訊了。2023/12/27268.3串口驅(qū)動(dòng)API函數(shù)
串口驅(qū)動(dòng)軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡(jiǎn)介UART0Init初始化UART0UART0Putch發(fā)送一個(gè)字節(jié)數(shù)據(jù)UART0Write發(fā)送多個(gè)字節(jié)數(shù)據(jù)UART0Getch接收一個(gè)字節(jié)數(shù)據(jù)2023/12/2727UART0InitUART0Init8.3串口驅(qū)動(dòng)API函數(shù)
串口驅(qū)動(dòng)軟件模塊包括的API函數(shù)如下所示:主機(jī)A主機(jī)BUART0GetchUART0PutchUART0WriteTXDRXDUART0PutchUART0WriteUART0GetchTXDRXD2023/12/2728第8章嵌入式系統(tǒng)開發(fā)平臺(tái)1.如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2.數(shù)據(jù)隊(duì)列3.串口驅(qū)動(dòng)4.MODEM接口模塊5.I2C總線模塊6.SPI總線模塊2023/12/27298.4MODEM接口簡(jiǎn)介在實(shí)際應(yīng)用中,嵌入式系統(tǒng)和其它控制單元的通信可能不局限于一個(gè)小的地理范圍,如跨城市通訊甚至跨省通訊。此時(shí),如果需要布置專門的通訊線路則成本太高,利用現(xiàn)成的通訊網(wǎng)絡(luò)成為唯一的選擇。而電話網(wǎng)絡(luò)是目前分布最廣的廉價(jià)通訊網(wǎng)絡(luò)。不過(guò),要利用電話網(wǎng)絡(luò)需要一種接口設(shè)備,這就是MODEM。2023/12/27308.4MODEM接口模塊API函數(shù)
MODEM接口軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡(jiǎn)介ModemInit初始化MODEMGetModemState獲取MODEM狀態(tài)ModemWrite通過(guò)MODEM發(fā)送多個(gè)字節(jié)數(shù)據(jù)ModemGetch從MODEM獲取一個(gè)字節(jié)數(shù)據(jù)ModemDiaUP通過(guò)MDOEM撥號(hào)ModemDiaDown掛斷MODEM2023/12/27318.4MODEM接口模塊API函數(shù)
所有API函數(shù)的返回值為當(dāng)前MODEM的狀態(tài),如下所示:MODEM狀態(tài)狀態(tài)說(shuō)明NOT_INIT_MODEM不能初始化MODEMNOT_FIND_MODEM沒(méi)有找到MODEMMODEM_CLOSE連接關(guān)閉MODEM_RING發(fā)現(xiàn)振鈴信號(hào)MODEM_CONNECT已經(jīng)與對(duì)方連接上2023/12/2732ModemInitGetModemStateModemDiaUPModemDiaDownModemInitGetModemStateModemDiaUPModemDiaDown8.4MODEM接口模塊API函數(shù)ModemGetch獲取一字節(jié)數(shù)據(jù)ModemWrite發(fā)送多字節(jié)數(shù)據(jù)ModemWrite發(fā)送多字節(jié)數(shù)據(jù)ModemGetch獲取一字節(jié)數(shù)據(jù)2023/12/2733第8章嵌入式系統(tǒng)開發(fā)平臺(tái)1.如何建立嵌入式系統(tǒng)開發(fā)平臺(tái)2.數(shù)據(jù)隊(duì)列3.串口驅(qū)動(dòng)4.MODEM接口模塊5.I2C總線模塊6.SPI總線模塊2023/12/27348.5I2C總線模塊簡(jiǎn)介I2C總線由Philips公司推出,是近年來(lái)在微電子通信控制領(lǐng)域廣泛采用的一種新型總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少、控制方式簡(jiǎn)化、器件封裝形式小、通信速率較高等優(yōu)點(diǎn)。在主從通信中,可以有多個(gè)I2C總線器件同時(shí)接到I2C總線上,通過(guò)地址來(lái)識(shí)別通信對(duì)象。2023/12/27358.5I2C總線模塊簡(jiǎn)介I2C總線通過(guò)2根線——串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)——連接到總線上的任何一個(gè)器件,每個(gè)器件都應(yīng)有一個(gè)唯一的地址,而且都可以作為一個(gè)發(fā)送器或接收器。此外,器件在執(zhí)行數(shù)據(jù)傳輸時(shí)也可以被看作是主機(jī)或從機(jī)。RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2CBUS2023/12/27368.5I2C總線模塊API函數(shù)
I2C接口軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡(jiǎn)介I2CInit初始化I2C總線I2CWrite向I2C從器件寫數(shù)據(jù)I2CRead從I2C從器件讀數(shù)據(jù)2023/12/27378.5I2C總線模塊API函數(shù)RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2CBUSI2CWrite向從器件寫數(shù)據(jù)I2CRead讀取從器件數(shù)據(jù)I2CInit初始化I2C總線2023/12
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 可愛(ài)的草塘- 課件
- 《論文寫作》課程課件
- 內(nèi)蒙古鄂爾多斯西部四旗2025屆高三下第一次測(cè)試數(shù)學(xué)試題含解析
- 湖北省沙洋縣后港中學(xué)2025屆高考英語(yǔ)五模試卷含解析
- 浙江省樂(lè)清市知臨中學(xué)2025屆高三二診模擬考試英語(yǔ)試卷含解析
- 吉林省長(zhǎng)春二中2025屆高考數(shù)學(xué)四模試卷含解析
- 陜西省西安市長(zhǎng)安區(qū)2025屆高三下學(xué)期聯(lián)合考試數(shù)學(xué)試題含解析
- 2025屆天津五區(qū)縣高考考前提分語(yǔ)文仿真卷含解析
- 現(xiàn)代學(xué)徒制課題:市域產(chǎn)教聯(lián)合體與行業(yè)產(chǎn)教融合共同體內(nèi)開展現(xiàn)場(chǎng)工程師培養(yǎng)的機(jī)制創(chuàng)新研究(研究思路模板、技術(shù)路線圖)
- 2025屆四川省德陽(yáng)五中高考仿真卷語(yǔ)文試卷含解析
- 安徽工程大學(xué)《自然語(yǔ)言處理及應(yīng)用》2022-2023學(xué)年第一學(xué)期期末試卷
- 電路分析基礎(chǔ)知到智慧樹章節(jié)測(cè)試課后答案2024年秋太原理工大學(xué)
- 2024年室內(nèi)設(shè)計(jì)協(xié)議書
- 跨境TIR公路運(yùn)輸場(chǎng)景實(shí)測(cè)白皮書-中俄篇 2024
- 中儲(chǔ)糧西安分公司招聘真題
- 大學(xué)人工智能期末考試題庫(kù)
- 2024土方開挖工程合同范本
- 2024年統(tǒng)編版新教材語(yǔ)文小學(xué)一年級(jí)上冊(cè)全冊(cè)單元測(cè)試題及答案(共8單元)
- 企業(yè)年會(huì)的活動(dòng)策劃方案
- 部編 2024版歷史七年級(jí)上冊(cè)期末復(fù)習(xí)(全冊(cè))教案
- GB/T 44264-2024光伏組件清潔機(jī)器人通用技術(shù)條件
評(píng)論
0/150
提交評(píng)論