Page 60 - The Mechatronics Handbook
P. 60

One can find further differences in addressing modes, number of direct accessible registers, and type
                                 of code memory (ranging from 1 to 128 KB) that are important from the view of firmware development.
                                 Flash memory enables quick and even in-system programming (ISP) using 3–5 wires, whereas classical
                                 EPROM makes chips more expensive due to windowed ceramic packaging. Some microcontrollers have
                                 built-in boot and debug capability to load code from a PC into the flash memory using UART (Universal
                                 Asynchronous Receiver/Transmitter) and RS-232C serial line. OTP (One Time Programmable) EPROM
                                 or ROM appear effective for large production series. Data EEPROM (from 64 B to 4 KB) for calibration
                                 constants, parameter tables, status storage, and passwords that can be written by firmware stand beside
                                 the standard SRAM (from 32 B to 4 KB).
                                   The range of peripheral components is very wide. Every chip has bidirectional I/O (input/output) pins
                                 associated in 8-bit ports, but they often have an alternate function. Certain chips can set an input decision
                                 level (TTL, MOS, or Schmitt trigger) and pull-up or pull-down current sources. Output drivers vary in
                                 open collector or tri-state circuitry and maximal currents.
                                   At least one 8-bit timer/counter (usually provided with a prescaler) counts either external events
                                 (optional pulses from an incremental position sensor) or internal clocks, to measure time intervals, and
                                 periodically generates an interrupt or variable baud rate for serial communication. General purpose 16-bit
                                 counters and appropriate registers form either capture units to store the time of input transients or
                                 compare units that generate output transients as a stepper motor drive status or PWM (pulse width
                                 modulation) signal. A real-time counter (RTC) represents a special kind of counter that runs even in
                                 sleep mode. One or two asynchronous and optionally synchronous serial interfaces (UART/USART)
                                                                                                    2
                                 communicate with a master computer while other serial interfaces like SPI, CAN, and I C control other
                                 specific chips employed in the device or system.
                                   Almost every microcontroller family has members that are provided with an  A/D converter and a
                                 multiplexer of single-ended inputs. Input range is usually unipolar and equal to supply voltage or rarely to
                                 the on-chip voltage reference. The conversion time is given by the successive approximation principle of
                                 ADC, and the effective number of bits (ENOB) usually does not reach the nominal resolution 8, 10, or 12 bits.
                                   There are other special interface circuits, such as field programmable gate array (FPGA), that can be
                                 configured as an arbitrary digital circuit.
                                   Microcontroller firmware is usually programmed in an assembly language or in C language. Many
                                 software tools, including chip simulators, are available on websites of chip manufacturers or third-party
                                 companies free of charge. A professional integrated development environment and debugging hardware
                                 (in-circuit emulator) is more expensive (thousands of dollars). However, smart use of an inexpensive
                                 ROM simulator in a microprocessor system or a step-by-step development cycle using an ISP programmer
                                 of flash microcontroller can develop fairly complex applications.

                                 4.5 Programmable Logic Controllers

                                 A programmable logic controller (PLC) is a microprocessor-based control unit designed for an industrial
                                 installation (housing, terminals, ambient resistance, fault tolerance) in a power switchboard to control
                                 machinery or an industrial process. It consists of a CPU with memories and an I/O interface housed
                                 either in a compact box or in modules plugged in a frame and connected with proprietary buses. The
                                 compact box starts with about 16 I/O interfaces, while the module design can have thousands of I/O
                                 interfaces. Isolated inputs usually recognize industrial logic, 24 V DC or main AC voltage, while outputs
                                 are provided either with isolated solid state switches (24 V for solenoid valves and contactors) or with
                                 relays. Screw terminal boards represent connection facilities, which are preferred in PLCs to wire them
                                 to the controlled systems. I/O logical levels can be indicated with LEDs near to terminals.
                                   Since PLCs are typically utilized to replace relays, they execute Boolean (bit, logical) operations and
                                 timer/counter functions (a finite state automaton). Analog I/O, integer or even floating point arithmetic,
                                 PWM outputs, and RTC are implemented in up-to-date PLCs. A PLC works by continually scanning a
                                 program, such as machine code, that is interpreted by an embedded microprocessor (CPU). The scan
                                 time is the time it takes to check the input status, to execute all branches (all individual rungs of a ladder

                                 ©2002 CRC Press LLC
   55   56   57   58   59   60   61   62   63   64   65