當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]提供一種簡(jiǎn)便、經(jīng)濟(jì)的方法,通過(guò)TINI平臺(tái)實(shí)現(xiàn)串行接口設(shè)備與以太網(wǎng)的連接。

 摘要:提供一種簡(jiǎn)便、經(jīng)濟(jì)的方法,通過(guò)TINI平臺(tái)實(shí)現(xiàn)串行接口設(shè)備與以太網(wǎng)的連接。一旦設(shè)備連接到以太網(wǎng),就能提供TINI Web服務(wù)。

    關(guān)鍵詞:以太網(wǎng) 串行接口 TINI

很多電子設(shè)備利用串行接口與其它設(shè)備進(jìn)行通信,其中有溫度調(diào)節(jié)器、POS機(jī)、遠(yuǎn)程監(jiān)控儀、條碼掃描儀、票據(jù)打印機(jī)、射頻標(biāo)簽收發(fā)器、血壓計(jì)及其它現(xiàn)場(chǎng)使用的測(cè)試設(shè)備和新型自動(dòng)化設(shè)備。大多數(shù)設(shè)備與外部的通信是通過(guò)串口進(jìn)行的,不能直接連接到大型計(jì)算機(jī)網(wǎng)絡(luò),無(wú)法滿足TCP/IP連接和以太網(wǎng)通信的需求。由于成本和時(shí)間問(wèn)題,很少有人選擇對(duì)系統(tǒng)進(jìn)行重新設(shè)備的途徑。利用本文介紹的基于DS80C390或DS80C400微控制器的TINI平臺(tái),可以將孤立的串行設(shè)備連接到以太網(wǎng)。

1 TINI和網(wǎng)絡(luò)

TINI(微網(wǎng)接口)是Dallas Semiconductor開(kāi)發(fā)的一種技術(shù)平臺(tái),目的是協(xié)助用戶快速整合DS80C390/DS80C400網(wǎng)絡(luò)微控制器的研發(fā),TINI定義了一個(gè)芯片組,包含一個(gè)嵌入式操作系統(tǒng),其中整合了經(jīng)過(guò)高度優(yōu)化的Java運(yùn)行環(huán)境。Java編程者可從其中獲得一般的嵌入式開(kāi)發(fā)中不多見(jiàn)的強(qiáng)大功能:多線程、無(wú)和單元收集、繼承性、虛擬化、跨平臺(tái)能力 、強(qiáng)大的網(wǎng)絡(luò)支持,以及—最后但很重要—大量免費(fèi)的開(kāi)發(fā)工具。TINI使用乾通常不直接面對(duì)匯編代碼。不過(guò),為了優(yōu)化嚴(yán)格要求速度的通道或者訪問(wèn)底層硬件,同時(shí)也支持并鼓勵(lì)本地語(yǔ)言子程序(TINI操作系統(tǒng)用本地代碼寫成,因此,串行I/O的吞吐率和現(xiàn)代PC沒(méi)有明顯差異)。除完全支持java.net包外,TINI Java運(yùn)行環(huán)境還包含一個(gè)完整實(shí)現(xiàn)的javax.com子系統(tǒng)。通過(guò)Java可毫不費(fèi)力地訪問(wèn)TCP/IP和串行口,因此,TINI系統(tǒng)可非常容易地用來(lái)實(shí)現(xiàn)串行口-以太網(wǎng)橋。

下面的例子中,TINIm390驗(yàn)證模塊(放置在E10插槽)是DS80C390 TINI開(kāi)發(fā)平臺(tái)的硬件部分(TINIm400是配合DS80C400制作的)。除了SRAM、Flash、以太網(wǎng)、CAN總線、1-Wire等,系統(tǒng)還有四個(gè)串口,其中DS80C390內(nèi)部包括兩個(gè)UART,另外兩個(gè)是擴(kuò)充的(采用一片16550選配件)。需要注意的是,E10插座上的兩個(gè)串行連接器都被接到了serial0,它們只是在DTE/DCE引腳安排上有所差異。詳細(xì)資料請(qǐng)參閱《TINI特性和開(kāi)發(fā)指南》,PDF文件可以從http://www.ibutton.com/TINI/book.html下載。

2 范例

下面介紹兩具具體應(yīng)用,并從一個(gè)普通的串行口-以太網(wǎng)程序中摘錄片段出來(lái)。經(jīng)過(guò)修改,它幾乎可適應(yīng)于各種應(yīng)用。這些范例利用TINIm390/400驗(yàn)證模塊搭建而成,如圖1所示。

可以把TINI驗(yàn)證模塊看成“黑盒子”,將多個(gè)串行設(shè)備掛接到以太網(wǎng)。根據(jù)最終設(shè)備的需要,TINI可以讓數(shù)據(jù)流直通,也以對(duì)數(shù)據(jù)進(jìn)行解析、翻譯或修改。盡管設(shè)計(jì)人員可以在TINIm390/400的開(kāi)發(fā)器外殼上運(yùn)行這些范例,但更合理的做法將其駐留于內(nèi)存之中,掉電之后還能夠自啟動(dòng),并利用其它一些TINI構(gòu)造技術(shù)使最終產(chǎn)品更加牢靠。如果想修改這些范例,需要具備一些基本的網(wǎng)絡(luò)知識(shí)和編程經(jīng)驗(yàn)。樣例工作代碼也可以Dallas公司ftp站點(diǎn)(ftp://dalsemi.com)下載。

(1)虛擬調(diào)制解調(diào)器

虛擬調(diào)制解調(diào)器(Modem)利用TINIm390/400和TCP/IP連接,替代特殊調(diào)制器和電話線。假定有一個(gè)舊設(shè)備,比如某工廠的“機(jī)器狀態(tài)監(jiān)視器”,它利用一個(gè)調(diào)制解調(diào)器,一天之內(nèi)數(shù)次撥號(hào)到一個(gè)中央服務(wù)器,報(bào)告機(jī)器的狀態(tài)、負(fù)載和效率數(shù)據(jù)。為了削減服務(wù)器端日益增長(zhǎng)的調(diào)制解調(diào)器庫(kù),并利用現(xiàn)有的LAN取代連接到設(shè)備的電話線,我們可以重寫服務(wù)器軟件以支持TCP/IP,并且用TINI虛擬調(diào)制解調(diào)器取代每個(gè)機(jī)器上原有的調(diào)制解調(diào)器。這樣,機(jī)器狀態(tài)監(jiān)視器就不必再作任何修改,對(duì)于最終設(shè)備而言,虛擬調(diào)制解調(diào)器的使用和一個(gè)真正的調(diào)制解調(diào)器完全一樣。

除了上述配置,虛擬調(diào)制解調(diào)器當(dāng)然也可以成對(duì)使用。如果雙方都使用虛擬調(diào)制解調(diào)器,就無(wú)須對(duì)服務(wù)器軟件作任何改動(dòng),TINI模塊可直接替換現(xiàn)有的調(diào)制解調(diào)器。在此情況之下,虛擬調(diào)制解調(diào)器每次接到“AID”調(diào)制解調(diào)器撥號(hào)命令時(shí),實(shí)際建立的是TCP連接?!癆TH”斷開(kāi)命令關(guān)閉TCP連接。軟件也實(shí)現(xiàn)一系列其它的經(jīng)典AT調(diào)制解調(diào)器命令,并被諸如Microsoft Windows之類的網(wǎng)絡(luò)系統(tǒng)認(rèn)作真調(diào)制解調(diào)器,此外,虛擬調(diào)制解調(diào)器還可以偵聽(tīng)TCP端口,當(dāng)收到“呼叫”信號(hào)時(shí),向終端設(shè)備發(fā)出“振鈴”。

下面的代碼片段顯示了如何對(duì)TINIm390上的串行口進(jìn)行初始化:

public static void man(String args[]){

TINIOS.setSerialBootMessagesState(false);

TINIOS.setDebugMessagesState(false);

TINIOS.setConsoleOutputEnabled(false);

System.out.println("Connecting to serial0 at 9600bps," "listening on TCP port 8001");

try{

CommPortIdentifier portId=CommPortIdentifier.getPortIdentifier("seria10");

SerialPort port=(SerialPort)=(SerialPort)portId.open("VmodemTINI",10000);

TINIOS.estRTSCTSFlowControlEnable(1,false);

TINIOS.setRTSCTSFlowControlEnable(0,true);

TCPSerialVirtualModem modem=new TCPSerial VirtualModem(port,/*Comm speed */9600,/*TCP Port */8001);

Modem.processIuput();

}

catch (Excepiton e){

System.out.println("Exception:+e.toString());

}

}

這段代碼首先禁止掉所有來(lái)自TINI OS的調(diào)試輸出——TINI上的標(biāo)準(zhǔn)慣例。獲得一個(gè)端口號(hào)后,打開(kāi)這個(gè)端口(如果端口正在被另一個(gè)應(yīng)用使用,第二個(gè)參數(shù)指明等待多久),接下來(lái),設(shè)置硬件流控制狀態(tài)。由于TINIm390僅有一套R(shí)TS/CTS線用于串口0和1,在目標(biāo)端口使用它們之前,程序首先應(yīng)該關(guān)掉其它端口上的流控制,下面,就是一個(gè)Java虛擬調(diào)制解調(diào)器范例。

虛擬調(diào)制解調(diào)器類似包含一個(gè)AT命令解釋器(未在此示出,盡管到目前為止,它是本范例中最大的一部分)和網(wǎng)絡(luò)代碼。下面的代碼用來(lái)設(shè)置串口位速率、數(shù)據(jù)和停止位,以及奇偶位。從中可以看出,處理入站連接是何等簡(jiǎn)單:

/**Creates a new VirtualModem connected to a serial port on

* one end and a TCP port on the data side.

* serial --the serial port this VirtualModem talks to.

* speed --the speed the serial port should be set to.

* tcpport --the TCP port this VirtualModem listens on.

* throws IOException when there's a problem with the serial or TCP port.*/

public TCPSerialVirtualModem(SerialPort serial,int speed,int tcpport)

throws IOException

{

super(serial);

try{

serial.setSerialPortParams(speed,SerialPort.DATABITS_8,

SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);

}

catch(Unsupported CommOperationException e){

throw new IOException();

}

serverSock=new ServerSocket(tcpport,1);//backlog of one listenThread=new listenInbound();

listenThread.start();

}

最后,listenThrad()片段可接受一個(gè)到來(lái)的連接請(qǐng)求:

public void run() {

int rc;

Socket s;

While (running){

s=null;//No incoming connection request

try {

answered=false;

s=serverSock.accept();

//Discard incoming connection if already connected

if(connected)

throw new IOException();

sock=s;//for answer()

(2)UPS監(jiān)視器

第二個(gè)實(shí)例是將TINIm390/400連接到一個(gè)不間斷電源的串口。軟件要用網(wǎng)絡(luò)UPS工具協(xié)議,允許多個(gè)客戶端在多種平臺(tái)上檢測(cè)UPS的狀態(tài)。該項(xiàng)目源于需要由一臺(tái)沒(méi)有串口的新Macintosh計(jì)算機(jī)監(jiān)視現(xiàn)有的UPS電源的需求。目前存在兩種基本的UPS設(shè)備,即所謂的智能型和簡(jiǎn)單型(或“啞巴型”)。簡(jiǎn)單的UPS在多個(gè)串行引腳上指示其工作狀態(tài),它實(shí)際上輸出任何ASCII數(shù)據(jù)。由于不存在太多的串行引腳,因而它僅能夠指示幾組有限的信息,如表1所列。

表1 

信    號(hào) 意    義
RTS(來(lái)自 UPS) 電池低
TD(來(lái)自 UPS) 使用電池
CTS(去 UPS) 關(guān)閉UPS電源

具體實(shí)現(xiàn)部分見(jiàn)網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。

3 結(jié)論

很多現(xiàn)有設(shè)備僅支持異步串行通信,然而,當(dāng)前的許多應(yīng)用要求以太網(wǎng)和TCP/IP組網(wǎng)能力。利用強(qiáng)大的Java運(yùn)行環(huán)境和基于DS80C390和DS80C400微控制器的TINI技術(shù),很容易在極短時(shí)間內(nèi)開(kāi)發(fā)出一個(gè)串行口-以太網(wǎng)轉(zhuǎn)換器。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉