Design and implementation of an end to end communication system for Smart Appliances using Power Line Communication. Kaustubh R. Kale, Aarti Bharathan Abstract-- The mere fascination provided by the idea of devices “talking” with each other, without any other medium besides the electric cable that is necessary for their existence, was the fountainhead for this project. Here is where Power line communication takes center stage. They have brought about a paradigm change in networking. They use one of the most ubiquitous transportation medium available for signaling and communication. Thus it has the potential of heralding the smart appliances into the next generation. Intelligent devices with the ability to interpret human commands and act on them are called Smart Appliances. Its intellect can be exploited further if these devices can actually start talking to each other, and control one another in a co-operative manner. The mere fascination provided by the idea of devices “talking” with each other, without any other medium besides the electric cable that is necessary for their INTRODUCTION existence, was the fountainhead for this project. By The vision is being able to buy a device from talking we envisage that the smart appliances will be BestBuy, plug it in the socket, plug any appliance to able to exchange at minimum speech packets between it; record the command word and you are set to each other. At present the smart appliances can be operate that device and any other in the house with it. activated by a dedicated voice detection software You don’t need an IP address or any special running on the given appliance. But we want to connection between the various devices. A powerline operate them using the voice detection and activation is all that is needed. software of any other appliance. This said appliance will broadcast the command word on the underlying Powerline Communication has been stated to have the Power line and the one to whom the command is potential of being the next “big” thing after the meant for will recognize the word and activate itself. Internet itself. The idea of home networking has been in the air for quite some time now. While most ideas This communication scene may be viewed as a three- have focused at developing something new for a home part process [figure 1]. The first part comprises the network, powerline communication taps the one powerline itself, the second is a voice processing resource now considered almost ubiquitous to every device, in our case a computer and the third the smart household – the powerline. Powerline Communication appliance empowers with infrastructure will enable voice communication networking capabilities, thus heralding a new between two PC’s connected over the powerline generation of smart appliances in a smarter home. network. the mundane electric socket 1 itself. Another ramification of this topology by HomePlug. The PowerPacket stations connect to a “standardized wall socket” by a line cord. [figure 3 of specifications] HomePlug provides a MAC service interface that provides data and management transport services. A set of primitives are defined for MAC/PHY interface. Figure 1. Schematic diagram of the layout The physical interface is in the form of waveforms and electrical characteristics that are modeled to be Section I describes the empowerment and working of compatible with the waveforms generated by existing powerline as a networking medium. Section II household equipment. describes VoIP as it is in use for our project. Section III describes the way smart appliances would behave while Section IV details the behaviour of the said smart appliance with the MAC and Physical layers of the powerline communication medium. This would result in embedded application software running on a single DSP chip for the given appliance. Thereafter, results of our coding experiment are detailed in Section V, with inspiration for future work in Section VI along with conclusions and references in Sections VII and VIII respectively. Figure 2. Network Reference Model The chief issue with powerline communication is I. POWERLINE SPECIFICATIONS Several methods for powerline communication have noise. There is noise inherently in the network; also been proposed in the past few years. We have looked the running of various household appliances produces at the PowerPacket Technical Specification described noise surges on the powerline. How is this dealt with? for the Intellon HomePlug device. It is based on The MAC and PHY specifications for powerline are Orthogonal tailor-made to suit to the channel that powerline Frequency Division provide. Figure 3 below outlines these specifications. Multiplexing(OFDM). Homeplug aims at providing data communication over the AC power lines in a home. The figure below describes the topology of the wiring in a typical house and the changes affected to this 2 transmission. Cyclic prefix may be explained as follows. In normal bock based transmission a preamble and a post-amble precede and follow the data block. In cyclic prefix the last ‘L’ data bits themselves form the preamble with no post-amble being present. Figure 4 below outlines a basic OFDM transmitter – receiver. Figure 3. MAC and PHY Specifications Powerline uses OFDM along with CSMA/CA to tackle the noise problems. Also, it should be noted, that unlike the regular Ethernet, no specific path length can be specified for the powerline – its length just depends on the copper that was laid out during the building construction. A brief outline of its Figure 4. OFDM Transceiver Model provisions for communication is detailed in this Forward Error Correction is applied to both the frame section. control and data information. Every effort is made to 1.1 OFDM provide as much robustness to the packet as possible. Orthogonal Frequency Division Multiplexing is the From a VoIP point of view this is very important as modulation technique chosen. It was chosen because vice packets cannot be re-transmitted and a very good of its adaptability, resilience and robustness to noise, signal to noise ratio is required for them. jammer signals and various frequency selective channels. In fact, the type of OFDM used for The OFDM Modulator comprises a Frame Control Powerline is called Robust OFDM or ROBO. This is FEC, which consists of a Product Encoder and Frame actually a robust form of DBPSK that provides time Control Interleaver. This FEC protects the frame as a and frequency diversity, which improves the ability of whole. The Data FEC consists of a Reed-Solomon the system to operate in the adverse conditions block present in a powerline system. puncturing block and a bit or ROBO interleaver. The encoder, a convolution encoder, a bit Data FEC provides protection to the data portion of OFDM basically divides the bandwidth of interest the frame. After the symbols have been processed by into several sub-carriers or sub-channels. For the the Frame FEC and the Data FEC they are further powerline system OFDM places 128 evenly spaced processed by a mapper which maps symbols with carriers in the frequency band for a range of 25MHz. respect to their constellation. An IFFT block then Of these carriers, only 84 are used for information. modulates the constellation points onto a carrier. OFDM uses a block based transmission with a cyclic Thereafter a preamble processes the frame to define 3 the preamble so it can be used for Automatic Gain The MAC provides encryption using 56-bit DES Control (AGC) and synchronization as well as phase (Data Encryption Standard) and key management reference for frame control signal encoding. A cyclic using PKCS v2.0 Password-based Cryptography prefix block adds the cyclic prefix to the block of Standard. symbols at the beginning of the frame. Finally a raised cosine block performs the pulse shaping. 1.3 MAC Architecture A HomePlug network consists of a set of HomePlug We have not described the physical specifications as stations connected along an AC powerline. While it would be beyond the scope of our present project. these stations appear to be physically connected over the powerline they are logically separated by the 1.2 Medium Access Specification privacy mechanism (DES). These stations go through The powerline MAC is modeled after the 802.11 a Channel Estimation process where they acquire MAC specifications. 802.11 also uses OFDM, though Tone Map Indices before they begin communication. the provisions offered by OFDM for 802.11 differ This way they ensure that the communication is as from those for Powerline. fast and reliable as possible. The Powerline MAC provides a Frame Transport that Tone Map allows a data length of 46 to 1500 bytes, with the HomePlug Station ability to transport 802.3 frames in an encapsulated HomePlug Station form, using 48 bit Ethernet addressing and bridging AC Power Line across various networks. HomePlug Station It also provides support for Reliable Frame Delivery, Logical Network Set By Encryption Key which supports the PHY layer features. Powerline ensures ARQ for unicast transmissions at the MAC Figure 5. System View of a HomePlug Station level. It uses Segmentation to limit the actual expose CSMA/CA: Carrier Sense Medium Access/Collision time on the wire (crucial on a powerline). Avoidance Having four different priority levels assuring best Powerline Communication employs a mechanism effort delivery provides Quality of Service. The with priorities and a random backoff time to provide system has the provision to shift form contention- for CSMA/CA. Before a station transmits it firsts based access to contention-free access to support very senses the medium using both physical and virtual low latency. These features are best suited for VoIP means. If the channel is found to be idle, it begins communication. VoIP packets can be specified a transmission immediately. However, if the channel is higher priority with almost contention-free access. found to be busy, the station waits till the end of the 4 current transmission. Then it starts a priority algorithm to avoid loops. Transparent bridging contention followed by the random backoff. The requires “promiscuous” reception of frames by the backoff algorithm used is a truncated version of the bridge. Powerline, because of its unstable nature original IEEE 802.3 binary exponential backoff requires the use of acknowledgements, which algorithm. becomes an issue when combined with “promiscuous reception”. As acknowledgements occur while the The protocol also makes use of positive and negative station is considered active on the channel, they are acknowledgements. A partial ARQ scheme is also required to be given special consideration. supported in which one member of a logical system responds to a multicast transmission. It basically In source-aware bridging the bridge is addressed as an indicates that at least one of the group members got individual address in itself. Its address is mentioned the message. The notable point about MAC level directly in the frame header. The bridge proxy is acknowledgements is that they occur before the obtained at the same time as when the station transmitter relinquishes the channel. performs the initial channel estimation and obtains tone mapping. The protocol makes suitable assumptions for collision too. A collision is assumed to have occurred if a Basic Channel Access: When a new frame is queued transmitter receives an ACK and the FCS field does for transmission it first follows the Random Backoff not match that of the transmitted frame. Again if a Procedure. Stations contend at a particular priority frame other than an ACK is received when an ACK level depending on their respective priorities. was to have been received, a collision is assumed to have occurred. An absence of any response is also The MAC provides four levels of priority. These are construed as a collision. CA3, CA2, CA1 and CA0. These priorities are represented by 0b11 through 0b00, with CA3 having MAC Level Bridging the highest priority. Thus, if a station with a higher In the HomePlug Network System bridging is priority is transmitting, the current station knows that accomplished by source-aware bridging. There are it definitely has to wait and shall defer its own two types of bridging prevalent in networks. One is transmission. The priority resolution process is transparent bridging while the other is source – aware carried out irrespective of whether a station is bridging. transmitting or not. Stations not transmitting are assigned priorities of CA0 or 0b00. This way, the While both use MAC level addressing, in transparent highest priority being transmitted on the channel at a bridging the bridge gradually learns the addresses of particular time is easily identifiable. If none of the the various stations and stores them in a forwarding stations were transmitting this priority would be 0b00. table. It usually makes use of a spanning tree 5 HomePlug specifications for priorities are consistent VoIP network. In our block specifications a voice with the provisions laid out by IEEE 802.1. While it packet would have a priority level of CA3. does not provide all the priorities it does provide enough to be compliant with industry standards for HomePlug provides an IP address thus creating the RSVP and the internet draft standard Subnet illusion of a regular Ethernet below an IP network. Bandwidth Manager to provide differentiated Quality The network adapter of the computer can connect of Services levels for multimedia traffic. The 802.1 directly to the IP socket provided by HomePlug recommended “application class” to User Priority (RJ45). A regular DSL internet connection can be Mappings is stated in Table 1. provided over the powerline by connecting the DSL set-up box into the powerline HomePlug. User Priority 7 In this manner, internet access over Powerline is made Application Class possible. This internet connection further motivates a) Network Control – characterized by a “must get there” requirement to maintain and support the network infrastructure. 6 b)”Voice” – characterized by less than 10 ms delay, hence maximum jitter 5 c)”Video” or “Audio” – characterized by less than 100 ms delay 4 d) Controlled Load – important business applications subject to some form of “admission control” be that network pre-planning or bandwidth reservation per flow at the time the flow started. 3 e)Excellent Effort – or “CEO’s best effort”, the best effort type services that an information services organization would deliver to its most important customers. 2 f) Best Effort – A regular LAN traffic 1,0 g) Background-bulk transfers and other activities that are permitted on the network but that should not impact the use of the network by other users and applications. Table 1. Recommended Application Class Mapped to User Priority the idea of VoIP over the powerline. 2. VOICE OVER IP DETAILS Voice over IP is a method of sending voice over the Internet using the Internet Protocol IP. The VoIP process begins with the digitization of speech and representing it in a compact format via encoding. A special Vocoder is used for this process. This digitized speech packet is then sent across the network. VoIP has certain characteristics. Its chief characteristic is that it is a Real Time Service with high Quality of Service requirements. Real Time HomePlug satisfies User Priorities from levels 0-3. Services are plagued with several problems. This Thus it can be deduced that powerline we are utilizing includes packet loss, as retransmission is not possible has capabilities good enough for regular internet in such a service. The solutions envisaged so far are transmission. better FEC and a limit on the packet loss acceptable to the human ear. End-to-End delay is also a governing But what about voice data? The IEEE802.1 standard factor in VoIP communication. A delay of 150ms to requires a priority level of 5-6 for voice data. 400ms is acceptable, but beyond this, intelligent Powerline does not assure that yet. However, we aim speech quality deteriorates rapidly. Random queuing at providing the best that can possible on a regular 6 without a reasonably high priority results in what is writes the data to the application it serves. In this way, termed as delay jitters. both client and server programs are implemented at the server and client machines. This enables bi- Our voice data is digitized at 8000 samples per directional conversation. second. The packets are PCM encoded using 16-bits packets and are 512 bytes of length. The data is bursty The client and server are implemented in the form of in nature. However, this packet size can be further concurrently running threads at both machines. This reduced by more efficient coding mechanisms like gives the idea that a machine is concurrently both CELP which reduces the PCM 64 kbps data rate to 8 listening to its socket and writing to a socket, which is kbps. Better encoding mechanisms are more suited to truly what a duplex system is supposed to do. a long distance noisy channel as more information Presently our system relies on a computer, which uses would be packed into a smaller packet. In a noisy sockets channel, the larger capacity required by a 64 kbps simultaneously at the server and the client to facilitate data rate packet may not be easily available. This its working. Also as of now only two PC’s are directly follows from Shannon’s channel capacity assumed to be on the powerline attempting to theorem. Hence, it follows that packet size and the communicate with each other. One computer acts as a encoding mechanism dictate the rate of transmission server i.e. it is assumed to have a fixed IP address as well as the quality of the received speech. assigned to it by the DHCP server. (Both machines created by a Java program running have client and server programs running on them in We have simulated a client-server model to independent threads) Other machines which want to demonstrate our peer-to-peer VoIP communication establish a connection are clients i.e. they specify the over the powerline. Java Socket programming is used IP address of the server and try to establish a to set up the network level connections using DHCP dedicated connection between the two. IP addresses for configuring the ends of a network. The connection is currently point to point and bidirectional. The first step was to create the sockets, using the IP addresses of the given machines. For Port 6600 powerline, the HomePlug provides the user with IP addresses, resolving the issue of “hunting” for an IP address, or dealing with the Ethernet directly. The IP Server Client Client Server Port 7700 addresses thereafter provide the end points of the connection, and form sources and sinks. At the client, Figure 6. Server Client model the client listens to the microphone to a user and Once the client is successfully able to connect to the writes data to a socket directed towards the server. At server it provides its IP address to the server. Now the the server end, the server listens to the socket and client program which is resident on the server 7 attempts a connection with the server program 2.1 Endpoint detection algorithm resident on the client on a predefined logical port The problem of automatic word boundary detection addresses. In this implementation the server listens on in a quiet environment or in the presence of noise is port 6600 and the other server on 7700 with addressed in this part. A fast and robust algorithm for individual clients connecting to the respective servers accurately locating the endpoints of isolated words is at the other end (figure 6.) described below. The algorithm utilizes energy to acquire the reference points. The required The Java Speech API is used to enable the working of characteristics of an ideal word boundary detector are: this application. Explanation of the end to end flow is reliability, as follows: simplicity, real-time processing and no a priori robustness, accuracy, adaptation, knowledge of the noise. All these issues are solved First the two servers establish a connection with their with this algorithm. respective clients. Now the clients capture speech inputs via the microphones and send it over the IP link. For getting the speech input in real time a sophisticated endpoint detecting algorithm is used. Data from the microphone is read from a buffer. Each window contains 512 bytes of data. For few initial seconds the program calculates the ambient noise (average power per window) in the environment and uses this as the threshold for capturing the starting Figure 7 Energy threshold for endpoint detection point of speech. It is assumed that if the energy per The algorithm calculates an average ambient noise for frame is more than 20 times this threshold the window one frame and takes frames up to say one second and has speech and not noise. Once this window has been averages it overall the frames in this one second to get detected, all subsequent windows for the next 5 the reference value of the noise (Figure 7.). seconds are assumed to contain speech and this data is sent over the network. On finishing this task the We calculate the energy per frame first i.e. program returns to normal operation in which it P[l...m]= Sum k=1..j ( s[k]²) listens to the microphones and updates its noise where s[k] are the speech data in the frame. Similarly threshold by doing a running average of the power. P is calculated for all the frames and an average is This enables the system to adapt to changing noise taken for the final noise value[ E]. conditions thus improving the quality and precision of E= [Sum k=l...m (p[k]²)]/m the endpoint detecting algorithm. The threshold is set at ( constant* E), as the detecting criterion. 8 The actual real time operation of this algorithm of The following figure shows the final truncated speech speech inputs is explained below. which is sent over the internet. Once this speech is The microphone captures data and sends it to the java received by the server at the other end it plays the program (figure 8.) which calculates the energy in real speech through the speakers and also saves the data time and checks for the threshold (Figure 9.). Speech by writing it to a file. signal is sampled at a rate of 8000 khz. The signal from the microphone is received in a buffer of 512 bytes in big Endian format with each sampled value of 16 bits in length. The frame is also of 300 bytes long. Following figures show the flow of having the real time input from the microphone on a frame basis, the endpoint detection algorithm in action and the final truncated (extracted) utterance. Figure 10. Extracted speech A matlab program running concurrently reads this file in a loop and processes the speech. On recognizing the speech if it finds it to be one of the preprogrammed command words such as “Lights on”, “Lights off”, “Fan on”, “Fan off” it activates the said appliance. The detail flow diagram is shown in figure 11. Figure 8. Speech captured via the microphones Figure 11. End to end flow schematic This recognition and smart appliance setup was taken from an earlier project done in EEL 6825. 2.2 Socket creation and handling When two devices need to communicate, there has to be a common platform mutually agreed upon for achieving the said communication. We assume that the two appliances have a separate IP to which Figure 9. Energy threshold detection communication can be possible. Also we assume a 9 connection oriented structure to minimize Next these threads follow the following four transmission delay and decapsulation time. For this a significant steps to establish and complete a suitable handshaking procedure must take place and connection. The server side would follow these steps: one of the appliances must assume the role of a server 1. Create a socket. 2. Listen for incoming connections from clients. 3. Accept the client connection. 4. Send and receive information. and the other as a client. In our case each opens a Java socket to enable the said handshaking. The client is responsible for initiating the connection of a given port. Ports are mutually agreed upon virtual address The java flow is as follows: on which the sockets listen for transmission and server = new ServerSocket( 6600, 100); Connection = server.accept(); output = new DataOutputStream( Connection.getOutputStream() ); output.flush() ; input=new DataInputStream(Connection.getInputStream() ); enter.setEnabled( true ); reception of data. The technical details can be found in section 2. 2.3 JAVA Code The programming details for the client and server have been explained in this section. Initially each appliance creates two threads for the client and server In the case of the client, these steps are followed: as given below 1. Create a socket. 2. Specify the address and service port of the server program. 3. Establish the connection with the server. 4. Send and receive information. PrintThread thread1, thread2; thread1 = new PrintThread("Port_listener"); thread2 = new PrintThread("Mic_listener"); thread1.start(); thread2.start(); The java flow is as follows: client = new Socket(InetAddress.getByName( "128.227.80.43" ), 7700); output = new DataOutputStream( client.getOutputStream() ); output.flush(); input = new DataInputStream( client.getInputStream() ); enter.setEnabled( true ); Individual threads now open their respective target and source audio ports Mixer.Info[] mixinfo = AudioSystem.getMixerInfo(); int numberOfMixers = mixinfo.length; Mixer JavaMixerSource = AudioSystem.getMixer(mixinfo[0]); //provides SourceDataLine Only steps two and three are different, depending on if it’s a client or server application. Mixer JavaMixerTarget = AudioSystem.getMixer(mixinfo[1]); //provides TargetDataLine Once the sockets are bound to their respective Client and Server, the actual audio ports are opened for Line.Info[] targetport = JavaMixerTarget.getTargetLineInfo(); Line.Info[] sourceport = JavaMixerSource.getSourceLineInfo(); voice access. 10 captureFormat = new AudioFormat(8000, 16, 1, true, true); would directly be embedded into the appliance which This opens the target port TargetDataLine.Info targetInfo = new DataLine.Info(TargetDataLine.class, captureFormat); TargetDataLine targetLine = (TargetDataLine) JavaMixerTarget.getLine(targetInfo); targetLine.open(captureFormat); from voice detection to recognition, followed by would enable to perform all the functions all the way determining which device it must transmit the voice data to. The HomePlug MAC transports data that is passed to This opens the source port DataLine.Info sourceInfo = new DataLine.Info(SourceDataLine.class, captureFormat); SourceDataLine sourceLine = (SourceDataLine) JavaMixerSource.getLine(sourceInfo); sourceLine.open(); it from a higher layer. This transport section works across bridges connecting different LANs. The MAC Protocol Data Unit or the MPDU is the frame of Powerline. The MAC Service Data Unit (MSDU) is After this is done each application is ready for bi- the term used for the packet that the MAC is supposed directional communication of voice data. to transmit in its frame. The Service block not only contains the required data, but also encryption 3. WORKING OF A SMART APPLIANCE information, management information and a host of other details required for reliable transportation. The final operation of the appliances is as follows: Once the device (Lights) is trained to recognize its The HomePlug frame is detailed in Figure 12. respective appliance command word (Lights on/off) and is powered on; it will create a server client socket 25 bits Frame Control 4 symbols Preamble and connect to the other device fan in our case situated in another room. Now if we say “fan on” near Figure 12 a) Delimiter the light, as it is running in real time, the endpoint detecting algorithm will capture only the command This Frame Control indicates the start of the frame. It word and neglect the silence before and after the has information for contention control, length of the utterance. Next it shall recognize that this is not a frame and tone map index. command word for it and broadcast the packet on the 5 bytes network but as of now shall send it over the dedicated Segment Control connection it has established with the server running 6 DA 6 variable byte count SA Frame Body 2 bytes BPAD FCS Variable symbol count 20-160 symbols on the Fan. The server on the fan shall read the data Figure 12 b) Payload and send it to the recognition engine which after recognizing it shall switch on or switch off the fan. The Payload is of variable length. The frame body contains the MSDU which is the information to be 4. IMPLEMENTATION DESIGN transmitted. Essentially the frame body is of maximum length 1500 bytes. Smart Appliances of the future will communicate directly with each other via the powerline. A DSP 11 EFG 25 bits Frame Control 4 symbols Preamble Addresses (SA and DA respectively) are 6 bytes in length and correspond to the standard IEEE 802.3 format. Delimiter The Frame Body comprises the Service Block. This Figure 12 c) Delimiter Service Block contains the actual payload to be This delimiter denotes the end of the frame. The transmitted. The Service Block is at least 1616 bytes frame control here indicates the contention control as in length. This payload will be generated by the well as the channel access priority. The EFG is an higher application and transport layers. Our focus will End of Frame Gap between the payload and the be in generating this payload in the most optimal delimiter. manner possible. A more detailed explanation of the frame is now It is required that the frame be of 20 or 40 symbols for given. proper transmission in the PHY. The B-PAD or Block Padding provides the extra zeros when the service The Delimiter comprises the preamble and the frame block is not of the minimum required length. The FCS control block. There is a start of frame delimiter and is again CRC, but this time it is 16-bit CRC. an end of frame delimiter. The preamble is used for proper frame synchronization and detection. The Now that we are familiar with the actual frame frame control contains information used by all other structure of the HomePlug Powerline, we can decide stations on the channel and the destination. It denotes in a more cogent manner how to modify it to suit the the frame length, either as a number of 40-symbol needs of a communicating smart appliance. PHY transmission blocks or a single 20-symbol PHY transmission block. The Channel Access Priority is a We can keep certain things in mind when considering 2-bit field and specifies the frame priority and smart appliances in action. In a normal household, the determines contention control as well. There is probability of two devices being instructed to start provision for ACKs as well as NACKs. The Frame operation is very low. Also, the need for the device to Control Check Sequence is an 8-bit field that used 8- start operating as soon as it is instructed without too bit Cyclic Redundancy Codes (CRC) for error much delay is required. Hence delays are crucial. checking. Also, a single household may have several bridges; hence the frames should be able to cross bridges The Frame Header contains the segment control, the easily. However, the frame service block would not be Source Address and the Destination Address. The too long. This is because; the command words in a segment control field is 40 bits long and contains smart appliance knowledge base would be succinct. necessary to perform frame reception and reassembly Thus, the payload would be small (practically less of segmented frames. The Source and Destination 12 than 512 bytes) requiring only a 20 symbol PHY All other error check codes and correction codes are transmission block. retained. Frame segmentation and re-segmentation may not be too much of an issue as most service All these characteristics communication can of motivate smart appliance blocks would fit in the 20-symbol PHY transmission the following block. Thus the overhead involved with these modifications. We begin with the Frame Control field processes is also removed. in the delimiter. This field holds information about contention control, channel access priority; frame This would eventually result in a DSP with lesser length, ACK response field and Frame check expectations. It would conserve system energy and sequence. This frame control field can be modified improve throughput. The system’s memory would for smart appliances. With a low risk of collision, we also be used more efficiently. can make redundant the entire contention control process. This process would require certain other Once this hardware implementation is achieved the changes too. HomePlug would have to define a improvements at the application layer is as follows: certain small frequency band and allocate it exclusively for smart appliance use. This way, the Instead of a connection oriented system we propose a smart appliance packet will not interfere with the datagram based broadcast system. Such a system will regular data traffic associated with internet across be able to support any number of appliances without powerline. Once, this is resolved, the frame can be any extra overhead for the end user. Because of the modified without much of a problem. If contention fact, each device will not face the need to know the control is not required then the backoff algorithm existence of other devices on the powerline network. itself becomes redundant. This would be a side affect When a device receives a user command it responds which is yet to be affected. We assume that the affects in action only if the command is meant for the device. would not be adverse. Otherwise, the command is ignored and the packet containing the command utterance is broadcast on the The channel access priority would be set to 3 – the underlying powerline network at the “smart highest possible. In the absence of contention control, appliance” frequency. All devices read this packet this is again not necessary, but it is better to enforce and only the device which recognizes the word gets that these packets be assigned the highest possible operated. In such an operational scenario even an IP priority. ACKs are not necessary, if a message does address is not needed. not get across, one cannot be sure if retransmission 5. OPEN PROBLEMS will solve the problem. Thus, instead of doing away with ACKs, we keep them at partial measure. We began our project and our ideas with just a few smart appliances in a house. However, it is not difficult to envisage that soon there would be a time 13 when almost all the appliances in a home would be himself – thus defeating the whole idea of smart “smart”. They would be operated not just by adults appliances! Again, if an individual is outside the but also by kids (toddlers – just learning to talk) the room, or totally elsewhere, and wants to turn that elderly and even the disabled. Changes would have to particular bed-lamp on, the alternative should be made be effected in our system design and topology to available. accommodate the special needs of all these members of our society. The appliances should be language Ideas like sub netting will jeopardize our broadcast friendly as well – with the ability to understand at based idea, and may require the system to be a lot least more than one language at a time. We propose more complicated. The user may have to install a certain central monitor which is constantly updated with all requirements and outlines, but their implementation is still an open problem. the new appliances, their local command words, their global command words, perform complex message As all the appliances in a home become part of the passing and may require considerable memory and “smart appliance” family, the naming convention for processing power. Thus loosing the edge of having a each such appliance being made global would result simply “purchase from BestBuy and use” system. in several problems. Each household member would However, the upside is that once the system is have to remember all the names of all the devices, and installed it is accessible to even the most inane – like as the number of these names increase, so will the the toddler in the house who would even find complexity of the names. This cannot be permitted for pronouncing a long command word impossible. successful running of a “smart home”. 7. CONCLUSIONS One suggestion is to look at the whole situation like the way one would look at sub netting a large network We implemented a JAVA working model of the two- or introducing functions is a large program. Each way smart appliance communication. A client – server room in the house could be likened to a “function” in model was implemented for this purpose. Two – way a program with its own set of local variables. Thus, if voice communication has been implemented. Our data there are four bedrooms in a house, each bedroom packets were 512 bytes and were encoded using PCM. would have its own bed-lamp and closet light. If a Thereafter, we designed a smart appliance system. For person is operating one of these equipments from this purpose we studied the HomePlug specifications within the room, all he needs to do is use the provided command word “bed-lamp on” for it to be switched modifications to it, so that VoIP between two on. If such localization were not implemented, the appliances may take place in a more efficient and individual would have to mention a long command simple manner. It has been proposed that a frequency word like “bedroom 1 bed-lamp on” which could be range in the powerline frequency band be allocated to bothersome! He would instead turn the lamp on the smart appliances in a house, making their to us, and have suggested some communication more direct and fast. The end design 14 ultimately is broadcast based, completely doing away with the IP addressing. 8. REFERENCES 1. HomePlug 1.0 Specification June 30th 2001 2. Deitel and Deitel, JAVA: How to Program. Third Edition 3. Harold, Elliotte Rusty, Java Network Programming 4. http://www.pulsewan.com/tcpipwp.htm 5. http://java.sun.com/javaone/javaone2001/pdfs/1378.pdf 6. Rappaport, Wireless Communications, Principles and Practice. Second Edition 7. Andrew S Tanenbaum, Computer Networks, Sixth Edition 8. Towards dependable home networking: an experience report Yi-Min Wang; Russell, W.; Arora, A.; Jun Xu; Jagannatthan, R.K. Dependable Systems and Networks, 2000. DSN 2000. Proceedings International Conference on , 2000 Page(s): 43 -48 9. Xuedong Huang, Spoken Language Processing, A guide to Theory, Algorithm, and System Development 15