Abstract:
The present invention describes an apparatus for interconnecting hardware of an electronic device with application programs for controlling the electronic device. The apparatus is divided into three separate layers. The first layer interfaces the apparatus to the hardware of an electronic device and independently controls the hardware interface protocols necessary for interconnecting the apparatus with the hardware of an electronic device. A second layer interfaces the apparatus to application programs for controlling the electronic device. The second layer independently controls the software interface protocols necessary for interconnecting the apparatus with application programs for controlling the electronic device. A router layer routes data between the first and second layers or between independently created objects located within the first and second layers.

Description:
BACKGROUND OF THE INVENTION 
     1. Technical Field of the Invention 
     The present invention relates to system bus architectures for cellular telephones, and more particularly, to a multi-level interface for interconnecting a system bus line with application programs located internally or externally of a cellular telephone. 
     2. Description of Related Art 
     A system bus on future cellular telephones must provide wider capabilities than are available on existing cellular telephones. Currently, the system bus supports accessories like vehicle adaptors, battery chargers and portable hands free units. These accessories may be either dumb or intelligent. Dumb accessories are hardware controlled and communicate with the telephone through discrete signals on the system bus. Intelligent accessories contain a microprocessor and communicate to the telephone software over the system bus serial port using a defined interface protocol. Future system buses in addition to supporting these accessories will be required to support a serial communications interface to a computer, such as a PC, laptop, or PDA. 
     Application programs (APs) running on an external computer communicate with the cellular telephone over the system bus to an application program interface (API) residing in the telephone. An example of this type of communication over the system bus is a test AP that runs on a computer and interfaces to a test API residing in the cellular telephone. The test AP, through a menu driven display on the computer, enables an operator to initiate various tests on the cellular telephone and then display the test results. The test API performs the commanded test on the telephone and sends the results to the test AP. This example illustrates how an application communicates over the cellular telephone system bus. There is a potential for many different types of applications to use this interface for communication. The application programs will be developed by a variety of different vendors, as well as, providers of cellular telephones. 
     Thus, a need has arisen for a new type of bus system interface that enables a variety of software developers of APs and APIs to create products that are easily interfaced with the system bus of a cellular telephone. Thus, an interface architecture providing a standard definition for the communication interface between the application and the hardware interface of the system bus would be greatly beneficial. 
     SUMMARY OF THE INVENTION 
     The present invention overcomes the foregoing and other problems with an apparatus for interconnecting hardware of an electronic device with application programs for controlling the electronic device. The apparatus includes a first layer for interfacing the apparatus to the hardware of an electronic device. The layer independently controls the hardware interface protocols necessary for interconnecting the apparatus to the hardware of an electronic device. The layer further includes a plurality of independent objects. Each of the independent objects is able to interface the apparatus to a particular hardware component. 
     The apparatus includes a second layer for interfacing the apparatus to application programs for controlling the electronic device. The application programs may be located internally or externally of the electronic device. The layer independently controls the software protocols necessary for interconnecting the apparatus with the application programs. The layer further includes a plurality of independent objects for controlling an interface between the electronic device and a particular application program. 
     A routing layer routes data between the first and second layers in four different manners. The router may route data from first layer to the second layer, from the second layer to the first layer, between objects in the first layer, or between objects in the second layer. In this manner, the interface enables interconnection between a software application program and the system hardware in a manner such that the hardware interconnection protocols and the software interconnection protocols operate independently of each other through the separate layers of the interface. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention, reference is made to the following detailed description taken in conjunction with the accompanying drawings wherein: 
     FIG. 1 is a block diagram illustrating the multi-level communications interface of the present invention; and 
     FIG. 2 is an example illustrating operation of the interface of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The system bus interface of the present invention partitions the software functionality linking the system bus to the application programs into several layers. The lower layer (datalink stack)  10  enables point-to-point communications at the datalink layer between hardware components and/or hardware components and application programs. The upper layer (API layer)  15  enables high level communication protocols between the application program  20  and the application program interfaces. The application program  20  may be located internally or externally of the cellular telephone within which the interface resides. In the case of external APs, the AP  20  communicates with the API layer  15  over the system bus. For APs  20  located within the cellular telephone, communication occurs directly between the AP and API layer  15 . 
     This configuration isolates the high-level software of the upper layer  15  from the low level software of the lower layer  10 . This enables AP software and API software to communicate without needing to know the details of the hardware interface affected by the AP software commands. Likewise, it allows software controlling the hardware components to be concerned only with low level interface protocols without being concerned with any AP/API communication protocols. A middle (router) layer  30  routes data between the upper and lower layers. 
     The upper layer  15  comprises the application program interface (API) layer. The API layer  15  is divided into a plurality of API objects  35  where each object is independent of one another. By partitioning the API layer  15  into a plurality of independent objects  35 , modular software development is allowed. Thus, many modular objects  35  for many different applications may be constructed and a particular software application need only be linked with the modular objects  35  required to carry out a particular functionality defined by the software application. 
     In FIG. 1 there are listed API objects for performing security functions  35   a , configuration functions  35   b , testing  35   c , user interface applications  35   d , RF control applications  35   e , short messages service applications  35   f , battery control  35   g  and  135 AT control  35   h . Each of the API objects  35  at this layer interfaces to a particular application program (AP). The AP may reside in a computer device, in an accessory or in the telephone itself. If the AP resides in a computer device or in an accessory, it communicates with the API layer  15  via the system bus  40 . If the AP resides in the cellular telephone, it communicates to the API layer  15  directly. 
     The API objects  35  utilize a plurality of system procedures (SP) to carry out functionalities requested by the API. Each SP comprises an instruction or instruction set that carries out a particular action within the cellular telephone. Each SP requires certain input parameters to generate a particular result or return value. System procedures relieve the API object software developer of needing to know the details of the lower layer interface protocol. The actual software contained in each SP consists of software that controls the communication interface between the API layer  15  and the router layer  30 . 
     The SP software creates a protocol frame from the input parameters supplied to the SP. The protocol frame consists of a header and an optional data section concatenated together. The header contains logical addresses and a command code. The logical addresses identify the source API object and the destination API object. The SP software uses the command code to map the input parameters of the SP to the data section of the protocol frame. 
     The middle (router) layer  30  consist of a single router object  45  responsible for routing data between the objects in the upper and lower layers. This effectively isolates the API layer  15  from the datalink stack  10  below. The router object  45  may route data in four different ways. The router object  45  routes data between two API objects  35 . The router object  45  may also route data between two datalink stack objects  50 . The router object  45  may further route data from an API object  35  to a datalink stacked object  50  or from a datalink stack object to an API object. 
     The interface protocol of the router layer  30  to the API layer  15  is the L 7  protocol frame. The interface protocol between the router layer  30  and the datalink stack  10  is the L 3  protocol frame. An L 3  protocol frame consists of an L 3  header concatenated to the L 7  protocol frame. The L 3  header contains physical source and destination addresses. The router object  45  creates the physical addresses from the logical addresses contained in the L 7  protocol header of the L 7  protocol frame. When data is routed between objects in the same layer, the router simply transfers the frame data from the source object to the destination object. 
     The lower level  10  consists of a datalink layer  55  and a physical layer  58 . The two layers are stacked together and collectively referred to as the datalink stack. The datalink stack  10  comprises components for utilizing the communications protocol necessary for communicating with the hardware components of a cellular telephone. The physical layer  60  consists of the actual hardware interfaces necessary for connecting the system bus  40  to the cellular telephone. As with the API layer  15 , the datalink stack  10  is divided into a plurality of independent objects  50 . Each object  50  is responsible for interfacing the hardware layer  60  to the system bus and exercising the proper interface protocol for that hardware. 
     The examples of datalink stack objects  50  shown in FIG. 1 include memory  50   a , system board  50   b , man machine  50   c , serial control  50   d , RF  50   e  and DSP  50   f . These objects  50  link the interface to the datalink layer  55  and a memory interface  55   a , system board interface  55   b , man machine, interface  55   c , serial interface  55   d , RF interface  55   e  and DSP interface  55   f , respectively. The particular requirements of the interface protocol for each datalink stack object  50  are dependent upon the interfacing hardware. The datalink objects  50  interface with the various hardware interfaces  65 . Use of the independent datalink stack objects  50  enable the addition or removal of a particular interface without affecting the remainder of the objects within the datalink stack  10 . 
     Referring now to FIG. 2, there is illustrated an example of how the various layers of the interface communicate between a test application program interface  80  located within a cellular telephone  85  and a test application program  90  located within a PDA  95 . In order for this architecture to properly function between an AP  90  and API  85 , the multiple layers residing within the cellular telephone  85  must also reside in the connected computer or intelligent accessory (the PDA  95 ). The external device needs only the modular objects required for the particular AP being executed. Thus, as can be seen in FIG. 2, both PDA  95  and the cellular telephone  85  include an AP/API layer  15 , a router layer  30 , and a system bus object  50  from the datalink stack  10  interfacing with a system bus interface  100 . 
     The illustration of FIG. 2 discloses two lines  105  representing communications between layers. There is a first path  105   a  between the PDA&#39;s test AP  110  and the cellular telephone&#39;s test API  115 . A second path  105   b  runs between the test AP  110  and the user interface  120  within the cellular telephone  85 . The PDA&#39;s test AP  110  initiates a request to perform a particular test procedure to the cellular telephone&#39;s test API  115 . These two top layers communicate with the bottom layer in each device. Communication occurs between the datalink stack objects of each device through the hardware layer over a physical link. A path from the test API  115  to the user interface allows test information generated by the procedure to be displayed on the display of the cellular telephone. 
     Although a preferred embodiment of the method and apparatus of the present invention has been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it is understood that the invention is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.