Intel 82801EB Universal Remote User Manual


 
Intel® ICH5 AC ’97 Modem Driver
R
AC ’97 Programmer’s Reference Manual 51
9 Intel
®
ICH5 AC ’97 Modem Driver
The AC ’97 Component Specification allows for a modem codec to be connected to the AC-link
interface. This allows for the development of a software stack that provides modem functionality,
i.e. a soft modem. Currently there is no a single definition of how a soft-modem should be
implemented under Microsoft operating systems as is the case for audio in a WDM environment.
Soft modem vendors have developed a variety of implementations for Microsoft Windows* 95,
Windows* 98, Windows NT* 4.0 and Windows NT 5.0 operating systems. The design problems
are not trivial for the soft-modem developer. This document does not attempt to describe solutions
for each of these environments, but focuses instead on facilitating the development of the
driver/hardware interface. At the time of this specification, Microsoft and Intel are engaging with
the industry to define a common interface for the WDM environment.
9.1 Robust Host-Based Generation of a Synchronous
Data Stream
This section presents a method for synchronous modem data to be reliably generated on the host
processor of a computer system where the host processor is running a non real-time operating
system whose maximum response latency (interrupt, thread, etc.) exceeds the period at which the
host processor generates consecutive buffers of modem data. For the purposes of this discussion
we will assume that the host processor periodically, in response to interrupts, generates a buffer of
modem data in memory, which is then utilized or consumed in a synchronous fashion by hardware.
This modem data would comprise a sequence of digital representations of the analog signal to be
transmitted over a phone line in accordance with one of a variety of modem protocols, baud rates,
etc., and could be transmitted to the ICH5 AC ’97 DMA engines via the buffer descriptor list as
described in Section 3.2.
We will also assume, for the sake of simplicity, that the data are double buffered, so that failure to
generate new data before the next period will result in stream underflow from the hardware’s
viewpoint, but other scenarios including multiply buffered designs as well as non-periodic
processing models can be accommodated. The algorithm works by providing good data followed
by spurious data, which is chosen or computed so as to be adequate to maintain connection with
the other modem by, for example, transitioning seamlessly with respect to the phase of the carrier
frequency and the baud rate, thereby avoiding a retrain. This enables the datapumps of the two
modems to maintain synchronization in the face of infrequent hold-offs from processing
experienced by the datapump of the host-based transmitting modem. The spurious data will, of
course, cause a packet retransmission or other action by the controller, but to the receiving modem
the incoming data signal will be indistinguishable from one corrupted by line conditions.