report- vhdl tachometer

of 28/28

Post on 07-Apr-2015

867 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

Table of ContentsTachometer.................................................................................................................................................3 Introduction.............................................................................................................................3 Need for a Tachometer............................................................................................................3 Abstract......................................................................................................................................................5 Research Focus........................................................................................................................5 Issue(s) Addressed...................................................................................................................5 Research Method.....................................................................................................................5 Conclusions and Recommendations........................................................................................5 Operation..........................................................................................................................................6 RPM transducer.......................................................................................................................6 Clock Generator......................................................................................................................6 Digital To Analog Converter...................................................................................................7 Pointer.....................................................................................................................................7 RTL Schematic...........................................................................................................................................8 CLOCKDIV............................................................................................................................8 TMETER.................................................................................................................................8 VHDL Code...............................................................................................................................................9 System..............................................................................................................................................9 CLKDIV...................................................................................................................................................11 TMETER..................................................................................................................................................12 VHDL Simulation....................................................................................................................................14 System Overview..................................................................................................................15 System Detail -1....................................................................................................................16 System Detail -2....................................................................................................................17 Reset Action..........................................................................................................................18 CLKDIV................................................................................................................................19 TMETER...............................................................................................................................20 Implementation Report............................................................................................................................21 CPLD Fitter Report...............................................................................................................21 Resources summary...............................................................................................................21 Pin resources.........................................................................................................................21 Global resources....................................................................................................................21 Power Data............................................................................................................................21 Inputs........................................................................................................................................................22 Function Blocks.......................................................................................................................................22 Compiler Options.....................................................................................................................................22 Pin List.....................................................................................................................................................23 Implementation Diagram.........................................................................................................................25 Conclusions..............................................................................................................................................26 Bibliography.............................................................................................................................................27

TachometerIntroduction

A tachometer (also called a revolution-counter, "Tach", rev-counter, or RPM gauge) is an instrument that measures the rotation speed of a shaft or disk, as in a motor or other machine. The device usually displays the revolutions per minute (RPM) on a calibrated analogue dial, but digital displays are increasingly common. The term comes from Greek ,, "speed", and metron, "to measure".

Illustration 1: Automobile Tachometer

Need for a Tachometer

Tachometers or rev counters on automobiles, aircraft, and other vehicles show the rate of rotation of the engine's crankshaft, and typically have markings indicating a safe range of rotation speeds. This can assist the driver in selecting appropriate throttle and gear settings for the driving conditions. Prolonged use at high speeds may cause inadequate lubrication, overheating (exceeding capability of the cooling system), exceeding speed capability of sub-parts of the engine (for example spring retracted valves) thus causing excessive wear or permanent damage or failure of engines. On analogue tachometers, speeds above maximum safe operating speed are typically indicated by an area of the gauge marked in red, giving rise to the expression of "redlining" an engine revving the engine up to the maximum safe limit. In vehicles such as tractors and trucks, the tachometer often has other markings, usually a green arc showing the speed range in which the engine produces maximum

torque, which is of prime interest to operators of such vehicles. Tractors fitted with a power take off (PTO) system have tachometers showing the engine speed needed to rotate the PTO at the standardized speed required by most PTO-driven implements. In many countries, tractors are required to have a speedometer for use on a road. To save fitting a second dial, the vehicle's tachometer is often marked with a second scale in units of speed. This scale is only accurate in a certain gear, but since many tractors only have one gear that is practical for use on-road, this is sufficient. Tractors with multiple 'road gears' often have tachometers with more than one speed scale. Aircraft tachometers have a green arc showing the engine's designed cruising speed range. A tachometer is vital is preventing engine over-speed. Overspeed is a condition in which an engine is allowed or forced to turn beyond its design limit. The consequences of running an engine too fast vary by engine type and model and depend upon several factors, chief amongst them the duration of the overspeed and by the speed attained. With some engines even a momentary overspeed can result in greatly reduced engine life or even catastrophic failure. The speed of an engine is ordinarily measured in revolutions per minute (RPM). Typical maximal RPMs of performance engines are provided in the following table: Automobile Audi R8 V8 Audi Q7 6.0 V12 diesel Bugatti Veyron turbocharged W16 Honda S2000 I4 Lexus LFA V10 Volkswagen Golf GTI 2.0TSI I4 Nissan GTR turbocharged V6 Ferrari Enzo V12 Table 1: Typical Engine Speed Ratings As an example of what a tachometer can be used for, think of driving a car up a hill. By watching the tachometer, you will know if you should shift gears. This gives a visual cue to help you drive your car in the most efficient manner. Thus a tachometer is a vital instrument which allows a vehicle operator to select the correct gear for maximum efficiency and performance, and allows him or her to operate the engine within safe parameters. 8000 rpm 4750 rpm 6500 rpm 8200 rpm 9000 rpm 6500 rpm 7000 rpm 8000 rpm Maximum Engine Speed

AbstractResearch Focus

The objective of this project is to design, implement, simulate and synthesize the logic required for the operations of a Tachometer. The prime focus of the design was to match the accuracy and reliability of analog tachometers, while at the same time reducing cost of the instrument by minimizing mechanical parts. The output is to be obtained by driving a mechanical pointer, since it is more convenient to read during driving.Issue(s) Addressed

Two constraints were kept in mind during the design of the circuit. First, the design was to have the maximum possible clock speed, in order for the precision of the device not to be sacrifices. The second, to minimize cost, the design was to be fitted inside a CPLD with 108 macrocells1. During simulation, propagation delays in the internal latches were reducing the speed of operation. This issue was resolved by splitting the design internally into multiple blocks. The timing generation was derived internally by dividing a 10Mhz clock and setting up a PWM2, in a block separate from the counter to enhance customizable and reduce the need for external components.Research Method

The design was described in VHDL3 and compiled and simulated in ModelSim III XE. It was then implemented in Xilinx ISE Project Navigator and was targeted on an Automotive XC95108. Synthesis and Fitting of the logic was then carried out. The Automotive part was chosen for its higher reliability.Conclusions and Recommendations

The design was successfully synthesized on a XC95108 CPLD with a maximum possible clock of 83.33 Mhz. We found that by targeting a newer device like the CoolRunner2, the clock speed may be increased to 140+ Mhz, using the same design.

1 A macrocell array is a prefabricated array of higher-level logic functions such as flip-flops, ALU functions, registers etc. 2 PWM = Pulse Width Modulation 3 VHSIC hardware description language. VHSIC: very-high-speed integrated circuit

OperationThe block diagram of the system is shown below:

The main components of the system are: 1. RPM Transducer 2. Clock Generator 3. Digital to Analog convertor 4. Pointer Display

RPM transducer

A contactless ferromagnetic sensor can be used to measure the spinning speed of the engine without causing frictional losses. The RPM Transducer PR 9376 is ideally suited for such measurement. Due to high resolution, fast internal electronic and the sharp edged output pulses the PR 9376 is suitable for measurement of extremely high as well as very low rotational speeds with high resolution.Clock Generator

The CDCS502 is a spread spectrum capable, fundamental mode crystal oscillator with selectable frequency multiplication. It features an advanced gain controlled fundamental mode crystal oscillator stage with a built-in load capacitance of 10pF. This oscillator stage accepts crystals from 8MHz to 32MHz with an ESR of up to 180 . The stage can be used with crystals with power dissipation of 50 W and up. The input signal is processed by a PLL, whose output frequency is either equal to the input frequency or multiplied by the factor of 4, depending on the mode selected.

Digital To Analog Converter

The AD5543/AD5553 are precision 16-/14-bit, low power, current output, small form factor digital-to-analog converters (DACs). They are designed to operate from a single 5 V supply with a 10 V multiplying reference. The applied external reference, VREF, determines the full-scale output current. An internal feedback resistor (RFB) facilitates the R-2R and temperature tracking for voltage conversion when combined with an external op amp. These can accurately convert the digital output to drive the pointer.

Illustration 2: Galvanometer

Pointer

A galvanometer may be used for displaying the reading to the vehicle operator. A galvanometer is a type of ammeter: an instrument for detecting and measuring electric current. It is an analog electromechanical transducer4 that produces a rotary deflection of some type of pointer in response to electric current flowing through its coil. The term has expanded to include uses of the same mechanism in recording, positioning, and servomechanism equipment. A analog meter is preferred because it is easier for a vehicle operator to read while driving the machine.

4

transducer is a device that converts one type of energy to another.

RTL Schematic

Illustration 3: Entity Diagram The system consists of two main sub-circuits. 1. CLOCKDIV 2. TMETERCLOCKDIV

It divides the master CLOCK signal such that a pulse of 80% duty cycle and adequate duration is setup up. By modifying this block the device can be made to measure faster or slower spin speeds.TMETER

This consists of a 16 bit counter, gating and auto-reset logic. This counts the rotations per gate pulse and outputs the result on the RESULT [0:15] bus. That in turn drives a DAC and hence the pointer.

VHDL CodeSystem--------------------*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~ _____ _ _ |_ _|_ _ ___| |__ ___ _ __ ___ ___| |_ ___ _ __ | |/ _` |/ __| '_ \ / _ \| '_ ` _ \ / _ \ __/ _ \ '__| | | (_| | (__| | | | (_) | | | | | | __/ || __/ | |_|\__,_|\___|_| |_|\___/|_| |_| |_|\___|\__\___|_| *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~ +-+-+-+-+-+-+-+ +-+-+ +-+-+-+ +-+-+-+-+-+-+ +-+-+ |S|h|a|u|n|a|k| |D|e| |a|n|d| |N|i|k|h|i|l| |A|.| +-+-+-+-+-+-+-+ +-+-+ +-+-+-+ +-+-+-+-+-+-+ +-+-+ VHDL Code to ganetare timing, control logig and measure RPM of an rotating part. eg: Engine. The Ports are as follows: INPUT: CLOCK, MOTORIN, RST OUTPUT: RESULT 15 OCT 2010, V1.1 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SYSTEM IS PORT( CLOCK: IN STD_LOGIC; MOTORIN: IN STD_LOGIC; RST: IN STD_LOGIC; RESULT: OUT INTEGER RANGE 0 TO 65535 ); END SYSTEM; ARCHITECTURE SYS OF SYSTEM IS COMPONENT TMETER IS PORT( GATE: IN STD_LOGIC; MOTOR: IN STD_LOGIC; RESET : IN STD_LOGIC; -- MASTER

SSD: OUT INTEGER RANGE 0 TO 65535 ); END COMPONENT; COMPONENT CLKDIV IS PORT( CLK: IN STD_LOGIC; CLKOUT: OUT STD_LOGIC ); END COMPONENT; SIGNAL CLKTRN: STD_LOGIC; BEGIN CLOCKDIV: CLKDIV PORT MAP (CLK=>CLOCK, CLKOUT=>CLKTRN); TACHMETER: TMETER PORT MAP (GATE=>CLKTRN, MOTOR=>MOTORIN, RESET => RST, SSD=>RESULT); END SYS;

CLKDIV-------*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~ Entity to set up PWM pulses and divide master clock. Ports of the entity are as follows: IN: CLK OUT: CLKOUT 15 OCT 2010, V1.1 *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CLKDIV IS PORT( CLK: IN STD_LOGIC; CLKOUT: OUT STD_LOGIC ); END CLKDIV; ARCHITECTURE DIV OF CLKDIV IS BEGIN PROCESS (CLK) VARIABLE COUNT: INTEGER RANGE 0 TO 12501 :=0; VARIABLE STATE: STD_LOGIC := '1'; BEGIN IF(CLK'EVENT and CLK='1') THEN IF(COUNT=12500)THEN COUNT:=0; STATE:= '1'; ELSE COUNT := COUNT+1; END IF; IF(COUNT=10000)THEN STATE:= NOT STATE; END IF; END IF; CLKOUT