KR20010034892A - Communications system having a distributed object architecture - Google Patents

Communications system having a distributed object architecture Download PDF

Info

Publication number
KR20010034892A
KR20010034892A KR1020007013219A KR20007013219A KR20010034892A KR 20010034892 A KR20010034892 A KR 20010034892A KR 1020007013219 A KR1020007013219 A KR 1020007013219A KR 20007013219 A KR20007013219 A KR 20007013219A KR 20010034892 A KR20010034892 A KR 20010034892A
Authority
KR
South Korea
Prior art keywords
software
subsystem
interface
bus
processor
Prior art date
Application number
KR1020007013219A
Other languages
Korean (ko)
Inventor
피터 기프포드 쿡
존 폴 샤리트
Original Assignee
비센트 비.인그라시아
모토로라 인코포레이티드
알크 엠 아헨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비센트 비.인그라시아, 모토로라 인코포레이티드, 알크 엠 아헨 filed Critical 비센트 비.인그라시아
Priority claimed from PCT/US1999/011921 external-priority patent/WO1999063436A1/en
Publication of KR20010034892A publication Critical patent/KR20010034892A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • H04B1/401Circuits for selecting or indicating operating mode

Abstract

통신 장치(10)는 소프트웨어 버스(12)에 각각 연결되는 복수의 서브시스템(16, 18, 20)을 포함한다. 서브시스템(16, 18, 20) 각각은 특정 처리 기능에 각각 관련된 복수의 소프트웨어 객체(30)를 저장하기 위한 관련 메모리를 구비하고 있는 적어도 하나의 프로세서(42)를 포함한다. 소프트웨어 버스(12)는, 많은 가운데 특히, 다른 서브시스템에 위치한 소프트웨어 객체들(30) 사이에 인터페이스를 제공함으로써, 하나의 소프트웨어 객체(30)가 통신 장치(10)에서 임의의 다른 소프트웨어 객체(30)를 호출하는 것을 허용하도록 동작한다. 일 실시예에서, 공통 객체요청 브로커 구조(CORBA) 표준을 따르는 소프트웨어 버스(12)가 제공된다.The communication device 10 includes a plurality of subsystems 16, 18, 20 that are each connected to a software bus 12. Each of subsystems 16, 18, and 20 includes at least one processor 42 having associated memory for storing a plurality of software objects 30, each associated with a particular processing function. The software bus 12 provides, among other things, an interface between software objects 30 located in different subsystems, so that one software object 30 is connected to any other software object 30 in the communication device 10. Acts to allow calling). In one embodiment, a software bus 12 is provided that conforms to the Common Object Request Broker Architecture (CORBA) standard.

Description

분산된 객체 구조를 갖는 통신 시스템{COMMUNICATIONS SYSTEM HAVING A DISTRIBUTED OBJECT ARCHITECTURE}COMMUNICATIONS SYSTEM HAVING A DISTRIBUTED OBJECT ARCHITECTURE

지금까지의 통신 시스템은 일반적으로 사용자들간의 통신을 수행하기 위해 하나 또는 소수의 사전 할당된 작업을 수행하도록 설계된 통신 장비를 사용한다. 그러한 장비는 일반적으로 좁은 범위의 설계된 동작 내에서는 잘 작동하지만 변화하는 시스템 필요조건들에 적응할 수 없다. 그러므로, 이러한 장비를 구비하는 시스템은 제한된 사용 범위를 갖고, 관련 하드웨어가 계획된 사용 수명에 도달하기도 전에 쓸모 없게 되는 경향이 있다. 이는, 비용이 많이 드는 시스템의 재설계가 일반적이고 기능 하드웨어 유닛이 시기상조적으로 폐기되는 상황을 초래한다.Telecommunication systems up to now generally use communication equipment designed to perform one or a few pre-allocated tasks to perform communication between users. Such equipment generally works well within a narrow range of designed operations but cannot adapt to changing system requirements. Therefore, systems with such equipment have a limited range of use, and tend to become obsolete before the associated hardware reaches its intended life. This leads to situations where expensive redesigns of the system are common and functional hardware units are discarded prematurely.

본 발명은 일반적으로 통신 시스템에 관한 것으로서, 특히 매우 다양한 여러 신호 포맷을 지원할 수 있는 통신 시스템에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to communication systems, and more particularly to communication systems capable of supporting a wide variety of different signal formats.

도 1은 본 발명의 일 실시예에 따른 통신 장치를 도시하는 블록도.1 is a block diagram illustrating a communication device according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예 있어서 도 1의 통신 장치 내에서의 기능적 상호관계를 도시하는 블록도.FIG. 2 is a block diagram illustrating functional interrelationships within the communication device of FIG. 1 in one embodiment of the present invention. FIG.

도 3은 본 발명의 일 실시예에 따른 무선 주파수(RF) 서브시스템에 대한 하드웨어 구조를 도시하는 블록도.3 is a block diagram illustrating a hardware structure for a radio frequency (RF) subsystem in accordance with an embodiment of the present invention.

그러므로, 변화하는 시스템 필요조건들에 적응할 수 있는 통신 장비가 요구되고 있다.Therefore, there is a need for communication equipment that can adapt to changing system requirements.

본 발명은 분산된 객체 구성을 갖는 통신 장치에 관한 것이다. 통신 장치는 소프트웨어 버스에 모두 링크된 복수의 통신 서브시스템을 구비한다. 통신 서브시스템 각각은 장치 내에서 통신 신호를 처리하기 위한 범용 마이크로프로세서나 디지털 신호 프로세서와 같은 적어도 하나의 프로세서를 구비한다. 각각의 프로세서는 상기 프로세서에 의해 실행될 소프트웨어 프로그램을 저장하기 위한 관련 메모리를 구비한다. 소프트웨어 객체로서 공지된 일부 소프트웨어 프로그램은 (관련 프로세서와 연계하여)특정 처리 기능을 수행하도록 각각 동작하는 특정 용도의 프로그램이다. 소프트웨어 버스는 통신 서브시스템들 중 하나의 서브시스템에 내재하는 프로그램이나 객체가 장치 내의 다른 서브시스템에 내재하고 있는 소프트웨어 객체를 호출(invoke)하도록 허용한다. 즉, 만약 하나의 서브시스템에서 실행될 프로그램이, 특정 처리 기능이 수행되어야 하는 것을 필요로 하고, 상기 프로그램이 상기 기능을 수행하기 위해 서브루틴이나 소프트웨어 객체로 직접적인 엑세스를 하지 않는다면, 상기 프로그램은 필요한 기능을 수행하기 위해서 다른 서브시스템 내의 객체 위치를 찾아 호출하도록 소프트웨어 버스 기능을 사용할 수 있다. 또한, 이 소프트웨어 버스는 장치 내에서 서브시스템간의 정보 흐름을 허용한다.The present invention relates to a communication device having a distributed object configuration. The communication device has a plurality of communication subsystems all linked to the software bus. Each communication subsystem has at least one processor, such as a general purpose microprocessor or a digital signal processor, for processing communication signals within the device. Each processor has an associated memory for storing a software program to be executed by the processor. Some software programs, known as software objects, are special purpose programs that each operate to perform a particular processing function (in association with an associated processor). The software bus allows a program or object inherent in one of the communication subsystems to invoke a software object inherent in another subsystem in the device. That is, if a program to be run in one subsystem requires a particular processing function to be performed, and the program does not have direct access to a subroutine or software object to perform the function, then the program is required. To do this, you can use the software bus function to locate and call objects within other subsystems. The software bus also allows information flow between subsystems within the device.

본 발명의 바람직한 실시예에서, 통신 장치 내의 대부분 또는 모든 소프트웨어 및 하드웨어 인터페이스는 산업 분야에서 엄격하게 공식적으로 설명되는 표준(즉, 공개된) 인터페이스 프로토콜을 따른다. 일예로, 일 실시예에서, 이 소프트웨어 버스는 객체 관리 그룹에 의해 개발된 공통 객체요청 브로커 구조(CORBA : Common Object Request Broker Architecture)를 따르는 객체요청 브로커(ORB)를 포함한다. 표준 인터페이스를 사용하는 것 외에도, 본 발명의 통신 장치는 표준 하드웨어 인터페이스 연결을 통해 하드웨어 모듈이 장치에 빠르고 쉽게 추가되도록 허용하는 하드웨어 확장가능성을 바람직하게 제공한다. 본 발명의 통신 장치는 매우 융통성이 있고, 고도의 업그레이드가 가능하며, 광대하고 가변적인 범위의 통신 애플리케이션을 수행할 수 있다.In a preferred embodiment of the present invention, most or all software and hardware interfaces in the communication device follow a standard (ie, published) interface protocol that is strictly formally described in the industry. As an example, in one embodiment, the software bus includes an Object Request Broker (ORB) conforming to the Common Object Request Broker Architecture (CORBA) developed by the Object Management Group. In addition to using a standard interface, the communication device of the present invention preferably provides hardware scalability that allows hardware modules to be added to the device quickly and easily via standard hardware interface connections. The communication device of the present invention is very flexible, highly upgradable, and can perform a vast and variable range of communication applications.

도 1은 본 발명의 일 실시예에 따른 통신 장치(10)를 도시하는 블록도이다. 도시된 바와 같이, 통신 장치(10)는 소프트웨어 버스(12), 인터페이스 메모리(14),무선 주파수(RF) 및 모뎀 서브시스템(16), 보안 서브시스템(18), 및 네트워킹 및 제어 서브시스템(NCS)(20)을 구비한다. 도 1에 도시된 블록들은 개별적인 하드웨어 유닛들에 반드시 대응하지는 않는 기능 요소들을 나타낸다는 것이 주지되어야 한다. 도시된 실시예에서, 각각의 서브시스템(16, 18, 20)은 특정 부류의 통신 기능을 수행하기 위해 적응된다. 일예로, RF 및 모뎀 서브시스템(16)은 특히 전형적인 송/수신 기능과 변/복조 기능을 수행하고; 보안 서브시스템(18)은, 많은 가운데 특히 데이터 암호화/암호해독 기능을 수행하며; NCS(20)는, 많은 가운데 특히 사용자 인터페이스 기능을 수행한다. 그러나 본 발명이 특정한 용도의 버스 시스템 사용으로만 제한되지는 않는다는 것이 인지되어야 한다.1 is a block diagram illustrating a communication device 10 according to an embodiment of the present invention. As shown, the communication device 10 includes a software bus 12, an interface memory 14, a radio frequency (RF) and modem subsystem 16, a security subsystem 18, and a networking and control subsystem ( NCS) 20. It should be noted that the blocks shown in FIG. 1 represent functional elements that do not necessarily correspond to individual hardware units. In the illustrated embodiment, each subsystem 16, 18, 20 is adapted to perform a particular class of communication function. In one example, RF and modem subsystem 16 performs particularly typical transmit / receive and modulation / demodulation functions; Security subsystem 18, among other things, performs data encryption / decryption functions; The NCS 20 performs, among other things, user interface functions in particular. However, it should be appreciated that the invention is not limited to the use of bus systems for specific purposes.

각각의 서브시스템(16, 18, 20)은 자체의 할당된 기능을 수행하기 위해 하나 이상의 프로세서(42)를 구비한다. 각각의 프로세서(42)는, 비록 다른 처리 소자들이 적절할 수 있을 지라도, 범용 마이크로프로세서(GPP), 축소 명령집합 컴퓨터(RISC : Reduced Instruction Set Computer), 복합 명령집합 컴퓨터(CISC : Complex Instruction Set Computer), 또는 디지털 신호 프로세서(DSP)와 같은 상업적으로 이용가능한 디지털 처리 소자인 것이 바람직하다. 각각의 프로세서(42)는 상기 프로세서(42)에 의해 실행될 하나 이상의 소프트웨어 객체(software object)(30)( 및, 가능하게는, 다른 프로그램)를 저장하기 위한 관련 메모리(랜덤 엑세스 메모리와 같은)를 구비한다. 상술된 바와 같이, 각각의 이러한 소프트웨어 객체(30)는 특정 처리 기능을 수행하기 위한 소프트웨어 프로그램을 나타낸다. 일반적으로, 각각의 소프트웨어 객체(30)는 그것의 각 기능을 수행하기 위해서 대응하는 프로세서(42)의 내부에서 독립적으로 호출되고 실행될 수 있다. 본 발명에서 사용되는 바와 같이, 용어 "소프트웨어 객체"는 프로그래밍 언어에 상관없이 임의의 제한된 용도의 소프트웨어 루틴을 나타낸다. 도시된 바와 같이, 소프트웨어 객체(30)는 각각의 서브시스템(16, 18, 20) 내의 여러 위치에 저장될 수 있다. 통신 장치(10) 내에서 특정 소프트웨어 객체(30)를 호출하기 위해서는, 상기 객체(30)가 장치(10) 내에서 어디에 위치하는 지를 알 필요가 있다. 소프트웨어 버스(12)는 장치(10) 내에서의 여러 소프트웨어 객체(30)에 대한 위치를 기억하고 있고, 그러므로 특정 처리 기능이 수행될 필요가 있을 때 찾고자 하는 객체의 위치를 알게 된다.Each subsystem 16, 18, 20 has one or more processors 42 to perform its assigned functions. Each processor 42 may be a general purpose microprocessor (GPP), a reduced instruction set computer (RISC), a complex instruction set computer (CISC), although other processing elements may be appropriate. Or a commercially available digital processing element, such as a digital signal processor (DSP). Each processor 42 may have associated memory (such as random access memory) for storing one or more software objects 30 (and possibly other programs) to be executed by the processor 42. Equipped. As mentioned above, each such software object 30 represents a software program for performing a particular processing function. In general, each software object 30 may be independently called and executed within the corresponding processor 42 to perform its respective functions. As used herein, the term "software object" refers to any limited purpose software routine regardless of the programming language. As shown, the software object 30 may be stored at various locations within each subsystem 16, 18, 20. In order to call a particular software object 30 within the communication device 10, it is necessary to know where the object 30 is located within the device 10. The software bus 12 stores the locations of the various software objects 30 within the device 10, and thus knows the location of the objects to find when a particular processing function needs to be performed.

동작 동안에, 소프트웨어 버스(12)는 서브시스템(16 내지 20)들 중 하나의 서브시스템으로부터 특정 처리 기능이 수행되도록 하는 요청을 수신한다. 그런 후에, 소프트웨어 버스(12)는 요청된 기능을 수행할 수 있는 소프트웨어 객체(30)의 위치를 찾는다. 일단 위치가 찾아지면, 소프트웨어 버스(12)는 소프트웨어 객체(30)를 호출하고, 원하는 처리 기능을 수행하기 위해 필요한 임의의 정보를 상기 호출된 소프트웨어 객체에 전달한다. 처리과정이 완료된 이후에, 소프트웨어 버스(12)는 다시 상기 처리 결과를 요청을 행하는 개체(requesting entity)에 전달한다. 상기 요청을 행하는 개체는 소프트웨어 버스(12)에 링크되는 장치(10) 내의 임의의 기능일 수 있다. 전형적인 동작방식에 있어서, 서브시스템(16, 18, 20)들 중 하나의 서브시스템 내에서 실행되는 제어 프로그램은 통신 신호에 대해 복조 기능과 같은 특정 기능을 수행하도록 하는 요청을 소프트웨어 버스(12)에 보낸다. 상기 기능이 수행되고 그 결과가 반송되어진 후에, 제어 프로그램은 이제 암호해독 기능과 같은 다른 기능을 수행하도록 하는 또 하나의 요청을 버스에 보낸다. 이러한 처리는 상기 통신 신호에 대해 모든 필요한 처리가 수행될 때까지 반복된다. 이러한 방식으로, 통신 장치(10)에 걸친 데이터 "흐름"이 설정된다.During operation, software bus 12 receives a request from a subsystem of one of subsystems 16-20 to cause a particular processing function to be performed. The software bus 12 then locates the software object 30 that can perform the requested function. Once the location is found, the software bus 12 calls the software object 30 and passes any information needed to perform the desired processing function to the called software object. After the process is completed, the software bus 12 again passes the process result to the requesting entity. The entity making the request may be any function within the device 10 that is linked to the software bus 12. In a typical mode of operation, a control program running within one of the subsystems 16, 18, and 20 sends a request to the software bus 12 to perform a specific function, such as a demodulation function, on the communication signal. send. After the function has been performed and the result returned, the control program now sends another request to the bus to perform another function, such as a decryption function. This process is repeated until all necessary processing is performed on the communication signal. In this way, data "flows" across the communication device 10 are established.

본 발명의 바람직한 실시예에서, 소프트웨어 버스(12)의 기능은 통신 장치(10) 내에서 소프트웨어로 구현된다. 즉, 장치(10) 내의 프로세서들 중 하나가 소프트웨어 버스(12)의 기능을 수행하기 위해서 관련된 메모리에 내재되어 있는 소프트웨어 버스 프로그램을 실행시킨다. 소프트웨어 버스(12)로의 요청들은 수행중인 프로세서의 적절한 포트에 전달된다. 그런 후에 소프트웨어 버스 프로그램은 상술된 바와 같이 요청들을 처리한다. 소프트웨어 버스 프로그램은 통신 장치(10)에 있는 임의의 프로세서 내에 내재될 수 있다. 일예로, 프로그램은 서브시스템(16, 18, 20)들 중 하나의 서브시스템 내에 내재될 수 있거나 또는 별도의 전용 프로세서 내에 내재될 수 있다. 일반적으로, 소프트웨어 버스(12)의 기능은 그 요청을 행하는 개체에 대해 실질적으로 투명하게 될 것이다(will be substantially transparent). 즉, 요청을 행하는 개체는 호출되고자 하는 소프트웨어 객체(30)의 위치를 알고있지 않을 것이다. 본 발명의 일 실시예에서, 소프트웨어 버스(12)는 통신 장치(10)의 내부 또는 외부의 다른 소프트웨어 버스에 링크하기 위한 기능을 포함한다. 일예로, 소프트웨어 버스(12)는 외부 사용자 네트워크 내의 다른 소프트웨어 버스에 링크할 수 있고, 그럼으로써 통신 장치(10)에서 사용하기 위한 추가적인 객체들의 소스를 제공할 수 있다. 그러한 외부 연결은 일예로 NCS(20) 내에서 기능을 사용하여 구현될 수 있다.In a preferred embodiment of the present invention, the functionality of the software bus 12 is implemented in software within the communication device 10. That is, one of the processors in device 10 executes a software bus program inherent in the associated memory to perform the function of software bus 12. Requests to the software bus 12 are forwarded to the appropriate port of the running processor. The software bus program then processes the requests as described above. The software bus program may be embedded in any processor in the communication device 10. In one example, the program may be embedded within one of the subsystems 16, 18, 20, or may be embedded within a separate dedicated processor. In general, the functionality of the software bus 12 will be substantially transparent to the entity making the request. That is, the entity making the request will not know the location of the software object 30 to be called. In one embodiment of the present invention, the software bus 12 includes a function for linking to another software bus, either inside or outside the communication device 10. In one example, software bus 12 may link to another software bus in an external user network, thereby providing a source of additional objects for use in communication device 10. Such external connection may be implemented using functionality within NCS 20 as an example.

인터페이스 메모리(14)는 여러 서브시스템(16, 18, 20)에 있는 소프트웨어 프로그램 사이의 인터페이스를 설명하는 정보를 저장하기 위한 저장 수단이다. 일예로, 인터페이스 메모리(14)는 RF 및 모뎀 서브시스템(16) 내의 제어 프로그램과 보안 서브시스템(18) 내의 사용자 검증 객체 사이에 소프트웨어 인터페이스를 제공하기 위한 인터페이스 정보를 포함할 수 있다. 또한, 인터페이스 메모리(14)는 통신 장치(10) 내의 이용가능한 처리 기능과 상기 장치(10) 내의 대응하는 소프트웨어 객체의 위치를 설명하는 정보를 저장할 수 있다. 동작 중에, 소프트웨어 버스(12)는 서브시스템(16, 18, 20)으로부터 수신된 요청을 수행하기 위해서 인터페이스 메모리(14)를 엑세스한다. 일예로, 소프트웨어 버스(12)는 특정의 요청된 처리 기능이 이용가능한지를 결정하기 위해서, 그리고 만일 그 요청된 처리 기능이 이용가능하다면 대응하는 소프트웨어 객체가 어디에 위치하는지를 결정하기 위해서 인터페이스 메모리(14)를 엑세스할 수 있다. 인터페이스 메모리(14)는 그것의 기능을 수행하는데 있어 소프트웨어 버스(12)에 유용한 임의의 다른 정보를 또한 포함할 수 있다. 인터페이스 메모리(14)는 디스크 드라이브나 비-휘발성 반도체 메모리와 같은 일부 형태의 비-휘발성 메모리 소자를 포함하는 것이 바람직하다. 새로운 정보는 추가될 수 있도록 하고, 오래되고 진부한 정보는 변경되거나 또는 제거될 수 있도록 하기 위해 비-휘발성 메모리 소자가 프로그램가능하게 되는 것이 바람직하다.The interface memory 14 is storage means for storing information describing an interface between software programs in the various subsystems 16, 18, 20. In one example, interface memory 14 may include interface information for providing a software interface between a control program in RF and modem subsystem 16 and a user verification object in security subsystem 18. In addition, the interface memory 14 may store information describing the processing functions available in the communication device 10 and the location of the corresponding software object in the device 10. In operation, software bus 12 accesses interface memory 14 to perform requests received from subsystems 16, 18, and 20. In one example, the software bus 12 is configured to determine if a particular requested processing function is available and to determine where the corresponding software object is located if the requested processing function is available. Can be accessed. Interface memory 14 may also include any other information useful to software bus 12 in performing its function. The interface memory 14 preferably includes some form of non-volatile memory device, such as a disk drive or non-volatile semiconductor memory. It is desirable for the non-volatile memory device to be programmable so that new information can be added and old and outdated information can be changed or removed.

본 발명의 바람직한 실시예에 있어서, 소프트웨어 버스(12)는 공통 객체요청 브로커 구조(CORBA : Common Object Request Broker Architecture) 표준에 따른 객체 요청 브로커(ORB)를 포함한다. CORBA 표준은 일예로 객체 관리 그룹에 의해 1997년 8월에 개정판 2.1에서 공개된 "공통 객체요청 브로커 : 구조 및 명세(The Common Object Request Broker : Architecture and Specification)"라는 명칭의 문헌에 설명되어 되어 있고, 상기 문헌은 본 명세서에서 참조문헌으로 인용된다. CORBA 표준은 소프트웨어 버스(12)에 대한 소프트웨어 인터페이스를 설명하기 위해 사용되는 인터페이스 정의 언어(IDL : interface definition language)를 정의한다. 이러한 소프트웨어 인터페이스는 엄밀하게 정의되고 공공연하게 이용가능하기 때문에, 누구든지 ORB와 인터페이스할 수 있는 소프트웨어 객체를 설계할 수 있다. ORB는 사용되는 프로그래밍 언어에 상관없이 실질적으로 임의의 두 객체 사이에 인터페이스를 제공할 수 있다. 즉, C 언어로 기록되어 RF 및 모뎀 서브시스템(16) 내에 위치한 제 1 소프트웨어 객체는 ADA 언어로 기록되어 NCS(20)에 위치한 제 2 소프트웨어 객체와 인터페이스할 수 있다. 일반적으로, ORB가 요청된 기능을 수행할 수 있는 객체의 위치를 찾은 후에, 상기 ORB는 요청을 행하는 개체와 상기 객체 사이에 인터페이스를 제공하는데 필요한 인터페이스 정보를 획득한다. 대개는, 요청을 행하는 객체와 ORB 사이에 인터페이스를 제공하기 위해서는 ORB에 의해 "스터브(stub)"가 검색되고, ORB와 선택된 객체 사이에 인터페이스를 제공하기 위해서 ORB에 의해 "스켈리턴(skeleton)" 이나 "템플릿(template)"이 검색된다. 스터브, 스켈리턴, 및 템플릿은 대부분 구현 특성이다.In a preferred embodiment of the present invention, the software bus 12 comprises an object request broker (ORB) according to the Common Object Request Broker Architecture (CORBA) standard. The CORBA standard is described, for example, in a document entitled "The Common Object Request Broker: Architecture and Specification" published by the Object Management Group in Revision 2.1 in August 1997. , Which is incorporated herein by reference. The CORBA standard defines the interface definition language (IDL) used to describe the software interface to the software bus 12. Since these software interfaces are strictly defined and publicly available, anyone can design software objects that can interface with the ORB. The ORB can provide an interface between virtually any two objects, regardless of the programming language used. That is, a first software object written in C language and located in RF and modem subsystem 16 may interface with a second software object written in ADA language and located in NCS 20. In general, after the ORB finds a location of an object capable of performing the requested function, the ORB obtains the interface information necessary to provide an interface between the object making the request and the object. Usually, a "stub" is retrieved by the ORB to provide an interface between the object making the request and the ORB, and a "skeleton" by the ORB to provide an interface between the ORB and the selected object. Or "template" is searched. Stubs, skeletons, and templates are mostly implementation specific.

CORBA 표준 하에서, 인터페이스 메모리(14)는, 많은 가운데 특히, 소프트웨어 인터페이스에 관련된 정보를 제공하기 위해서 ORB에 의해 엑세스가능한 인터페이스 리파저터리 라이브러리(IRL : Interface Repository Library)를 포함한다. IRL은, 일예로 실행 시간에 이용가능한 형태로 IDL 정보를 나타내는 영구 객체(persistent objects)를 제공할 수 있다. IRL은, 일예로 디버깅 정보(debugging information)와, 스터브, 스켈리턴, 및 템플릿으로 이루어진 라이브러리와, 특정 종류의 객체를 포맷시키거나 브라우징할 수 있는 루틴, 및 그 외의 다른 것들과 같은 추가적인 정보를 저장하기 위해서 또한 사용될 수 있다. IRL 외에도, CORBA 표준은 구현 리파저터리를 또한 정의하는데, 상기 구현 리파저터리는, 많은 가운데 특히, ORB로 하여금 시스템 내의 소프트웨어 객체에 대한 위치를 찾거나 호출할 수 있도록 허용하는 정보를 포함한다.Under the CORBA standard, the interface memory 14 includes, among other things, an Interface Repository Library (IRL) accessible by an ORB to provide information relating to software interfaces. The IRL may, for example, provide persistent objects representing IDL information in a form available at runtime. IRLs store additional information such as, for example, debugging information, libraries of stubs, skeletons, and templates, routines for formatting or browsing certain kinds of objects, and others. It can also be used to. In addition to the IRL, the CORBA standard also defines an implementation repository, which, among other things, contains information that allows the ORB to locate or call software objects within the system.

도 2는 본 발명의 일 실시예에 있어서 도 1의 통신 장치(10) 내에서의 기능에 대한 상호관계를 나타내는 블록도이다. 도시된 바와 같이, 블록도는 RF 및 모뎀 서브시스템(16), 보안 서브시스템(18), 및 NCS(20)를 나타내는 3 개의 별개의 기능부로 분리된다. 또한, 추가의 기능 요소들이 3 개의 서브시스템(16, 18, 20) 외부에 도시되어 있다. 일반적으로, 서브시스템(16, 18, 20) 내의 기능 블록들은 특정 기능을 수행하기 위해서 서브시스템(16, 18, 20) 내에 구현되는 개별적인 소프트웨어 객체(또는 객체 그룹)를 나타낸다. {RF 및 모뎀 서브시스템(16) 내에 있는 모뎀 블록(50A)과 보안 서브시스템(18) 내에 있는 보안 유닛(70)간의 연결과 같이}다른 서브시스템 내에 있는 기능 블록들 간의 상호연결은 부분적으로 소프트웨어 버스(12)의 기능을 나타낸다. 마찬가지로, {RF 및 모뎀 서브시스템(16) 내에 있는 T/R 모듈(52A)과 모뎀(50A)간의 연결과 같이}동일한 서브시스템 내에 있는 기능 블록들 간의 상호연결은 소프트웨어 버스(12)의 기능을 또한 나타낼 수 있다.FIG. 2 is a block diagram illustrating the interrelationship of functions within the communication device 10 of FIG. 1 in one embodiment of the present invention. As shown, the block diagram is divided into three separate functional units representing the RF and modem subsystem 16, the security subsystem 18, and the NCS 20. Further functional elements are also shown outside the three subsystems 16, 18, 20. In general, functional blocks within subsystems 16, 18, and 20 represent individual software objects (or groups of objects) that are implemented within subsystems 16, 18, and 20 to perform particular functions. The interconnection between functional blocks in other subsystems (such as the connection between RF and modem block 50A in modem subsystem 16 and security unit 70 in security subsystem 18) is in part software. The function of the bus 12 is shown. Likewise, the interconnection between functional blocks within the same subsystem (such as the connection between RF / T module 52A and modem 50A in RF and modem subsystem 16) is responsible for the functionality of software bus 12. It can also be indicated.

본 발명의 바람직한 실시예에 있어서, RF 및 모뎀 서브시스템(16)은 통신 장치(10) 내에서 대부분의 송/수신 기능을 수행하는 것에 대한 책임을 진다. 즉, RF 및 모뎀 서브시스템(16)은 신호 변/복조, 수신기 사전선택, 채널 코딩/디코딩, 에러 검출/정정, 및 송신기 및/또는 수신기에서 정상적으로 수행되는 다른 기능들과 같은 기능들을 수행한다. 일반적으로, RF 및 모뎀 서브시스템(16) 내에서 수행되는 송/수신 기능은 디지털 처리 기술을 사용하여 소프트웨어로 구현된다. 그러나, 일부 기능들은 추가 기능을 제공하기 위해서 하드웨어에 기초한 모듈을 사용하여 또한 수행될 수 있다. 일예로, 대응하는 안테나(58)를 구비한 GPS 카드(56)는 위치를 찾는 기능을 수행하기 위해서 RF 및 모뎀 서브시스템(16) 내에 구현될 수 있다. 마찬가지로, 셀룰러 통신 카드(62)와 대응하는 셀룰러 안테나(64)가 셀룰러 시스템으로의 링크를 설정하기 위해 제공될 수 있다. 또한, 다양한 다른 표준, 즉 상업적으로 이용가능한 통신 "슬라이스(slices)"(90, 92)가 RF 및 모뎀 시스템(16) 내에 제공될 수 있다. 일반적으로, 하드웨어에 기초한 모듈은 그것들이 실지로 응용될 때는 언제나(일예로, 저가-대용량의 상업적인 유닛들이 이용가능할 때는 언제나) 사용될 것이다.In a preferred embodiment of the present invention, the RF and modem subsystem 16 is responsible for performing most of the transmit / receive functions within the communication device 10. That is, RF and modem subsystem 16 perform functions such as signal modulation / demodulation, receiver preselection, channel coding / decoding, error detection / correction, and other functions normally performed at the transmitter and / or receiver. In general, the transmit / receive functions performed within the RF and modem subsystem 16 are implemented in software using digital processing techniques. However, some functions may also be performed using hardware based modules to provide additional functionality. As an example, the GPS card 56 with the corresponding antenna 58 may be implemented in the RF and modem subsystem 16 to perform the location finding function. Similarly, cellular communication card 62 and corresponding cellular antenna 64 may be provided to establish a link to the cellular system. In addition, various other standards, commercially available communication “slices” 90 and 92, may be provided within the RF and modem system 16. In general, hardware based modules will be used whenever they are practically applied (eg, whenever low-capacity commercial units are available).

위의 기능 외에도, 일부 송/수신 기능이 RF 및 모뎀 서브시스템(16) 외부의 전용 하드웨어 유닛에 의해 수행될 수 있다. 일예로, 도 2에 도시된 바와 같이, 통신 신호가 대응하는 안테나(34)를 통해 하나 이상의 무선 통신 채널에 송신되기 전에, 상기 통신 신호를 증폭하기 위해서 일련의 전력 증폭기(36)가 제공될 수 있다. 또한, 코-사이트 간섭(co-site interference)을 감소시키기 위해 스위치(40)와 코-사이트 유닛(38)이 제공될 수 있다. RF 및 모뎀 서브시스템(16)의 외부에서 수행하는 것이 바람직할 수 있는 다른 기능들로는, 일예로 저잡음 증폭, 상향 변환/하향 변환, {페이즈드(phased) 어레이 애플리케이션에서의}신호 빔형성, 전력 제한, 안테나 멀티플렉싱, 및 다른 그러한 기능들이 포함될 수 있다.In addition to the above functions, some transmit / receive functions may be performed by dedicated hardware units external to the RF and modem subsystem 16. For example, as shown in FIG. 2, a series of power amplifiers 36 may be provided to amplify the communication signal before the communication signal is transmitted through the corresponding antenna 34 to one or more wireless communication channels. have. Also, switch 40 and co-site unit 38 may be provided to reduce co-site interference. Other functions that may be desirable to perform outside of the RF and modem subsystem 16 include, for example, low noise amplification, up-conversion / down-conversion, signal beamforming {in phased array applications}, power limitation. , Antenna multiplexing, and other such functions may be included.

보안 서브시스템(18)은, 많은 가운데 특히, 통신 장치(10) 내에 암호화/암호해독 서비스를 제공하도록 동작한다. 보안 서브시스템(18)은 클리어-텍스트(clear-text)와 암호화된 신호 사이의 분리를 유지하도록 또한 동작한다. 암호화/암호해독 서비스는 보안 유닛(70) 내의 프로세서 내에 있는 소프트웨어 루틴으로 수행되는 것이 바람직하다. 일반적으로, 보안 유닛(70)은 복수의 서로 다른 암호화 체계를 위한 개별적인 소프트웨어 객체를 포함할 것이다. 앞서 논의된 바와 같이, 이러한 소프트웨어 객체는 통신 장치(10) 내의 임의의 장소로부터 개별적으로 호출될 수 있다. 보안 유닛(70)은 장치(10)의 특정 사용자가 사용하도록 하기 위한 적절한 암호 키를 결정하는 것과 같은 다른 보안 관련 기능을 수행하기 위한 소프트웨어 객체를 또한 포함할 수 있다. 현재 사용자가 장치(10)를 사용하도록 허가되었는지를 결정하기 위해서, 그 사용자를 조사하기 위한 소프트웨어 객체가 또한 제공될 수 있다. 이러한 기능은 일예로 수신된 신호의 신호 서명(signature)을 알려진 서비스 도용자의 저장된 서명과 비교하는 것을 포함할 수 있다. 그러한 특성을 지원하기 위해서, 보안 유닛(70)은 일예로 사용자 프로파일, 신호 서명, 및/또는 암호 키 정보를 저장하기 위한 대용량 저장 장치(미도시)를 포함할 수 있다.The security subsystem 18 operates to provide encryption / decryption services, among other things, in the communication device 10. Security subsystem 18 also operates to maintain separation between clear-text and encrypted signals. The encryption / decryption service is preferably performed by a software routine in the processor within the security unit 70. In general, security unit 70 will include separate software objects for a plurality of different encryption schemes. As discussed above, these software objects may be individually called from any place within communication device 10. The security unit 70 may also include a software object for performing other security related functions, such as determining an appropriate cryptographic key for use by a particular user of the device 10. In order to determine whether the current user is authorized to use the device 10, a software object for examining the user may also be provided. Such functionality may include, for example, comparing a signal signature of a received signal with a stored signature of a known service hijacker. To support such a feature, security unit 70 may include, for example, a mass storage device (not shown) for storing user profiles, signal signatures, and / or cryptographic key information.

NCS(20)는 통신 장치(10)와 하나 이상의 외부 사용자 소자(60) 사이에 인터페이스를 제공하도록 동작한다. 외부 사용자 소자(60)는 하나 이상의 사용자에 의한 입/출력을 제공하도록 하는 단일 유닛이나 임의의 시스템을 실질적으로 포함할 수 있다. 일예로, 한 애플리케이션에 있어서, NCS(20)는 일예로 사무실 건물 내의 근거리 통신망(LAN)과 같은 하나 이상의 외부 유선 통신 네트워크와 통신 장치(10) 사이에 링크를 제공한다. 다른 애플리케이션에 있어서, NCS(20)는 배선 연결을 통해 단일 개인용 컴퓨터로의 인터페이스를 제공한다. 이동 애플리케이션에 있어서, 통신 장치(10)는 휴대용 통신기로 구현될 수 있는데, 그 경우에 사용자 소자(60)는 마이크로폰, 스피커, 키보드, 및 디스플레이 유닛을 포함한다. 또 다른 애플리케이션에 있어서, NCS(20)는 구내 교환(PBX : Private Branch Exchange)의 다수 사용자들과의 인터페이스를 제공하기 위해 구내 교환(PBX) 전화 시스템으로의 연결을 제공한다. 또 다른 애플리케이션에 있어서, 통신 장치(10)는 기지국에 구현되고, NCS(20)는 공중회선 교환 전화망(PSTN)으로의 인터페이스를 제공한다. 또한, NCS(20)는 상기 시스템들 및/또는 다른 시스템들의 임의의 조합체로의 링크를 제공할 수 있다. 인지되는 바와 같이, NCS(20)에 의해 지원될 수 있는 사용자 연결의 유형은 실질적으로 무제한적이다. 다수의 사용자들과 인터페이스하기 위해서, NCS(20)는 통신 장치(10)에 의해 서비스될 외부 사용자 소자(60) 각각에 대응하는 적어도 하나의 소프트웨어 객체를 포함할 것이다. 이러한 소프트웨어 객체는 관련된 사용자와의 통신이 요구될 때는 언제나 장치(10) 내에서 호출된다.The NCS 20 is operative to provide an interface between the communication device 10 and one or more external user elements 60. External user device 60 may comprise substantially a single unit or any system for providing input / output by one or more users. For example, in one application, NCS 20 provides a link between one or more external wired communication networks and communication device 10, such as, for example, a local area network (LAN) in an office building. In other applications, the NCS 20 provides an interface to a single personal computer via wire connections. In mobile applications, the communication device 10 may be implemented as a portable communicator, in which case the user element 60 comprises a microphone, a speaker, a keyboard, and a display unit. In another application, the NCS 20 provides a connection to a PBX telephone system to provide an interface with multiple users of a Private Branch Exchange (PBX). In another application, communication device 10 is implemented in a base station, and NCS 20 provides an interface to a public switched telephone network (PSTN). In addition, NCS 20 may provide a link to any combination of the above systems and / or other systems. As will be appreciated, the type of user connection that can be supported by the NCS 20 is substantially unlimited. In order to interface with multiple users, the NCS 20 will include at least one software object corresponding to each of the external user elements 60 to be serviced by the communication device 10. Such software objects are invoked within the device 10 whenever communication with the associated user is required.

위에서 설명된 서브시스템(16, 18, 20) 중 어느 것이나 또는 임의의 추가 서브시스템은 소프트웨어 버스(12)에 각각 링크된 다중 서브-서브시스템으로 분할될 수 있다는 것이 인지되어야 한다. 일예로, RF 및 모뎀 서브시스템(16)은 개별적인 RF 서브시스템과 모뎀 서브시스템으로 구현될 수 있다. 또한, 본 발명의 일 실시예에 있어서, 통신 장치(10) 내에 있는 다수의 ORB 사이에 연결을 설정하기 위해서 내부-ORB 프로토콜(IOP : inter-ORB Protocol)이 사용된다. 비록 편리할지는 몰라도, 본 발명은 관련 소프트웨어 객체가 공통 서브시스템 내에 위치되어야 하는 것을 요구하지 않는다는 것이 주지되어야 된다. 즉, 일예로 모든 이용가능한 서브시스템에 걸쳐 분산된 암호 객체를 구비한 장치(10)는 본 발명의 사상과 범주를 벗어나지 않을 것이다.It should be appreciated that any of the subsystems 16, 18, 20 described above or any additional subsystem may be divided into multiple sub-subsystems, each linked to a software bus 12. In one example, the RF and modem subsystem 16 may be implemented as separate RF subsystems and modem subsystems. In addition, in one embodiment of the present invention, an inter-ORB protocol (IOP) is used to establish a connection between a plurality of ORBs in the communication device 10. Although convenient, it should be noted that the present invention does not require that related software objects be located in a common subsystem. In other words, a device 10 having cryptographic objects distributed across all available subsystems will not depart from the spirit and scope of the present invention.

RF 및 모뎀 서브시스템(16)은 하나 이상의 안테나(34)를 통해 외부 통신 개체와 통신한다. RF 및 모뎀 서브시스템(16)은 복수의 안테나 포트(32)를 통해 안테나(34)와 통신한다. 각각의 안테나(34)는 대응하는 무선 통신 채널에 전자기 에너지를 방사할 수 있고, 또한 상기 무선 통신 채널로부터 전자기 에너지를 수신할 수 있다. 외부 통신 개체는 무선 통신을 수행할 수 있는 임의의 개체를 실질적으로 포함할 수 있다. 일예로, 개체는 휴대용 통신기, 사무실 건물의 꼭대기에 장착된 마이크로파 안테나, 경찰 대역 무선장치, 통신 위성, GPS 위성, 또는 임의의 다른 외부 무선 통신 플랫폼을 포함할 수 있다. 안테나(34)는 일예로 패치 안테나, 슬롯 안테나, 혼 안테나, 다이폴 안테나, 또는 어레이 안테나를 비롯한, 전자기 에너지를 방사/수신하기 위한 임의의 유형의 안테나를 실질적으로 포함할 수 있다.The RF and modem subsystem 16 communicates with an external communication entity via one or more antennas 34. The RF and modem subsystem 16 communicates with the antenna 34 through a plurality of antenna ports 32. Each antenna 34 may radiate electromagnetic energy to a corresponding wireless communication channel and may also receive electromagnetic energy from the wireless communication channel. The external communication entity can substantially include any entity capable of performing wireless communication. In one example, the subject may include a portable communication device, a microwave antenna mounted on top of an office building, a police band radio, a communication satellite, a GPS satellite, or any other external wireless communication platform. Antenna 34 may include substantially any type of antenna for radiating / receiving electromagnetic energy, including, for example, patch antennas, slot antennas, horn antennas, dipole antennas, or array antennas.

도 2를 참조하면, RF 및 모뎀 서브시스템(16)은 다중채널 소자로서 구현될 수 있다는 것이 주지되어야 한다. 즉, 다중 외부 통신 채널은 RF 및 모뎀 서브시스템(16) 내에 각각의 채널에 대한 개별적인 처리 기능을 제공함으로써 장치(10)를 통해 지원될 수 있다. 도 2에 도시된 바와 같이, 도시된 실시예는 대응하는 모뎀(50), 송/수신기(52), 및 사전 선택기(54) 기능을 각각 갖는 4 개의 개별적인 채널(즉, 채널 A, B, C, 및 D)을 포함한다. 각각의 채널은 대응하는 무선 통신 채널과 통신하기 위해 전용 안테나(34)에 연결된다. 대안적인 접근 방법에 있어서, 안테나를 공유하는 것이 구현될 수 있거나, 또는 다수의 독립된 빔을 갖는 어레이 안테나가 사용될 수 있다. 본 발명의 일 실시예에 있어서, 모뎀 기능부(50A 내지 50D)는 모두 제 1 프로세서로 구현되고, T/R 기능부(52A 내지 52D)는 모두 제 2 프로세서로 구현되며, 사전 선택 기능부(54A 내지 54D)는 모두 제 3 프로세서로 구현된다. 다음으로 {일예로 소프트웨어 버스(12)를 사용하여}4 개의 채널에 대한 프로세서들을 통과하는 정보의 "흐름"을 제어하기 위해 제어기가 사용된다. 다른 접근 방법에 있어서, 각각의 채널(즉, 채널 A, B, C, 및 D)은 내부에 저장된 적절한 객체를 구비하고 있는 개별적인 프로세서로 구현된다.2, it should be noted that the RF and modem subsystem 16 may be implemented as a multichannel device. That is, multiple external communication channels may be supported through the device 10 by providing separate processing functions for each channel within the RF and modem subsystem 16. As shown in Fig. 2, the illustrated embodiment shows four separate channels (i.e., channels A, B, C) each having corresponding modem 50, transmitter / receiver 52, and preselector 54 functions. , And D). Each channel is connected to a dedicated antenna 34 for communicating with a corresponding wireless communication channel. In an alternative approach, sharing antennas may be implemented, or an array antenna having multiple independent beams may be used. In one embodiment of the present invention, the modem function units 50A to 50D are all implemented as the first processor, the T / R function units 52A to 52D are all implemented as the second processor, and the preselection function unit ( 54A to 54D are all implemented with a third processor. Next, a controller is used to control the “flow” of information through the processors for the four channels (eg, using the software bus 12). In another approach, each channel (ie channels A, B, C, and D) is implemented as a separate processor with the appropriate objects stored therein.

도 3은 본 발명의 일 실시예에 따른 RF 및 모뎀 서브시스템(66)에 대해서 가능한 하드웨어 구성을 도시하는 블록도이다. 도시된 바와 같이, RF 및 모뎀 서브시스템(66)은 GPP(72A), DSP(72B), RISC(72C), 복수의 인터페이스 포트(78A 내지 78n)를 구비한 하드웨어버스(74), 제어기(80), 대용량 저장 유닛(82), 글로벌 위치확인 시스템(GPS) 플러그-인 모듈(84), 및 셀룰러 트랜시버 플러그-인 모듈(86)을 포함한다. 도시된 실시예에 있어서, 각각의 다른 프로세서(72A 내지 72C)는 특정 유형의 동작을 수행하도록 동작한다. 일예로, GPP(72A)는 사전 선택 기능을 수행하고, DSP(72B)는 송/수신 기능을 수행하며, RISC(72C)는 변/복조 기능을 수행한다. 일반적으로, 수행될 처리 기능의 복잡도에 따라 사용해야 할 프로세서의 유형이 지정될 것이다. 프로세서(72A 내지 72C) 각각은 대응하는 프로세서에 의해 실행될 복수의 소프트웨어 객체(뿐만 아니라 다른 프로그램과 데이터)를 저장하기 위한 RAM을 구비한다. 프로세서(72A 내지 72C)는 서로간의 통신 및 제어기(80)와의 통신에 사용하기 위한 하드웨어 버스(74)에 각각 개별적으로 연결된다.3 is a block diagram illustrating possible hardware configurations for the RF and modem subsystem 66 in accordance with one embodiment of the present invention. As shown, RF and modem subsystem 66 includes GPP 72A, DSP 72B, RISC 72C, hardware bus 74 with a plurality of interface ports 78A-78n, controller 80 ), Mass storage unit 82, global positioning system (GPS) plug-in module 84, and cellular transceiver plug-in module 86. In the illustrated embodiment, each other processor 72A-72C is operative to perform a particular type of operation. For example, the GPP 72A performs a preselection function, the DSP 72B performs a transmit / receive function, and the RISC 72C performs a modulation / demodulation function. In general, the type of processor to be used will be specified depending on the complexity of the processing functions to be performed. Each of the processors 72A-72C has a RAM for storing a plurality of software objects (as well as other programs and data) to be executed by the corresponding processor. Processors 72A-72C are each individually connected to a hardware bus 74 for use in communication with each other and with controller 80.

본 발명의 바람직한 실시예에 있어서, 하드웨어 버스(74)는 표준 하드웨어 인터페이스 포트(78A 내지 78n)를 구비하고 있는 표준의 상업적으로 이용가능한 구조이다. 이러한 표준 인터페이스 포트(78A 내지 78n)는, 일예로 표준 PC 확장 슬롯 및/또는 표준 RS-232 연결기를 포함할 수 있다. 인터페이스 포트(78A 내지 78n)를 통한 통신은 산업 분야에서 엄격하게 정의되고 널리 공지되어 있는 프로토콜을 따르는 것이 바람직할 것이다. 각각의 프로세서(72A 내지 72C)는 각각의 인터페이스 포트(78A 내지 78C)와 인터페이싱하기 위해 표준 연결기를 구비한 회로 보드 상에 장착되는 것이 바람직하다.In a preferred embodiment of the present invention, hardware bus 74 is a standard commercially available structure having standard hardware interface ports 78A-78n. These standard interface ports 78A-78n may include, for example, standard PC expansion slots and / or standard RS-232 connectors. Communication through interface ports 78A through 78n will preferably follow a protocol that is strictly defined and well known in the industry. Each processor 72A-72C is preferably mounted on a circuit board with standard connectors for interfacing with each interface port 78A-78C.

제어기(80)는, 많은 가운데 특히, 통신 장치(10)의 채널(일예로, 채널 A, B, C, 및 D) 각각에 대한 3 개의 프로세서(72A 내지 72C)를 통과하는 정보의 흐름을 제어하도록 동작한다. 제어기(80)는 하드웨어버스(74)에 첨부된 여러 플러그-인 모듈의 동작을 또한 제어할 수 있다. 또한, 제어기(80)는 장치(10) 내에서 소프트웨어 버스 기능을 구현할 수 있다. 제어기(80)의 기능은 각각의 프로세서 내에 구현될 수 있거나 3 개의 프로세서(72A 내지 72C) 중에서 하나의 프로세서 내에 구현될 수 있다. 일반적으로, 제어기(80)는 장치(10)의 각 채널에 사용되는 신호 포맷을 인지할 것이다. 이러한 방식으로, 제어기(80)는 각 채널에 대한 통신 신호에 대해 어떠한 기능이 수행될 필요가 있는지를 인지할 것이다. 제어기(80)는, 소프트웨어 버스 기능을 사용하여, 각 채널 내의 통신 신호를 적절하게 처리하기 위해서, 적절한 순서로, 프로세서(72A 내지 72C) 내의 객체들을 호출한다. 일예로, 신호가 특정 외부 무선 통신 채널로부터 수신된 후에, 제어기(80)는 GPP(72A) 내의 적절한 사전 선택기 객체를 제일 먼저 호출하고, 다음으로 DSP(72B) 내의 적절한 수신 기능을 호출하며, 다음으로 RISC(72C) 내의 적절한 복조 기능을 호출함으로써 상기 신호를 처리할 수 있다. 신호 송신에 대해서, 처리는 역으로 수행될 것이다. 소프트웨어 버스 기능을 사용하여, 제어기(80)는 통신 신호를 처리하기 위해서 다른 서브시스템(18, 20) 내의 객체를 또한 호출할 수 있을 것이다. 이러한 방식으로, 신호 흐름은 장치(10) 전체에 걸쳐 설정될 수 있다. 일 실시예에 있어서, 다른 서브시스템(18, 20)도 하드웨어 버스(74)에 또한 연결될 것이다.The controller 80, among other things, controls the flow of information through three processors 72A-72C for each of the channels (e.g., channels A, B, C, and D) of the communication device 10. To work. The controller 80 may also control the operation of the various plug-in modules attached to the hardware bus 74. The controller 80 may also implement software bus functionality within the device 10. The functionality of the controller 80 may be implemented within each processor or may be implemented within one of the three processors 72A-72C. In general, the controller 80 will know the signal format used for each channel of the device 10. In this way, the controller 80 will know what function needs to be performed on the communication signal for each channel. The controller 80, using the software bus function, calls the objects in the processors 72A-72C in the proper order to properly process the communication signals in each channel. In one example, after a signal is received from a particular external wireless communication channel, controller 80 first calls the appropriate preselector object in GPP 72A, then calls the appropriate receive function in DSP 72B, and then The signal can then be processed by invoking the appropriate demodulation function in RISC 72C. For signal transmission, the processing will be performed in reverse. Using the software bus function, the controller 80 may also call objects in other subsystems 18 and 20 to process communication signals. In this way, signal flow can be established throughout the device 10. In one embodiment, other subsystems 18 and 20 will also be connected to the hardware bus 74.

대용량 저장 유닛(82)은 실질적으로 임의의 형태의 비휘발성 메모리일 수 있다. 바람직한 실시예에 있어서, 대용량 저장 유닛은 하드디스크 드라이브를 포함한다. 대용량 저장 유닛(82)은 제어기가 자체 기능을 수행하는데 필요한 임의의 정보를 저장하기 위해서 사용될 수 있다. 일예로, 대용량 저장 유닛(82)은 소프트웨어 버스(12)에 의해 요구되는 모든 인터페이스 정보( 및 다른 정보)를 저장하기 위해서 사용될 수 있다. 대용량 저장 유닛(82)은 제어기(80)에 구현될 모든 프로그램을 저장하기 위해서 또한 사용될 수 있다. 또한, 대용량 저장 유닛(82)은 프로세서(72A 내지 72C)에 구현되어질 다른 프로그램과 소프트웨어 객체를 저장하기 위해서 사용될 수 있다. 다른 사용도 또한 가능하다.Mass storage unit 82 may be substantially any type of nonvolatile memory. In a preferred embodiment, the mass storage unit comprises a hard disk drive. Mass storage unit 82 may be used to store any information that the controller needs to perform its function. In one example, mass storage unit 82 may be used to store all interface information (and other information) required by software bus 12. Mass storage unit 82 may also be used to store all programs to be implemented in controller 80. The mass storage unit 82 may also be used to store other programs and software objects to be implemented in the processors 72A to 72C. Other uses are also possible.

바람직한 실시예에 있어서, 제어기(80)는 하드웨어 버스(74)를 통해 장치(10)의 사용자로부터 구성 명령을 수신할 수 있다. 대안적으로, 직접적인 하드웨어 연결(미도시)이 제어기(80)와 사용자 사이에 유지될 수 있다. 구성 명령 외에, 제어기(80)는 새롭거나 또는 변하는 신호 포맷을 지원하기 위해 사용자로부터 새로운 소프트웨어 객체를 또한 수신할 수 있다. 제어기(80)는 나중에 사용하기 위해서 새로운 소프트웨어 객체를 대용량 저장 유닛(82)에 저장할 수 있다. 인지될 수 있는 바와 같이, 도 3의 RF 및 모뎀 서브시스템(66)은 크고 변형적인 파형 세트를 지원할 수 있다.In a preferred embodiment, the controller 80 can receive configuration commands from the user of the device 10 via the hardware bus 74. Alternatively, a direct hardware connection (not shown) can be maintained between the controller 80 and the user. In addition to the configuration commands, the controller 80 may also receive new software objects from the user to support new or changing signal formats. The controller 80 can store the new software object in the mass storage unit 82 for later use. As can be appreciated, the RF and modem subsystem 66 of FIG. 3 can support a large and deformable set of waveforms.

GPS 플러그-인 모듈(84)과 셀룰러 트랜시버 플러그-인 모듈(86)은 표준 하드웨어 인터페이스를 구비하는 상업적으로 이용가능한 모듈이다. 도시된 바와 같이, 상기 모듈들(84, 86)은 하드웨어 버스(74) 상의 대응하는 인터페이스 포트로 간단하게 플러그된다. 또한, 상업적으로 이용가능한 슬라이스 모듈과 같은 다른 카드나 모듈을 추가하기 위해서 복수의 확장 포트(78F 내지 78n)가 제공된다. 대안적으로, 또는 추가적으로, 다른 프로세서가 확장 포트(78G 내지 78n)를 사용하여 RF 및 모뎀 서브시스템(66)에 추가될 수 있다.The GPS plug-in module 84 and the cellular transceiver plug-in module 86 are commercially available modules with standard hardware interfaces. As shown, the modules 84 and 86 simply plug into corresponding interface ports on the hardware bus 74. In addition, a plurality of expansion ports 78F through 78n are provided to add other cards or modules, such as commercially available slice modules. Alternatively, or in addition, other processors may be added to the RF and modem subsystem 66 using expansion ports 78G-78n.

보안 서브시스템(18)과 NCS(20)(뿐만 아니라 임의의 다른 서브시스템) 모두는 각각의 객체를 실행하기 위한 적어도 하나의 프로세서를 포함할 것이다. 일반적으로, 통신 장치(10)의 프로세서들 중 하나의 프로세서에서 실행되는 프로그램이나 객체가 직접 엑세스하지 않은 특정 기능이 수행되어질 필요가 있을 때는 언제나, 상기 프로그램이나 객체는 상기 기능을 수행할 수 있는 장치(10) 내의 어딘가에 있는 소프트웨어 객체의 위치를 찾도록 요구하는 요청을 소프트웨어 버스(12)에 전달 할 것이다. 만약 위치를 찾게되면, 위에서 논의된 바와 같이, 소프트웨어 버스(12)는 객체를 호출하여, 그 기능을 수행하기 위한 임의의 필요한 정보를 그 객체에 전달할 것이다. 그런 후에 소프트웨어 버스(12)는 그 결과를 요청 기능에 반송할 것이다. 만약 필요하다면, 소프트웨어 버스(12)는 요청된 기능의 위치를 찾기 위해서 배속된 네트워크를 또한 검색할 수 있다. 바람직한 실시예에 있어서, 소프트웨어 버스의 기능은 요청을 행하는 개체에 대해 완전히 투명하게 된다.Both security subsystem 18 and NCS 20 (as well as any other subsystem) will include at least one processor for executing each object. In general, whenever a program or object running on one of the processors of the communication device 10 needs to be executed by a particular function that is not directly accessed, the program or object is capable of performing the function. It will forward a request to the software bus 12 requesting to locate the software object somewhere in (10). If a location is found, as discussed above, software bus 12 will call the object and pass any necessary information to the object to perform that function. The software bus 12 will then return the result to the request function. If necessary, the software bus 12 may also search the assigned network to locate the requested function. In a preferred embodiment, the functionality of the software bus is completely transparent to the entity making the request.

본 발명의 일 실시예에 있어서, 하나 이상의 서브시스템은 프로세서/RAM 조합 외에(또는 대신하여) 재구성가능한 하드웨어를 포함한다. 일예로, 서브시스템은 통신 신호를 처리하기 위해 필드 프로그램가능 게이트 어레이(FPGA)를 포함할 수 있다. 프로세서/RAM과 같이, FPGA는 서브시스템 내에 변화하는 통신 기능을 제공하기 위해서 주기적으로 재구성될 수 있다. 재구성은 그것이 어떻게 상기 유닛 내에 내부 연결을 구성하는지에 대한 명령을 내리는 구성 파일을 FPGA에 전달함으로써 달성된다. 구성 파일은 여러 다른 파형을 지원하고 및/또는 기능을 처리하기 위해 생성될 수 있다. FPGA 내에 구현된 각각의 처리 기능은 하드웨어 객체로서 공지되어 있다. 현재 이용가능한 FPGA는 여러 하드웨어 객체들로 하여금 단일 FPGA 유닛 내에 구현되도록 허용한다. 또한, 아날로그 또는 디지털 신호를 통해 동작하는 FPGA가 이용가능하다.In one embodiment of the invention, the one or more subsystems include reconfigurable hardware in addition to (or instead of) a processor / RAM combination. In one example, the subsystem may include a field programmable gate array (FPGA) to process communication signals. Like the processor / RAM, the FPGA can be periodically reconfigured to provide changing communication functionality within the subsystem. Reconfiguration is accomplished by passing a configuration file to the FPGA that instructs how it configures internal connections within the unit. Configuration files may be generated to support different waveforms and / or process functions. Each processing function implemented in an FPGA is known as a hardware object. Currently available FPGAs allow several hardware objects to be implemented in a single FPGA unit. In addition, FPGAs that operate on analog or digital signals are available.

Claims (2)

관련 메모리를 구비한 프로세서를 각각 구비하는 복수의 서브시스템으로서, 상기 프로세서는 상기 관련 메모리에 저장된 소프트웨어 프로그램을 실행할 수 있고, 상기 소프트웨어 프로그램은 상기 프로세서에 의해 실행될 때 통신 신호에 대해 사전 결정된 처리기능을 수행하기 위한 적어도 하나의 소프트웨어 객체(software object)를 구비하는, 복수의 서브시스템과,A plurality of subsystems, each having a processor with an associated memory, the processor capable of executing a software program stored in the associated memory, wherein the software program, when executed by the processor, performs predetermined processing functions for communication signals. A plurality of subsystems having at least one software object to perform, 상기 복수의 서브시스템에 연결되어 서로 다른 서브시스템 내에 위치된 소프트웨어 프로그램들 사이에 인터페이스를 제공하는, 소프트웨어 버스와,A software bus coupled to the plurality of subsystems to provide an interface between software programs located in different subsystems; 상기 소프트웨어 버스에 연결되며, 소프트웨어 프로그램들 사이에 인터페이스를 제공하는데 있어서 상기 소프트웨어 버스에 의해 사용될 인터페이스 정보를 저장하는 인터페이스 메모리를 포함하는, 통신 장치.An interface memory coupled to the software bus, the interface memory storing interface information to be used by the software bus in providing an interface between software programs. 무선 통신 채널과 통신하기 위한 적어도 하나의 안테나와,At least one antenna for communicating with a wireless communication channel, 상기 적어도 하나의 안테나에 연결되어 상기 무선 통신 채널로부터 수신되거나 또는 상기 무선 통신 채널로 송신될 통신 신호를 처리하는 무선 주파수(RF) 서브시스템으로서, 상기 RF 서브시스템은 제 1 프로세서와 제 1 메모리를 구비하고, 상기 제 1 프로세서는 상기 제 1 메모리 내에 저장된 제 1 소프트웨어 프로그램을 실행할 수 있고, 상기 제 1 소프트웨어 프로그램은 적어도 하나의 제 1 소프트웨어 객체를 구비하며, 각각의 제 1 소프트웨어 객체는 특정 송/수신 기능을 수행하는데 적응되는, 무선 주파수(RF) 서브시스템과,A radio frequency (RF) subsystem coupled to the at least one antenna for processing communication signals to be received from or transmitted to the wireless communication channel, the RF subsystem comprising a first processor and a first memory. Wherein the first processor is capable of executing a first software program stored in the first memory, the first software program having at least one first software object, each first software object having a particular transmission / reception. A radio frequency (RF) subsystem, adapted to perform a receive function; 통신 장치의 사용자와 인터페이싱하기 위한 사용자 인터페이스 서브시스템으로서, 상기 사용자 인터페이스 서브시스템은 제 2 프로세서와 제 2 메모리를 구비하고, 상기 제 2 프로세서는 상기 제 2 메모리 내에 저장된 제 2 소프트웨어 프로그램을 실행할 수 있고, 상기 제 2 소프트웨어 프로그램은 적어도 하나의 제 2 소프트웨어 객체를 구비하며, 각각의 제 2 소프트웨어 객체는 특정 사용자 인터페이스 기능을 수행하는데 적응되는, 사용자 인터페이스 서브시스템과,A user interface subsystem for interfacing with a user of a communication device, the user interface subsystem having a second processor and a second memory, the second processor capable of executing a second software program stored in the second memory and The user interface subsystem having at least one second software object, each second software object adapted to perform a particular user interface function; 상기 RF 서브시스템과 상기 사용자 인터페이스 서브시스템에 연결되어 상기 통신 장치 내의 다른 서브시스템 내에 있는 소프트웨어 프로그램들 사이에 인터페이스를 제공하는 소프트웨어 버스로서, 수행될 특정 처리 기능에 대한 요청을 수신하기 위한 수단과 상기 특정 처리 기능을 수행할 수 있는 소프트웨어 객체의 위치를 찾기 위한 수단을 구비하는, 소프트웨어 버스를 포함하는, 통신 장치.A software bus coupled to the RF subsystem and the user interface subsystem to provide an interface between software programs in other subsystems in the communications device, the software bus comprising: means for receiving a request for a particular processing function to be performed; And a software bus having means for locating a software object capable of performing a particular processing function.
KR1020007013219A 1998-06-01 1999-05-28 Communications system having a distributed object architecture KR20010034892A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8769898A 1998-06-01 1998-06-01
US09/087,698 1998-06-01
PCT/US1999/011921 WO1999063436A1 (en) 1998-06-01 1999-05-28 Communications system having a distributed object architecture

Publications (1)

Publication Number Publication Date
KR20010034892A true KR20010034892A (en) 2001-04-25

Family

ID=22206738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007013219A KR20010034892A (en) 1998-06-01 1999-05-28 Communications system having a distributed object architecture

Country Status (2)

Country Link
KR (1) KR20010034892A (en)
PL (1) PL344350A1 (en)

Also Published As

Publication number Publication date
PL344350A1 (en) 2001-11-05

Similar Documents

Publication Publication Date Title
US5930704A (en) Reconfigurable subscriber terminal for a wireless telecommunications system
US6967999B2 (en) Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks
US5909437A (en) Software download for a subscriber terminal of a wireless telecommunications system
US7703107B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
CN100428815C (en) Improved GSM cellular terminal
EP1233635B1 (en) Dynamic service application, in a mobile communication device or a SIM card, for receiving and executing short text message dynamic service scripts , e.g. SMS
GB2292047A (en) Mobile station operable on a plurality of communications systems
KR20050014019A (en) Multiple mode rf communication device
US8020176B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
EP1193888B1 (en) Slice based architecture for a multifunction radio
US20020058539A1 (en) Directional antenna for hand-held wireless communications device
CN105490686A (en) Method and system for improving antenna performance of mobile terminal
KR20110127315A (en) Method and apparatus for communicating of dual standby mode terminal
CN101189808B (en) System for diverse path antenna selection
CA2333940A1 (en) Communications system having a distributed object architecture
KR20010034892A (en) Communications system having a distributed object architecture
US20220201475A1 (en) Method and apparatus to manage authentication and subscription information in wireless communication system
EP1546864A2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
MXPA00011925A (en) Communications system having a distributed object architecture
US7318225B1 (en) Object oriented software architecture for software reconfigurable wireless modem
JP7297968B2 (en) vSIM module for portable devices and portable devices
WO2006124565A2 (en) Providing distributed wide area coverage infrastructure using bluetooth signal combiner
CN114365428A (en) Beam forming method and device
KR20030033434A (en) BTS Analysis and Diagnostic Assembly in a mobile communication system
KR100556878B1 (en) Initialization method for mobile communication terminal

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination