專案X:
有一個玩具產品想加bluetooth 做更好的應用. 這樣的產品是常見及一般性的.
這裡我將它分成玩具產品(A) 及 bluetooth(B)
它的規格大約地就是類似spi方式(bit bang)做處理, 先由A的某根pin腳發出clk 及 data,再由B 去接收並發送給手機端.
keywrod :
系統設計, 整合, 有線/無線
在上一篇中,我去分析了對於第一個介面的分析, 我們得出下列結論,
O. sample rate 8KHz(0.125 ms)
A. 其有線部分, 其thoughput 為0.5 KBytes/Sec (1bit @ 0.25ms==>4Kbits/Sec ==>0.5KBytes/Sec)
B. 示規格要求,去增加gpiote pin ( x N)
C. 最終,仍要看無線部份的能力決定.
我在再分為ADV MODE 及CONN MODE ,而CONN_MODE再下一篇會提到
2. 無線系統(以BTLE 為介面)
這裡不像是有線部分,可以去增加i/o來做為輸加thoughput 能力. 需依照所使用的無線系統及應用層上做出評估.
(也來是為何在我們的另外一個案子(語音) 是外加另一個chip做encode 的功能, )
說實在的,在這之前 我從未認真想過關於這一部份的事. 原由是因為不了解它的重要性 及 必要性 .
而對於無線通訊系統(BTLE)上, 只關注在於 它的協定及理論上 . 沒有將它和系統做結合.
接下來, 我借由BTLE Sniffer 及相關硬體來做驗証測試動作. 分為Adv Mode and Connect Mode.
並且在每次的radio Action / nAction 去togger io 來判斷其動作 . 這裡我先不去深討其關於這顆nRF chip的radio spec.內容.
我們先只驗証它的現象出來再來設計/計算內容.
2A. BTLE Adv time Mode
![image_thumb[8] image_thumb[8]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOCFNo681swP1bfIpMYW3sqAsBWGlA1oT-mqMIUSJ8U6XNM1nuIc0tdUetN3rMK4RiIlyJLmaVM-_fp5K1qgN1ii2p7EXHtwIbAABYylAzmK6YiImPltRgzliwbuI-1FsLe0nWDZ5OctrC/?imgmax=800)
從上面的可以看得出當 radio notification 時,它的gpiote 會失效的(空白處)
而且它出現的時間點也相當地頻繁(52 ms) ~ 20 Hz.
我去更詳細地去查看它的內容,如下
![image_thumb[11] image_thumb[11]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnxDvlLWO34xr5TBAlxtxDfSLc6XRFgBGRL_dlBPX6XmSyBMvPc15w56623RBniGlIErxJoVIKECicolMih_TCmaaq110f9m_u09AmiDIzxBHxvlsLrU2wt3BaSayPSo_RBv7Pq5jNeesS/?imgmax=800)
這邊,我們看出有三~四個 斷點出現及 整個radio action時段有3.7ms 長度會使用其gpiote受到影響.
得到下列的內容 及疑間:
1. 其出現的頻率20Hz, 是否可設定 ?
2. 共估有3.7 ms的時間, 是否有其它的長度 ?
3. 有三/四個斷點出現. 每個斷點之間的關係為何?
那麼要去理清這些疑間, 我們得由另一面向來看它了.即BTLE Sniffer內容
配合一般關於BTLE的ADV 內容如下一起來看比較清楚它的內容
![image_thumb[17] image_thumb[17]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ4cL1FOx4fVJpxvEqeOxxiK0Lu3GaFLuNBxJornTe10gCj3an-e276Mn-sxf3c8xqKC31tmtMnO3I55b6J21KX-L6gT-NgDIaJcVH2Jsj33VTprCec0og-s6zm0OlyRdcgLk_FHVFBhQ8/?imgmax=800)
Q:
“
1. 其出現的頻率20Hz, 是否可設定 ?
2. 共估有3.7 ms的時間, 是否有其它的長度 ?
3. 有三/四個斷點出現. 每個斷點之間的關係為何?
“
A:
這些資訊,可以回答我們什麼了..?對於問題3及2 都足夠得到答案了.
Q3 . 其斷點間,與BTLE之間並無任何關係. 這留在之後附錄去討論soc radio spec.
其每一個封包(無論是是ADV_IND ,SCN_REQ 及SCN_RSP)其應有相同的波形得知.
Q2. 3.7ms的時間外, 是否有其它的長度? 這也將決定出其在ADV MODE下的thoughput
(決定出有線的thoughput(bits/sec)) , 由下列各封包長度來看即可得到了.
它是有不同長度的封包, 而wrose case 是ADV_IND . 它根據量測到的有 3.7mS .
A1.是否可改變它的Adv freqence ?
這裡我看到的是,它並不是跟著ADV interval timing來動作的. 一般下會每隔adv interval timing來發出adv_inv
但除了adv type 有多種多, 還有是若你lightblue沒去也enable它,會使得它一直發出adv_ind
我得到了初步的結論, 關於有線及無線方面上對於專案X的影有那些.
"
若要求在ADV_IND中,也要去sample gpio 的反應時,以同樣的要求8KHz
在發出ADV_IND時,將會使得lost sample導致,產品錯誤輸出(致少lost 30 sample )
為了不使之lost 下,wrose case 要變成 270 Hz . (1bit) ,而且這個是無法去借由增加gpiote pin來改善的
"
所以,在ADV_IND下是不應該做相關的動作的. 或者由硬体方面去處理串串FIFO的處理才可能滿足要求.