Nordic藍牙芯片nrf52832的架構(gòu)和開發(fā)
相比TI的CC254X、DIALOG的DA1458X,nordic推出的nrf51822和nrf52832在架構(gòu)和開發(fā)商都有自己獨特的地方。這幾顆產(chǎn)品都是藍牙低功耗芯片。DA1458X使用OTP硬件架構(gòu),功耗低,成本也低,但軟件開發(fā)難度是個門檻,大團隊才能做到量產(chǎn),當(dāng)然掌握了也是競爭力(想學(xué)習(xí)開發(fā)就參考博主之前的分享吧)。如果對三種架構(gòu)都很熟悉,然后從開發(fā)的角度做個比較,相信對nrf52832的架構(gòu)和開發(fā)會更新青睞。
1. nrf52832有64K的ram和512K的flash,開發(fā)人員應(yīng)該很喜歡吧。
2. nrf52832是cortex M4,官方SDK使用KEIL 5 on ARM,也很熟悉。當(dāng)然功耗也低,SDK也有低功耗的軟件架構(gòu),容易掌握。
3. nordic SDK分成softdevice、bootloader和application三個部分。Softdevice以bin提供,主要是操作系統(tǒng)和BLE協(xié)議和RF操作相關(guān)的程序,這部分不對外公開,熟悉接口即可。TI的SDK對外公開操作系統(tǒng)OSAL,開發(fā)人員更能全局掌控,DA1458X隱藏固化了操作系統(tǒng)和BLE協(xié)議,但是卻公開了一些RF硬件寄存器的操作細節(jié),而這個寄存器的SPEC都找不到,對于開發(fā)人員來說,看到自己搞不透也不需要關(guān)心的細節(jié)并不好。
不過nordic 的softdevice有幾個版本,目前最新3.0,每個版本支持不同的SDK,目前最新13.0。版本多了,然后分別發(fā)布會讓新手迷惑。
4. 由于memory足夠大,所以nordicSDK在DATA RAM和CODE上對softdevice、bootloader和application三者的memory layout安排也很清晰。
5. DFU設(shè)備固件升級、OTA固件空中升級是BLE架構(gòu)必備的模塊。TI和DIALOG都是在應(yīng)用層集成DFU進行固件空中升級,在bootloader負責(zé)版本校驗和加載,因此應(yīng)用和bootloader是共同負責(zé)DFU,需要協(xié)調(diào)配合。但nordic只讓bootloader負責(zé)DFU空中升級,并做好校驗和加載,工具鏈也簡單。應(yīng)用只需要負責(zé)一件事,就是接收到DFU命令就reset到bootloader即可,其不需要關(guān)心DFU的過程。這也是本人喜歡nordic架構(gòu)的原因,當(dāng)然,這是要損失一部分代碼空間的,從成本角度不劃算,但是nordic提供的flash也足夠大了。
6. 增加一個應(yīng)用和profile的架構(gòu)比較簡單,跟ti CC254X差不多,dialog要難一些。
7. 友好支持集成模塊,如GPIO、I2C,uart,flash等,接口容易掌握,但是實現(xiàn)細節(jié)要弄懂也沒那么容易,哈哈。
8. SDK的應(yīng)用分層做得比較好,硬件模塊有對應(yīng)的硬件驅(qū)動driver,SDK還會進行在驅(qū)動基礎(chǔ)上進行再次封裝,以庫library的形式供應(yīng)用使用,降低開發(fā)難度。如nrf_drv_gpiote是驅(qū)動,上層還會分別封裝提供app_button按鍵接口、電平中斷接口app_gpiote等。
9. SDK提供的GPIOTE模塊是一個按鍵消息接口,比較有特色。其利用button集成消息模塊,支持將消息安裝到對應(yīng)的某個按鍵上,也就是在廣播狀態(tài)時按這個鍵發(fā)出的消息和連接時發(fā)出的消息是不一樣的,這樣易于應(yīng)用處理,架構(gòu)也比較清晰。但是要花時間才能理解這個模塊。
10. SDK的例程非常豐富。
11.SDK的開發(fā)文檔支持也非常詳盡,入門到深入都相對容易。http://infocenter.nordicsemi.com/。入門可以去看中文開發(fā)文檔,深入就要多看看英文說明。
編輯:admin 最后修改時間:2019-09-03