Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AN IMPROVED METHOD OF CONNECTING DEVICES TO THE INTERNET
Document Type and Number:
WIPO Patent Application WO/2001/069408
Kind Code:
A1
Abstract:
A system which performs the function of monitoring and/or controlling a device, communicates with the Internet using Internet protocols, and is able to serve a web page or communicate with a server over the Internet to allow remote control of the device. The system can include an Internet node comprising a microcontroller (20) programmed to communicate with the Internet and serve a web page to a browser. A second microcontroller (30), is programmed to control an appliance and the two microcontrollers (20, 30) communicate with each other on an internal bus (38). An Internet gate is provided to control connections between one or more Internet nodes, serving one or more appliances, and the Internet. The Internet gate includes a microcontroller to control communications between a plurality of Internet nodes and the Internet gate and between the Internet gate and the Internet.

Inventors:
DAVIS MICHAEL MADISON
DOWNEY DAVID JOSEPH
HOLLCROFT KEITH DOUGLAS
SHERWOOD CHARLES GREGORY
TEUSCHER TED ANDREW
WALLACE DONALD IAN
Application Number:
PCT/US2001/040323
Publication Date:
September 20, 2001
Filing Date:
March 16, 2001
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WORLD WIRELESS COMMUNICATIONS (US)
International Classes:
H04L29/08; (IPC1-7): G06F15/173
Foreign References:
US6185737B12001-02-06
US6161133A2000-12-12
US6124806A2000-09-26
US6021469A2000-02-01
US5982445A1999-11-09
Attorney, Agent or Firm:
Luebbering, Thomas B. (Williams Timmons & Collins Suite 400 2405 Grand Boulevard Kansas City, MO, US)
Download PDF:
Claims:
CLAIMS What is claimed is:
1. A system for connecting an appliance to the Internet comprising: a first microcontroller programmed to communicate with the Internet ; a first port for connecting the first microcontroller to the Internet ; a second microcontroller connected to the first microcontroller and programmed to communicate with an appliance to send and retrieve information to be used in a web page; and a second port for connecting the second microcontroller to the appliance.
2. The system of claim 1, the information including status information from the appliance.
3. The system of claim 1, the information including control information that may be sent from the Internet.
4. The system of claim 1, the appliance being selected from the group consisting of a lamp, a thermostat, a home appliance control system, a burglar alarm, and a vending machine.
5. A system for connecting a vending machine to the Internet comprising: a first microcontroller programmed to communicate with the Internet ; an Internet port for connecting the first microcontroller to the Internet ; a second microcontroller connected to the first microcontroller and programmed to communicate with a vending machine and send and receive purchaser, account, debit and credit information over the Internet ; and a vending machine port for connecting the second microcontroller to the vending machine.
6. The system of claim 5, the second microcontroller communicating with a vending machine MDB.
7. The system of claim 6, the vending machine port comprising an optical isolator and a connector.
8. The system of claim 5, further comprising a third microcontroller programmed to control a visual display on the vending machine.
9. A method of connecting appliances to the Internet comprising: providing a first microcontroller for establishing a connection with the Internet ; providing a second microcontroller with its own IP address for communicating with an appliance; establishing a connection between the first and second microcontrollers; communicating with the Internet by having the first microcontroller respond to Internet connection related signals, passing all other signals to the second microcontroller, and having the second microcontroller respond to all signals that are addressed to its IP address.
10. The method of claim 9, the step of communicating further comprising having the first microcontroller respond to all synchronization, finish, and ICMP echo packets sent over the Internet to the first microcontroller.
11. The method of claim 9 further comprising providing a third microcontroller with its own IP address for communicating with an appliance, the step of communicating further comprising having the first microcontroller pass all signals not related to Internet connection to the third microcontroller and having the third microcontroller respond to all signals addressed to its IP address.
12. The method of claim 9 further comprising providing a data radio to the first and second microcontrollers for connecting between microcontrollers.
13. A system for connecting to the Internet comprising: an Internet gate including a first microcontroller for handling Internet connection protocols; an Internet node including a second microcontroller having its own IP address; the Internet gate including a connection port for connecting the first and second microcontrollers to each other; the first microcontroller programmed to respond to all synchronization, finish, and ICMP echo packets received by it and to pass all other signals received from the Internet to the connection port.
14. The system of claim 13, the connection port comprising a RS232 serial connection.
15. The system of claim 13, further comprising a first data radio connected to the connection port and a second data radio connected to the second microcontroller, the data radios configured to communicate with each other.
16. The system of claim 13, further comprising a second Internet node including a third microcontroller connected to the connection port, having its own IP address for communicating with a second appliance, and programmed to respond to all Internet communications addressed to it.
17. The system of claim 13, the appliance being selected from the group including a lamp, a thermostat, a home appliance control system, the burglar alarm, and a vending machine.
Description:
AN IMPROVED METHOD OF CONNECTING DEVICES TO THE INTERNET FIELD OF THE INVENTION The present invention relates to improvements in the field of Internet connectivity.

More particularly, the invention relates to a small area low cost system for connecting devices such as lamps, coffeepots, thermostats, home security systems or other devices to the Internet.

BACKGROUND Large publicly or privately accessible computer networks, such as the Internet, provide infrastructure for establishing remote access connections via computing devices for the control of electrical and electronic devices. Standardized communication protocols are used on these networks that may be employed to remotely retrieve status information and/or send control information to addresses anywhere on the network. In the case of the Internet, as is well know to one of ordinary skill, this communication protocol is known as TCP/IP.

The TCP/IP protocol allows a computing device connected to the Internet to specify a particular Internet address and connect to the computing device which was given that unique address. By using standard communication commands and responses developed under the TCP/IP protocol, signals can be sent across the network and between any computing platforms that support the protocol. Included within the TCP/IP protocol are commands that may be sent by a web browser to a given address to retrieve information or to send information. Thus, web browsers may be used to retrieve and send information to devices that monitor and control remote electronic devices.

Traditionally, relatively large and expensive computer systems, such as personal computers (PCs), have been required to make connections to the Internet. This makes it relatively expensive to remotely connect to and control a device, such as a thermostat, through the Internet. Prior art home control devices, such as X-10 Active Home manufactured by X-10 USA, Inc. are able to control home appliances through the Internet.

Such systems provide small modules used to connect home appliances to a central controller.

However, these systems still require a personal computer to connect between the in home system and the Internet. Internet remote control of appliances of many varieties would be far more efficient if relatively inexpensive means for connecting those appliances to the Internet were available. Such connections would allow control by homeowners remotely while using a web browser. Moreover, internet access and control would be useful for other types of

devices such as vending machines wherein account information may be checked, debited, or credited via an internet connection.

A need has therefore arisen for a small, low cost, and efficient method to remotely control an appliance through the Internet without the need for a PC to have access to the Internet.

It is desirable then to provide a low cost and relatively small area Internet connection access device which may be used with existing electronically controllable devices such as household appliances, vending machines, or other appliances to allow monitoring and control of these devices through the Internet.

SUMMARY OF THE INVENTION The present invention solves the above-described problems and provides a distinct advance in the art of remote electronic control of devices. More particularly, the present invention provides a method and apparatus for providing an Internet access device that allows the connection of appliances and other controllable devices to the Internet, and interfaces with the Internet using existing protocols to allow control of the appliances via a web page.

The invention broadly includes a system which performs the function of monitoring and/or controlling a device, communicates with the Internet using Internet protocols, and is able to serve a web page or communicate with a server over the Internet to allow remote control of device. In one separate aspect of the invention, the system can include an Internet node comprising a microcontroller programmed to communicate with the Internet and serve a web page to a browser. A second microcontroller, is programmed to control an appliance and the two microcontrollers communicate with each other on an internal bus. In another embodiment, the same microcontroller performs both of the above described functions. The web page allows a user to monitor or control an application from a remote location via access to the web page address.

In a second separate aspect of the invention an Internet gate is provided to control connections between one or more Internet nodes, serving one or more appliances, and the Internet. The Internet gate includes a microcontroller to control communications between a plurality of Internet nodes and the Internet gate and between the Internet gate and the Internet. A UART, under microcontroller control, provides communication capability between multiple Internet nodes and the Internet. Connection to the Internet is made via a 10/100 BT connection or some other connection type such as a modem. The Internet gate is

capable of serving multiple Internet nodes by responding to synchronization, finish, and echo packets and sending all other packets on to the attached Internet nodes.

In a third separate aspect of the invention, an Internet node is provided with a LRS 1-T remote access server in the absence of an Internet gate.

By constructing an Internet node alone or in combination with an Internet gate, common household appliances and other appliances can be connected to the Internet to allow for remote control without requiring an expensive computing device such as a personal computer to make the connection.

These and other important aspects of the present invention are described more fully in the detailed description below.

BRIEF DESCRIPTION OF THE DRAWINGS A preferred embodiment of the present invention is described in detail below with reference to the attached drawing figures, wherein: Fig. 1 is a schematic block diagram of an embodiment of an Internet node of the present invention; Fig. 2 is a schematic block diagram of another embodiment of an Internet node of the present invention ; Fig. 3 is a schematic block diagram of another embodiment of an Internet node of the present invention; Fig. 4 is a flow diagram of an embodiment of a computer program of the present invention; Fig. 5 is a flow diagram of an embodiment of a computer program of the present invention; Fig. 6 is a flow diagram of an embodiment of a computer program of the present invention; and Fig. 7 is a schematic block diagram of an embodiment of an Internet gate of the present invention.

The drawing figures do not limit the present invention to the specific embodiments disclosed and described herein. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the invention.

DETAILED DESCRIPTION Reference will now be made to the drawings in which the various elements of the present invention will be given numeral designations and in which the invention will be discussed so as to enable one skilled in the art to make and use the invention. It is to be understood that the following description is only exemplary of the principles of the present invention, and should not be viewed as narrowing the claims.

Turning now to Fig. 1, a home appliance Internet node constructed in accordance with a preferred embodiment of the invention is illustrated. The Internet node is operable for connecting a device, such as a home appliance, to the Internet. The Internet node broadly includes two microcontrollers, each with a program memory store containing software that programs one of the microcontrollers to communicate with the appliance and the other microcontroller to serve a web page or communicate with a server over the Internet.

The Internet node comprises a connector 10 that connects to microcontroller 20 through four lines. The lines are Receive Data (RXD) 12, Transmit Data (TXD) 14, Clear to Send (CTS) 16, and Request to Send (RTS) 18. These lines for a serial interface between microcontroller 20 and a serial device (not shown) connected to connector 10. Connector 10 serves as a connection between the Internet node and an Internet gate or other device that provides a physical connection to the Internet. An alternative embodiment would use a digital data radio connected to connector 10 and another digital data radio that connects to an Internet gate.

Microcontroller 20 communicates to the Internet over lines 12,14,16,18 and connector 10. RAM/ROM program and working memory 21 reside within microcontroller 20 and contain the software code and working memory for communicating with the Internet and for communicating with application microcontroller 30. Microcontroller 30 also contains RAM/ROM program and working memory 31. This memory holds the code used to communicate with microcontroller 20 and the code that controls or monitors the appliance, in this example a solid-state relay. Crystal 22 provides the master clock for microcontroller 20 and microcontroller 30. Microcontroller 20 contains an internal oscillator and crystal 22 sets the reference frequency of the oscillator. Line 24 carries the reference frequency to microcontroller 30. Both microcontrollers 20 and 30 are commercially available from Atmel Corporation under the designation AT90S5815-8AC. An alternative embodiment would combine the functions of both microcontrollers into one microcontroller.

Bus 38 is an 8-bit data bus used for communication between microcontroller 20 and 30. Line 36 is a write/read line used to control the direction of data flow across the bus 38.

When line 36 is high, data flows from microcontroller 20 to 30. When line 36 is low, data flows from microcontroller 30 to 20. Line 32 is a clock line used to clock data that is being sent from microcontroller 30 to microcontroller 20. Line 34 is a clock line used to clock data being sent from microcontroller 20 to microcontroller 30.

Power supply 40 creates a regulated DC voltage sufficient to operate the various electronic components depicted in Fig. 1. Lines 42 distribute the regulated voltage to the various components. Reset device 28 monitors the voltage on line 42 and generates a reset signal that is sent to both microcontrollers on line 26 if the voltage is not within the correct tolerance. The reset device is commercially available from Motorola under the designation MC34064D-5.

Power supply 40 receives AC voltage from input connector 58 and output connector 60, which are controlled by triac 50. Input connector 58 is connected to power supply 40 through AC neutral line 52 and AC line 54. Input connector 58 is connected to output connector 60 through ground line 56 and AC neutral line 52. Triac 50 connects AC line 54 to output connector 60 through line 59. Triac 50 turns power on or off to output connector 60.

Triac 50 is controlled by zero crossing detector 46 via line 48. Zero crossing detector 46 is controlled by microcontroller 30 through line 44, which is driven by two output pins of microcontroller 30 so that sufficient current drive is available to detector 46. Zero crossing detector 46 only turns triac 50 on or off with the AC line is crossing through zero volts. This prevents large current flows that would occur if triac 50 were activated when the AC voltage was significantly different then zero. Both zero crossing detector 46 and Triac 50 are commercially available from many sources under the generic designation MOC3043 and MAC210A respectively.

Referring now to Fig. 2, there is shown a block diagram of another embodiment of the Internet node of the present invention. The Internet node of Fig. 2 provides a serial interface that may be used to connect many different devices to the Internet. Devices with an RS-232 interface or a RS-485 interface can be connected to this Internet node.

The Internet node of Fig. 2 is comprised of connector 110 that connects to microcontroller 120 through four lines. The lines are Receive Data (RXD) 112, Transmit Data (TXD) 114, Clear to Send (CTS) 116, and Request to Send (RTS) 118. These lines form a serial interface between microcontroller 120 and a serial device (not shown) connected to connector 110. A RS-485 interface to microcontroller 120 is also supported by connector 182 and RS-485 transceiver 180. Lines 188 and 190 are the differential RS-485 interface lines and connector 182 provides for a connection between these lines and an

external device. Line 184 enables the RS-485 receiver and line 186 enables the RS 485 transmitter. Connector 110 or connector 182 serves as a connection between the Internet node and an Internet gate or other device that provides a physical connection to the Internet.

An alternative embodiment would use a digital data radio connected to connector 110 and another digital data radio that connects to an Internet gate.

Microcontroller 120 communicates to the Internet over lines 112,114,116,118 and connector 110. An alternative connection would use the RS-485 interface supported by connector 182 and transceiver 180. Microcontroller 120 includes RAM/ROM program and working memory 121, which contain the software code and working memory for communicating with the Internet and for communicating with application microcontroller 130. Microcontroller 130 also contains RAM/ROM program and working memory 131.

This memory holds the code used to communicate with microcontroller 120 and the code that controls or monitors the device to be connected to the Internet. In this case, by changing the code contained within RAM/ROM program and working memory 131, many different devices and applications can be supported. Crystal 122 provides the master clock for microcontroller 120 and microcontroller 130. Microcontroller 120 contains an internal oscillator and crystal 122 sets the reference frequency of the oscillator. Line 124 carries the reference frequency to microcontroller 130. Both microcontrollers 120 and 130 are commercially available from Atmel Corporation under the designation AT90S8515-8AC. An alternative embodiment would combine the functions of both microcontrollers into one microcontroller.

Bus 138 is an 8-bit data bus used for communication between microcontroller 120 and 130. Line 136 is a write/read line used to control the direction of data flow across the bus 138. When line 136 is high data flows from microcontroller 120 to 130 and when line 136 is low data flows from microcontroller 132 to 120. Line 134 is a clock line used to clock data that is being sent from microcontroller 120 into microcontroller 130. Line 132 is a clock line used clock data that is being sent from microcontroller 130 into microcontroller 120.

Power supply 140 creates a regulated DC voltage from a higher unregulated voltage, the regulated voltage is sufficient to operate the various electronic components depicted in Fig. 2. Lines 142 distribute the regulated voltage to the various components. Reset device 128 monitors the voltage on lines 142 and generates a reset signal that is sent to both microcontrollers on line 126 if the voltage is not within the correct tolerance. The reset device is commercially available from Motorola under the designation MC34064D-5.

Application microcontroller 130 can monitor various appliances using a RS-232 or RS-485 interface. Lines RXD 150, TXD 152, CTS 154, and RTS 156 connect the RS-232 lines from microcontroller 130 to RS-232 level translator 160. Translator 160 shifts voltages between TTL levels output by microcontroller 130 on the RS-232 lines to RS-232 levels that are carried by lines 168,170,172, and 174. Those skilled in the art will realize that for RS- 232 voltage compatibility a level converter is required to convert between TTL levels and RS-232 levels. Translator 160 is commercially available from Maxim under the designation MAX232CSE. Lines 168,170,172, and 174 carry signals between translator 160 and connector 164 which may be connected to an appliance. A second option is provided for a RS-485 interface. If the RS-485 interface will be used then the RS-232 interface translator 160 is not installed. If translator 160 were installed and an attempt was made to use the RS- 485 transceiver 162 then the output driver of translator 160 and RS-485 transceiver 162 would both drive the RXD line 150 causing a conflict and the inability of microcontroller 130 to correctly receive data. Both RS-485 transceivers 180 and 162 are commercially available from Linear Technology under the designation LTC1483CS8. RS-485 transceiver 180 is controlled by microcontroller 120 using receive enable line 184 and transmit enable line 186.

When the receive enable line 184 is low the receiver is enabled and when the transmit enable line 186 is high the transmitter is enabled. Similarly, RS-485 transceiver 162 is controlled by microcontroller 130 using receive enable line 158 and transmit enable line 160. When the receive enable line 158 is low the RS-485 receiver is enabled and when the transmit enable line 161 is high the RS-485 transmitter is enabled. Connector 182 and connector 166 allow for connection of a wire bus to the RS 485 transceivers. Positive data is carried by line 188 between transceiver 180 to connector 182, negative data is carried by line 190 between transceiver 180 and connector 182. Similarly, positive data is carried by line 176 between transceiver 162 and connector 166, negative data is carried by line 170 between transceiver 162 and connector 166. The ground reference is provided at both connectors 166 and 182 by lines 179.

Fig. 3 is a block diagram of another embodiment of the Internet node of the present invention. This Internet node can be used to connect a vending machine to the Internet for the purpose of providing a cashless and cardless method of purchasing products from the machine.

The Internet node of Fig. 3 comprises a connector 210 that connects to microcontroller 220 through four lines. The lines are Receive Data (RXD) 212, Transmit Data (TXD) 214, Clear to Send (CTS) 216, and Request to Send (RTS) 218. These lines

form a serial interface between microcontroller 220 and a serial device connected to connector 210. Connector 210 serves as a connection between the Internet node and a digital data radio (not shown). A second digital data radio is connected to an Internet gate. An alternative embodiment would comprise a RS-232 level converter between microcontroller 220 and connector 210 allowing a RS-232 device to connect to the Internet node, or the interface could be adapted for RS-485 transceivers as described above.

Microcontroller 220 communicates to the Internet over lines to 212,214,216,218, and connector 210. In the preferred embodiment a digital data radio is connected to connector 210. Those skilled in the art will realize the other devices, such as an Internet gate, could be directly connected to connector 210. RAM/ROM program networking memory 221 contained the software coat networking memory or communicating with the Internet and for communicating with application microcontroller 230. Microcontroller 230 also contains RAM/ROM program and working memory 231. This memory holds the code used to communicate with microcontroller 220 and a third microcontroller 160. Memory 231 also holds the code that controls and monitors a structure commonly found in vending machines called a Multi Drop Bus (MDB), which is a bus that allows partial control of the machine.

The MDB will be further described below. The MDB is connected to via connector 264. In this application, the MDB is used to indicate that funds are available for vending products from the machine. The sole purpose of microcontroller 160 is to control a display, such as a Vacuum Fluorescent Display (VFD). Crystal 222 provides the master clock for microcontrollers 220, 230, and 160. Microcontroller 220 contains an internal oscillator and crystal 222 sets the reference frequency of the oscillator. Line 224 carries the reference frequency to microcontroller 230 and microcontroller 160. All three microcontrollers 220, 230, and 160 are commercially available from Atmel Corporation under the designation AT90S8515-8AC. An alternative embodiment would combine the functions of all three microcontrollers into one microcontroller.

Bus 238 is an eight bit data bus used for communication between microcontroller 220 and 230. Line 236 is a write/read line used to control the direction of data flow across the bus 238. When line 236 is high data flows from microcontroller 220 to 230 and when line 236 is low data flows from microcontroller 230 to 220. Line 232 is a clock line used to clock data being sent from microcontroller 230 into microcontroller 220. Line 234 is a clock line used to clock data being sent from microcontroller 220 into microcontroller 230. Line 233 is used by microcontroller 230 to signal to microcontroller 220 that a connection to the Internet should be initiated.

Power supply 240 creates a regulated DC voltage sufficient to operate the various electronic components depicted in Fig. 3. Power supply 240 gives a higher unregulated voltage from the MDB connector 264 via line 243. Lines 242 to distribute the regulated voltage to the various components. Reset device 228 monitors the voltage on line 242 and generates a reset signal that is sent to each microcontroller on line 226 if the voltage is not within the correct tolerance. The power supply control is commercially available from Linear Technology under the designation LTC 1076CQ-5. The reset device is commercially available from Motorola under the designation MC34064D-5.

Line 250 allows microcontroller 230 to receive data from the MDB interface. Optical isolator 260 detects current pulses on the MDB which are carried from connector 264 over line 172 to the isolator. Isolator 260 converts the current pulses to a digital logic voltage level for reception by microcontroller 230. The MDB has been in the prior art for many years and its operation is well understood by those of ordinary skill in the art. When microcontroller 230 needs to send control signals to the MDB its sends logic voltage signals on line 252 to optical isolator 170. Optical isolator 170 converts the logic voltage signals into current pulses which are sent over line 174 to the MDB through connector 264.

Microcontroller 230 enables optical isolator 170 by sending a high signal on line 166 to optical isolator 170. Note that two microcontroller pins drive line 166 to provide sufficient current drive for optical isolator 170. The optical isolators are commercially available from NEC under the designation PS2701-2. Line 166 also connects to the input of buffer 164 which itself is connected to microcontroller 160 via line 162. Line 252 is connected to line 166 through resistor 168. When microcontroller 230 places a high signal on line 166 to enable optical isolator 170 it also feeds buffer 164 driving line 162 high. Transmit data that is sent by microcontroller 230 over line 252 cannot flow through resistor 168 to microcontroller 160 because line 166 is high. When microcontroller 230 needs to send data to microcontroller 160 line 166 is tri-stated by microcontroller 230. This simultaneously removes drive current from isolator 170 and allows data to flow from microcontroller 230 over line 252 through resistor 168 into buffer 164 onto line 162 and into microcontroller 160.

Note that buffer 164 is actually two parts of a hex inverter. The hex inverter is commercially available from many sources under the generic designation 74HC04.

The sole intent of microcontroller 160 is to take the serial data from microcontroller 230 and convert it into the signals necessary to control a display, such VFD, that would be connected to connector 266. Bus 278 carries eight data lines to the display and bus 276 carries three control lines to the to display. The display interface is standard for this class of

display device has been in the prior art for many years. An alternative embodiment would combine the functions of microcontroller 220,230, and 160 into one microcontroller.

Connector 265 is used to connect a 16 key keypad to microcontroller 230 over bus 262. Bus 262 contains four row lines and four column lines. The rows and columns create a matrix in the keypad for 16 keys. Microcontroller 230 contains internal pull up resistors on the column lines. Data from the keypad is retrieved using standard keypad scanning algorithms that an available in the software prior art for many years.

Referring now to Fig. 3 and Figs. 4a-4d, Figs. 4a-4d show a flowchart depicting the process of vending a product from a vending machine that includes an Internet node of the present invention. The process begins at step 1000. Step 1002 depicts the user pressing clear button on the keypad of the vending machine. The application microcontroller 230 detects the clear button on a keypad connected to connector 264 using the keypad scanning code mentioned above.

In step 1004 the application microcontroller 230 sends a message over line 252 to the display microcontroller 160. This is accomplished by tri-stating line 166 so that the voltage level on line 252 is detected by buffer 164 and passed on line 162 to microcontroller 160.

Microcontroller 160 then outputs the message over data bus 278 to connector 266 with the correct control signals on bus 276 such that a display will correctly display the message.

When line 166 is tri-stated optical isolator 170 will not pass the signals present on line 252 to the MDB.

Step 1006 causes the application microcontroller 230 to wait for the user to enter a user ID on the keypad. Once the user ID has been entered and enter button pushed, step 1008 causes a prompt for the user pass code to be displayed on the display using display microcontroller 160 and associated interfaces and buses as described above.

Step 1010 waits for the user to enter the pass code and press enter. Once the pass code has been entered, at step 1012 application microcontroller 230 sends a packet to the communication microcontroller 220. The packet instructs the communication microcontroller to seek authorization to vend. The packet is sent over bus 238 with line 236 set low to indicate that data is flowing from microcontroller 230 to 220. Line 232 clocks the data from microcontroller 230 into microcontroller 220.

Communication microcontroller 220 then attempts to initiate a TCP session with a remote server as depicted in step 1014. Microcontroller 220 sends a TCP packet over line 212 to a device connected to connector 210, usually a wireless data radio. The data radio communicates with another data radio connected to an Internet gate that for words the TCP

packet to the Internet. The IP address for the server is stored in RAM/ROM program and working memory 221.

At step 1016 application microcontroller 230 causes a message to be sent to the display microcontroller 160 and onto the display using the method described above. The contents of the message is"Please Wait." Program flow proceeds to step 1018 where a test is performed by communication microcontroller 220 to determine if a TCP session was initiated with the remote server. If the session didn't succeed then step 1050 is performed. This tests to determine if the user pushed the cancel button. If the cancel button was not pushed, then the program flow returns to 1018 as depicted by step 1052. If the user did push cancel then step 1054 is performed. This step returns to vending machine to the idle state. The vending machine is idled by activating line 166 and making it high so that data can be sent to the MDB from line 252 through optical isolator 170 and on to line 174 to MDB connector 264. A return to idle message is sent by microcontroller 230 to the vending machine. At step 1056 a message is passed by application microcontroller 230 to communication microcontroller 220 instructing the communication microcontroller to close the TCP session. At step 1058 program flow returns to the beginning, step 1000.

Returning to step 1018, if a TCP session was successfully opened program flow proceeds to step 1019. Communication microcontroller 220 sends a vend session request to the remote server based on a message sent by the application microcontroller 230 over bus 238.

At step 1017 communication microcontroller 220 waits for a vend session response from the remote server. If the communication microcontroller does not receive a vend session response and program flow moves to step 1050 to test whether the user has pushed the cancel key. If the cancel key was pushed then steps 1054,1056, and 1058 are executed as previously described. Otherwise, the program flow returns to step 1017.

If the communication microcontroller receives a begin vend session response from the remote server, program flow proceeds to step 1015. This step tests whether the vend session request was accepted by the remote server. If the request was not accepted then step 1013 is executed. At step 1013 a message is sent to the application microcontroller 230.

Communication microcontroller 220 sets write/read line 236 high indicating that data is flowing from microcontroller 220 to microcontroller 230 over bus 238. Line 234 sends clock signals from microcontroller 220 to clock data into microcontroller 230. The content of this message is the reason why the vend session request was denied. Typical reasons would be an

invalid password or an invalid login. Microcontroller 230 passes the content of this message to microcontroller 160 using line 252, resister 168, buffer 164, and line 162 as previously described. Microcontroller 160 then causes the reason to be displayed on a display device connected to connector 266 using bus 278 and 276 as previously described.

Returning to step 1015, if the vend session request was accepted program flow proceeds to step 1011 where a breeding message is displayed on the display device connected to connector 266 following the same process previously described for displaying messages on this device. A typical greeting message would be"Hello"then the account name, and "Welcome back."The greeting message and the amount of funds available for the account are returned as part of the vend session accepted message sent by the remote server.

Program flow proceeds to step 1020 where application microcontroller 230 requests a vend session from the vending machine using the MDB that connects to connector 264.

Microcontroller 230 sets line 166 high so that optical isolator 170 is enabled. Microcontroller 230 sends logic voltage signals over line 252 to optical isolator 170 which converts the voltage levels to current and then line 174 carries the current signals to connector 264. Part of this message indicates the amount of funds available to the user of the vending machine.

Program flow proceeds to step 1024 where application microcontroller 230 waits for the vending machine to indicate a vend purchase. The vending machine sends signals over the MDB onto line 172 and to optical isolator 260. Isolator 260 converts the current pulses into voltage levels that are carried by line 250 to microcontroller 230. If the microcontroller does not receive a vend purchase signal from the vending machine, program flow moves to step 1050 is indicated by the no branch. Step 1050 performs the cancel button test as previously described. If the cancel button was not pushed then the program flow moves to step 1060. At step 1060 communication microcontroller 230 checks to see if a timeout notice was sent by the remote server. If a timeout message has not been received program flow returns to step 1024. If a timeout message is received then steps 1054,1056, and 1058 are executed as previously described. Returning to step 1050, if the cancel button is pushed then steps 1054,1056, and 1058 are performed.

If the application microcontroller receives a vend purchase signal from the vending machine program flow precedents to step 1026. In this step, application microcontroller 230 sends a vend purchase request to the communication microcontroller 220 over bus 238 and lines 232 and 236 as previously described. In step 1028 communication microcontroller 220 sends the purchase request to the remote server using lines to 212,214,216, and 218 through connector 210 as previously described.

Communication microcontroller 220 then waits for a vend purchase request response as depicted in step 1030. If a response is not receive the program flow proceeds to step 1050 and then either returns to step 1030 or to start as previously described.

If a response is received program flow proceeds to step 1032. This step tests if the vend request was approved by the server. If the request was not approved then step 1034 is performed and communication microcontroller 220 sends a message to application microcontroller 230 as previously described. Application microcontroller 230 sends a message to display microcontroller 160 which displays the reason for the purchase being denied. A typical reason is insufficient funds. In step 1036 application microcontroller 230 sends a message to the vending machine over the MDB that the vend has failed. Program flow then returns to step 1024 to allow the user to attempt a different purchase.

Returning to step 1032 and assuming the vend purchase request was approved by the server, program flow proceeds to step 1038 where application microcontroller 230 authorizes the vending machine to vend product. At step 1040, the application microcontroller waits for a successful vend message over the MDB from the vending machine. If a successful vend message is received then program flow moves to step 1024 in preparation for another vend.

If a successful vend message is not received, program flow proceeds to step 1044 where application microcontroller 230 sends a credit request to communication microcontroller 220 as previously described. In step 1046 communication microcontroller 220 sends the credit request to the remote server. In step 1048 the communication microcontroller waits for a received credit request response from the remote server. If the credit request response is not received program flow moves to step 1050. At step 1050 the cancel button test is performed as previously described if the cancel button is not pushed then the program flow returns to step 1048 as indicated by step 1052. If the cancel button is pushed steps 1054,1056, and 1058 are performed as previously described. If the credit request response is received from the remote server, program flow moves back to step 1024 in preparation for another vend request from the user.

Many vending machines do not have the ability to record when a product is dispensed and when money is deposited in the machine. Consequently, in an alternative embodiment, a different Internet node application can interface to these type of machines to monitor motor activity and payment information. Motor activity indicates when a product is dispensed from the machine and payment information, such as a bill changer or coin changer, indicates how much money was deposited into the machine. One method of interfacing to machines of this type would be to use an interface board that is unique to each machine. This would allow an

Internet node targeted toward vending machines to interface with many different types of machines by combining the Internet node with the machine specific interface board. In this way, vend and payment information could be collected from vending machines that are not designed to collect this information.

Fig. 7 is a block diagram of an Internet gate of one embodiment of the present invention. The Internet gate is used to connect one or more Internet nodes to the Internet.

The primary functions of the Internet gate are to provide a physical interface to the Internet for one or more Internet nodes and to process part of the Internet communication protocol messages so that multiple Internet nodes may be connected to one Internet gate. Internet nodes utilizing either a TTL level RS-232 interface or an RS-485 interface can be connected to this Internet gate. Those skilled in the art will realize that a TTL level RS-232 interface uses TTL voltage levels and RS-232 timing and handshake protocols. Alternatively, a digital data radio could be connected to the Internet gate using the TTL RS-232 interface. The digital data radio will then be used to communicate with one or more Internet nodes. The Internet gate employs two methods of forming a physical connection to the Internet. One method uses a modem and the other method uses an RS-232 port. An alternative embodiment could use a local area network such as a 10/100 base T network for the Internet connection.

The system comprises connector 310 that connects to level converter 319. Level converter 319 operates to convert RS-232 voltage levels present at connector 310 into TTL voltage levels for use by the remainder of the system, and vice versa. Level converter 319 is connected to connector 310 via lines 316 and 318. Level converter 319 is connected to microcontroller 320 through lines Receive Data (RXD) 312, and Transmit Data (TXD) 314.

As indicated by the arrows, line 316 carries RS-232 level data from connector 310 to level converter 319 and line 312 carries TTL level data from level converter 319 to microcontroller 320. Likewise, line 314 carries TTL level data from microcontroller 320 to level converter 319 and line 318 carries RS-232 level data from level converter 319 to connector 310. These lines form a serial interface between microcontroller 320 and a serial device connected to connector 310. This interface is used to configure the Internet gate. Typical configuration information may include the number of Internet nodes to search for, if the Internet gate is programmed to search for Internet nodes, and the telephone number a system modem should use for dialing.

Microcontroller 320 uses data bus 338 and control bus 336 to communicate with a Universal Asynchronous Receiver Transmitter (UART) 330. Microcontroller 320 contains

RAM/ROM program networking memory 321 that holds the software code and working memory for this and other tasks. Crystal 322 provides the master clock for microcontroller 320 and UART 330. Microcontroller 320 contains an internal oscillator and crystal 322 sets the reference frequency of the oscillator. Line 324 carries the reference frequency to UART 330. Microcontroller 320 is commercially available from Atmel Corporation under the designation AT90S8515-8AC. UART 330 is commercially available from Texas Instruments under the designation TL16C552. An alternative embodiment would combine the functions of both the microcontroller and the UART into one microcontroller.

Bus 338 is an 8-bit data bus used for communication between microcontroller 320 and UART 330. Bus 336 is a control bus used for communication between microcontroller 320 and UART 330. These two buses form a standard interface between microcontroller 320 and UART 330 that is well understood and has been of the prior art for many years.

Power supply 340 creates a regulated DC voltage from a higher unregulated voltage provided by an external power supply (not shown), the regulated voltage is sufficient to operate the various electronic components depicted in Fig. 7. Lines 342 distribute the regulated voltage to the various components. Reset device 328 monitors the voltage on lines 342 and generates a reset signal if the voltage is not within the correct tolerance. The reset device is commercially available from Motorola under the designation MC34064D-5.

UART 330 can communicate with four serial devices using two built-in serial ports.

Because UART 330 has only two serial ports, only two serial devices may be used at one time. Connected to UART 330 are a modem 361, a RS-232 serial port comprised of level translator 362 and connector 372, a TTL level port comprised of connector 384, and a RS- 485 port comprised of RS-485 transceiver 386 and connector 388. Bus 350 connects one serial channel of UART 330 to modem 361 and level converter 362. Level converter 362 can only be used if modem 361 is not present and thus, this channel of the UART can use the RS- 232 interface only if the modem is not installed. As will be appreciated by one of ordinary skill, the serial port or the modem port could also be selected by providing a software selection option. Bus 350 contains the standard serial lines RXD, TXD, CTS, RTS, DTR, DSR, and RI. These lines are standard for RS-232 interfaces and are well-known in the prior art. If a modem is not installed then microcontroller 320 sets line 352 high so that level translator 362 is turned on. If line 352 is low, then level translator 362 is disabled and has no affect on bus 350. TTL level RS-232 signals are carried by bus 350 between UART 330 and level translator 362. Bus 370 carries the RS-232 level signals between translator 362 and connector 372. Translator 362 performs the function of translating between the TTL level

signals on bus 350 and the RS-232 level signals on bus 370. Level translator 362 is commercially available from Linear Technology under the designation LTC1337. The RS- 232 port can be connected to an external serial device that provides a connection to the Internet.

Modem 361 converts the TTL level signals on bus 350 into signals that are compatible with the public telephone network. Bus 368 represents a two wire interface between the modem and a modular connector 364. A two wire interface is a common telephone system connection method and has been of the prior art for many years. Other modem connections well-known to those of ordinary skill are also possible. The modem is commercially available from Connexant, formerly Rockwell, under the designation SFV336ACFHID5AOP.

Connector 384 is a TTL level RS-232 interface that is typically used to connect a wireless data radio to the Internet gate. RS-485 transceiver 386 shares the serial data lines with connector 384. Either a device connected to connector 384 or transceiver 386 can be used with this channel of UART 330, both devices cannot be used at the same time.

Typically, if a wireless data radio is connected to connector 384 then transceiver 386 is not used. Conversely, if nothing is connected to connector 384 then transceiver 386 is used.

Line 374 carries data from connector 384 or transceiver 386 to UART 330. Line 376 carries serial data from UART 330 to connector 384 and transceiver 386. When microcontroller 320 sets line 358 low, the receiver in transceiver 386 is enabled. When microcontroller 320 sets line 360 high the transmitter in transceiver 386 is enabled. Transceiver 386 is commercially available from Linear Technologies under the designation LTC1483CS8. Line 380 carries the positive RS-485 data from transceiver 386 to connector 388. Line 382 carries the negative RS-485 data from transceiver 386 to connector 388. Line 379 is a ground reference supplied to connector 388.

The flowchart of Fig. 6 depicts the process followed by the Internet gate to provide Internet access for multiple Internet nodes. The process begins at step 3000. At step 3002, the Internet gate detects whether the modem or the RS-232 serial port interface will be used for Internet connection. To do this, microcontroller 320 sets line 352 low so that RS-232 level translator 362 is disabled. Bus 350 is now free to communicate with modem 361.

Microcontroller 320 causes and"AT"command to be sent to the modem. This is accomplished by passing data on bus 338 and control signals on bus 336 to UART 330.

UART 330 then converts the data into serial data and outputs it on bus 350. Microcontroller 320 then waits for a response from modem 361. If the modem sends a response it will travel

serially over bus 350 to UART 330. The UART will convert the serial data to parallel data and pass it to microcontroller 320 using buses 338 and 336. The"AT"command is a standard modem command well-known in the prior art. If modem 361 responds, level translator 362 will remain disabled and the Internet gate will communicate through the modem. If modem 361 does not respond then microcontroller 320 assumes that modem 361 is not installed. Under this condition, microcontroller 320 sets line 352 high so that RS-232 translator 362 is enabled and the RS-232 interface and its associated buses are used for the Internet connection.

Once the network connection has been selected, microcontroller 320 establishes a connection to the Internet at step 3004. Program flow proceeds to step 3006 where microcontroller 320 sets variables which are contained in memory 321 and used to keep track of which port is reading TCP/IP packets and which port is echoing TCP/IP packets. The program sets the in-port variable that is contained in RAM/ROM program and working memory 321 to modem or RS-232 interface as determined in step 3002. At step 3008 lines 358 and 360 are configured so that connector 384 or the RS-485 interface, comprised of transceiver 386 and connector 388, will be used. If connector 384 will be used, then Line 358 is set high to disable the RS-485 receiver and line 360 is set low to disable the RS-485 transmitter. Otherwise lines 358 and 360 are configured to use the RS-485 interface.

Program flow proceeds to step 3010 where microcontroller 320 waits for data to be received, in this case a valid IP header, from the in-port as determined above. If no data is received program flow moves to step 3034. In step 3034 the in-port and out-port variables contained in RAM/ROM program and working memory 321 are switched. This allows data flow in the opposite direction. The program proceeds to step 3036 where a test is made to determine if the Internet connection has been lost. If the connection is lost and then the connection is re-established as depicted in step 3038. In either case, connection lost and re- established, or connection contact, program flow returns to step 3010 to check again for a valid IP header. The process is ready to relay data from one port to the other port. Assuming that the modem and RS-485 physical connections are used then data can be relayed from the modem to the RS-485 port or vice versa depending on how the in-port and out-port variables are set.

Once a valid IP header is received, the program proceeds step 3012 where the type of data following the IP header is checked. If the data type is not a TCP packet then program flow moves to step 3014. In this step the data type is checked to determine if it is an ICMP type. If the data type is not an ICMP type, program flow moves to step 3034 where it

operates as previously described. If the data type is an ICMP packet then program flow moves to step 3028 where the data is tested to determine if the ICMP packet is complete. If the ICMP packet is not complete, then program flow moves to step 3034 and the in-port and out-port variables are switched as previously described. If the ICMP packet is complete then program flow moves to step 3030.

At step 3030 the program determines if the ICMP packet was an echo packet. This packet type is echoed back to the sender. If the packet was an echo packet then step 3032 is performed. This step sends the received packet, or echoes the packet, back to the current in- port. The Internet gate will only respond to an echo ICMP packet, all other ICMP packets or ignored. Program flow then moves to step 3034. Returning to step 3030, if the ICMP packet was not an echo packet then step 3034 is performed.

Returning to step 3012 if the packet type is TCP then program flow moves to step 3016. This step tests if the packet is complete an error free. If the packet is not complete or contains errors then program flow moves to step 3034 where the program operates as previously described. If the packet tested at step 3016 is complete and error free then the program proceeds to step 3018.

At step 3018 the microcontroller determines if the TCP packet is a synchronization packet. If the packet is a synchronization packet then program flow proceeds to step 3022.

At this step, the Internet gate sends a synchronization acknowledge packet back to the current in-port. Step 3034 and the following steps are then performed as previously described. If the TCP packet tested in step 3018 wasn't a synchronization packet then step 3020 is performed.

At step 3020, the program determines if the TCP packet is a finish packet. If it is a finish packet, then step 3024 is performed. At step 3024 a finish acknowledge packet is sent back to the current in-port. Then step 3034 and the following steps are performed as previously described. If the TCP packet tested in step 3020 was not a finish packet then step 3026 is performed.

At step 3026, the TCP packet is echoed to the current out-port. In this way all TCP packets, except for synchronization and finish packets, are passed through the Internet gate from the current in-port to the current out-port.

Assume that modem 361 in Fig. 7 is used for connection to the Internet and a data radio is connected to connector 384. Next assume that they TCP/IP packet is received by the modem from the two wire telephone interface of connector 364 and bus 368. Modem 361 will convert the data received over the telephone interface into RS-232 data and pass this data over bus 350 to UART 330. UART 330 will convert the RS-232 data into parallel data and

pass this data to microcontroller 320 using data bus 338 and control bus 336. Microcontroller 320 will examine the data starting at step 3010 in Fig. 6. Test 3010 would determine that the packet is an IP packet and the program would proceed to step 3016. Assuming that the packet is complete and error free program flow moves to test 3018. Assuming that the TCP packet is not a synchronization packet or a finish packet then step 3026 is performed and the packet is sent back over data bus 338 using control bus 336 to UART 330. UART 330 then converts the parallel data to serial data and sends the data over transmit data line 376 to connector 384 and onto the data radio.

In this way, the packet was routed from the Internet to a data radio to be transmitted to another data radio connected to an Internet node. The Internet node would then respond to the packet with a response packet and the data radio connected to connector 384 would receive the response packet. The response data packet then follows a reverse route through UART 330 to microcontroller 320 then back to UART 330 and to modem 361. In this way TCP packets, except for synchronization and finish packets, are passed through the Internet gate. This allows multiple Internet nodes to be connected to one Internet gate because the Internet gate handles the synchronization and finish packets and passes other TCP/IP packets to the Internet node or multiple Internet nodes. If the Internet gate passed the synchronization and finish packets to the Internet nodes then all of the Internet nodes connected to the Internet gate would try and respond to the synchronization and finish packets. This could cause collisions when the Internet nodes are trying to send data to the Internet gate. Even if the data from multiple Internet nodes passed through the Internet gate and on to the Internet device expecting a response from the synchronization and/or finish packets, that device would see multiple responses thus causing errors. Because the Internet gate prevents the synchronization, finish, and ICMP echo packets from reaching the Internet nodes, multiple Internet nodes can respond during one TCP/IP session. The Internet nodes examine the packets and only one Internet node will respond as described below.

The flowchart of Fig. 5 depicts the process of a serial interface Internet node the present invention sending a web page to a remote device, such as a web browser, and allowing the web page to control the setting of a device connected to the Internet node. With reference to the Internet node of Fig. 2, assume that a data radio is connected to connector 110. Note that the data radio is not part of the invention and any device that serves to connect the Internet node to an Internet gate or to some other device that makes a physical connection to the Internet would serve. Either connector 110 or connector 182 could be used for the physical connection to the Internet. At step 2002, a TCP/IP packet would be received by the

data radio and the data would travel on line 112 to microcontroller 120. Presumably the packet was forwarded by an Internet gate. The program running in RAM/ROM program and working memory 121 would analyze the packet and determine if the remote device, such as a web browser, is attempting to open the TCP/IP session with the Internet node. If the Internet gate is used for the physical connection to the Internet, then the Internet node does not need to process and respond to synchronization and finish packets as described above. The Internet node will then examine the packet to determine if it should respond, and if so, will send the response to the Internet gate to be forwarded on to the Internet. If some device other than an Internet gate is used for physically connecting to the Internet then the program running in memory 121 will process the synchronization, finish, and ICMP echo packets.

However, for the reasons described above, if the Internet node must process these packet tapes because no Internet gate is used, only one Internet node can use the physical connection to the Internet.

At step 2004, microcontroller 120 determines if the open TCP/IP session command was successful. If the open TCP/IP session was not successful, program flow returns to step 2000 as indicated by step 2006. If the open session was successful, at step 2008 microcontroller 120 processes the TCP/IP packet sent by the remote device. The remote device is typically a web browser and the browser will request an HTML web page. If the TCP/IP packet is complete, at step 2010 communications microcontroller 120 will send the packet to application microcontroller 130. This is accomplished by setting line 136 high indicating that data will flow from microcontroller 120 to microcontroller 130. Data flows of over bus 138 and is clocked into microcontroller 130 using line 134. Microcontroller 130 analyzes the received packet at step 2012.

Microcontroller 130 first determines if the TCP/IP packet is intended for this Internet node at step 2012. If the packet is not intended for this Internet node program flow returns to start at step 2014. If the packet is intended for this Internet node, program flow proceeds to step 2016 where microcontroller 130 analyzes to see if the command is complete and valid.

If the command is not complete then program flow moves back to step 2000 as indicated by step 2018. If the command is complete then program flow moves to step 2020.

In step 2020, microcontroller 130 determines if an action needs to be performed based on the information contained in the packet. If an action needs to be performed on the connected device program flow proceeds to step 2022 where that action will be performed.

Typical actions would involve sending serial data to a device connected to the Internet node.

For example, assume that a serial thermostat controller is connected to connector 164.

If microcontroller 130 needs to send data to the thermostat controller the following actions would be taken. First, microcontroller 130 would check CTS line 154. This line indicates if the thermostat controller is ready to receive data. The CTS signal from the thermostat controller would be carried over line 172 to level translator 160, which converts the RS-232 level signal on line 172 to a TTL level signal carried by line 154. If the thermostat controller is ready to receive data, then TTL level data is sent by microcontroller 130 over line 152 to level translator 160. Translator 160 converts the data to RS-232 levels and it is sent through connector 164 to the thermostat controller. If application microcontroller 130 needs to receive data then RTS line 156 is asserted by the microcontroller indicating that it is ready to receive data. This signal is converted by translator 160 and sent as a RS-232 level signal over line 174 to connector 164 and on to the thermostat controller. RS-232 level data is then sent by the thermostat controller to connector 164 and is carried by line 168 to level translator 160 where it is converted to TTL level data and sent over RXD line 150 to microcontroller 130.

As will be appreciated by one of ordinary skill, although a thermostat controller was used as a specific example, any serial RS-232 based device would work as described above.

Alternatively, if a RS-485 based device is connected to the Internet node instead of the RS-232 based thermostat controller of the previous example, that device would be connected to connector 166. Line 176 would carry the positive RS-485 data between connector 166 and RS-485 transceiver 162. Line 178 carries the negative RS-485 data between connector 166 and RS-485 transceiver 162. The TTL level receive and transmit data are carried between the transceiver 162 and application microcontroller 130 using lines 150 and 152 respectively. Line 158 when set low enables the receiver section of transceiver 162 and line 160 when set high enables the transmitter section of transceiver 162 with line 179 providing a ground reference for connector 166.

If interaction with the external device was not required at step 2020, or after the interaction has been completed, program flow proceeds to step 2024. In this step, the current state of the connected device is read from the device. This is accomplished using RXD line 150, TXD line 152, CTS line 154, RTS line 156, and control lines 158 and 160 as described above under the control of the program running in microcontroller 130.

Program flow proceeds to step 2026 where an HTML web page is constructed based on the status of the connected device. Due to memory constraints, the constructed web page is usually quite simple and typically consists of a small quantity of text and numeric information. The invention is not limited to nongraphical information, but memory

constraints currently typically restrict applications to nongraphical information. The HTML web page is then sent to communication microcontroller 120 as indicated in step 2028.

Microcontroller 130 sends the HTML web page to communication microcontroller 120 by setting line 136 low, outputting data onto bus 138, and clocking the data into microcontroller 120 using line 132. Once communications microcontroller 120 has received the HTML web page, program flow moves to step 2030.

In step 2030, communications microcontroller 120 sends the formatted web page received from application microcontroller 130 to TTL level serial connector 110.

Alternatively, RS-485 connector 182 could be used. TTL level data is sent on line 114 to connector 110 and to transceiver 180. If the RS-485 port is used, then line 186 is set high, before sending data, so that the RS-485 transmitter of transceiver 180 is enabled. Program flow then moves to step 2032.

In step 2032, the close TCP/IP, or finish packet, will be processed if it is received. If the Internet gate is forwarding packets to Internet nodes then the Internet gate will respond to the finish packet. Otherwise, communications microcontroller 120 will process and respond to the finish packet. Program flow then returns to step 2000 as indicated by step 2034.

In alternative embodiments, many different devices can be connected to Internet nodes. For example, a home burglar alarm could be connected to a serial Internet node, or an Internet node with a interface unique to a specific type of home burglar alarm could be used to interface with the alarm. Another alternative would incorporate a camera into an Internet node. In this application, a camera could be attached to an Internet node or embedded into the Internet node so that still or video pictures of a remote location from the user could be retrieved. The ability to capture sounds, such as a human voice, or play sounds could also be incorporated into the Internet node.

The above description of the invention is intended to be illustrative and not limiting.

Other embodiments of this invention will be obvious to those skilled in the art in view of the above disclosure.