The present disclosure relates generally to testing embedded wireless communication device software, and more particularly to testing such software on simulated wireless communication device hardware in a simulated radio frequency environment in which the wireless communication device operates, testing apparatuses and corresponding methods.
Instruction set simulators and system level simulators are software development tools. An instruction set simulator (ISS) is a software program that simulates the behavior of a particular microprocessor, for example, an ARM processor from ARM, Ltd. An ISS is capable of running programs compiled into the binary format of the simulated microprocessor. The computer system upon which the ISS resides and executes is referred to as a host system. The ISS is a source program that is compiled into the binary format of the host system. The program that is loaded into the ISS must be in the binary format of the microprocessor which the ISS simulates. For example, an ISS that emulates the ARM processor can be compiled to run on INTEL x86 series processors. Similarly, a source program that is compiled into the binary format of the ARM processor can be loaded into the ISS and executed as it would on a real ARM processor. An exemplary ISS is the ARMULATOR available from ARM, Ltd.
While an instruction set simulator (ISS) simulates a microprocessor, a system level simulation (SLS) also simulates all or a subset of peripheral devices attached to the processor. In a computer system, for example, a software program running on the processor accesses peripheral devices, for instance, the program may read from, or write to, a hardware register in another device. External devices may also interact with the processor, for example, by generating an interrupt exception. Peripheral devices in an embedded system exemplary of a cellular phone include ROM/RAM, memory Control Registers, Interrupt Controller, Programmable Timer, Serial port, General Purpose Input/Output Controller, FLASH memory device, Keypad interface, LCD Display Driver, Watchdog Timer, Real Time Clock, Digital to Analog Converter, Analog to Digital Converter, Transmitter Control, and Receiver Control, among other devices. Other systems may include other types of peripherals. A system level simulation includes simulations of all of the peripheral devices that can be accessed by the software that runs on the ISS. Simulations of peripheral devices maintain state and respond to microprocessor accesses in the same way as the real device. Exemplary commercial system level simulators are available from VIRTIO and VIRTUTECH. Because system level simulators are capable of running the same binary image as actual hardware, a SLS is also referred to as “virtual hardware”. Since the processor is simulated by a software program, you can add features to it that allow one to examine any aspect of the simulated machine, stop at any point, control the flow of the program, produce software profiling information, examine and modify registers in peripheral devices, etc.
Another type of test environment, sometimes confused with instruction set simulators and system level simulators, are software emulators. The primary difference is that in a software emulation environment, the software program that is intended to be compiled for an embedded system is instead compiled to run on a host system. In addition, any part of the program that depends on the specifics of the embedded system is replaced with code that emulates the behavior of whatever it is replacing in the embedded system. Thus in a software emulation environment, the source code is modified and it is compiled to a different binary format, to run on a different system than the intended embedded system. An exemplary software emulation environment for testing Layers 2 & 3 of the W-CDMA Protocol Stack is the ANRITSU Virtual Signaling Test (VST) product. A software emulation environment has the disadvantage that it tests only a portion of the software for the system. Further, because the tested software is compiled for a different processor than the hardware on which the software will ultimately run, the software will behave differently during emulation than in the actual environment.
Wireless communication protocol software is typically qualified by testing a mobile terminal or device in a live network environment, by testing the mobile terminal using a hardware base station emulator, and by testing portions of the software protocol stack in software emulation environments.
The various aspects, features and advantages of the present disclosure will become more fully apparent to those having ordinary skill in the art upon careful consideration of the following Detailed Description thereof with the accompanying drawings described below.
In the process diagram 100 in
In one exemplary embodiment, the mobile device software is tested in a hardware simulator that includes a simulation of the cellular network. The simulated cellular network components are embedded within the simulation of the hardware. A programmable interface allows an external program to define characteristics of the simulated cellular network and the hardware simulation.
In
Generally, the wireless communication device simulator also includes models for each functional block of the wireless communication device for which the embedded software is compiled. In
Various features of the simulated wireless device hardware may be controlled during the simulation including transceiver tuning, power control, power measurement, encoder/decoder control, signal processing hardware, among others. Other functions that may be controlled by virtue of the simulation of the hardware and RF environment include physical radio frequency characteristics, such as frequency, power, timing, spreading codes, virtual network characteristics, such as access parameters, network id, system id, protocol revision, overhead information, and virtual network uplink and downlink channels including access channels, paging channels, broadcast channels, traffic channels, packet data channels. The simulation also allows an external programs or an internal base station to define all of the above characteristics, and then control the defined channels. These and all other aspects of the communication device hardware and radio frequency environment may be simulated.
In
In
The RFI models are also communicably coupled to base station models, which permit modeling base stations in the RF environment in which the embedded software is tested. In
In one embodiment, embedded mobile wireless communication device software is tested by simulating the hardware and the radio frequency environment of a wireless communication device in which the software is to be embedded. The wireless communication device hardware and the radio frequency environment are simulated as they would appear to the embedded software when embedded on the actual mobile wireless communication device. The software to be tested is compiled as if it were to be installed on the actual wireless communication device hardware being simulated. The compiled software is then tested on the simulated wireless communication device hardware in the simulated radio frequency environment. In wireless communication applications, the wireless communication device software is typically tested for compliance with communications protocols and for performance under different network conditions.
In
In one embodiment, the simulated wireless communication network and the simulated hardware use a common time base. Timing information is communicated between the simulated wireless communication network and the external program at the programmable interface of the virtual wireless communication network. In
A common time base permits testing and analysis of the software at different or variable execution rates. By slowing the time base of the simulated hardware and network, for example, the software may be run at a rate slower than the software would run when installed on an actual phone. Thus when the simulation stops everything stops, including the radio frequency network. Execution of the software may also be stopped and stepped sequentially. This enables debugging of communication device software that manages the network and provides the ability to examine and modify the state of any device in the simulated system, which is not possible when testing on real hardware or on a hardware emulator. With actual hardware, it is not possible to stop or pause wireless radio transmissions.
While the present disclosure and what are presently considered to be the best modes thereof have been described in a manner establishing possession by the inventors and enabling those of ordinary skill in the art to make and use the same, it will be understood and appreciated that there are many equivalents to the exemplary embodiments disclosed herein and that modifications and variations may be made thereto without departing from the scope and spirit of the inventions, which are to be limited not by the exemplary embodiments but by the appended claims.