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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM處理器和Linux操作系統(tǒng)的電磁流量計(jì)設(shè)計(jì)方案

          基于ARM處理器和Linux操作系統(tǒng)的電磁流量計(jì)設(shè)計(jì)方案

          作者: 時(shí)間:2011-01-12 來源:網(wǎng)絡(luò) 收藏

            系統(tǒng)軟件結(jié)構(gòu),在系統(tǒng)的啟動(dòng)過程中有3 個(gè)主要軟件組件參與其中:引導(dǎo)加載程序、 內(nèi)核和Init進(jìn)程。其啟動(dòng)過程如下:

            (1) 系統(tǒng)在上電或Reset 之后,A T91RM9200 開始執(zhí)行存放在NOR FLASH( 系統(tǒng)將0x10000000 映射到0x 00000000,即 的復(fù)位向量) 中的引導(dǎo)加載程序。

            (2) 引導(dǎo)加載程序初始化CPU 和內(nèi)存控制器,對(duì)系統(tǒng)外設(shè)做最小程度的初始化,如初始化LED 和串口等,檢測(cè)內(nèi)存并匯報(bào)啟動(dòng)中的診斷信息,然后將內(nèi)核映像解壓到SDRAM 中的某個(gè)位置并跳轉(zhuǎn)到這個(gè)地址,把控制權(quán)交給 內(nèi)核。

            (3) Linux 的內(nèi)核接管執(zhí)行權(quán)后完成一系列的系統(tǒng)初始化和設(shè)置,包括設(shè)置中斷向量,啟動(dòng)內(nèi)存管理,初始化各個(gè)硬件設(shè)備,初始化網(wǎng)絡(luò)協(xié)議等,最后建立根文件系統(tǒng)并生成系統(tǒng)進(jìn)程之父Init 進(jìn)程。

            (4) Init 進(jìn)程負(fù)責(zé)啟動(dòng)所有必要的服務(wù)和用戶應(yīng)用程序,并進(jìn)入嵌入式系統(tǒng)的工作狀態(tài)。

            在嵌入式Linux 系統(tǒng)中,必須有固態(tài)存儲(chǔ)設(shè)備來存儲(chǔ)可執(zhí)行的代碼,本系統(tǒng)中采用了FLASH 存儲(chǔ)器。

            在該系統(tǒng)中,系統(tǒng)的存儲(chǔ)設(shè)備空間分配結(jié)構(gòu)如表1所示。

            表1 系統(tǒng)存儲(chǔ)空間分配結(jié)構(gòu)

            

          系統(tǒng)存儲(chǔ)空間分配結(jié)構(gòu)

            的應(yīng)用軟件是根據(jù)系統(tǒng)需求,以嵌入式Linux 內(nèi)核為基礎(chǔ),通過Linux 內(nèi)核的系統(tǒng)調(diào)用接口函數(shù)并按照模塊化結(jié)構(gòu)實(shí)現(xiàn)的。該系統(tǒng)的最大特色在于提供了人性化的彩色液晶顯示操作界面和以太網(wǎng)功能,因此在應(yīng)用軟件中是MiniGU 1 進(jìn)行的,同時(shí)Modbus 協(xié)議實(shí)現(xiàn)以太網(wǎng)功能。

            的應(yīng)用軟件整體構(gòu)架需要考慮多任務(wù)和實(shí)時(shí)性兩個(gè)方面問題。首先是A/ D 采樣和勵(lì)磁信號(hào)輸出必須要保證實(shí)時(shí)性和同步性,這一點(diǎn)可通過AT91RM9200 的兩個(gè)定時(shí)器來保證,其中一個(gè)定時(shí)器用于控制D/ A 輸出三值矩形方波,另一個(gè)定時(shí)器用于控制A/ D 采樣; 考慮到硬件電路的干擾,在應(yīng)用中首先啟動(dòng)D/ A 定時(shí)器,然后延遲1/ 8 勵(lì)磁周期再啟動(dòng)A/ D定時(shí)器。對(duì)于嵌入式Linux 下應(yīng)用軟件的多任務(wù),可以采用多進(jìn)程或多線程的方式來實(shí)現(xiàn)。應(yīng)用軟件的主程序流程圖如圖4 所示。

            

          應(yīng)用軟件的主程序流程圖

            圖4 應(yīng)用軟件的主程序流程圖

            4 系統(tǒng)測(cè)試

            由于采用了嵌入式系統(tǒng)的新技術(shù),特別是引入了32 位高性能 和嵌入式Linux ,系統(tǒng)除了具備的基本功能外,還具有更強(qiáng)大的功能如流量數(shù)據(jù)文件存儲(chǔ)、TFT 彩屏顯示以及以太網(wǎng)通訊等傳統(tǒng)儀表無法完成的功能。它可以顯示實(shí)時(shí)流量曲線和年、月、日、時(shí)、分、秒的實(shí)時(shí)時(shí)間; 采用FLASH 存儲(chǔ)器,測(cè)量和運(yùn)行數(shù)據(jù)存儲(chǔ)保護(hù)安全可靠;使用Modbus 通訊協(xié)議和TCP/ IP 協(xié)議,提高系統(tǒng)的網(wǎng)絡(luò)化程度。

            分別對(duì)系統(tǒng)的圖形用戶顯示操作界面、大容量的數(shù)據(jù)存儲(chǔ)以及基于Modbus/ TCP 協(xié)議網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)炔糠诌M(jìn)行功能測(cè)試。對(duì)嵌入式電磁流量計(jì)進(jìn)行了系統(tǒng)測(cè)試和實(shí)驗(yàn)。結(jié)果表明嵌入式電磁流量計(jì)不僅具有傳統(tǒng)電磁流量計(jì)的功能,而且具有流量曲線顯示的TFT 彩屏顯示操作界面、流量數(shù)據(jù)文件斷電存儲(chǔ)和管理以及基于Internet 的遠(yuǎn)程數(shù)據(jù)采集和遠(yuǎn)程控制功能。

            5 結(jié) 語

            儀器儀表的發(fā)展建立在新型檢測(cè)系統(tǒng)軟硬件平臺(tái)性能提高基礎(chǔ)之上。在傳統(tǒng)檢領(lǐng)域應(yīng)用很廣的8 位單片機(jī)系統(tǒng)由于其性能和資源的局限性,只能完成儀器儀表的基本功能。隨著微電子技術(shù)的發(fā)展及集成電路制造工藝的大幅提高,以高性能、低功耗、低成本等諸多優(yōu)點(diǎn)的32 位 的出現(xiàn)及其在儀器儀表中的應(yīng)用,使得儀器儀表更具智能化、人性化和網(wǎng)絡(luò)化。流量檢測(cè)儀表的顯示方式、通訊方式和數(shù)據(jù)存儲(chǔ)是儀表的重要組成部分。傳統(tǒng)電磁流量計(jì)在顯示方式上一般采用LED 或段式LCD,只能顯示數(shù)字、字母、漢字和一些粗糙的圖案; 在數(shù)據(jù)存儲(chǔ)方面,信息存儲(chǔ)一般以二進(jìn)制方式存儲(chǔ),不具有通用性且存儲(chǔ)容量小; 在通訊方式上,一般采用RS 232 或RS 485,其開放性不高。

            為了解決了上述不足,本文采用32 位的ARM 和嵌入式Linux 研制出了具有信息化、圖形化和網(wǎng)絡(luò)化的電磁流量計(jì)。它采用T FT 彩色液晶屏顯示方式,不僅可以顯示流量數(shù)據(jù)還可以顯示流量曲線,提高了顯示的質(zhì)量和內(nèi)容; 通過JFFS2 文件系統(tǒng)采用文件的方式進(jìn)行數(shù)據(jù)存儲(chǔ),且存儲(chǔ)容量可達(dá)1 MB。同時(shí)可以使用U 盤導(dǎo)出數(shù)據(jù)文件,增強(qiáng)了用戶的信息存儲(chǔ)和管理功能; 采用以T CP/ IP 協(xié)議為基礎(chǔ)的工業(yè)以太網(wǎng)通訊方式,使得電磁流量計(jì)成為Internet 網(wǎng)絡(luò)中的獨(dú)立節(jié)點(diǎn),可實(shí)現(xiàn)基于Internet 的遠(yuǎn)程數(shù)據(jù)采集和遠(yuǎn)程控制。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(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); })();