WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Direct memory access (DMA) sampler    
United States Patent5483239   
Link to this pagehttp://www.wikipatents.com/5483239.html
Inventor(s)Arczynski; Wayne S. (Lutherville, MD); Broadwater; Stuart P. (White Hall, MD); Aschliman; Larry D. (Jacobus, PA)
AbstractA microprocessor-based system includes a central processing unit (CPU) and a CPU memory coupled by a CPU bus. A DMA sampler is coupled to the CPU, the CPU memory and the CPU bus. The DMA sampler includes sampling circuitry which is implemented as a finite state machine to maintain a substantially exact sampling rate on at least one analog input signal provided to the DMA sampler. The DMA sampler also includes DMA circuitry implemented as a data flow machine, which requests bus mastership from the CPU when samples obtained by the DMA sampler are available for transfer to the CPU memory. In response to the request, the CPU relinquishes bus mastership to the DMA sampler which provides the sample to the CPU memory and returns bus mastership to the CPU.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5483239
Direct memory access (DMA) sampler - US Patent 5483239 Drawing
Direct memory access (DMA) sampler
Inventor     Arczynski; Wayne S. (Lutherville, MD); Broadwater; Stuart P. (White Hall, MD); Aschliman; Larry D. (Jacobus, PA)
Owner/Assignee     Westinghouse Electric Corporation (Baltimore, MD)
Patent assignment
All assignments
Publication Date     January 9, 1996
Application Number     07/887,261
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 22, 1992
US Classification     341/141 341/123
Int'l Classification     G06F 013/10 G06F 013/22
Examiner     Chan; Eddie P.
Assistant Examiner     Nguyen; Hiep T.
Attorney/Law Firm     Edwards; C. O .
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/400 395/425 364/724.1 341/123 341/141
Patent Tags     direct memory access (dma) sampler
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5293167
Campbell, Jr.
341/141
Mar,1994

[0 after 0 votes]
5257025
LeCroy, Jr.
341/100
Oct,1993

[0 after 0 votes]
5127404
Wyborny
607/32
Jul,1992

[0 after 0 votes]
4994914
Wiseman
348/584
Feb,1991

[0 after 0 votes]
4891713
Mizukoshi
358/445
Jan,1990

[0 after 0 votes]
4817176
Marshall
382/280
Mar,1989

[0 after 0 votes]
4794460
Shiota
386/128
Dec,1988

[0 after 0 votes]
4742458
Nathans
382/207
May,1988

[0 after 0 votes]
4589020
Akatsuka
348/718
May,1986

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A sampling apparatus comprising:

an analog to digital converter for receiving analog data from N inputs and converting said analog data to digital data, where N is a finite even integer greater than zero; and

means for sampling operably connected to said analog to digital converter for controlling said analog to digital converter;

whereby said means for sampling repeatedly cycles among a first N/2 inputs for M-1 clock cycles at a first predetermined substantially fixed sampling rate, and upon the Mth clock cycle samples all N inputs at a second predetermined substantially fixed sampling rate in a predetermined pattern in order to maintain said first predetermined substantially fixed sampling rate of said first N/2 analog inputs, where M is a finite integer greater than one.

2. The sampling apparatus of claim 1 further comprising:

a memory operably connected to said analog to digital converter for storing said digital data.

3. The sampling apparatus of claim 2 further comprising:

direct memory access means operably connected to said analog to digital converter for transmitting said digital data to said memory.

4. The sampling apparatus of claim 3 further comprising:

a central processing unit (CPU) for controlling operations of said sampling apparatus, said CPU operably connected to said memory and said direct memory access means.

5. The sampling apparatus of claim 4 further comprising:

bus means operably connecting said CPU, said direct memory access means, said memory, and said means for sampling.

6. The sampling apparatus of claim 4 further comprising:

bus means operably connecting said CPU, said direct memory access means, said memory, and said means for sampling;

whereby said direct memory access means obtains bus mastership from the CPU for a predetermined interval of time in order to effect a data transfer to said memory.

7. The sampling apparatus of claim 4 further comprising:

bus means operably connecting said CPU, said direct memory access means, said memory, and said means for sampling;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs.

8. The sampling apparatus of claim 4 further comprising:

bus means operably connecting said CPU, said direct memory access means, said memory, and said means for sampling;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs, and N equals 8 and M is selected from the number set 32, 64, 128, and 256.

9. The sampling apparatus of claim 4 further comprising:

bus means operably connecting said CPU, said direct memory access means, said memory, and said means for sampling;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs, and said second predetermined substantially fixed sample rate is twice that of said first predetermined substantially fixed sampling rate.

10. The sampling apparatus of claim 2 further comprising:

means for converting said digital data into signed two's complement representation; and

direct memory access means operably connected to said analog to digital converter for transmitting said signed two's complement representation to said memory.

11. A method for sampling, in a system including an analog to digital converter for receiving analog data from N inputs and converting said analog data to digital data, and means for sampling operably connected to said analog to digital converter; the method comprising the steps of:

(a) sampling said first N/2 inputs at a first predetermined substantially fixed sampling rate;

(b) repeating step (a) for M-1 clock cycles, whereby M is integer greater than one and N is even positive integer;

(c) sampling all N inputs at a second predetermined substantially fixed rate upon the Mth clock cycle in a predetermined pattern in order to maintain said first predetermined substantially fixed sampling rate of said first N/2 analog inputs.

12. The method for sampling of claim 11 further including the steps of:

repeatedly sampling all N inputs at a second predetermined substantially fixed rate upon the Mth clock cycle in a predetermined pattern in order to maintain said first predetermined substantially fixed sampling rate of said first N/2 analog inputs;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs.

13. The method for sampling of claim 12 including the steps of:

converting analog input data to digital data; and

storing the digital data in a memory.

14. The method for sampling of claim 13 where the storing step further includes the steps of:

receiving notification by said direct memory access means from said sampling circuit upon reception of a sample:

requesting bus mastership by the direct memory access means from the CPU;

waiting for bus mastership transfer of a bus from CPU control to said direct memory access means;

transmitting a sample from the direct memory access means to a bus; and

storing said sample in memory.

15. The method for sampling of claim 12 including the steps of:

converting analog input data to digital data;

converting said digital data into a two's complement representation; and

storing the two's complement representation in a memory.

16. The method for sampling of claim 11 including the steps of:

converting analog input data to digital data; and

storing the digital data in a memory.

17. The method for sampling of claim 16 where the storing step further includes the steps of:

receiving notification by said direct memory access means from said means for sampling upon reception of a sample;

requesting bus mastership by the direct memory access means from the CPU;

waiting for bus mastership transfer of a bus from CPU control to said direct memory access means;

transmitting a sample from the direct memory access means to a bus; and

storing said sample in memory.

18. The method for sampling of claim 11 further including the steps of:

repeatedly sampling all N inputs at a second predetermined substantially fixed rate upon the Mth clock cycle in a predetermined pattern in order to maintain said first predetermined substantially fixed sampling rate of said first N/2 analog inputs;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs, N equals 8 and M is selected from the number set 32, 64, 128, and 256.

19. The method for sampling of claim 11 further including the steps of:

repeatedly sampling all N inputs at a second predetermined substantially fixed rate upon the Mth clock cycle in a predetermined pattern in order to maintain said first predetermined substantially fixed sampling rate of said first N/2 analog inputs;

whereby said predetermined pattern for sampling is accomplished by interleaving said analog data from said N inputs, and said second predetermined substantially fixed sample rate is twice that of said first predetermined substantially fixed sampling rate.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention is directed to a device and method for sampling an analog input signal(s) to generate a sample, and for providing the sample to a memory in a direct memory access (DMA) operation.

2. Description of the Related Art

DMA sampling systems generally function to sample an analog input signal from a sensor to generate samples which are provided to a memory in a DMA operation. Such systems periodically request bus mastership from a central processing unit (CPU) which is coupled to a memory by a bus. Upon a grant of bus mastership by the CPU, these DMA sampling systems sample the analog input signal to generate a sample which is provided to the memory via the bus under control of the DMA sampling systems. Thereafter, such DMA sampling systems advise the CPU that the DMA operation has been completed, and the CPU resumes bus mastership.

Because the time difference between the request for bus mastership from such DMA sampling systems and the grant of bus mastership from the CPU may vary, an exact sampling rate is generally not maintained by such DMA sampling systems since sampling of the analog input signal occurs only after the grant of bus mastership in such DMA sampling systems.

Certain applications of DMA sampling system require that an exact sampling rate be maintained. For example, in fast-Fourier transform (FFT) processing, maintenance of an exact sampling rate is particularly critical to avoid the introduction of noise into the FFT processing algorithm. For example, assuming a dynamic range (i.e., the ratio of the specified maximum signal level capability of a system to its noise level) of 6 decibels per bit, a DMA sampler using an eight-bit sample potentially has a dynamic range of 48 decibels (8 bits.times.6 decibels per bit). However, an error in the sampling rate of as little as 1.5% translates into a 9.5 decibel degradation in dynamic range for the DMA sampling system. Such degradation is referred to as "aperture jitter".

SUMMARY OF THE INVENTION

An object of the present invention is to provide a DMA sampling system for sampling an analog input signal(s) at a substantially exact sampling rate to significantly reduce aperture jitter, and yet affording the advantage of reducing CPU processing time through the use of a DMA operation.

Another object of the present invention is to provide a capability for converting digital samples into a format corresponding to preliminary steps of an FFT processing algorithm before performing a DMA operation.

A further object of the present invention is to provide a DMA sampling system which is less susceptible to timing problems, for example, a clock slip, by implementing the structure performing the DMA operation as a data flow machine.

These objects are obtained by the DMA sampler herein disclosed. According to the present invention, there is provided a DMA sampler in which sampling circuitry is implemented as a finite state machine so that a substantially exact sampling rate is maintained. Upon the generation of a sample, the FFT sampling circuit notifies DMA circuitry of the existence of a sample to be transferred to a CPU memory. The DMA circuitry is implemented as a data flow machine so that DMA processing is initiated by the DMA circuitry upon notification of the existence of a sample from the FFT sampling circuitry. In response to such notification, the DMA circuitry requests bus mastership from the CPU and waits until bus mastership of the CPU bus is granted. The CPU is programmed to respond to the request for bus mastership within a time period sufficient for the sampling circuit to obtain the next sample. Upon receipt of bus mastership, the DMA circuit drives a CPU address bus with an address and drives the data bus with the-sample to provide the sample to the CPU memory. Thereafter, the DMA circuitry returns bus mastership to the CPU and the DMA operation is completed. Because the DMA circuitry is implemented as a data flow machine so that the DMA circuitry requests bus mastership upon notification of the existence of a sample to be transferred to the CPU memory, the DMA circuitry helps to ensure that samples are not lost and is less susceptible to timing problems.

These together with other objects and advantages, which will become subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings, forming a part hereof, wherein like numerals refer to like parts throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a microprocessor-based system employing the DMA sampler in accordance with the present invention;

FIG. 2 is a circuit diagram of part of the control register of FIG. 1;

FIG. 3 is a circuit diagram of part of the control register, part of the decode logic circuit and part of the sampler of FIG. 1;

FIG. 4 is a circuit diagram of parts of the sampler and a part of the DMA circuit of FIG. 1;

FIG. 5 is a circuit diagram of the A/D converter, the converter and the latch of FIG. 1;

FIG. 6 is a circuit diagram of the A/D address generator of FIG. 1;

FIG. 7 is a block diagram of the DMA sampler clock of FIG. 1;

FIG. 8 is a subcircuit within the DMA circuitry of FIG. 1 which controls memory writes;

FIG. 9 is a circuit diagram of part of the decode logic circuit of FIG. 1;

FIG. 10 is a circuit diagram of part of the memory address generator of FIG. 1;

FIG. 11 is a circuit diagram of part of the memory address generator of FIG. 1;

FIG. 12 is a circuit diagram of the DMA interrupt circuit of FIG. 1;

FIG. 13 is a circuit diagram of the interrupt status register of FIG. 1;

FIG. 14 is a flow chart representation of typical processing by the CPU of FIG. 1;

FIG. 15 is a generalized circuit diagram of the microprocessor-based system of FIG. 1; and

FIG. 16 is a timing diagram of the DMA sampler of the preferred embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Before specifically describing the preferred embodiments of the present invention, a general description of the present invention is given below.

Referring to FIG. 15, the microprocessor-based system employing the DMA sampler in accordance with the present invention generally includes a CPU 2, a CPU memory 4, sampling circuitry 10 and DMA circuitry 12. The sampling circuitry 14 and the DMA circuitry 12 may be referred to collectively as a "DMA sampler." The CPU 2 initiates sampling by the sampling circuitry 10 by generating the signal SWSTART. Upon activation of the signal SWSTART, the sampling circuitry 10 samples at least one analog input signal and generates the signal DMAQ24 to notify the DMA circuitry 12 that at least one sample has been obtained. In response to the signal DMA Q24, the DMA circuitry 12 issues a signal BUSRQ to request bus mastership from the CPU 2. In response to the signal BUSRQ, the CPU 2 generates the signal INBUSGRNT- to advise the DMA circuitry 12 of a grant of bus mastership. The DMA circuitry 12 acknowledges the grant of bus mastership by generating the signal BGACK which is provided to the CPU 2.

After a grant of bus mastership, the sampling circuitry 10 outputs a sample(s) as the signal OUTMCUD in response to the signal BGACK from the DMA circuitry 12. The DMA circuitry 12 generates and outputs an appropriate CPU memory address OUTA and controls the timing for writing the sample(s) to the CPU memory 4 using CPU bus 6. Thereafter, the CPU 2 resumes bus mastership in response to the deactivation of the signal BGACK.

In the above description with reference to FIG. 15, it should be noted that once sampling is initiated by the CPU 2 through generation of the signal SWSTART, sampling is performed by the DMA sampler without any dependence upon whether bus mastership has been granted to the DMA sampler. Accordingly, the DMA sampler is able to maintain a substantially exact sampling rate to avoid the degradation in performance caused by aperature jitter in prior art DMA sampling systems.

Next, a more detailed description of the preferred embodiments of the present invention, is given below.

The DMA sampler of the present invention is divided into two main elements: the sampling circuitry 10 (i.e., means for sampling) and the DMA circuitry 12 (i.e., means for performing a DMA operation). The sampling circuitry 10 is implemented as a finite state machine which performs an analog-to-digital (A/D) read operation to obtain digital samples from analog input signal(s) provided to the DMA sampler. The CPU 2 associated with the DMA sampler operates at a system clock rate having a period termed "SYSCLK". The sampling circuitry 10 is designed to perform at least one A/D read operation every 512 SYSCLKs.

The sampling circuitry 10 is capable of sampling as many as eight analog input signals which are generally derived from sensors coupled to the DMA sampler. Accordingly, the sampling circuitry 10 generates an A/D address to select one of the analog input signals for sampling. The sampling circuitry 10 cycles the A/D address from zero to three in order to sample four analog input signals on four respective analog channels 0, 1, 2 and 3 as shown in FIG. 16. This cycling occurs for N-1 cycles, where N is a number designated by the CPU 2. In the present invention, N may have values of 32, 64, 128 or 256.

On the Nth cycle, the A/D read operation is performed every 256 SYSCLOCKS to obtain samples from all eight channels of the sampling circuitry 10 with the address sequence of 0, 4, 1, 5, 2, 6, 3 and 7. Such address sequence maintains an exact sampling frequency on channels 0, 1, 2 and 3 while also obtaining new data on analog channels 4, 5, 6 and 7 once per N cycles. Hereinafter, N cycles is referred to as a "look".

Samples from the sampling circuitry 10 are stored in the CPU memory 4 at a memory address derived from base addresses provided to the DMA circuitry 12 by the CPU 2 prior to sampling. These base addresses are referred to as BASE0, BASE1 and ANBASE. Samples corresponding to A/D address 0 are stored at CPU address locations BASE0 through BASE0+510, samples corresponding to A/D address 1 map to BASE0+512 through BASE0+1022, samples corresponding to A/D address 2 map to BASE0 +1024 through BASE0+1534, and samples corresponding to A/D address 3 map to BASE0+1536 through BASE0+2046. The above samples are referred to as "sample set 0" and correspond to one look for each of the channels 0, 1, 2 and 3.

After sampling is performed for one look, the CPU 2 may direct the DMA sampler to perform sampling for another look. In such case, the DMA circuitry 12 changes the base address constant from BASE0 to BASE1 to obtain another set of samples for channels 0, 1, 2 and 3, termed "sample set 1". After completion of the second look, if the CPU 2 directs the DMA sampler to perform another look, the DMA circuitry 12 changes the BASE address constant from BASE1 back to BASE0. The DMA circuitry 12 performs such toggling between BASE0 and BASE1 so that the CPU 2 has sufficient time to handle samples corresponding to a given look before such samples are written over in a subsequent look.

The samples corresponding to A/D address 4, 5, 6 and 7 are stored at memory locations ANBASE, ANBASE+2, ANBASE+4 and ANBASE+6, respectively. Thus, ANBASE is used as the base address for the last four analog channels regardless of the current sample set being sampled.

With the above addressing scheme, it will be noted that two memory spaces are allocated for each sample in the CPU memory 4. Accordingly, a sample may be split into upper and lower halves and written to the CPU memory 4 in two successive memory locations. However, in the description of the preferred embodiment, it is assumed that the CPU memory 4 has a sufficient bit size to accommodate each sample at one memory location, although other implementations of the CPU memory 4, the bit size of the CPU bus 6 and the sample size generated by the sampling circuitry 10 are possible, and may be readily implemented by those of ordinary skill in the art.

In the above sampling scheme, four analog input signals are sampled N times per look on channels 0, 1, 2 and 3, while another four analog input signals are sampled on analog channels 4, 5, 6 and 7 only once per look. This feature provides flexibility in sampling analog input signals provided to the DMA sampler since the CPU 2 may require more samples for a given analog input signal per look than other analog input signals, to operate effectively. For example, analog input signals from temperature sensors are generally less time variant than vibration sensors, so that analog input signals from temperature sensors may be sampled less frequently than analog input signals from vibration sensors.

Also in accordance with the present invention, an optional feature is provided to convert a sample of a given bit size, e.g., eight bits, into a sign-extended twos-complement code so that the samples are in a correct format for the preliminary step of some FFT algorithms. Thus, no other data scaling need be performed prior to performing these particular FFT algorithms. When other FFT algorithms are implemented on the DMA sampler of the present invention, this feature may be omitted.

The DMA circuitry 12 is implemented as a data flow machine in which processing initiates upon indication of the existence of a sample to be transferred from the sampling circuitry 10 to the CPU memory 4. The DMA circuitry 12 functions to request bus mastership from the CPU 2 and waits until mastership of the CPU bus 6 is granted. Upon receipt of bus mastership, the DMA circuitry 12 drives the CPU bus 6 with a CPU memory address derived from the appropriate base address as described above, and also drives the CPU bus 6 with the sample. The CPU memory 4 is then enabled and strobed to complete data storage of the sample, and bus mastership is returned to the CPU 2. In the present invention, the DMA sampler only maintains bus mastership for two SYSCLOCKs in a normal DMA operation. In the worst case, clock skew could cause three SYSCLOCKs from grant of bus mastership to and release of bus mastership by the DMA sampler. Therefore, processing performed by the CPU is only slowed a maximum of three SYSCLOCKs for every 512 SYSCLOCKs, or 0.6%, while a substantially exact sampling rate of the analog input signals is maintained.

Referring to FIG. 1, a description of a microprocessor-based system employing the DMA sampler of the preferred embodiment of the present invention, is disclosed below.

A CPU 2 is coupled to a CPU memory 4 by a CPU bus 6. Also coupled to the CPU bus 6 is control register 8 which the CPU 2 accesses with a specific address provided on the CPU bus 6. The CPU 2 uses the control register 8 to write instructions to the DMA sampler, and also to read the status of the DMA sampler.

The DMA sampler is divided into two parts: sampling circuitry 10 (i.e., means for sampling) and DMA circuitry 12 (i.e., means for performing a DMA operation). The sampling circuitry 10 includes sampler 14, DMA sampler clock 16, A/D converter 18, A/D address generator 20, latch 22 and converter 24. The DMA circuitry 12 includes DMA circuit 26, memory address generator 28 and the DMA sampler clock 16 which is common to both the sampling circuitry 10 and the DMA circuitry 12. A DMA interrupt circuit 32 and an interrupt status register 34 are also provided in the microprocessor-based system.

To initiate sampling, the CPU 2 addresses the control register 8 to activate or deactivate certain bits stored therein. The output of the control register S corresponding to these bits is provided to the decode logic circuit 30 which issues a signal SWSTART to the sampler 14 to start sampling by the DMA sampler. Also, the decode logic circuit 30 generates two signals RDATOD- and DCDA2D which are provided to the sampler 14 when the CPU 2 is instructed to read samples directly without intervention of the DMA sampler.

In response to the signal SWSTART from the decode logic circuit 30, the sampler 14 issues the signal ENBUSARB to the DMA sampler clock 16, the A/D address generator 20 and the DMA circuit 26, to enable bus arbitration between the DMA sampler and the CPU 2.

In response to either the signals RDATOD- and DCDA2D or the signal DMAQ24 in the sampler 14 based on the clock signal DLYGO- or the signal GOAN-, the sampler 14 issues the signals RDATOD- and A2DDEN- to control A/D converter 18 to read data on a selected channel, and to provide the sample obtained by the A/D converter 18 at the output thereof. Also, in response to the signal DCDA2D, the sampler 14 issues signal ATODCE to the latch 22 to enable the latch 22 to output data onto the CPU bus 6. The signal ATODCE is also provided to the A/D converter 18 to enable the A/D converter 18.

The sampler 14 also receives from the control register 8 the signal CONT which is used by the CPU 2 to command the DMA sampler to execute more than one look.

The DMA sampler clock 16 operates based on the system clock SYSCLK to generate two-phase clock signals PH1 and PH0. In the preferred embodiment, the two-phase clock signals PH1 and PH0 each have a frequency of 8 megahertz.

The two-phase clock signals PH1 and PH0 are used to generate signals GO, DLYGO, and HALFGO. The signal GO indicates the beginning of a cycle while the signal DLYGO is a signal delayed by one period of the signal PH0 from the signal GO. The signal HALFGO is used to indicate the start of the second half of one cycle. The DMA sampler clock 16 also generates a signal 32K which is used to provide timing for operations in the DMA sampler and the DMA interrupt circuit 32.

The A/D converter 18 activates a signal DMAQ24 which is provided to the DMA circuit 26 to indicate the fact that a sample has been obtained. When the DMA circuit 26 is enabled by the signal ENBUSARB from the sampler 14, the DMA circuit 26 issues a signal BUSRQ- to the control CPU 2. Accordingly, the CPU 2 is advised that the DMA sampler has requested bus mastership by the activation of the signal BUSRQ-. The CPU 2 is programmed to respond to a bus request from the DMA sampler indicated by the signal BUSRQ- within approximately 125 SYSCLOCKs. When the CPU 2 determines that it may relinquish bus mastership to the DMA sampler, the CPU 2 responds to the request for use of the bus by issuing the signal INBUSGRNT to the DMA circuit 26. In response to the signal INBUSGRNT the DMA circuit 26 resets the signal BUSRQ- and acknowledges the grant of bus mastership by providing the signal BGACK to the CPU 2. Upon receiving the signal INBUSGNT, the DMA sampler will provide a sample from the latch 22 to the CPU memory 4 and return bus mastership to the CPU 2 within 3 SYSCLOCKs.

The A/D converter 18 is provided with various control information from the control register 8 prior to the initiation of sampling. Such control information includes, for example, a designation of the number of bits to be obtained for each sample. Also, the A/D converter 18 is provided with at least one analog input signal, but when plural analog input signals are provided to the A/D converter 18, provision must be made to address the channels of the respective analog input signals.

This function is provided by the A/D address generator 20 which uses the clock signals DLYGO and GO to generate the signals ATODADR0, ATODADR1 and ATODADR2. These signals are provided as a three-bit input signal to the A/D converter 18 so that as many as eight channels may be addressed by the A/D address generator 20.

The A/D address generator 20 also functions to provide the signals A2DA0 and A2DA1 to the memory address generator 28 for use in generating appropriate CPU memory addresses during a look. Also, the A/D address generator 20 generates a signal THREE which is provided to the DMA interrupt circuit 32 and combined with other signals to generate an interrupt to the CPU 2. The A/D address generator 20 is reset by a signal SAMSTART- from the sampler 14 which operates to reset the A/D address generator 20 at the beginning of a cycle.

Prior to instructing the DMA sampler to execute sampling, the CPU 2 loads base addresses BASE0, BASE1 and ANBASE into the memory address generator 28. To perform this function, the CPU 2 generates an appropriate address INA which is decoded in the decode logic circuit 30 to produce the signals LDANBASE, LDDMABAS0 and LDDMABAS1. The CPU 2 also generates and provides the signals INA18 and WRITE to the decode logic circuit 30 to generate one of the signals RDDBASE0, RDBASE1 and RDABASE- when the CPU 2 reads samples from the CPU memory 4 or when the DMA circuit 26 writes a sample to the CPU memory 4 by generating the signal TOENTCNTL. The resulting signal is used to output an appropriate CPU memory address to the CPU memory 4. In the memory address generator 28, the base addresses BASE0, BASE1 and ANBASE correspond to the most significant bits for generating CPU memory addresses for the sample set 0, the sample set i and the samples corresponding to channels 4, 5, 6 and 7, respectively.

As the next most significant bits, the memory address generator 28 uses the signals A2DA0 and A2DA1 from the A/D address generator 20. These bits merely sequence for each cycle so that sample sets for channels 0, 1, 2 and 3 and 4, 5, 6 and 7 are stored in separate memory spaces in the CPU memory 4.

As the least significant bits which are used to address CPU memory 4, the memory address generator 28 counts occurrences of the signal GO to maintain a record of the number of cycles of samples which have been completed while a look is progressing. The count value is used as the least significant bits to address the CPU memory 4 only for sample sets 0 and 1 (i.e., the samples for channels 4, 5, 6 and 7 are only obtained once per look so that the coupling of ANBASE with the signals A2DA0 and A2DA1 is sufficient to generate the CPU memory addresses for samples from channels 4, 5, 6 and 7). The count value is also input to appropriate logic gates to output a signal preLASTCNT to the sampler 14 to indicate the occurrence of the end of a look.

The count value of the least significant bits of the memory address generator 28 are reset by the signal SAMSTART- from the sampler 14. In addition, the sampler 14 provides signals SAMSET0 and SAMSET1 to the memory address generator 28 to enable the base addresses BASE0 and BASE1, respectively, to be output from the memory address generator 28.

The DMA circuit 26 and the CPU 2 generate signals RAMCE-, HIRAMWRT- and LORAMWRT- to enable a sample to be written into the CPU memory 4, and to write the high and low sample words into the CPU memory 4 from the latch 22, respectively.

The DMA interrupt circuit 32 receives the signals 32K, THREE and BGACK, and generates the signals SAMPEND and DMAINT to indicate to the sampler 14 and the CPU 2, respectively, the occurrence of the end of a look. Upon handling of the interrupt indicated by the signal DMAINT, the CPU 2 issues the signal CLRINT- to deactivate the DMA interrupt circuit 32.

A specific description of the components used to implement each of the elements of the preferred embodiment of the present invention as shown in FIG. 1 is given below.

In the preferred embodiment, the CPU 2 is an MC68332 manufactured by Motorola Corporation. The CPU 2 is coupled to the CPU memory 4, a conventional 32K.times.16-bit RAM, via the CPU bus 6. The CPU bus 6 includes an address bus and a data bus.

The control register 8 is coupled to the CPU bus 6 and is addressed by the CPU 2 with a particular address, so that the CPU 2 may write instructions to the DMA sampler or read the control register 8 to determine the status of the DMA sampler.

The control register 8 includes control register part 80 of FIG. 2 and control register part 82 of FIG. 3. The control register part 80 is provided with a signal RESET- which is used to clear TTL L273 registers 84 and 86 when system and DMA sampler resets occur, for example, upon start-up of the microprocessor based system. The signal WECONFIG- is a control signal generated by the CPU 2 to write instructions to the control register 8 on lines designated IND. By writing to the control register 8 using the signals WECONFIG- and IND, the CPU 2 is able to control operations of the DMA sampler by activating or deactivating particular bits of the signal IND.

The signals generated by each bit stored in the LS373 registers 84 and 86 provide a variety of functions and capabilities. The signals SSCMP0, SSCMP1, SSCMP2 and SSCMP3 provide the capability to control multiple DMA samplers in accordance with the present invention, using a single CPU. Signal ENMCUSS is used by the CPU 2 to enable a particular DMA sampler in a multi-DMA sampler environment.

Signal DMAINTEN is used to enable or disable the DMA interrupt circuit 32 since there may be occasions on which the CPU 2 is engaged in processing which should not be interrupted by the DMA sampler. The signals VGINTEN and XINTEN are used to enable and disable two additional interrupts. VGINTEN controls voltage glitch interrupt enable and XINTEN controls a general purpose external interrupt enable. The control register part 80 also stores a bit for the signal CONT. The signal CONT is activated by the CPU 2 when the CPU 2 requires the DMA sampler to provide samples for more than one look. Accordingly, the signal CONT designates a continuous sampling mode.

The control register part 80 further stores the signals CMP0 and CMP1 which are provided to the decode logic circuit 30 to designate the number of bits per sample to be obtained by the A/D converter 18. In the following description, it is assumed that the number of bits per sample is 16 bits, though the signals CMP0 and CMP1 provide the capability for larger sample sizes.

In addition, the circuit contains an IEEE 1149.1 compliant boundary scan to test the input and output pins of the DMA sampler.

Bits corresponding to the signals ACTLOVG0, ACTLOVG1 and ACTLOXINT are stored in the control register part SO to select whether external interrupts are active high or active low signals. The signal SWSTART- is used to start the sampling process after the circuit has been configured using the control register 8.

Referring to FIG. 3, the control register part 82 includes four TTL LS244 latches 81, 83, 85 and 87. The signals from the control register part 80 are provided to the control register part 82 directly, with the exception of the signal ENBUSARB- which is generated in circuitry in the sampler 14, as more fully described in a later section.

The LS244 latches 81, 83, 85 and 87 are provided with a control signal RDCONFIG- which is activated by the CPU 2 when the CPU 2 reads the control register 8 to determine the status of the DMA sampler. When the signal RDCONFIG- is strobed low, the control register part 82 outputs a 16-bit data word designated OUTMCUD which is provided to the CPU 2 on the data bus of the CPU bus 6.

The sampler 14 includes sampler part 140 of FIG. 3, and sampler parts 142 and 144 of FIG. 4. As previously explained, when the CPU 2 requires the DMA sampler to begin sampling, the CPU 2 writes to the control register 8 to activate the signal SWSTART-. The signal SWSTART- is provided to the sampler part 140 at one input of NAND gate 143 of sampler latch 141. When the signal SWSTART- is strobed low, the output of sampler latch 141 is caused to enter a high-voltage state. Upon activation of the signal PH0 provided to the clock input of the D flip-flop 145, the output Q of the D flip-flop 145 strobes low. This output is used to generate the signal ENBUSARB- which is provided from the sampler 14 to the DMA sampler clock 16, the A/D address generator 20 and the DMA circuit 26 to enable bus arbitration between the DMA sampler and the CPU 2. The output Q of the D flip-flop 145 is also provided through inverter 146 to produce the signal ENBUSARB, which is merely an inversion of the signal ENBUSARB-. The signal ENBUSARB is latched in LS244 latch 81.

The sampler part 140 is also provided with control signals SWRESET- and MCURESET- which are used to designate a DMA sampler reset and a system reset, respectively. The signals SWRESET and MCURESET- are provided to AND gate 147 to generate the signal RESET-. The signal RESET- is provided to one input of NAND gate 148 to cause the output of sampler latch 141 to go to a low-voltage state. Such operation causes the signal ENBUSARB- to become deactivated so that bus arbitration between the DMA sampler and the CPU 2 is inhibited. Also, the D flip-flip 145 is cleared by the signal MCURESET which is merely the inversion of the signal MCURESET-. The clearing of the flip-flop 145 by the signal MCURESET also inhibits bus arbitration upon the occurrence of the system reset.

The sampler part 140 is further provided with the signal SAMPEND from the DMA interrupt circuit 32. The signal SAMPEND indicates the end of a look and is provided to the input of the D flip-flop 149. When activated, the signal SAMPEND is clocked into the flip-flop 149 upon activation of clock signal PH0 from the DMA sampler clock 16. The output Q of the flip-flop 149 is brought to a low-voltage state and provided as one of the inputs to NOR gate 150. The other input of the NOR gate 150 is the signal CONT which is provided from the CPU 2 via the control register 8 to indicate whether the DMA sampler is to obtain samples for more than one look. When the DMA sampler is merely to perform sampling for one look, the signal CONT is deactivated so that the output of NOR gate 150 is brought to a high-voltage state. This causes the sampler latch 141 to be reset and the signals ENBUSARB- and ENBUSARB which are derived from the output of the D flip-flop 145, are deactivated so that bus arbitration between the DMA sampler and the CPU 2 is inhibited.

On the other hand, when the signal CONT is activated, the output of the NOR gate 150 is brought to a low-voltage state so that the output of the sampler latch 141 is brought to a high-voltage state. Accordingly, the D flip-flop 145 is set upon activation of the clock signal PH0 so that the output Q of the D flip-flop 145 is brought to a low-voltage state. Accordingly, bus arbitration between the DMA sampler and the CPU 2 is enabled for another look.

When the signal SAMPEND is clocked into D flip-flop 149 upon the occurrence of clock signal PH0, the output Q the D flip-flop 149 is set to a high-voltage state. Upon the next occurrence of the clock signals PH0, the flip-flop 151 is set. Accordingly, the output Q of the D flip-flop 151 is at a high-voltage state. The output Q of the flip-flop 151 is used to derive the signal SAMSTART which is thus activated to designate the beginning of a look. Also, an inverted version of the signal SAMSTART is produced at the output of inverter 152. The signals SAMSTART and SAMSTART- are provided to the A/D address generator 20 and the memory address generator 28 to bring each to the proper state for the beginning of a look.

The signal SAMSTART is also provided to the clock input of D flip-flop 153 to generate the signals SAMSET0 and SAMSET1. The Q output of the D flip-flop 153 is fed back to the input of the D flip-flop 153 so that the outputs Q and Q of the