データシートサーチシステム |
|
SI4356-DK データシート(PDF) 9 Page - Silicon Laboratories |
|
SI4356-DK データシート(HTML) 9 Page - Silicon Laboratories |
9 / 16 page Si4356-DK Rev. 1.2 9 6.2.1. Deglitching The Si4356 demodulates the incoming data asynchronously by oversampling the incoming transmission. This allows for faster acquisition as well as tracking of non-standard preamble or synchronization patterns. Since the received data is sampled by a high sampling clock, glitches may be present as the signal level approaches the sensitivity limit. The widths of the glitches are one or two clock cycles of the oversampling clock. A deglitching algorithm can be run on the host microcontroller to remove these glitches. The chosen algorithm is Median Filtering that is typically used to filter spikes. In this algorithm, the elements are sorted and the element in the middle of the window is selected as the output. Since there are only two logical states (0 or 1) it is enough to count the number of 1s in a window. If this number is greater than the half size of the window, the output will be logic 1, otherwise a logic 0. For example: 01011 sorting 00111 the median (element in the middle) is 1, so the output is 1. The number of the 1s is three, which is greater than the half size of the window (2.5), so the output is 1. 00100 sorting 00001 the median is 0, the output is 0. The number of 1s is 1, which is less than 2.5, so the output is 0. The data output of the radio is sampled by Timer3 interrupt service routine. The sampling rate is chosen as an integer multiple (5-10 times) of the expected data rate. The deglitching and retiming is made bit by bit in the same ISR. In the algorithm, a running sum of 1’s is maintained. The algorithm is updated every RX_Clk edge. The bitmask variable is used to set a mask for the MSB bit of the shift register. For example, with windowsize=5, the bitmask is 10000 (binary). Then it is checked if the MSB is 1 or 0. When the data is shifted, the MSB will leave the window. If the MSB was 1, then the number of 1s (which is stored in the count variable) is decreased. if ( wShiftreg & wBitMask ) { bOneSampleCount--; } Here we shift the shift register: wShiftreg <<= 1; If the incoming data is 1, the LSB of the shift register is set to1. Also the count is increased by 1. If the RX_DATA is 0, shift register is unaltered i.e. 0 enters the shift register. if ( MCU_RX_DATA ) { wShiftreg++; bOneSampleCount++; } The algorithm also allows for a selection of window sizes from 1 to 15. If the number of 1s (count) is greater than the half size of the window (bitlimit = windowsize / 2) the output will be 1, otherwise 0. if ( bOneSampleCount > bBitLimit ) { bCurrentDeglitchedSample = 1; } else { bCurrentDeglitchedSample = 0; } |
同様の部品番号 - SI4356-DK |
|
同様の説明 - SI4356-DK |
|
|
リンク URL |
プライバシーポリシー |
ALLDATASHEET.JP |
ALLDATASHEETはお客様のビジネスに役立ちますか? [ DONATE ] |
Alldatasheetは | 広告 | お問い合わせ | プライバシーポリシー | リンク交換 | メーカーリスト All Rights Reserved©Alldatasheet.com |
Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
Family Site : ic2ic.com |
icmetro.com |