External debug card sharing a communication bus

Information

  • Patent Grant
  • 6715110
  • Patent Number
    6,715,110
  • Date Filed
    Thursday, September 7, 2000
    24 years ago
  • Date Issued
    Tuesday, March 30, 2004
    20 years ago
Abstract
A debug card suitable for use with a data processing system is disclosed. The card includes a microcontroller, a storage device connected to the microcontroller; and, connected to the microcontroller, means for tapping into a communication bus of the data processing system where the bus communicates information between a processor of the data processing system and a display panel. The microcontroller is configured to record the information received by the display panel from the processor in the storage device when the debug card is connected to the communication bus. In one embodiment, the communication bus and the microcontroller are I2C compliant. In this embodiment, the debug card may have its own I2C address thereby enabling the debug card to communicate with the processor. The debug card may further include a serial port connected to the microcontroller. The serial port enables downloading the information stored in the storage device to an external computer. In addition, a user of the external computer may send commands to the data processing system through the serial port to customize the debug session. The debug card may further include a non-volatile storage device containing software enabling the microcontroller to communicate information to the processor. The means for tapping into the communication bus may include a tee connector having a debug port and a communication bus port. In this embodiment, a communication bus ribbon cable is connected to the communication bus port and a debug cable is connected to the debug port. At least a portion of the signals of the communication bus are routed to the debug card via the tee connector and the debug cable. The debug card may include a battery connected to the storage device and suitable for retaining the information in the storage device when external power to the debug card is disconnected.
Description




BACKGROUND




1. Field of the Present Invention




The present invention is generally related to the field of data processing systems and more particularly to a device that provides an external debugger for a data processing system that communicates with an I


2


C compliant component.




2. History of the Related Art




Software and firmware written for computer systems require testing and debugging during the development phase to identify and remove code defects. Sometimes a code defect escapes detection and propagates to the field. These defects are typically not detected during development because they are intermittent in nature or are only triggered by unusual events. Debugging facilities are, therefore, important resources when a defect appears in the field. A typical debug tool communicates with the system through a debug port. The debug port enables programs to display progress messages from various points in the program flow. The port's functionality may include the ability to capture, timestamp, and save progress messages, but also important transient information that is written to it at critical points in the program. This feature is commonly described as a “trace” or “logging” feature. Unfortunately the debug port is typically implemented as a standardized serial port such as an RS232 port. In one implementation, a dedicated debug serial port that is otherwise unavailable to the user (i.e., is not supported by the operating system) is provided. In another, more common implementation, one of the operating system supported ports is used for debugging purposes. The former implementation results in additional cost for a dedicated debug port that might receive little if any use. The latter implementation may be problematic if the customer has utilized each available port for his or her own (non-debugging) purposes leaving no port available for debug purposes. In this situation, debugging would require removal of one of the customer's peripheral device. In a worst case scenario, a device that is responsible for the bug or defect is the device that is swapped out when the debug facility is attached, thereby making it impossible to detect or analyze the problem. To avoid either of these undesirable situations, it would be highly desirable to implement a solution by which a debugging facility could be integrated with a data processing system without requiring a dedicated port and without consuming a port that would otherwise be available to the customer.




SUMMARY OF THE INVENTION




The problem identified above is addressed in large part by a debug card suitable for use with a data processing system. The card includes a microcontroller, a storage device connected to the microcontroller and, connected to the microcontroller, means for tapping into a communication bus of the data processing system where the communication bus communicates information between a processor of the data processing system and a display panel. The microcontroller is configured to record the information received by the display panel from the processor in the storage device when the debug card is connected to the communication bus. In one embodiment, the communication bus and the microcontroller are I


2


C compliant. In this embodiment, the debug card may have its own I


2


C address thereby enabling the debug card to communicate with the processor. The debug card may further include a serial port connected to the microcontroller. The serial port enables downloading the information stored in the storage device to an external computer. In addition, a user of the external computer may send commands to the data processing system through the serial port to customize the debug session. The debug card may further include a non-volatile storage device containing software enabling the microcontroller to communicate information to the processor. The means for tapping into the communication bus may include a tee connector having a debug port and a communication bus port. In this embodiment, a communication bus ribbon cable is connected to the communication bus port and a debug cable is connected to the debug port. At least a portion of the signals of the communication bus are routed to the debug card via the tee connector and the debug cable. The debug card may include a battery connected to the storage device and suitable for retaining the information in the storage device when external power to the debug card is disconnected.











BRIEF DESCRIPTION OF THE DRAWINGS




Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which:





FIG. 1A

illustrates a data processing system including an display panel;





FIG. 1B

is a block diagram of the data processing system of

FIG. 1

connected to a debug card according to the present invention;





FIG. 2

is a diagram of an I


2


C system and bus suitable for use with the present invention; and





FIG. 3

is a block diagram illustrating various components of the debug card of

FIG. 1B

according to one embodiment of the invention.











While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description presented herein are not intended to limit the invention to the particular embodiment disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.




DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE PRESENT INVENTION




Generally speaking, the invention contemplates connecting a debug card to a data processing system such as a computer server. The debug card is connected to means for tapping into an existing communication bus of the data processing system to create an externally supplied debug facility. In this manner, the debug card does not require a dedicated debug port and does not consume a general purpose port of the data processing system.




In one embodiment, the debug card is connected to an Inter IC (I


2


C) compliant bus of the data processing system. The I


2


C bus is a simple, two line bus for interconnecting a variety of devices. For detailed information regarding the I


2


C bus, the reader is referred to the I


2


C


Bus Specification, Version


2.0, December 1998 form Philips Semiconductors B.V. (www.semiconductors.philips.com) P.O. Box 218, 5600 Md. Eindhoven, The Netherlands, and to Paret et al., The I


2


C


Bus From Theory To Practice


(John Wiley & Son Ltd. 1997), ISBN No. 0471962686, both incorporated by referee herein. Computers servers and other data processing systems may include such a bus to communicate information such as boot progress information to a low level display panel (“op panel”). Thus, before the operating system is up and running following a power on, system reset, or other boot event, the I


2


C compliant display device is useful for indicating system status and other information.




Turning to the drawings,

FIGS. 1A and 1B

depict a data processing system


100


and an associated device (debug card)


120


according to one embodiment of the invention. In the depicted embodiment, data processing system


100


is a microprocessor based computer such as a server, a desktop type PC, a network computer, or other suitable computing device. Data processing system


100


includes one or more processors, one of which is indicated in

FIG. 1B

by reference numeral


101


. Processor


101


may be implemented with any of a variety of commercially distributed general purpose microprocessors including RISC processors such as the PowerPC® family of processors from IBM Corporation and x86 compatible processors such as the Pentium® family of processors from Intel Corporation. In another embodiment, processor


101


may represent the system's service processor that is designed to manage low level hardware tasks including configuration tasks as well as environmental and mechanical control tasks.




A chassis


103


of system


100


includes various cut-outs that enable access to various components including one or more buttons


106


such as power buttons and reset buttons. A display panel (also referred to as an op panel)


104


is located on chassis


103


and is connected to processor


101


via a communication bus to enable processor


101


to communicate information to the user, especially during a boot sequence or at any other time when the system's video display is not enabled. In the depicted embodiment, a communication bus ribbon cable


110


carries signals between processor


101


and op panel


102


. In one embodiment, op panel


102


is an I


2


C compliant device that communicates with processor


101


via an I


2


C compliant communication bus whose signals are carried by ribbon cable


110


. Ribbon cable


110


may carry other signals that are delivered to other components such as the power and reset buttons


106


on chassis


103


.




The present invention contemplates tapping into the communication bus that drives op panel


102


to provide a means of logging the information that is communicated to op panel


102


and to enable an interactive debug session. To accomplish these goals, the I


2


C bus signals of ribbon cable


110


are routed via debug ribbon cable


116


to a debug card


120


. In one embodiment, a dual port tee connector


114


is connected to connector


112


of ribbon cable


110


to “tee” off selected signals (the I


2


C signals) from ribbon cable


110


. In the depicted embodiment the debug ribbon cable


116


is connected to a debug port


117


of tee connector


114


while the communication bus ribbon cable


110


is connected (via connector


112


) to a bus port


118


of tee connector


114


. The signals that are teed off by tee connector


114


are passed through to their original destination (op panel


102


) and routed to a second device (debug card


120


) that is connected to tee connector


114


via ribbon cable


116


. Thus, in the depicted embodiment, the I


2


C signals in ribbon cable


110


are passed through to op panel


102


and routed to debug card


120


by tee connector


114


via ribbon able


116


.




Turning now to

FIG. 2

, an I


2


C compatible system


200


that may form a portion of data processing system


100


is depicted. Information transfer in system


200


occurs over an I


2


C bus


201


. I


2


C bus


201


includes an SDA line


202


and an SCL line


204


. The depicted embodiment, system


200


may include a microcontroller


206


and an I


2


C compatible EEPROM


208


. The depicted embodiment of system


200


in

FIG. 1

further includes various additional components such as an LCD driver


210


capable of driving op panel


102


, a gate array


212


, an analog to digital converter (ADC)


214


, and an SRAM


216


. It will be appreciated that the components of system


200


depicted in

FIG. 1

are merely representative of the type of components that may be connected in an I


2


C system. A wide variety of other configurations and devices are possible. The invention as described herein is most concerned with the I


2


C compatible LCD driver


210


and microcontroller


206


.




Referring now to

FIG. 3

, the depicted embodiment of debug card


120


includes an I


2


C compliant microcontroller


206


that is connected to an I


2


C bus


301


carried by ribbon cable


116


(shown in FIG.


1


B). In addition, debug card


120


typically includes a random access memory element such as the SRAM


302


depicted. Because I


2


C bus traffic is visible to all devices connected to the bus, debug card


120


may operate as a listening device that simply logs all traffic on the I


2


C bus


301


. This embodiment might be suitable in an implementation in which the LCD driver


210


of op panel


102


is the only other device on I


2


C bus


301


. If multiple devices are connected to I


2


C bus


302


and the user of debug card


120


is primarily concerned with the information that is passed to op panel


102


, microcontroller


206


may be programmed to log information that is specific to one or more I


2


C device addresses.




The depicted embodiment of debug card


120


further includes a battery


304


that is connected to SRAM


302


and provides a means for retaining the contents of SRAM


302


when the debug card


120


is disconnected from I


2


C bus


301


. In this embodiment the user might log the information that is sent to op panel


102


over an extended period of time. After sufficient information has been gathered the user may disconnect debug card


120


from I


2


C bus


301


and port the card to a conventional desktop, laptop, server or network machine for down loading. In one embodiment, debug card


120


includes a communication port


306


that enables external communication with a desktop or other similar machine. The port


306


may comprises a serial port that is compatible with an industry accepted serial bus protocol such as the IEEE RS232 protocol.




In addition to enabling downloading of information that is logged onto SRAM


302


, serial port


306


enables a user to connect a laptop or other suitable computer to debug card


120


when debug card


120


is connected to system


100


. If the microcontroller


206


has its own I


2


C address, the user can initiate and maintain an interactive debug session by communicating with processor


101


via I


2


C bus


301


. Debug card


120


may contain a non-volatile storage device such as flash memory device


308


that includes software in the form of a set of instructions executable by microcontroller


206


that enable the debug card to transfer information to the processor


101


. A user may, for example, establish an interactive debug session with processor


101


. In one embodiment, the user may be able to sequence through the boot process of system


100


on a step-by-step basis by issuing an appropriate instruction to the debug card. In addition, the debug card may be enabled to interpret information that is sent to op panel


102


by processor


101


and present the information to the user in a more user friendly manner.




If the boot sequence program is aware of the presence of debug card


120


, the boot sequence may incorporate direct communication with the debug card to provide it with information not suitable for display by op pane


102


. If the boot sequence includes such commands and the debug card


120


is not connected to system


100


when the boot sequence is initiated, the absence of the debug card will merely result in the generation of a NOACK on I


2


C bus


301


.




It will be appreciated by those skilled in the art having the benefit of this disclosure that the present invention contemplates providing an external debug facility for a data processing system. It is understood that the form of the invention shown and described in the detailed description and the drawings are to be taken merely as presently preferred examples. It is intended that the following claims be interpreted broadly to embrace all the variations of the preferred embodiments disclosed.



Claims
  • 1. A debug card suitable for use with a data processing system that includes a processor and a display panel that receives information from the processor via a communication bus, the debug card comprising:a microcontroller; a storage device connected to the microcontroller; connected to the microcontroller, a tee connector including a debug port and a communication bus port, wherein a communication bus connecting the processor and the display panel is also connected to the communication bus port, a debug bus connected to the debug card is also connected to the debug port, wherein at least a portion of the signals of the communication bus are routed to the debug bus; and wherein the microcontroller is configured to record the information received by the display panel from the processor in the storage device when the debug card is connected to the communication bus.
  • 2. The debug card of claim 1, wherein the communication bus and the microcontroller are I2C compliant.
  • 3. The debug card of claim 1, further comprising a serial port connected to the microcontroller and configured to enable transfer of the information stored in the storage device to an external computer.
  • 4. The debug card of claim 1, wherein the debug card further includes a non-volatile storage device containing a set of microcontroller executable instructions for communicating information from the debug card to the processor via the communication bus.
  • 5. The debug card of claim 4, wherein the communication bus and the microcontroller are I2C compliant and wherein the debug card recognizes and responds to a specified I2C address.
  • 6. The debug card of claim 4, wherein the debug card further includes a serial port connected to the microcontroller and configured to enable an external computer connected to the debug card via the serial port to provide the information sent from the debug card to the processor.
  • 7. The debug card of claim 1, wherein the communication bus and the debug bus each comprise a ribbon cable.
  • 8. The debug card of claim 1, further comprising a battery connected to the storage device and suitable for retaining the information in the storage device when external power to the debug card is disconnected.
  • 9. A method of debugging a data processing system, comprising:tapping into a communication bus that connects a processor of the data processing system to a display panel by connecting a debug ribbon cable between an external debug card and a debug port of a tee connector wherein the tee connector includes a bus port that receives the communication bus; transferring information between the processor and the display panel; and recording, via the tap, information transmitted between the processor and the display panel in a storage device of the debug card.
  • 10. The method of claim 9, wherein the communication bus comprises an I2C compliant bus.
  • 11. The method of claim 9, wherein storing the information comprises storing the information in an SRAM of the external debug card that is connected to the microcontroller.
  • 12. The method of claim 9, further comprising, retrieving the stored information from the storage device and sending the stored information to an external computer via a serial port of the external debug card.
  • 13. The method of claim 9, further comprising, sending information from the debug card to the processor.
  • 14. The method of claim 13, further comprising controlling the information sent from the debug card to the processor via an external computer connected to the debug card through a serial port.
  • 15. A debug device for use with a data processing system comprising:a microcontroller; a storage device connected to the microcontroller; means for receiving op panel information transmitted over an I2C bus connecting a service processor of the data processing system and an op panel of the data processing system; and means for taping into the I2C bus; wherein the debug device is configured, when tapped into the bus, to record boot progress information transmitted to the op panel from the processor during a system boot.
  • 16. The debug device of claim 15, further comprising a serial port enabling the debug device to connect to an external system to permit communication between the external system and the data processing system during boot sequencing of the data processing system.
  • 17. The debug device of claim 16, wherein the means for tapping includes a tee connector that connects at least a portion of the signals in the communication bus to the debug device and further wherein the data processing system bus comprises a first ribbon cable and the tee connector is connected to the debug device via a second ribbon cable wherein the tee connector tees off at least a portion of a the first ribbon cable to the second ribbon cable.
US Referenced Citations (8)
Number Name Date Kind
4420819 Price et al. Dec 1983 A
5615331 Toorians et al. Mar 1997 A
5664157 Takahira et al. Sep 1997 A
5875353 Whetsel Feb 1999 A
6298388 Taguchi Oct 2001 B1
6321349 Hennessy Nov 2001 B1
6341322 Liu et al. Jan 2002 B1
6526525 Chang Feb 2003 B1
Foreign Referenced Citations (1)
Number Date Country
9301257 Feb 1995 NL