| 摘要:概述TINI的基本概念和工作原理,分析TINI的軟件環(huán)境;簡述基本一線制技術(shù)的溫度型iButton DS1920和小型氣象儀,給出利用TINI實現(xiàn)一線制網(wǎng)絡(luò)與Internet連接的應(yīng)用實例。 關(guān)鍵詞:TINI 一線制網(wǎng)絡(luò) 氣象儀 iButton 網(wǎng)絡(luò)互連 許多器件(如照相機、自動售貨機、實驗設(shè)備等)都具有內(nèi)置的外界進行通信的能力。這些設(shè)備通常有處理器,用來管理低層的可與其它電子設(shè)備進行通信的端口。而那些不具備與外界通信能力的器件要實現(xiàn)連網(wǎng)則必須借助于某些硬件的支持和實現(xiàn)手段。通過TINI可使本來不具備連網(wǎng)能力的器件有效地連入一線制網(wǎng)絡(luò),進而被賦予與Internet連接的能力,從而滿足商業(yè)的和工業(yè)的嵌入式網(wǎng)絡(luò)應(yīng)用的需求。  1 TINI的基本概念及原理 TINI(Tiny InterNet Interface)是基于一線制通信協(xié)議的設(shè)備,能夠各種不具備連網(wǎng)能力的硬件簡易、靈活、低成本地實現(xiàn)連網(wǎng)。TINI由軟、硬件兩部分構(gòu)成,硬件部分提供有處理、控制以及設(shè)備級的通信和連網(wǎng)功能;而軟件部分則實現(xiàn)了Java的編程運行環(huán)境,為系統(tǒng)設(shè)計者和用戶提供了一系列Java應(yīng)用編程接口。利用TINI可以方便地實現(xiàn)一線制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)(如Internet/Interanet)的互連。 一線制網(wǎng)絡(luò)作為一種新型的網(wǎng)絡(luò)技術(shù),采用的是主從結(jié)構(gòu),其中總線主控器具有總線控制、網(wǎng)絡(luò)管理等功能,而支持一線制網(wǎng)絡(luò)通信協(xié)議的一線制元器件可充當一線制網(wǎng)絡(luò)的節(jié)點。TINI作為一種特殊的一線制網(wǎng)絡(luò)主控器,除了具有一定主控器所具備的功能外,還具有異型網(wǎng)絡(luò)互連功能,能有效實現(xiàn)一線制網(wǎng)絡(luò)與Internet/Inteanet的連接。若對TINI設(shè)置IP地址后,可使之成為Internet/Intranet的一個網(wǎng)絡(luò)節(jié)點,供遠程用戶訪問。TINT可通過其一線制網(wǎng)絡(luò)接口,不斷收集一線制網(wǎng)絡(luò)上的實時信息,并提供給遠程Internet/Intranet用戶訪問。 圖1為TINI的一般硬件結(jié)構(gòu)示意圖,主要包括CPU、Flash存儲器、SRAM、一線制網(wǎng)絡(luò)接口、信息網(wǎng)絡(luò)接口、RS-232C接口以及輔助電路等若干功能模塊。些TINI甚至還帶有CAN總線接口,直接支持與CAN總線網(wǎng)絡(luò)的連接。 CPU是TINI的核心,控制著其它的功能模塊。在此,采用由8051發(fā)展而來的A390處理器,其時鐘頻率可達40 MHz,指令系統(tǒng)為32位,數(shù)據(jù)指針為24位,并帶有2個串口和6個外部中斷輸入口。 Flash存儲器和SRAM的容量均為512KB(字節(jié)),TINI將Flash存儲器的512KB空間分為8頁,每頁64KB。每0頁放置bootstrap loader引導(dǎo)程序。第1~6頁放置TINI OS操作系統(tǒng)和Java API包,其中TINI OS提供任務(wù)管理、文件系統(tǒng)管理、存儲器管理、I/O管理等功能,以有效協(xié)調(diào)多個應(yīng)用程序并發(fā)運行;而Java API包為用戶應(yīng)用程序的開發(fā)提供了支持和便利。第7頁留給用戶應(yīng)用程序使用。 RS-232C串口是為PC機或其它串口設(shè)備保留的連接接口。 PC機可通過該接口初始化TINI以及下載有關(guān)應(yīng)用程序到TINI上。各種串口設(shè)備也可通過該接口與TINI相連,進而實現(xiàn)與信息網(wǎng)絡(luò)的連接。 由于TINI OS支持FTP和Telnet等服務(wù)功能,使得遠程用戶可通過Internet向TINI發(fā)FTP或Telnet請求。TINI監(jiān)聽并接收到來自遠程用戶的FTP或Telnet連接請求后,可在兩者之間成功建立起FTP或Telnet連接,并允許遠程用戶通過執(zhí)行類UNIX命令(如增刪文件、創(chuàng)建文件目錄、查詢當前訪問者、設(shè)置IP地址及子網(wǎng)掩碼等),實現(xiàn)對TINI進行操作。 2 TINI的軟件環(huán)境 TINI所需要的軟件環(huán)境主要包括如下幾部分:Flash存儲器中運行的實時操作系統(tǒng)RTOS、TCP/IP棧、Java虛擬機以及Java API包;FTP、Telnet、DHCP、DNS等高層網(wǎng)絡(luò)協(xié)議;JDK軟件開發(fā)工具;TINI SDK等。 TINI操作系統(tǒng)是一個非常小的嵌入式操作系統(tǒng),提供有文件管理、內(nèi)存管理、I/O及任務(wù)調(diào)度等基本服務(wù)。與大多數(shù)小型嵌入式操作系統(tǒng)有所不同的是,TINI操作系統(tǒng)可在多任務(wù)間切換,能夠非常好地在多個Java字節(jié)碼解釋器正在執(zhí)行的事件間進行切換,因而可以并發(fā)運行多個Java應(yīng)用程序。 TINI上的Java虛擬機與Sun公司的嵌入式Java平臺1.1版本的Java API包一致。TINI的Flash存儲器中裝載有java.lang、java.net、java.io、java.util和javax.comm等函數(shù)包。Javax.comm包是JDK所擴充的函數(shù)包,提供給TINI特殊的I/O能力。另外,在Flash存儲中還有com.dalsemi包,該函數(shù)包為進入TINI的命令內(nèi)核Slush以及操作1-Wire總線、設(shè)置眾多系統(tǒng)參數(shù)等提供支持。若需再裝入其它的函數(shù)包,可以將它作為應(yīng)用程序放在RAM空間內(nèi)。 TINI SDK是進行TINI應(yīng)用開發(fā)的軟件我,包括tini.jar、tiniclasses.jar、tini.db、tini.tbin和slush.tbin等。Tiniclasses.jar中封裝有所有的TINI API類,它們是實現(xiàn)TINI應(yīng)用開發(fā)的基礎(chǔ)。Tini.jar中包括兩個重要的程序:JavaKit和TINIConvertor。其中JavaKit用于引導(dǎo)固件、執(zhí)行系統(tǒng)維護任務(wù),而TINIConvertor則用于將應(yīng)用程序中的類文件轉(zhuǎn)成TINI可執(zhí)行的二進制文件。Slush.tbin是TINI可執(zhí)行的Slush應(yīng)用程序。在系統(tǒng)初始化即將結(jié)束時,該程序開始運行。Slush的一個線程創(chuàng)建服務(wù)器套接字(server socket),用來偵聽和連接來自客戶端(client)的FTP和Telnet連接請求。當沒有與遠程客戶建立FTP和Telnet連接時,Slush占用很少的CPU資源;當建立起連接并成功登錄后,遠程用戶可以執(zhí)行類Unix風(fēng)格的命令來操作文件系統(tǒng)、設(shè)置或獲取配置信息、啟動或停止其它的Java應(yīng)用程序等。 3 基于TINI的網(wǎng)絡(luò)互連及應(yīng)用 3.1 溫度型iButton DS1920 DS1920是一種溫度型iButton器件,支持一線制通信協(xié)議。該器件帶有接觸式溫度傳感器,可以數(shù)字形式串行輸出溫度測量值,改變了以往溫度傳感器需加A/D轉(zhuǎn)換器才能轉(zhuǎn)換為數(shù)字量的模式。其測量的溫度可從-50~+125℃,分辨率為0.5℃。其內(nèi)部電路包括三部分:64位ROM、溫度傳感器和溫度報警觸發(fā)器。工作電源采用“寄生電源”方式供電。 3.2 基于一線制技術(shù)的小型氣象儀 圖2為支持一線制通信協(xié)議的小型氣象儀,上面為風(fēng)速渦輪,下面是風(fēng)向標,中間裝有溫度傳感器。溫度、風(fēng)速、風(fēng)向三個基本氣象參數(shù)可以方便地通過該氣象儀測得。若再裝上支持一線制協(xié)議的雨量傳感器、濕度傳感器,則可以獲取雨量、濕度等氣象參數(shù)信息。 3.3 通過TINI實現(xiàn)網(wǎng)絡(luò)互連的應(yīng)用系統(tǒng) 通過TINI,可以方便地實現(xiàn)一線制網(wǎng)絡(luò)與Internet的連接,如圖3所示。一方面,若干DS1920和TINI通過雙絞線組建成一線制網(wǎng)絡(luò)。TINI在一線制網(wǎng)絡(luò)中處于主控地位,具網(wǎng)絡(luò)控制、網(wǎng)絡(luò)管理等功能;DS1920處于從設(shè)備的地位,主要負責(zé)采集所在地的實時溫度信息,并送到TINI中。另一方面,TINI通過其所帶的信息網(wǎng)絡(luò)接口,與上層的Internet相連。DS1920采集到的溫度信息可以通過TINI送到Internet上。TINI在此過程中溝通兩個網(wǎng)絡(luò)的“橋梁”作用。若在TINI上運行Web服務(wù)程序,不斷收集一線制網(wǎng)絡(luò)上的實時溫度信息供遠程用戶訪問,該TINI則成為Internet上的一個Web服務(wù)器。若分布于各地的TINI將所檢測到的實時溫度信息送入Internet上的某個大型數(shù)據(jù)庫系統(tǒng)中,則構(gòu)成一基于Internet的分布式實時溫度監(jiān)測系統(tǒng)。  若采用一線制氣象儀取代DS1920,那么所構(gòu)成的應(yīng)用系統(tǒng),除了能夠檢測溫度信息外,還可以檢測氣象儀所在地的風(fēng)速、風(fēng)向等信息,從而成為一基于Internet的分布式實時氣象信息監(jiān)測系統(tǒng)。一線制氣象儀等一線制設(shè)備,除了作為一線制網(wǎng)絡(luò)的節(jié)點與TINI連接外,還可以作為單獨器件直接與TINI相連,并向Internet上發(fā)布有關(guān)信息。 根據(jù)Web服務(wù)器需要從DS1920或一線制氣象站獲取有關(guān)信息并通過其向網(wǎng)上發(fā)布的應(yīng)用要求,軟件設(shè)計應(yīng)考慮兩方面的功能需求:其一,以主控器的身份對DS1920或一線制氣象站進行尋址并獲取有關(guān)信息;其二,為遠程客戶提供Web服務(wù)。整修程序采用JDK結(jié)合TINI SDK來進行應(yīng)用編程。 |