- Power On DCA1000 and ARW1642
- open mmWave Studio and setup normally until tab SensorConfig or use lua script
- Make sure to connect mmWaveStudio to the board via enternet
- Start streaming data
- Read in frame using class
Examples: dca = DCA1000() adc_data = dca.read(timeout=.1) frame = dca.organize(adc_data, 128, 4 256)source code 中,DCA1000() class initialize function,就是設定好 socket, ip , port,和class variable。
read( ) function,把一個 frame 的空間準備好 (fill with zero)
frame size (int bytes) =
ADC_PARAMS['chirps'] * ADC_PARAMS['rx'] * ADC_PARAMS['tx'] * ADC_PARAMS['IQ'] * ADC_PARAMS['samples'] * ADC_PARAMS['bytes']上面的dict 宣告在前面:
ADC_PARAMS = {'chirps' : 128, 'rx' : 4, 'tx' : 3, 'samples': 128, 'IQ' : 2 'bytes' : 2}IQ 大概是 I and Q (complex) 兩個都要,所以是 2
bytes 大概是每個數值的大小。
其實source code 中還有一個 config( ) function,是送出 UDP command 給 DCA1000,對應 DCA1000EVM_CLI_Control.exe 的命令,大概是
fpga
start_record
要下這兩個 command,DCA1000EVM 才會開始把 LVDS 資料由UDP 送出。
所以可能要加一下。
上面是讀取 frame ADC data 的大略流程。
Processing 的流程,在 Presense Applied Radar 目錄下…有一些 jupyter source ..
但是data source 都是由檔案讀取,
依照data size,方別有 txt 跟 numpy 的 np兩種格式。
所以猜測,上面用 DCA1000().read 讀入資料後,依照 numpy 的格式寫成檔案。
再用這邊的 jupyter sourece 讀取
上面的 chirps, rx, tx, samples 資料,都是送給 AWR1642BOOST 的config.
整個送給 AWR1642BOOST 的 command 可以參考dca1000 command line tool
其中有關的 command 是..
profileCfg
profileID startFreq idleTime adcStartTime rampEndTime txOutPower txPhaseShift freqSlopeConst txStartTime numAdcSamples digOutSampleRate hpfCornerFreq1 hpfCornerFreq2 rxGainsamples 其中的 numAdcSamples : number of ADC samples collected during "ADC Sample Time". Example: 256
channelcfg
rxChannelEn txChannelEn cascading numADCBits adcOutputFmtrx 其中的rxChannelEn :Receive antenna mask. e.g for 4 antenna, it's 0x1111b = 15
frameCfg
chirpStartIndex ChirpEndIndex NumberOfLoops numberOfFrames FramePeriodicityInMS TriggerSelect FrameTriggerDelaychirps NumberOfLoops : 一個 frame 要重複這個設定幾次
這個決定一個 frame 有幾個 chirp,實際上和 ChirpStartIndex, ChirpEndIndex 有關,每一個 'Loop' 會從 StartIndex 的 chirp config 開始打,打到 EndIndex 的 chirp config.
所以,如果 startIndex = 0,endIndex = 1,每個 loop 就會打兩個 chirp。
如果 loop = 64 的話,每個 frame 就會有 2x 64 = 128 chirps
沒有留言:
張貼留言