Vision system checks solder-ball placement of BGAs
Electronic product manufacturers are rapidly adopting Ball Grid Arrays (BGAs) as the preferred surface-mount devices (SMDs) for high-pin-count, high-clock-frequency, high-density printed-circuit boards (PCBs). Despite their many advantages, BGAs also present major challenges to semiconductor manufacturers. One of the most important challenges is the inspection of the contacts between the BGA device and the PCB after placement. Because of this, solder balls on BGA devices must be inspected to ens
Vision system checks solder-ball placement of BGAs
Electronic product manufacturers are rapidly adopting Ball Grid Arrays (BGAs) as the preferred surface-mount devices (SMDs) for high-pin-count, high-clock-frequency, high-density printed-circuit boards (PCBs). Despite their many advantages, BGAs also present major challenges to semiconductor manufacturers. One of the most important challenges is the inspection of the contacts between the BGA device and the PCB after placement. Because of this, solder balls on BGA devices must be inspected to ensure they are not misplaced, misformed, or oxidized or that balls of incorrect diameter have not been used.
To automate this process, many semiconductor manufacturers are turning to fully automated ball-placement machines, such as the VAi 6300 from Vanguard (Tucson, AZ). Supporting a variety of BGA formats including single devices in boats or trays or trays and strip devices in magazines, the VAi 6300 is capable of processing ceramic BGA, tape BGA, and connector devices.
In operation, flexible handlers feed BGA substrates into the system where an automated flux dispenser deposits flux on the pads of the BGAs. After fluxing, a solder-ball-placement mechanism simultaneously places all the balls on the pads of the BGA substrates. After placement, an integrated machine-vision system from RVSI Acuity Cimatrix (Canton, MA) checks for correct solder-ball placement and quality (see Fig. 1).
"Because BGAs are manufactured in numerous configurations," says Scott McGill, director of business development and technology at Vanguard, "we required an inspection system that could be configured for hundreds of different BGAs." To accomplish this, McGill chose Acuity`s Visionscape--an Acuity 2000 PCI-based image processor and GUI-based development software.
PCI-based machine vision
Formally introduced at the Vision Show in San Jose, CA, the Visionscape processor and software provide system developers with an integrated vision-application-development environment with which to design machine-vision applications. As an image-capture, processor, and display controller board, the Acuity 2000 PCI hardware can be configured with analog or digital cameras using analog or digital camera interface daughter cards. Because these boards also feature on-board I/O capability, they can also trigger cameras, strobes, and control lighting and other production equipment.
For on-board processing, the Acuity 2000 board features an on-board RISC CPU coupled to an ASIC developed specifically to accelerate low-level image processing and analysis operations. For image display, the 2000 board also features an on-board SVGA display controller that allows image display on an SVGA monitor connected to the vision processor board.
"Deterministic control of all vision-related functionality including image capture, processing, display, and I/O is accomplished by running the VxWorks real-time operating system from Wind River Systems (Alameda, CA) on the 2000 board," says John Agapakis, vice president of research and development for Acuity. "This is especially important in industrial-inspection and control applications, such as BGA inspection, where the Visionscape system can be run independently of the host CPU."
Flexibility was also an important factor in the design of the machine-vision system for the VAi 6300 BGA inspection system. "Because solder balls can range in diameter from 0.3 to 0.76 mm and BGA devices from 10 ¥ 10 mm to 300 ¥ 150 mm, the vision system needed to interface to a number of different cameras," says McGill. "In our design, we interfaced the Acuity 2000 board with the CAMI/O 300 analog interface daughtercard, allowing the system to accept standard 640 ¥ 480 ¥ 8-bit or with the CAMI/O 400 digital interface daughtercard for 1k ¥ 1k ¥ 8-bit cameras," he says.
After BGA images are captured and stored, the Acuity 2000 board is programmed to make a detailed measurement of the quality of each ball, circularity measurement, size, and shape. Inspecting 3000 balls per second, the vision board then passes these data to the host CPU, where the data are used to control BGA handling equipment through a PCI-based digital I/O board.
In addition to meeting the throughput requirement of the VAi BGA inspection system, the Visionscape`s main benefit to Vanguard was ease of programming. "By extending the Visionscape software architecture over both the target vision board and the host CPU, developers can use high-level graphical user interfaces (GUIs) to first develop machine-vision applications on the host PC and then download them to run in stand-alone fashion on the Acuity 2000 board," says Agapakis.
The Visionscape product provides a number of levels at which the developer can program the Acuity 2000 board. At the highest level, designers can develop applications using such tools as image acquire, processing, and digital I/O by dropping the appropriate high-level tools into a vision application organized as a sequence of steps. Once developed, the system can be set in training mode to verify the accuracy of the program. Then, the software can be retargeted to the Acuity 2000 board where a run-time manager allows the developer to monitor the program in operation (see "User-friendly machine vision systems ease application tasks," p. 56).
To ease the development of custom applications, Acuity also provides custom or limited functionality GUIs for specific markets such as BGA inspection and label verification. For the VAi BGA inspection system, Vanguard used the Visionscape BGA inspection package. Consisting of a BGA editor coupled with a custom BGA inspection interface, the software allows the developer to customize BGA patterns in a top-level GUI environment. Using the software, inspection parameters describing solder ball presence, circularity, registration, and pitch can be set up using a custom inspection parameter interface (see Fig. 2). Once complete, the description drives the automatic generation of an inspection program that can then be downloaded to run in real time on the Acuity 2000 board.
Most communications between the board and the host PC are implemented over a TCP/IP network connection through the PCI bus. "This enables the use of a variety of network services such as Telnet, FTP, NFS, and HTTP for host/target communications and for accessing a board from other PCs in the network,"says Agapakis. "In addition to simplifying application development and deployment, such network connectivity supports remote monitoring and diagnostic options," he says. In the future, this feature will allow BGA inspection systems such as the VAi to be remotely monitored through, for example, a Web-browser interface.
Eye-tracking system helps the handicapped communicate
Many disabled and paralyzed persons find it difficult to communicate vocally and operate devices. In severe cases, handicapped persons can only communicate with others by eye movement, a process that is slow and frustrating. Operating a computer can therefore be a daunting task. Over the past few years, however, LC Technologies (Fairfax, VA) has been refining a PC-based imaging and control system that allows the handicapped to type, verbalize text, and control VCRs, lights, and appliances using eye movement.
Dubbed Eyegaze, the system requires no head-mounted tracking device for operation. Instead, it tracks the position of the eye as the user stares at a menu selection on the monitor. "One of the major problems with head-mounted devices," says Peter Norloff, senior software engineer at LC Technologies, "is that they produce a gaze vector that must be tracked with relationship to head motion. In the Eyegaze system, an infrared (IR) source and a CCD camera sensor are fixed in place behind the monitor screen and provide an external reference so that gaze vectors are independent of the motion of the user`s head."
After the user has stared at a menu selection for a specified time (usually about half a second), the computer records the action and uses it to input text or control external devices, as programmed. To track the position of the user`s eye, the Eyegaze system uses an 880-nm OP295A infrared light-emitting diode (LED) from Optek (Carrollton, TX). This LED is mounted coaxially on the lens of a VDC 3874 monochrome CCD camera from Sanyo Electric (Compton, CA).
In operation, IR light from the LED illuminates the user`s pupil. The LED receives the reflected light from the cornea, and this "bright-pupil" effect enhances the reflected image of the pupil, which is then reflected back to the CCD camera.
"Because the LED is located at the center of the camera lens," says Joseph Lahoud, president of LC Technologies, "it enhances the camera`s image of the eye`s pupil and allows image-processing functions to locate the center of the pupil more easily. After the pupil`s image has been digitized using a PCI-based Falcon frame grabber from Visicom (San Diego, CA), data are transferred over the PCI bus to host PC memory.
"One of the most attractive features of the Falcon board," says Norloff, "is that it can display both the VGA output and live video on two separate monitors. This is especially useful in system development where we can constantly monitor eye tracking," he says.
After images are captured, special C-based image-processing software identifies and locates the centers of both the pupil and corneal reflections. Then, trigonometric calculations project the user`s gaze point based on the positions of the pupil center and the corneal reflection within the video image. Once located, tracking software initiates typing commands or triggers other external devices or events attached to the PC.
Software speeds medical- system development
Today, software packages are available that range from dedicated systems aimed at solving specific problems to open environments designed for research and development. In general, however, these products aim to provide ready-to-use software accessible through a user-friendly and application-specific interface or provide researchers and developers with libraries and visual language tools.
With increasingly available network bandwidth, medical-systems developers are looking to transition such stand-alone systems toward networks that allow visual information processing to appear seamless over large-scale distributed environments. To accomplish this, it is necessary to develop intelligent, customizable ways to describe, manage, retrieve, and initiate image processing software.
At the Institute of Computer Science, Foundation for Research and Technology-Hellas (ICS-FORTH; Crete, Greece), Marios Zikos, Eleni Kaldoudi, and Stelios Orphanoudakis, have developed a distributed image-processing environment (DIPE) that supports medical image-processing services within the integrated regional health telematics network, currently under development on the island of Crete.
DIPE achieves operating-system transparency by using ACE, an object-oriented network programming toolkit from Riverace (Franklin, MA). "Because ACE simplifies the development of concurrent event- driven communications software and provides a set of reusable C++ wrappers, class categories, and frameworks, which perform common communication tasks across operating systems (OSs), we can create various image-processing algorithms that can run across different OSs," says Zikos. In addition, ACE reduces the complexity of the communication among applications and algorithms and isolates communications from the functional part specific to each component. The result is reusable and extensible communication software, independent of the network technology.
At present, DIPE uses a proprietary application that supports user access to processing services supported by the environment. A virtual temporary storage-management module ensures that the application can handle synchronously a considerable number of large data sets. Implementation of the DIPE user interface is based on zApp from Rogue Wave Software (Corvallis, OR), an object-oriented user interface library that provides an abstraction of major user-interface elements for user-interface platforms and toolkits including Microsoft Windows, and Motif. "Because the development of the GUI is based only on interface elements provided by this library, they can then be emulated or mapped onto the corresponding native elements of each environment,"says Zikos.
DIPE is based on a distributed, autonomous, cooperating agent architecture formed by a society of autonomous execution agents, distributed over networked computational resources, loosely organized by a manager agent. This architecture supports the robust and persistent distributed execution of algorithms, through intelligent resource management and charging of execution. These basic processing services can be augmented by extending the roles of the core agents or even by introducing new breeds of agents with a whole new range of goals.
A major challenge in development of DIPE was overcoming the problem of the interoperability of diverse software applications. At FORTH, the DIPE developers chose to overcome this by using the Common Object Request Broker Architecture (CORBA) from OMG (Framingham, MA), an open, distributed object infrastructure. "CORBA automates many common network programming tasks such as object registration, location, and activation.