<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于ARM處理器的MVB 2類(lèi)設(shè)備研究

          關(guān)于ARM處理器的MVB 2類(lèi)設(shè)備研究

          作者: 時(shí)間:2012-11-10 來(lái)源:網(wǎng)絡(luò) 收藏

          NucleusPlus操作系統(tǒng)的BSP初始化程序流程

            系統(tǒng)級(jí)驅(qū)動(dòng) 與系統(tǒng)軟件相關(guān)的驅(qū)動(dòng),這類(lèi)驅(qū)動(dòng)是操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅(qū)動(dòng)程序,他們的開(kāi)發(fā)要按照系統(tǒng)軟件的要求進(jìn)行。

            應(yīng)用級(jí)驅(qū)動(dòng) 與應(yīng)用程序相關(guān)的驅(qū)動(dòng),和操作系統(tǒng)無(wú)關(guān),由應(yīng)用決定。

            3.1.2 操作系統(tǒng)層

            操作系統(tǒng)層足嵌入式軟件的核心,是系統(tǒng)的軟件支持平臺(tái)。主要包括實(shí)時(shí)操作系統(tǒng)內(nèi)核、文件系統(tǒng)、電源管理、嵌入式GUI系統(tǒng)、嵌入式網(wǎng)絡(luò)系統(tǒng)。其中嵌入式內(nèi)核是基礎(chǔ)和必備的部分,主要完成任務(wù)調(diào)度、內(nèi)存管理、任務(wù)間通信、任務(wù)的同步與互斥、中斷管理、定時(shí)器等功能。本系統(tǒng)采用Nucleus Plus嵌入式操作系統(tǒng),能完全滿足MVB對(duì)于實(shí)時(shí)性、可靠性、完整性和有效性的要求。NucleusPlus采用了軟件組件的方法,每個(gè)組件具有單一而明確的目的,包括任務(wù)控制管理、內(nèi)存控制管理、定時(shí)器管理、中斷、系統(tǒng)診斷、I/O驅(qū)動(dòng)管理等16個(gè)組件。

            3.1.3 應(yīng)用軟件層

            應(yīng)用軟件層主要由多個(gè)相對(duì)獨(dú)立的應(yīng)用任務(wù)組成,每個(gè)應(yīng)用完成一個(gè)特定的工作,這里主要包括MVB協(xié)議棧軟件。MVB協(xié)議棧軟件在實(shí)時(shí)操作系統(tǒng)內(nèi)核的支持下,通過(guò)MVB驅(qū)動(dòng)模塊完成MVB網(wǎng)絡(luò)數(shù)據(jù)通信任務(wù)。用戶應(yīng)用可以利用MVB協(xié)議棧的接口函數(shù)訪問(wèn)需要的數(shù)據(jù)集,并利用收到或者發(fā)送的數(shù)據(jù)進(jìn)行相應(yīng)的控制或其他數(shù)據(jù)處理工作。

            3.2 實(shí)時(shí)協(xié)議

            每個(gè)網(wǎng)絡(luò)都要有與之相應(yīng)的網(wǎng)絡(luò)軟件在其上運(yùn)行,這些軟件被稱(chēng)為協(xié)議。在互聯(lián)網(wǎng)上運(yùn)行的協(xié)議我們稱(chēng)之為T(mén)CP/IP協(xié)議,在列車(chē)通信網(wǎng)上運(yùn)行的類(lèi)似TCP/IP的協(xié)議我們稱(chēng)之為實(shí)時(shí)協(xié)議(Real Time Protocol,RTP),實(shí)時(shí)協(xié)議為一個(gè)應(yīng)用與另一個(gè)應(yīng)用在列車(chē)通信網(wǎng)上的通信提供協(xié)議和服務(wù)。

            實(shí)時(shí)協(xié)議分層結(jié)構(gòu)如圖6所示。由圖中的分層結(jié)構(gòu)可知MVB實(shí)時(shí)協(xié)議包括過(guò)程變量通訊和消息數(shù)據(jù)通訊兩部分。由圖可知變量的協(xié)議和服務(wù)包括過(guò)程數(shù)據(jù)鏈路層接口(LPI)和變量的應(yīng)用層接口(AVI)。消息協(xié)議和服務(wù)包括消息數(shù)據(jù)鏈路層接口(LMI)、網(wǎng)絡(luò)層、傳送層、會(huì)話層、應(yīng)用層接口(AMI)。其中鏈路層接口又稱(chēng)為低層接口,他規(guī)定來(lái)自總線的服務(wù),應(yīng)用層接口又稱(chēng)為高層接口,他規(guī)定提供給應(yīng)用的應(yīng)用層接口。

          實(shí)時(shí)協(xié)議分層結(jié)構(gòu)

            3.3 消息通信機(jī)制及其實(shí)現(xiàn)

            MVB 2類(lèi)設(shè)備的主要特征是實(shí)現(xiàn)消息數(shù)據(jù)的發(fā)送和接收。消息通信中實(shí)時(shí)協(xié)議是由信使執(zhí)行的,他是作為獨(dú)立的進(jìn)程與應(yīng)用并行運(yùn)行。實(shí)時(shí)協(xié)議的網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層是由信使來(lái)執(zhí)行并實(shí)現(xiàn)的,信使與應(yīng)用層有一個(gè)消息應(yīng)用層接口(AMI),通過(guò)這個(gè)接口應(yīng)用可以調(diào)用信使的服務(wù)。同時(shí)信使與鏈路層也有一個(gè)接口:消息鏈路層接口(LMI),鏈路層通過(guò)這個(gè)接口向信使提供服務(wù)。在編程實(shí)現(xiàn)消息通信時(shí),只需要使用消息應(yīng)用層接口。

            用戶開(kāi)發(fā)程序來(lái)實(shí)現(xiàn)消息通信,就是使用消息應(yīng)用層接口中的接口函數(shù)來(lái)調(diào)用信使的各項(xiàng)功能,實(shí)現(xiàn)消息通信的應(yīng)用程序就是按照這個(gè)順序編寫(xiě)和執(zhí)行的。消息數(shù)據(jù)的實(shí)現(xiàn)程序的流程如圖7所示。

          消息數(shù)據(jù)的實(shí)現(xiàn)程序的流程

            4 結(jié) 語(yǔ)

            使用符合TCN標(biāo)準(zhǔn)的產(chǎn)品是開(kāi)發(fā)下一代新式列車(chē)的重要發(fā)展趨勢(shì),本文通過(guò)對(duì)IEC61375-1列車(chē)通訊網(wǎng)絡(luò)標(biāo)準(zhǔn)的研究,提出了MVB 2類(lèi)設(shè)備軟硬件的設(shè)計(jì)方案并完成了系統(tǒng)硬件各功能模塊設(shè)計(jì)和上層軟件的部分設(shè)計(jì),對(duì)MVB實(shí)時(shí)協(xié)議RTP和消息通信的機(jī)制也做了深入的研究,并給出了消息通信的編程實(shí)現(xiàn)方法。通過(guò)對(duì)基于的MVB 2類(lèi)設(shè)備的深入研究和功能設(shè)計(jì)實(shí)現(xiàn),不但為以后開(kāi)發(fā)更高類(lèi)別的MVB設(shè)備積累了經(jīng)驗(yàn),而且為進(jìn)一步自主開(kāi)發(fā)其他符合TCN標(biāo)準(zhǔn)的MVB產(chǎn)品提供了借鑒。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: ARM處理器 BSP 啟動(dòng)代碼

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();