To gain practical experience in using the developed processor cores and collecting statistical information, it was decided to build a metal detector. It was based on the simplest core, but with a two-channel FFT block and a X16 instruction set. In an experiment, FFT blocks can be considered as specific equipment that is equipped with a standard core to speed up applied computations. It was decided to use the FFT as the main data processing tool that allows the most accurate tracking of the change in the signal of the receiving coil. It was decided to equip the experimental metal detector with two modes of operation. Wideband scanning using several frequencies simultaneously and narrowband scanning with sequential scanning of frequencies in the range from 12 to 46 KHz. In wideband scanning, the power is distributed among several frequency components. In sequential frequency scan mode, all the transmitting coil power is located at one frequency. Broadband scanning allows for quick assessment of the return signal profile, while sequential scanning allows for a finer determination of the presence of a target under the transceiver coil.
The system is built using the available Arria V board, QM_MAX10_10M08SCU169 board with 10M08SCU169C8G crystal, 7'' TFT display module, four DC / DC converters to generate 3.3, 5, 10 and -10 volts. A digital-to-analog module assembled on a breadboard and a backplane also manufactured on a breadboard.
A high-frequency NEL Snake is used as a search coil, which has a low detection depth, but good sensitivity to small objects.
For the implementation of the CPU, a board with an Arria V 5AGTFC7H3F35I3 chip was chosen due to the fact that only it combined two factors: a sufficient number of IO pins and ease of connection to them. Nevertheless, the number of IO pins is extremely limited, which made it necessary to purchase a small board with a MAX10 family chip and already on it organize an IO hub, which provides the processor access to a TFT display with a resistive touch panel and to the DAC / ADC buffers. Communication between the ArriaV and MAX10 is via a 10-wire full duplex interface. The interface has 4 data lines in each direction and one synchronization line with a frequency of 50 MHz. Thus, the data transfer rate in each direction is 200 Mbps. The IO standard 2.5 and 3.3 LVTTL is used, there is no possibility to choose another standard on the existing boards due to the peculiarities of the circuitry. An attempt to launch the interface at 100 MHz failed, it was decided to stop at 50 and not look for a frequency limit with stable data transmission. The total length of the conductors along the boards and through the air is more than 10 cm. On the MAX10 chip, a TFT display controller and a touch panel chip access controller are made. In addition to performing single transactions, the TFT controller can perform block filling of polygons with a preset color, which at least slightly relieves the central processor from the need to perform a lot of the same type of transactions.
The MAX10 contains three 8192 12-bit words each in RAM buffers. All buffers are available both for reading and writing for the possibility of testing the board-to-board connection. One buffer is the player's buffer from which data is output to the 12-bit DAC. In this way, a scanning signal is formed, which can contain any number of harmonics with any amplitude values. Two buffers receive data from two ADCs simultaneously. The two ADCs operate in parallel and perfectly synchronous. ADC 0 is used to digitize the transmitted signal, and ADC 1 is used to digitize the receive coil signal. ADCs are used two-channel. ADC 0 uses only one channel. ADC 1 uses two channels with different gains. The DAC / ADC controller with an interval of 1.8 μs loads the DAC from the player's buffer and synchronously reads two numbers from ADC0 and ADC1, placing data in the corresponding buffers. The idea of tracking the transmitted signal was to track its possible changes after the power amplifier and take these changes into account when processing the received signal. Subsequently, this turned out to be unnecessary, and only in the wideband scanning mode, the transmitter signal is used to automatically determine the frequencies that are present in the transmitted signal.
There are 4 processes in the system. The Kernel process itself (it is not displayed in the list of processes). Services - a process that is not active, but contains service functions necessary for the operation of application software, such as operations with files located in Flash memory.
DataProcessor is a process that performs mathematical processing of data using an FFT. The FFT is always performed on an array of 8192 values. In the broadband scan mode, all possible harmonics are calculated. In the frequency scan mode, only one harmonic required at a given time is calculated. The FFT block has the ability to calculate only one harmonic, which significantly reduces processing time. The player buffer for the wideband scan mode is loaded from a prepared file, the DataProcessor does not know the exact harmonic numbers. It determines them at the start of the mode by analyzing the spectrum of the transmitted signal and finding the harmonics present in it. In the frequency scan mode, the DataProcessor calculates a new sinusoid each time, while the frequencies are always selected so that they fit an integer number of periods into the player's buffer and correspond exactly to the positions on the FFT frequency scale. The minimum frequency step is 67.82 Hz In this case, up to 512 frequencies are possible in the range from 12 KHz to 46.658 KHz. The minimum number of frequencies is 4 starting from 12 KHz with a step of 8680.5 Hz.
GUI is the process that implements the user interface. It visualizes the received data in the form of a graph and realizes the system control through the TFT display touch panel. The exchange of data and control information between DataProcessor and GUI processes is implemented on the basis of a small block of parameters, 64 bytes in size. The selector for this block of parameters is passed from the GUI to the DataProcessor on initial initialization by sending a message from process to process.
When starting the scanning process, the reference averaged values of the amplitudes of the received signal are first calculated, assuming that there are no metal objects near the coil. The integrator length can vary from 1 to 256. Then, during operation, the current average values of the selected frequencies are subtracted from the reference average values and this result is displayed on the screen in the form of a histogram. During operation, the set of reference averages can be reset to the current average values by pressing the corresponding button in the interface. For example, if the search process began on an area of highly mineralized soil, then the system can be adapted to this soil by resetting the reference averages.
The performance monitor built into the processor showed that at short measuring distances of 20 clocks (200 ns) the result was 1.6 instructions per clock (160 MOPS), and at 10-clock intervals 0 to 2.1 instructions per clock. At long distances of 1300 μs (averaging over 130,000 clocks), the processor executes 0.44 instructions per clock (44 MOPS), and does not take into account the calculations performed in the FFT block.
In the upper left corner, the available frequency profiles for wideband scanning are displayed, up to 4. So far, there is only one. The reset media button allows you to reset the reference averages to the current values. Below are the adjustment of the signal limit value and the adjustment of the integrator length.
Two buttons ADC Ch0 and ADC Ch 1 allow you to select the ADC channel with the appropriate gain. Channel 0 has a gain of about 30. Channel 1 has a gain of about 200.
Under the ADC channel selection are the scan mode selection buttons and the start / stop button.
The 4,8,16-512 vertical selector determines the number of frequencies for the frequency scan.
The horizontal selector x16 - x1 selects the vertical scale of the graph. X16 is 16 display pixels per amplitude difference.
The reaction of the detector to a piece of copper weighing 0.1 gram, a distance of 1 cm. Approximately the same reaction to a 0.5 gram gold plate from a distance of 5 cm.
A profile with frequencies of 13, 15, 25, 27, 29, 31 kHz was used
Scanning was carried out at 16 frequencies with a step of 2170 Hz
MyCORES
© 2019 MyCORES
mail to: sda@mycores.biz