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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 嵌入式網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的研究與開發(fā)

          嵌入式網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的研究與開發(fā)

          作者: 時(shí)間:2006-07-31 來源:網(wǎng)絡(luò) 收藏
          摘要 在工業(yè)控制和消費(fèi)電子領(lǐng)域,目前許多設(shè)備要求具備以太網(wǎng)或者與Internet通信功能。本文討論一種基于TINI的以太網(wǎng)接入方案。此可以很方便地?cái)U(kuò)展到其他通信協(xié)議的,諸如CAN、1-Wire等,以適應(yīng)不同設(shè)備接入以太網(wǎng)的需要。利用本可以很好地解決與自動(dòng)化生產(chǎn)設(shè)備、開關(guān)和傳感器的遠(yuǎn)程通信問題,以及實(shí)現(xiàn)遠(yuǎn)程診斷與控制。另外,介紹了利用Java作為工具來串口到以太網(wǎng)的通信程序。
          關(guān)鍵詞 TINI Java DP83846A DS80C400

          為了達(dá)到利用Internet強(qiáng)大的網(wǎng)絡(luò)功能,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的目的,需要合理的網(wǎng)絡(luò)接人方案。利用基于TINI平臺(tái)的,搭建不同設(shè)備接人計(jì)算機(jī)網(wǎng)絡(luò)的橋梁。利用系統(tǒng)強(qiáng)大的軟硬件功能,可以支持不同的設(shè)備,實(shí)現(xiàn)接入方案的通用性。由于系統(tǒng)具備較好的處理能力,不僅可以作為簡(jiǎn)單的網(wǎng)絡(luò)接口,還可以擴(kuò)展接人設(shè)備的網(wǎng)絡(luò)功能,甚至于還可以對(duì)通信的數(shù)據(jù)進(jìn)行加密等處理。

          嵌入式系統(tǒng)包括專用的硬件和軟件部分,硬件提供性能的支持,而軟件則為用戶提供廣泛的靈活性。嵌入式系統(tǒng)的軟件包括其自身的操作系統(tǒng)和編程環(huán)境。Java所具有的各種特性使它成為嵌入式設(shè)備理想的軟件工具。針對(duì)Java有很多免費(fèi)開放的資源,Java獨(dú)立于硬件平臺(tái),具備可移植性。這一切都可以降低嵌入式設(shè)備開發(fā)和使用的成本。其中TINI平臺(tái)就是一種具備Java開發(fā)功能的嵌入式系統(tǒng)。

          1 系統(tǒng)硬件組成
          基于TINI數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的硬件系統(tǒng)如圖1所示。系統(tǒng)與外界的接口主要是RS232的串口和RJ45的以太網(wǎng)接口,其功能就是將串口設(shè)備接人到局域網(wǎng)絡(luò)甚至于Interne。

          2 網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的Java程序
          2.1 軟件開發(fā)工具包――TlNI SDK

          為了在編程中實(shí)現(xiàn)對(duì)硬件的訪問,Dallas公司開發(fā)的TINI SDK將DS80C400中的硬件部分虛擬為Java的類。通過調(diào)用相關(guān)的方法來實(shí)現(xiàn)對(duì)硬件的操作。SDK中包含Dallas公司開發(fā)的嵌入式操作系統(tǒng)。它是多任務(wù)、多線程、具有跨平臺(tái)的能力、擁有高度優(yōu)化的Java運(yùn)行環(huán)境的操作系統(tǒng)。

          在TINI SDK的支持下開發(fā)應(yīng)用程序,主要采用Java進(jìn)行,通常不直接面對(duì)匯編語言,但是TINI運(yùn)行環(huán)境提供了使用本地方法的機(jī)制。為了優(yōu)化嚴(yán)格要求速度的通道或訪問底層硬件,可以使用本地語言(主要是匯編語言)來編寫子程序,這樣增加了系統(tǒng)的靈活性。

          利用SDK中提供的API可以簡(jiǎn)化編程。利用SDK中提供的JavaKit和TINIConvertor等工具,在PC上進(jìn)行程序的開發(fā)調(diào)試工作,生成適用于TINI運(yùn)行環(huán)境的目標(biāo)應(yīng)用程序。通過JayaKit向TINI硬件存儲(chǔ)器中裝載TINI的運(yùn)行環(huán)境(包括TINI的操作系統(tǒng)),配置好網(wǎng)絡(luò)參數(shù),即可通過FTP、TELNET等下載用戶程序到TINI硬件上并控制運(yùn)行。TINI的Java虛擬機(jī)將Java字節(jié)碼轉(zhuǎn)換成為機(jī)器硬件系統(tǒng)能夠執(zhí)行的代碼。

          2.2系統(tǒng)程序的設(shè)計(jì)方法

          為了實(shí)現(xiàn)串口數(shù)據(jù)和以太網(wǎng)絡(luò)數(shù)據(jù)之間的交換,設(shè)計(jì)了基于TINI系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換程序。該程序的主要功能是,從串口設(shè)備讀取數(shù)據(jù),將所得到的數(shù)據(jù)進(jìn)行TcP/IP協(xié)議封裝,通過RJ45的接口發(fā)送到上位機(jī),與上位機(jī)的服務(wù)器程序進(jìn)行交互;同時(shí),將上位機(jī)發(fā)送給TINI的數(shù)據(jù)轉(zhuǎn)發(fā)到RS232的串口,進(jìn)而可通過網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控現(xiàn)場(chǎng)的串口設(shè)備。本設(shè)計(jì)中,TINI印刷電路板上有兩個(gè)串口,分別定義為串口O和串口4。單片機(jī)內(nèi)部集成UART,串口0用來串口啟動(dòng)TINl,下載TINI運(yùn)行環(huán)境,以及作為TINI的輸出終端。本程序中,利用串口4和上位機(jī)服務(wù)器程序交互。

          數(shù)據(jù)轉(zhuǎn)換由兩個(gè)進(jìn)程來實(shí)現(xiàn),它們分別是SerialWriter和SerialReader。SerialWritel的功能是從上位機(jī)服務(wù)器讀取數(shù)據(jù)流,再把數(shù)據(jù)寫到串口輸出數(shù)據(jù)流;SeriaReader的功能是把串口緩沖區(qū)中的可用數(shù)據(jù)讀到輸入緩沖區(qū),通過向網(wǎng)絡(luò)輸出流寫數(shù)據(jù)把串口數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)服務(wù)器,并且更新串口數(shù)據(jù)量;同時(shí)監(jiān)視這兩個(gè)進(jìn)程有無異常。如果捕捉到異常,便關(guān)閉數(shù)據(jù)流并中斷維持線程,結(jié)束程序。

          SerialToEthernet本身繼承了一個(gè)線程類。它是一個(gè)維持線程,功能是判斷系統(tǒng)通信狀態(tài)。如果正常,則每隔6 s打印輸出數(shù)據(jù)流量;如果連接的服務(wù)器被關(guān)閉,則關(guān)閉串口socket及相關(guān)的流。它的線程程序中,是一個(gè)有系統(tǒng)運(yùn)行狀態(tài)標(biāo)志控制的循環(huán),維持程序運(yùn)行,每一次循環(huán)中首先使該進(jìn)程睡眠6 000 ms,然后打印輸出此時(shí)的數(shù)據(jù)流量。程序的流程如圖2、圖3、圖4所示。

          3 系統(tǒng)調(diào)試方案
          系統(tǒng)調(diào)試的主要目的是模擬現(xiàn)場(chǎng)設(shè)備與以太網(wǎng)之間的數(shù)據(jù)轉(zhuǎn)換,將PC機(jī)通過串口與以太網(wǎng)接口與系統(tǒng)相連,接線方式如圖5所示;用PC機(jī)模擬現(xiàn)場(chǎng)的設(shè)備,同時(shí),利用PC機(jī)作為上位機(jī)監(jiān)控系統(tǒng)運(yùn)行。

          實(shí)驗(yàn)中除了運(yùn)行SerialToEthernet外,還準(zhǔn)備了兩個(gè)簡(jiǎn)單的用戶程序,用于系統(tǒng)調(diào)試,分別是HelloWorld和Blinky。
          第一步,下載運(yùn)行HelloWorld。其功能是在以JavaKit作為TINI的系統(tǒng)輸出終端(類似于PC機(jī)的顯示器),打印輸出“Hello World”的字符串,用于檢驗(yàn)串口O。
          第二步,下載運(yùn)行Blinky。它的功能是與P3.5相連的LED不停閃爍,用于檢驗(yàn)I/0口的功能。
          第三步,下載運(yùn)行SerialToEthernet,同時(shí)運(yùn)行上位機(jī)上服務(wù)器程序TINlServer。TINI系統(tǒng)上運(yùn)行Serial-ToEthernet,用于實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能。為了驗(yàn)證上位機(jī)與TINI問的串口通信,上位機(jī)上運(yùn)行串口調(diào)試程序,從而用上位機(jī)模擬實(shí)際的現(xiàn)場(chǎng)串口設(shè)備。運(yùn)行串口調(diào)試程序時(shí),在其中把串口設(shè)為與TINI的串口參數(shù)相同,發(fā)送模式設(shè)為連續(xù)發(fā)送。在這樣的模擬情況下,從串口調(diào)試程序窗口輸入的數(shù)據(jù),通過串口發(fā)送給TINI系統(tǒng),經(jīng)過TINI的轉(zhuǎn)發(fā),通過RJ45接口發(fā)往上位機(jī)。上位機(jī)運(yùn)行服務(wù)器程序TINIServer,它將TINI發(fā)來的數(shù)據(jù)不經(jīng)處理直接通過輸出流發(fā)送給TINI。經(jīng)過TINI的轉(zhuǎn)發(fā),數(shù)據(jù)再次由串口返回上位機(jī),顯示在串口調(diào)試程序的“接收區(qū)”中。數(shù)據(jù)流向如圖6所示。

          4 結(jié)論
          與傳統(tǒng)的工業(yè)控制數(shù)據(jù)轉(zhuǎn)換系統(tǒng)相比,TINI更加廉價(jià),更加緊湊,消耗功率更低,并且易于維護(hù)。此外,TINI還支持許多底層的通信接口,具有足夠的靈活性,可以適應(yīng)不同聯(lián)網(wǎng)的要求?;赥INI的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換系統(tǒng)方案是低成本而且可靠的。利用Java編程可以提高嵌入式系統(tǒng)軟件開發(fā)的效率。在本系統(tǒng)的開發(fā)過程中。利用Java軟件很方便地實(shí)現(xiàn)對(duì)底層硬件的訪問;利用Java自身的特性,可以實(shí)現(xiàn)強(qiáng)大的網(wǎng)絡(luò)功能。

          對(duì)于設(shè)備來說,通過本系統(tǒng)可以利用現(xiàn)有的網(wǎng)絡(luò)擴(kuò)展其功能;同時(shí)也可以利用以太網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程診斷控制,實(shí)現(xiàn)更加廣泛意義上的網(wǎng)絡(luò)化。

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


          評(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); })();