CN103744352A - FPGA-based cubic B-spline curve hardware interpolator - Google Patents

FPGA-based cubic B-spline curve hardware interpolator Download PDF

Info

Publication number
CN103744352A
CN103744352A CN201310717322.3A CN201310717322A CN103744352A CN 103744352 A CN103744352 A CN 103744352A CN 201310717322 A CN201310717322 A CN 201310717322A CN 103744352 A CN103744352 A CN 103744352A
Authority
CN
China
Prior art keywords
module
interpolation
data
point
delta
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201310717322.3A
Other languages
Chinese (zh)
Inventor
周向东
宋宝
陈俊
唐小琦
凌文锋
叶伯生
陈坤
王翰
唐玉枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310717322.3A priority Critical patent/CN103744352A/en
Publication of CN103744352A publication Critical patent/CN103744352A/en
Pending legal-status Critical Current

Links

Images

Abstract

The invention discloses a field programmable gate array (FPGA)-based cubic B-spline curve hardware interpolator. The interpolator comprises: an ARM/FPGA data interaction module, which is used for receiving control point data of spline curve from an ARM and storing the data into a random access memory (RAM); a spline curve parameter calculation module, which is used for reading the control point data from the RAM and calculating the coefficient of the spline curve; a fine interpolation point calculation module, which is used for carrying out precomputation before recursion and then calculating interpolation point data of each fine interpolation period according to the coefficient of the spline curve; a floating point operation module, which is used for completing integer calculating, floating point calculation and data format conversion during the process of interpolation calculation by the fine interpolation point calculation module; and a pulse sending module, which is used for receiving the interpolation point data of each fine interpolation period and outputting an interpolation pulsed quantity of each fine interpolation period according to the interpolation point data. According to the invention, the optimized control point is used for parameter calculation of the B-spline curve; and the calculation with the fast speed can be carried out simply.

Description

A kind of hardware interpolator of the B-spline Curve based on FPGA
Technical field
The invention belongs to numerically-controlled machine processing technique field, more specifically, relate to a kind of hardware interpolator of the B-spline Curve based on FPGA, for the curve interpolating of digital control system.
Background technology
Along with the high speed development of Numeric Control Technology theory, process technology is towards the future development of high speed and super precision, and the part curved surface of processing becomes increasingly complex, and surface accuracy requires more and more higher, and the treatment of surfaces of components mostly is free structure curved surface now, has complicated surface information.Traditional digital control system only possesses straight line and circular interpolation function, (the computer Aided Manufacturing of computer-aided manufacturing like this, CAM) the little line segment that software must be separated into parametric line enormous amount is used for digital control system, but machining information amount is huge like this, and straight line and circular arc can not be true, complete Response calculation machine Computer Aided Design (Computer Aided Design, CAD) the complex-curved information that/CAM system generates, thus the requirement of manufacturing accuracy off-design caused.The profile that therefore, need to use batten parametric line directly to carry out complex curve is described and processing.
Patent documentation 200910055485.3 discloses a kind of based on field programmable gate array (Field-Programmable Gate Array, FPGA) hardware pulse interpolator, mainly comprise the pulse data that buffering bus is inputted First Input First Output (the First Input First Output that certain status information is provided, FIFO) interface module, the FIFO control module of reading data in FIFO and shaking hands with pulse interpolation module, and the pulse interpolation module of gating pulse interpolation direction and output pulse signal.
Patent documentation 201210217490.1 disclose a kind of based on PC-FPGA non-homogeneous B spline curve (Non-Uniform Rational B-Splines, NURBS) Real-time interpolation algorithm of curve, carries out interpolation operation then by downloading FPGA motion controller by Ethernet after the discrete control point set of CAD/CAM Software Create.
Patent documentation 201210510779.2 discloses a kind of nurbs curve real-time interpolation module for embedded system, mainly carried out the segmentation of nurbs curve, then according to the turning point of nurbs curve, plan speed of feed, finally by CPLD (Complex Programmable Logic Device, CPLD), control servomotor interlock and carry out interpolation.
The spline interpolation implementation method of existing fields of numeric control technique is a lot, method based on PC mode implements too complicated, and the interpolation of carrying out NURBS in ARM is calculated, can make the calculation task of system overweight, and algorithm complexity cause FPGA resource consumption too many.Also do not have up till now a kind of mode can both improve the speed that interpolation is calculated, and less consumption fpga logic resource.
Summary of the invention
For above defect or the Improvement requirement of prior art, the invention provides a kind of hardware interpolator of the B-spline Curve based on FPGA, its object is to solve carries out at software view the problem that curve interpolating counting yield is low by ARM, and FPGA carries out the too complicated problem of interpolation computational algorithm, solve thus the high precision in the processing of field of machining complex curve curved surface part, high-speed technical matters.
For achieving the above object, according to one aspect of the present invention, a kind of B-spline Curve hardware interpolator based on FPGA is provided, comprise ARM/FPGA data interaction module, SPL parameter calculating module, smart interpolated point computing module, pulse sending module and floating-point operation module, wherein:
Described ARM/FPGA data interaction module, for receive the reference mark data of B-spline Curve from ARM, and is deposited in random access memory (Random Access Memory, RAM);
Described SPL parameter calculating module, for read the reference mark data of B-spline Curve from described RAM, and calculates the coefficient of B-spline Curve;
Essence interpolated point computing module, for obtain the coefficient of B-spline Curve from SPL parameter calculating module, first carries out the precomputation before recursion, then calculates the interpolated point data of each smart interpolation cycle;
Floating-point operation module, for carrying out interpolation computation process at smart interpolated point computing module, completes integer and calculates, Floating-point Computation and Data Format Transform;
Pulse sending module, for receiving the interpolated point data of each smart interpolation cycle of smart interpolated point computing module output, and according to the interpolation pulsed quantity of the each smart interpolation cycle of described interpolated point data output.
Preferably, described RAM is dual port RAM, carry out ping-pong operation, in ARM/FPGA data interaction module, the reference mark data of B-spline curves are write to a RAM in dual port RAM constantly, the reference mark data that read B-spline curves during another RAM from dual port RAM of SPL parameter calculating module, two block RAMs in dual port RAM carry out read-write operation in turn.
Further preferably, described SPL parameter calculating module comprises coordinate translation module and parameter of curve computing module, wherein:
Described coordinate translation module, for coordinate translation is carried out in the reference mark of B-spline Curve, moves to coordinate system on first reference mark;
Described parameter of curve computing module is for calculating SPL parameter according to the reference mark after balance, and the computing formula of SPL parameter is:
R 3 = 4 Q ′ i + Q ′ i + 1 6 R 2 = Q ′ i + 1 2 T R 1 = Q ′ i + 1 - 2 Q ′ i 2 T 2 R 0 = Q ′ i + 2 + 3 Q ′ i - 3 Q ′ i + 1 6 T 3
Wherein, 0, Q ' i, Q ' i+1, Q ' i+2for the reference mark after translation, R 0, R 1, R 2, R 3for equation p (the u)=R of B-spline Curve 0u 3+ R 1u 2+ R 2u+R 3the coefficient of (0≤u≤1).
Further preferably, described smart interpolated point computing module comprises and recursion interpolation computing module and pre-interpolation computing module, wherein:
The starting condition of described pre-interpolation computing module for calculating according to the interpolation of SPL calculation of parameter, its starting condition is:
p 0 = R 3 Δ p 0 = R 0 Δ u 3 + R 1 Δ u 2 + R 2 Δu Δ 2 p 0 = 6 R 0 Δ u 3 + 2 R 1 Δ u 2 Δ 3 p 0 = 6 R 0 Δ u 3
Described recursion interpolation computing module is for calculating smart interpolated point according to starting condition recursion, and recursion formula is:
p m + 1 = p m + Δ p m Δ p m = Δ p m - 1 + Δ 2 p m - 1 Δ 2 p m - 1 = Δ 2 p m - 2 + Δ 3 P m - 2 Δ 3 P m - 2 = 6 R 0 Δ u 3
Wherein said Δ u is the step-length that recursion interpolation is calculated.
Further preferably, described floating-point operation module comprises integer calculating sub module, Floating-point Computation submodule and floating-point integer conversion submodule, wherein:
Described integer calculating sub module forms by a multiplication unit and one plus-minus is unit cascaded, for completing once to take advantage of to add or take advantage of according to the computations of input within a clock period, subtract computing, integer calculating sub module is also supported independently multiplication, signed magnitude arithmetic(al) simultaneously;
Described Floating-point Computation submodule is by a single-precision floating point multiplication unit and single-precision floating point plus-minus method unit cascaded composition, also comprise an independently single-precision floating point divider, according to the computations of input, within the corresponding instruction cycle, complete the multiplication of corresponding floating data, addition or multiply-add operation;
Described floating-point integer conversion submodule is responsible for the mutual conversion of floating number and shaping data, when shaping data enter recursion calculating, need to be converted to floating data, to promote data precision; And when the data that calculate need to be sent into pulse sending module, need to be converted to shaping data, so that pulse sending module processing.
Further preferably, during described Floating-point Computation submodule for taking advantage of the disposal route that adds instruction and adopt 3 level production lines, when needs carry out repeatedly the floating point multiplication addition computing of single precision, within first instruction cycle, reading command 1; When entering for the second instruction cycle, read in the instruction 2 of second instruction cycle, meanwhile, the operand in first cycle starts to carry out multiplying according to instruction 1; When the 3rd instruction cycle arrives, repeat step above, now, the operand 1 of first instruction cycle starts to enter additive operation, and the operand 2 of second instruction cycle enters multiplying, the like, multiply-add operation loops.
Preferably,
In general, the above technical scheme of conceiving by the present invention compared with prior art, can obtain following beneficial effect:
The invention has the beneficial effects as follows:
(1) the present invention adopts reference mark after optimization to carry out the calculation of parameter of B-spline curves, calculates simply, and speed is fast;
(2) the present invention adopts recursive operation to calculate smart interpolation data point, and Interpolation Process, except precomputation comprises multiplying, is additive operation, and counting yield is higher;
(3) the present invention adopts two DPRAM to adopt ping-pongs to carry out reading and writing data, avoids waiting for that new interpolation data writes fashionable time delay again;
(4) the present invention adopts stream line operation mode and the conversion of floating-point integer to calculate, and has effectively promoted the speed of calculating.
Accompanying drawing explanation
Fig. 1 is the one-piece construction schematic diagram of the hardware interpolator of the B-spline Curve based on FPGA in the present invention;
Fig. 2 is the Interpolation Process schematic diagram that the present invention is based on the B-spline Curve of FPGA;
Fig. 3 is single shaft SPL essence interpolated point calculation flow chart in one embodiment of the present invention;
Fig. 4 is floating-point operation modular structure schematic diagram in one embodiment of the present invention;
Fig. 5 is 3 level production line schematic diagram in one embodiment of the present invention.
Embodiment
In order to make object of the present invention, technical scheme and advantage clearer, below in conjunction with drawings and Examples, the present invention is further elaborated.Should be appreciated that specific embodiment described herein, only in order to explain the present invention, is not intended to limit the present invention.In addition,, in each embodiment of described the present invention, involved technical characterictic just can combine mutually as long as do not form each other conflict.
The present invention proposes a kind of hardware interpolator of the B-spline Curve based on FPGA, utilizes the flexible in programming of FPGA to realize the data interaction of FPGA and ARM, the calculating of SPL parameter system, the calculating of SPL interpolated point, and the output of pulse signal.Adopt recursive algorithm simultaneously, only need carry out multiplication calculating in the pre-interpolation stage, greatly accelerate interpolated point computing velocity, and adopt floating-point integer data mutually to change, effectively reduce floating-point operation amount, not only promoted arithmetic speed, and can effectively save logical resource.
Fig. 1 is the one-piece construction schematic diagram of the hardware interpolator of the B-spline Curve based on FPGA in the present invention, described hardware interpolator mainly comprises ARM/FPGA interface module, SPL parameter calculating module, smart interpolated point computing module, pulse sending module, floating-point operation module.ARM/FPGA interface module writes dual port RAM by SPL reference mark data, after interpolation starts, SPL parameter calculating module is read in reference mark data, calculate the coefficient of SPL, then smart interpolation computing module carries out the calculating of each smart interpolated point according to the SPL information calculating, and finally the pick feed amount obtaining is sent into the output of pulse sending module.Data in above-mentioned computation process and instruction meeting are sent into floating-point operation module and are calculated, and then obtain result of calculation.
Fig. 2 is the overall Interpolation Process schematic diagram that the present invention is based on the B-spline Curve of FPGA.After program powers on, carry out the initialization of some initial parameters, after having parameter of curve to write, start to carry out the curve coefficients calculating of each axle, then calculate the smart interpolated point of each axle under the different smart interpolation time, complete after the calculating of each axle under this interpolation cycle, by pick feed amount data write pulse sending module, carry out the output of axle pulse information.
Fig. 3 is the SPL Interpolation Process schematic diagram of single axle.Carry out after interpolation starting, first need to be write by ARM the variable parameter of u, on this section of curve, calculative smart interpolation is counted; After receiving the reference mark of new rough interpolation data, carry out the reference mark coordinate system translation of rough interpolation data, to simplify SPL coefficient calculations process; When carrying out curve coefficients calculating, can first carry out the calculating of integer part, then integer data-switching is become floating number to calculate, obtain the coefficient of last SPL; Finally according to hereinafter listed interpolation recursion formula, complete the calculating of each smart interpolated point on this section of curve; When having calculated after all smart interpolated points, wait until the input at new reference mark, to start the curve calculation of a new round.
Introducing modules concrete function below realizes:
(1) ARM/FPGA interface module
ARM/FPGA interface module mainly completes the transmission of SPL reference mark data, when arriving with the data write time of ARM agreement, FPGA notifies the ARM can data writing by look-at-me, now ARM writes a DPRAM by data and carries out the storage of data, and upper once write data time arrive in, data write second DPRAM, and two DPRAM accept the interpolated point data that ARM sends in turn.When same SPL parameter calculating module reads SPL reference mark data message, be also from two DPRAM, to carry out reading of data in turn successively.
(2) SPL parameter calculating module
The following p of equation (the u)=R of B-spline Curve 0u 3+ R 1u 2+ R 2u+R 3(0≤u≤1).R in formula 0, R 1, R 2, R 3be without guiding principle amount constant.
Suppose that the rough interpolation point sequence in the B-spline Curve of certain section of unknown parameter of an axle is P i(i=1,2,3..n), this section of curve is Q according to the Control point of rough interpolation dot generation i(i=0,1,2,3..n, n+1).Get with P iand P i+1for head and the tail point, by reference mark Q i-1, Q i, Q i+1and Q i+2the segment of curve of controlling is calculated curve.
Due to P iand P i+1t is relevant to interpolation time parameter, and SPL is represented by local parameter u, need to join transformation of variable.Make t=uT (0≤u≤1, T is the rough interpolation cycle), by splines matrix of coefficients, the matrix expression of the smart interpolated point on can this section of curve is:
p m ( t ) = 1 6 × ( t T ) 3 ( t T ) 2 ( t T ) 1 - 1 3 - 3 1 3 - 6 3 0 - 3 0 3 0 1 4 1 0 Q i - 1 Q i Q i + 1 Q i + 2 ( 0 ≤ t ≤ T )
Wherein, the smart interpolation m that counts is relevant with the value interval of time parameter t.Carry out after coordinate transform, curve variable is become to integer data t from floating-point decimal u, can reduce like this floating-point operation amount, speed-up computation process.
SPL parameter calculating module can comprise coordinate translation module and parameter of curve computing module, and wherein coordinate translation module is carried out coordinate translation by reference mark, makes Q i-1move to initial point place, the reference mark after translation is 0, Q ' i, Q ' i+1, Q ' i+2and the SPL shape that it is controlled can't change, because pulse sending module is to carry out pulse transmission according to the difference of adjacent two smart interpolated points, can't affect like this processing of SPL, and the parameter calculation procedure of curve after translation is simpler, computation process is more quick, can improve the precision of calculating simultaneously, also can more save the logical resource of FPGA.
Parameter of curve computing module is for calculating the coefficient of the SPL after translation according to the reference mark after translation, accounting equation is as follows:
R 3 = 4 Q ′ i + Q ′ i + 1 6 R 2 = Q ′ i + 1 2 T R 1 = Q ′ i + 1 - 2 Q ′ i 2 T 2 R 0 = Q ′ i + 2 + 3 Q ′ i - 3 Q ′ i + 1 6 T 3
(3) smart interpolated point computing module
After the parameter of SPL is determined, data are stored among inner register, open inner timer simultaneously, and timer produces timing signal according to the smart interpolation cycle arranging; Complete after calculation of parameter, interpolation process control module can calculate respectively the pick feed amount of each axle after timing signal arrives, and has all calculated in the rear pulse generating module simultaneously each axis data being sent; Interpolation process control module has calculated the data point that will wait for next section of SPL after all smart interpolated point in the rough interpolation cycle.The state transition graph of INTERPOLATION CONTROL OF PULSE module is illustrated in fig. 3 shown below.
By the parametric equation of SPL, can obtain the recursion formula that interpolation is calculated, known p (u)=R 0u 3+ R 1u 2+ R 2u+R 3(0≤u≤1),
?
Δp(u)=p(u+Δu)-p(u)
=3R 0Δuu 2+(3R 0Δu 2+2R 1Δu)u+(R 0Δu 3+R 1Δu 2+R 2Δu)
Δ 2p(u)=Δp(u+Δu)-Δp(u)=6R 0Δu 2u+6R 0Δu 3+2R 1Δu 2
Δ 3p(u)=Δp 2(u+Δu)-Δp 2(u)=6R 0Δu 3
Make p m=P (u m), u m=m Δ u, can obtain recursion formula
p m + 1 = p m + Δ p m Δ p m = Δ p m - 1 + Δ 2 p m - 1 Δ 2 p m - 1 = Δ 2 p m - 2 + Δ 3 P m - 2 Δ 3 P m - 2 = 6 R 0 Δ u 3
The calculating of each single shaft is according to interpolation the recursive calculative formula, and wherein pre-interpolation computing formula is
The starting condition that interpolation is calculated is (m=0),
p 0 = R 3 Δ p 0 = R 0 Δ u 3 + R 1 Δ u 2 + R 2 Δu Δ 2 p 0 = 6 R 0 Δ u 3 + 2 R 1 Δ u 2 Δ 3 p 0 = 6 R 0 Δ u 3
From smart interpolated point the recursive calculative formula above, when the coefficient calculations essence interpolated point according to SPL, be divided into two steps.In smart interpolated point computing module, need to be designed with so pre-interpolation computing module and recursion and calculate interpolation module, the starting condition that completes interpolation by pre-interpolation computing module is calculated, and recursion computing module completes the recursion of smart interpolated point and calculates.
Carry out after the conversion of parameter of curve, recursion formula calculates according to time parameter t, after the every calculating once of smart interpolated point of single shaft, the value of t can increase accordingly, when the value of t reaches rough interpolation periodic quantity T, u also reaches 1, and the now interpolation of this section of curve has been calculated, and then waits for that new curve control point data carry out the smart interpolation of next section of curve and calculate.
(4) the core calculations module that floating-point operation module is system, it has been responsible for various integer calculating, Floating-point Computation and Data Format Transform in Interpolation Process.As Fig. 4, floating-point operation module comprises integer calculating sub module, Floating-point Computation submodule and floating-point integer conversion submodule.In floating-point operation module, integer calculating sub module and Floating-point Computation submodule have independently order set, and what they can walk abreast operates, and convenient stream line operation in Interpolation Process improves arithmetic speed.
Integer calculating sub module adopts a 32bit multiplication unit and a 32bit to add and subtract unit cascaded, can be within a clock period according to the computations of input, completing taking advantage of of integer data adds or takes advantage of and subtract computing, integer calculating sub module is also supported independently multiplication, signed magnitude arithmetic(al) simultaneously.
Floating-point Computation submodule adopt a single-precision floating point multiplication unit and a single-precision floating point plus-minus method unit cascaded, single-precision floating point divider is for independently.According to the computations of input, within the corresponding instruction cycle, complete multiplication, addition or the multiply-add operation of corresponding floating data.
According to the difference of computations, operand is admitted to different arithmetic elements and calculates, and then exports result of calculation.
Floating-point integer conversion submodule is responsible for the mutual conversion of floating number and shaping data, when shaping data enter recursion calculating, need to be converted to floating data, to promote data precision; And when the data that calculate need to be sent into pulse sending module, need to be converted to shaping data, so that pulse sending module processing.
The floating point multiplication addition computing of single precision is the maximum calculating of frequency of utilization in cubic spline interpolation algorithm, therefore when design floating-point operation submodule for taking advantage of the disposal route that adds instruction and adopt 3 level production lines, adopt the design of streamline to improve the efficiency of multiply-add operation, take advantage of and add instruction pipelining schematic diagram as shown in Figure 5.
When needs carry out repeatedly the floating point multiplication addition computing of single precision, within first instruction cycle, reading command 1; When entering for the second instruction cycle, read in the instruction 2 of second instruction cycle, meanwhile, the operand in first cycle starts to carry out multiplying according to instruction 1; When the 3rd instruction cycle arrives, repeat step above, and now, the operand 1 of first instruction cycle starts to enter additive operation, the operand 2 of second instruction cycle enters multiplying ..., according to such beat, multiply-add operation loops.In an instruction, multiply-add operation is that order is carried out, but macroscopical comultiplication and addition can be regarded parallel computation as, like this can more effective raising counting yield.
Those skilled in the art will readily understand; the foregoing is only preferred embodiment of the present invention; not in order to limit the present invention, all any modifications of doing within the spirit and principles in the present invention, be equal to and replace and improvement etc., within all should being included in protection scope of the present invention.

Claims (6)

1. one kind based on field programmable gate array (Field-Programmable Gate Array, FPGA) B-spline Curve hardware interpolator, it is characterized in that, comprise ARM/FPGA data interaction module, SPL parameter calculating module, smart interpolated point computing module, pulse sending module and floating-point operation module, wherein:
Described ARM/FPGA data interaction module, for receive the reference mark data of B-spline Curve from ARM, and is deposited in random access memory (Random Access Memory, RAM);
Described SPL parameter calculating module, for read the reference mark data of B-spline Curve from described RAM, and calculates the coefficient of B-spline Curve;
Described smart interpolated point computing module, for obtain the coefficient of B-spline Curve from SPL parameter calculating module, first carries out the precomputation before recursion, then calculates the interpolated point data of each smart interpolation cycle;
Described floating-point operation module, for carrying out interpolation computation process at smart interpolated point computing module, completes integer and calculates, Floating-point Computation and Data Format Transform;
Described pulse sending module, for receiving the interpolated point data of each smart interpolation cycle of smart interpolated point computing module output, and according to the interpolation pulsed quantity of the each smart interpolation cycle of described interpolated point data output.
2. hardware interpolator according to claim 1, it is characterized in that, described RAM is dual port RAM, carry out ping-pong operation, in ARM/FPGA data interaction module, the reference mark data of B-spline curves are write to a RAM in dual port RAM constantly, the reference mark data that read B-spline curves during another RAM from dual port RAM of SPL parameter calculating module, two block RAMs in dual port RAM carry out read-write operation in turn.
3. hardware interpolator according to claim 1 and 2, is characterized in that, described SPL parameter calculating module comprises coordinate translation module and parameter of curve computing module, wherein:
Described coordinate translation module, for coordinate translation is carried out in the reference mark of B-spline Curve, moves to coordinate system on first reference mark;
Described parameter of curve computing module is for calculating SPL parameter according to the reference mark after balance, and the computing formula of SPL parameter is:
R 3 = 4 Q ′ i + Q ′ i + 1 6 R 2 = Q ′ i + 1 2 T R 1 = Q ′ i + 1 - 2 Q ′ i 2 T 2 R 0 = Q ′ i + 2 + 3 Q ′ i - 3 Q ′ i + 1 6 T 3
Wherein, 0, Q ' i, Q ' i+1, Q ' i+2for the reference mark after translation, R 0, R 1, R 2, R 3for equation p (the u)=R of B-spline Curve 0u 3+ R 1u 2+ R 2u+R 3the coefficient of (0≤u≤1).
4. according to the hardware interpolator described in claim 1-3 any one, it is characterized in that, smart interpolated point computing module comprises and recursion interpolation computing module and pre-interpolation computing module, wherein:
The starting condition of described pre-interpolation computing module for calculating according to the interpolation of SPL calculation of parameter, its starting condition is:
p 0 = R 3 Δ p 0 = R 0 Δ u 3 + R 1 Δ u 2 + R 2 Δu Δ 2 p 0 = 6 R 0 Δ u 3 + 2 R 1 Δ u 2 Δ 3 p 0 = 6 R 0 Δ u 3
Described recursion interpolation computing module is for calculating smart interpolated point according to starting condition recursion, and recursion formula is:
p m + 1 = p m + Δ p m Δ p m = Δ p m - 1 + Δ 2 p m - 1 Δ 2 p m - 1 = Δ 2 p m - 2 + Δ 3 P m - 2 Δ 3 P m - 2 = 6 R 0 Δ u 3
Wherein said Δ u is the step-length that recursion interpolation is calculated.
5. according to the hardware interpolator described in claim 1-4 any one, it is characterized in that, described floating-point operation module comprises integer calculating sub module, Floating-point Computation submodule and floating-point integer conversion submodule, wherein:
Described integer calculating sub module forms by a multiplication unit and one plus-minus is unit cascaded, for completing once to take advantage of to add or take advantage of according to the computations of input within a clock period, subtract computing, integer calculating sub module is also supported independently multiplication, signed magnitude arithmetic(al) simultaneously;
Described Floating-point Computation submodule is by a single-precision floating point multiplication unit and single-precision floating point plus-minus method unit cascaded composition, also comprise an independently single-precision floating point divider, according to the computations of input, within the corresponding instruction cycle, complete the multiplication of corresponding floating data, addition or multiply-add operation;
Described floating-point integer conversion submodule is responsible for the mutual conversion of floating number and shaping data, when shaping data enter recursion calculating, need to be converted to floating data, to promote data precision; And when the data that calculate need to be sent into pulse sending module, need to be converted to shaping data, so that pulse sending module processing.
6. according to the hardware interpolator described in claim 1-5 any one, it is characterized in that, during described Floating-point Computation submodule for taking advantage of the disposal route that adds instruction and adopt 3 level production lines, when needs carry out repeatedly the floating point multiplication addition computing of single precision, within first instruction cycle, reading command 1; When entering for the second instruction cycle, read in the instruction 2 of second instruction cycle, meanwhile, the operand in first cycle starts to carry out multiplying according to instruction 1; When the 3rd instruction cycle arrives, repeat step above, now, the operand 1 of first instruction cycle starts to enter additive operation, and the operand 2 of second instruction cycle enters multiplying, the like, multiply-add operation loops.
CN201310717322.3A 2013-12-23 2013-12-23 FPGA-based cubic B-spline curve hardware interpolator Pending CN103744352A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310717322.3A CN103744352A (en) 2013-12-23 2013-12-23 FPGA-based cubic B-spline curve hardware interpolator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310717322.3A CN103744352A (en) 2013-12-23 2013-12-23 FPGA-based cubic B-spline curve hardware interpolator

Publications (1)

Publication Number Publication Date
CN103744352A true CN103744352A (en) 2014-04-23

Family

ID=50501380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310717322.3A Pending CN103744352A (en) 2013-12-23 2013-12-23 FPGA-based cubic B-spline curve hardware interpolator

Country Status (1)

Country Link
CN (1) CN103744352A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651203A (en) * 2016-04-26 2020-09-11 中科寒武纪科技股份有限公司 Device and method for executing vector four-rule operation
CN111781895A (en) * 2019-04-03 2020-10-16 华辰精密装备(昆山)股份有限公司 Numerical control system under multi-core processor and interpolation task implementation method thereof
CN112068487A (en) * 2019-08-28 2020-12-11 合肥宏晶微电子科技股份有限公司 Interpolation control method, interpolation control device and readable storage medium
CN115113585A (en) * 2022-08-29 2022-09-27 济南邦德激光股份有限公司 Method, device and storage medium for fine interpolation based on N-order B spline

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4663726A (en) * 1985-04-15 1987-05-05 General Electric Co. Robot control utilizing cubic spline interpolation
CN102722141A (en) * 2012-06-28 2012-10-10 华南理工大学 Non-uniform rational B-spline (NURBS) curve real-time interpolation method based on personal computer (PC)-field programmable gate array (FPGA)
CN103048954A (en) * 2013-01-11 2013-04-17 福建工程学院 Segmented interpolation method of NURBS (Non-Uniform Rational B-Spline) curve based on ARM9 (Advanced RISC Machines) embedded system and FPGA (Field Programmable Gate Array)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4663726A (en) * 1985-04-15 1987-05-05 General Electric Co. Robot control utilizing cubic spline interpolation
CN102722141A (en) * 2012-06-28 2012-10-10 华南理工大学 Non-uniform rational B-spline (NURBS) curve real-time interpolation method based on personal computer (PC)-field programmable gate array (FPGA)
CN103048954A (en) * 2013-01-11 2013-04-17 福建工程学院 Segmented interpolation method of NURBS (Non-Uniform Rational B-Spline) curve based on ARM9 (Advanced RISC Machines) embedded system and FPGA (Field Programmable Gate Array)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
冯健,等: "基于FPGA的三次B样条曲线插补算法优化和实现", 《机械与电子》 *
叶伯生,等: "CNC系统中三次B-样条曲线的高速插补方法和研究", 《中国机械工程》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651203A (en) * 2016-04-26 2020-09-11 中科寒武纪科技股份有限公司 Device and method for executing vector four-rule operation
CN111781895A (en) * 2019-04-03 2020-10-16 华辰精密装备(昆山)股份有限公司 Numerical control system under multi-core processor and interpolation task implementation method thereof
CN111781895B (en) * 2019-04-03 2021-11-12 华辰精密装备(昆山)股份有限公司 Numerical control system under multi-core processor and interpolation task implementation method thereof
CN112068487A (en) * 2019-08-28 2020-12-11 合肥宏晶微电子科技股份有限公司 Interpolation control method, interpolation control device and readable storage medium
CN112068487B (en) * 2019-08-28 2022-08-02 宏晶微电子科技股份有限公司 Interpolation control method, interpolation control device and readable storage medium
CN115113585A (en) * 2022-08-29 2022-09-27 济南邦德激光股份有限公司 Method, device and storage medium for fine interpolation based on N-order B spline

Similar Documents

Publication Publication Date Title
CN104899182B (en) A kind of Matrix Multiplication accelerated method for supporting variable partitioned blocks
CN102811012B (en) Field programmable gate array-based (FPGA-based) multi-axis servo motor current loop control system and control method
CN102298359B (en) Method for controlling acceleration and deceleration in numerical control system to transit smoothly
CN103591961B (en) A kind of strapdown compass navigational computer based on DSP and FPGA
CN101751009B (en) NC system fine interpolator and control method thereof based on SOPC
CN108537331A (en) A kind of restructural convolutional neural networks accelerating circuit based on asynchronous logic
CN109828744A (en) A kind of configurable floating point vector multiplication IP kernel based on FPGA
Zhang et al. Curve fitting and optimal interpolation on CNC machines based on quadratic B-splines
CN103744352A (en) FPGA-based cubic B-spline curve hardware interpolator
CN104135212A (en) Flexibility motion control IP (Intellectual Property) core and implementation method thereof
CN101604306B (en) Method of column pivoting LU decomposition based on FPGA
CN103678257A (en) Positive definite matrix floating point inversion device based on FPGA and inversion method thereof
CN103901822A (en) Multi-shaft linkage motion control system
CN102163045B (en) Six-axis linkage control method based on ARM9 embedded system and complex programmable logic device (CPLD)
CN115080494A (en) SPI slave circuit, SPI communication method, interface and chip
Bigdeli et al. A new pipelined systolic array-based architecture for matrix inversion in fpgas with kalman filter case study
CN203849591U (en) Multi-shaft linkage motion control system
CN103645887B (en) Two instruction many floating-points operand plus/minus, multiplication and division operation control device
CN101236488B (en) Synergic distribution type processing method and device
CN204374726U (en) A kind of digital control system based on B-spline curves high speed real-time interpolation
CN109086537B (en) Particle swarm algorithm acceleration method based on FPGA
CN104636522B (en) A kind of NURBS and DDA curve two-stage interpolating methods of optimization
Zhao et al. Development of FPGA based NURBS interpolator and motion controller with multiprocessor technique
Dong et al. An FPGA-based low-cost VLIW floating-point processor for CNC applications
CN104009733A (en) Sample importance resample particle filter hardware implementation method based on FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140423

WD01 Invention patent application deemed withdrawn after publication