<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 異步串行接口與以太網(wǎng)服務(wù)器的連接

異步串行接口與以太網(wǎng)服務(wù)器的連接

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:提供一種簡(jiǎn)便、經(jīng)濟的方法,通過(guò)TINI平臺實(shí)現設備與。一旦設備,就能提供TINI Web服務(wù)。

關(guān)鍵詞: TINI

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

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

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

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

2 范例

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

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

(1)虛擬調制解調器

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

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

下面的代碼片段顯示了如何對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的調試輸出――TINI上的標準慣例。獲得一個(gè)端口號后,打開(kāi)這個(gè)端口(如果端口正在被另一個(gè)應用使用,第二個(gè)參數指明等待多久),接下來(lái),設置硬件流控制狀態(tài)。由于TINIm390僅有一套RTS/CTS線(xiàn)用于串口0和1,在目標端口使用它們之前,程序首先應該關(guān)掉其它端口上的流控制,下面,就是一個(gè)Java虛擬調制解調器范例。

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

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監視器

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

表1

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

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

3 結論

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

pos機相關(guān)文章:pos機原理




評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>