項目要用nRF24L01P做語音的傳輸,數據量可想而知。
發送端按照8KHz/s采樣率,每次采樣雙聲道,16位深度(2Bytes)。
數據量算一下就是8000x2x2=32000(Bytes)
nRF24L01一包數據量最大32字節那么1s需要傳輸1000包。平均1ms一包。
這個速度肯定是能達到,我關心的是最大能傳輸多大的數據量,才能決定能不能用更高的采樣率。
查找nRF24L01數據手冊

TOA根據每包的數據長度而不同,最大是32字節。如下表

TOA=數據包長度/空中傳輸速率=(8*(1+3(地址長度最短3字節)+32(數據)+2(校驗位))+9)/2000000=152.5us
TUL=數據長度/SPI速度 (最大9MHz/s) = 32/9000000 ≈ 3.6us
那么一包的時間呢
TESB=TUL+2.Tstdby2a+TOA+TIRQ=3.55+2*130+152.5+6 =422.1us
那么每秒傳輸1/0.0004221≈2369包,數據量達到2369*32=75808(Bytes)
這應該就是最快速度了,當然達到最快速度可能還是有難度的。
11.025KHz/s采樣率11025x2x2 = 44100(Bytes) 16KHz/s采樣率16000x2x2 = 64000(Bytes)
22.050KHz采樣率22050x2x2 = 88200(Bytes) 32KHz采樣率32000x2x2 = 128000(Bytes)
這樣很明顯就能看到,達不到22.050KHz采樣率的傳輸要求,但是達到了16KHz的要求了。
怎么樣才能達到最大速度呢???
nRF24L01有三個緩沖區怎么使用呢?
