Download CM7000 Series - Digi International

Transcript
The serial ports can be polled or interrupt-driven.
A polling driver tests the ready flags (TDRE and RDRF) until a ready
condition appears (transmitter data register empty or receiver data register
full). If an error condition occurs on receive, the routine must clear the
error flags and take appropriate action, if any. If the /CTS line is used for
flow control, transmission of data is automatically stopped when /CTS
goes high because the TDRE flag is disabled. This prevents the driver
from transmitting more characters because it thinks the transmitter is not
ready. The transmitter will still function with /CTS high, but exercise care
because TDRE is not available to synchronize loading the data register
(TDR) properly.
An interrupt-driven port works as follows. The program enables the
receiver interrupt as long as it wants to receive characters. The transmitter
interrupt is enabled only while characters are waiting in the output buffer.
When an interrupt occurs, the interrupt routine must determine the cause:
receiver data register full, transmitter data register empty, receiver error, or
/DCD0 pin high (channel 0 only). None of these interrupts is edgetriggered. Another interrupt will occur immediately if interrupts are reenabled without disabling the condition causing the interrupt. The signal
/DCD0 is grounded on the CM7000.
Table 3-10 lists the interrupt vectors.
Table 3-10. Serial Port Interrupt Vectors
Address
Name
0E
SER0_VEC
Z180 Serial Port 0 (higher priority)
10
SER1_VEC
Z180 Serial Port 1
64 s System Development
Description
CM7000