The native floating-point implementation requires one addition and one rounding operation per interpolated value e. This article is about a graphics algorithm. Digital differential analyzer graphics algorithm — Wikipedia For the digital implementation of a differential analyzer, see Digital differential analyzer. By using this site, you agree to the Terms of Use and Privacy Policy.

Author:Daiktilar Shajas
Country:New Zealand
Language:English (Spanish)
Published (Last):5 August 2018
PDF File Size:17.82 Mb
ePub File Size:2.97 Mb
Price:Free* [*Free Regsitration Required]

Rossell Received17 Apr Published06 Aug Abstract The main purpose of this paper is to develop a new kind of PCI slave device serving as a motion controller for a biaxial motion control system. This kind of controller device is a new realization scheme of PCI devices, which is embedded with a deeply customized PCI interface block instead of traditional PCI interface chips, which will greatly promote the comprehensive performance of the device.

Besides, we improved the popular and widely used DDA arc interpolation algorithm, promoting its performance in both accuracy and stability, and integrated it into our device, allowing the ability of the moving parts to move along nonlinear curve paths. Currently, this kind of controller device has been successfully applied on a surface mount machine which is also developed by our lab.

As a result, the controller device performs well and is able to satisfy the requirement of accuracy and velocity of the surface mount machine. And its reliability and stability are also remarkable. Introduction Biaxial motion control system is a kind of electromechanical system widely used in various areas such as industrial manufacturing and commodity production [ 1 ]. For example, plane coordinate plotter and surface mount machine are two representative kinds of biaxial systems.

In general, one of the common points of this kind of systems is the requirement of high speed and accuracy. For example, a plane coordinate plotter mentioned in [ 2 ] is a typical kind of biaxial system.

The system consists of several components including a motion platform, turn-screws, stepping motors, plotting cursor, microcontroller, and computer interface. During a plotting process, the cursor is moved to a given position under the control of the microcontroller according to the instructions from the computer [ 2 ].

In order to draw a wanted curve quickly and accurately, high speed of data transaction must be guaranteed as well as the reliability. Surface mount machine is also a kind of sophisticated biaxial motion system [ 3 ], the index requirement of which is even higher.

Here in this paper, an implementation of motion control board specially intended for biaxial motion systems is proposed. However, this kind of design is not compact enough. We embedded the PCI protocol decoding block, written in Verilog HDL, into a FPGA device on board instead of independent PCI interface chips, reducing a large quantity of routes on board, thus promoting the reliability of the board system and cutting down the total cost.

More importantly, the board is convenient to update to a new scheme version and can be deeply customized according to the demand of customers.

Furthermore, the compact design is easy to be protected from imitation and malicious plagiarism. Another important issue which ought to be carefully considered for biaxial motion system is arc motion, that is, how to move the cursor along a curve rather than a line [ 6 ], which requires a systematic moving algorithm to arrange the velocities and positions of the two motors of the two axes.

To solve this problem, an algorithm called digital differential analyser DDA for short has been proposed [ 7 , 8 ]. DDA is often used as a motion interpolation algorithm. When moving the cursor of a biaxial motion system, an X-Y plotter, for example, DDA breaks the track into several micro parts. Each of the parts can be covered by one step of the cursor, which is realised by moving the cursor to a micro distance along one axis. As a result, a curve can be covered within several micro steps.

The basic principle of DDA arc interpolation will be discussed later. Although the basic problem of arc motion has been solved by means of DDA arc interpolation algorithm, some other problems such as moving stability and smoothness still affect the performance of the algorithm. For example, this kind of DDA algorithm, which we call traditional DDA, tends to cause unwanted sawteeth on the moving track and often produces huge errors when arc radius is large.

In order to overcome its defects and improve its performance, we modified the algorithm, allowing the moving parts of a motion system to track along a given curve within tolerable errors. Device System Structure The entire system structure of the motion control board is shown in Figure 1.

This board communicates with the upper system through PCI system bus, which offers a rather large bandwidth of data transmission [ 9 ].

Meanwhile, the board works under the control of the microcontroller unit MCU for short and drives the motors with pulse signals produced by the DDA interpolation block or distributed by the upper system. Figure 1 Systematic structure of the control board. By doing this, the out-chip routing is greatly reduced and the reliability of the entire board system is deeply enhanced.

In general, the main task of the protocol decoding block is to separate address and data from the multiplexed AD pins [ 10 ], which will be explained in detail in the following contents. Thus, the speed of operation is higher and fewer resources are occupied.

This part is also going to be amply discussed in the following contents. Instruction Register and Pulse Output Register The instruction register conserves the control instructions delivered from the system and thus produces a series of frequency-controlled pulses according to the instructions to X-axis and Y-axis motor drivers, driving the cursors to move to the designated position.

Thus, bidirection bus switches such as 74CBT are needed to serve as level converters between the two different levels. Microcontroller Unit Microcontroller unit MCU serves as a center controller, making the system function according to the program written inside the chip. Functions of Decoding Block 3. Device Configuration PCI protocol decoding block provides necessary information to PCI master system when the system starts and raises itself, including device ID, vendor ID, resource requirement, and function options [ 13 ].

After this, the base address of memory resource assigned by system is written back into PCI device, which will be conserved by the decoding block.

If the access address on the bus hits the range of the address space of the back-end device, it should respond to the system immediately usually within 3 cycles according to PCI protocol [ 15 ]. Here are the states involved during a data transaction. And the state transitions of the decoding block are shown in Figure 2.

Figure 2 State transition of the PCI protocol decoding block. Idle The slave device is idle, waiting for an access initiated by the system. Configuring A configuration transmission is taking place.

Rwing A nonconfiguration transmission is taking place. Ending A PCI access is ending. Address appears on AD pins during the address cycle while the data appears during data cycles. And wait cycles are inserted for data latency [ 16 ]. There are 3 types of transactions on PCI bus. And a memory transaction takes place during a data transition operation.

Embedded DDA Interpolation Algorithm Digital differential analyser DDA , usually serving as an interpolation algorithm, is widely applied in modern numerical control systems [ 17 ]. It is used when shifting the moving parts, or cursors of a system, to a designated position along given tracks, especially curve tracks.

Generally speaking, the paths of the cursors controlled by numerical signals will not perfectly match the given continuous track. Therefore, the main issue lies in how to plan a path for a cursor to approach the given track as closely as possible. Based on integral theory, DDA arc interpolation algorithm breaks a continuous track into a series of discrete points that the cursor of a numerical system is able to reach [ 18 ]. To make it easy to analyse, we take the 1st quadrant for example.

According to Figure 3 , we have [ 19 ] where is the starting point and is the ending point, while stands for the current position of the cursor.

Considering this.



Gagar This page was last edited on 17 Julyat This process is only interpolattion when an FPU with fast add and rounding operation will be available. June Learn how and when to remove this template message. By using this site, you agree to the Terms of Use and Privacy Policy. Views Read Edit View history. Digital differential analyzer graphics algorithm — Wikipedia The DDA method can be implemented using floating-point or integer arithmetic. Similar calculations are carried out to determine pixel positions along a line with negative slope.


An Implement of FPGA Based PCI Controller Device and Improvement of DDA Arc Interpolation

The fixed-point integer operation requires two additions per output cycle, and in case of ingerpolation part overflow, one additional increment and subtraction. Please help to improve intepolation article by introducing more precise citations. Computer graphics algorithms Digital geometry. For lines with slope greater than 1, we reverse the role of x and y i. From Wikipedia, the free encyclopedia.


Digital differential analyzer (graphics algorithm)

Goltizragore Computer graphics algorithms Digital geometry. Similar calculations are carried out to determine pixel positions along a line with negative slope. Subscript k takes integer values starting from 0, for the 1st point and increases by 1 until endpoint is reached. For the digital implementation of a differential analyzer, see Digital differential analyzer. Views Read Edit View history. DDAs are used for rasterization of lines, triangles and polygons. A linear DDA starts by calculating the smaller of dy or dx for a unit increment of the other.



Related Articles