Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-94.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

3.7 Microprocessor Input–Output Control

Polling and Interrupts

There are two basic methods for the microprocessor to control input and output. These are polling and interrupts. Polling is just that, the microprocessor periodically checking various peripheral devices to determine if input or output is waiting. If a peripheral device has some input or output that should be processed, a flag will be set. The problem is that a lot of processing time is wasted checking for inputs when they are not changing.

Servicing an interrupt is an alternative method to control inputs and outputs. In this method, a register in the microprocessor must have set an interrupt enable (IE) bit for a particular peripheral device. When an interrupt is initiated by the peripheral, a flag is set for the microprocessor. The interrupt request (IRQ) line will go active, and the microprocessor will service the interrupt. Servicing an interrupt means that the normal processing of the microprocessor is halted (i.e., interrupted) while the input/output is com-pleted. In order to resume normal processing, the microprocessor needs to store the contents of its registers before the interrupt is serviced. This process includes saving all active register contents to a stack, a part

©2002 CRC Press LLC

of RAM designated for this purpose, in a process known as a push. After a push, the microprocessor can then load the address of the Interrupt Service Routine and complete the input/output. When that portion of code is complete, the contents of the stack are reloaded to the registers in an operation known as a Pop (or Pull) and normal processing resumes.

Input and Output Transmission

Once the input or output is ready for transmission, there are several modes that can be used. First, data can be moved in either parallel or serial mode. Parallel mode means that multiple bits (e.g., 16 bits) move in parallel down a multiple pathway or bus from source to destination. Serial mode means that the bits move one at a time, in a series, down a single pathway. Parallel mode traffic is faster in that multiple bits are moving together, but the number of pathways is a limiting factor. For this reason parallel mode is usually used for components located close to one another while serial transmission is used if any distance is involved.

Serial data transmission can also be differentiated by being asynchronous or synchronous. Asynchro-nous data transmission uses separate clocks between the sender and receiver of data. Since these clocks are not synchronized, additional bits called start and stop bits are required to designate the boundaries of the bytes being sent. Synchronous data transmission uses a common or synchronized timing source. Start and stop bits are thus not needed, and overall throughput is increased.

A third way of differentiating data transmission is by direction. A simplex line is a one direction only pathway. Data from a sensor to the microcontroller may use simplex mode. Half-duplex mode allows two-way traffic, but only one direction at a time. This requires a form of flow control to avoid data transmission errors. Full-duplex mode allows two-way simultaneous transmission of data.

The agreement between sending and receiving units regarding the parameters of data transmission (including transmission speed) is known as handshaking.

HC12 Microcontroller Input–Output Subsystems

There are four input–output subsystems on the Motorola HC12 microcontroller that can be used to exemplify the data transmission section above.

The serial communications interface (SCI) is an asynchronous serial device available on the HC12. It can be either polled or interrupt driven and is intended for communication between remote devices. Related to SCI is the serial peripheral interface (SPI). SPI is a synchronous serial interface. It is intended for commu-nication between units that support SPI like a network of multiple microcontrollers. Because of the synchro-nization of timing that is required, SPI uses a system of master/slave relationships between microcontrollers.

The pulse width modulation (PWM) subsystem is often used for motor and solenoid control. Using registers that are mapped to both the PWM unit and the microprocessor, a PWM output can be com-manded by setting values for the period and duty cycle in the proper registers. This will result in a particular on-time and off-time voltage command.

Last, the serial in-circuit debugger (SDI) allows the microcontroller to connect to a PC for checking and modifying embedded software.

Microcontroller Network Systems

There is one last topic that should be mentioned in this section on inputs and outputs. Mechatronic systems often work with other systems in a network. Data and commands are thus transmitted from one system to another. While there are many different protocols, both open and proprietary, that could be mentioned about this networking, two will serve our purposes. The first is the manufacturing auto-mation protocol (MAP) that was developed by General Motors Corporation. This system is based on the ISO Open Systems Interconnection (OSI) model and is especially designed for computer integrated manufacturing (CIM) and multiple PLCs. The second is the controller area network (CAN). This standard for serial communications was developed by Robert Bosch GmbH for use among embedded systems in a car.

.