相比TI的CC254X、DIALOG的DA1458X,nordic推出的nrf51822和nrf52832在架构和开发商都有自己独特的地方。这几颗产品都是蓝牙低功耗芯片。DA1458X使用OTP硬件架构,功耗低,成本也低,但软件开发难度是个门槛,大团队才能做到量产,当然掌握了也是竞争力。如果对三种架构都很熟悉,然后从开发的角度做个比较,相信对nrf52832的架构和开发会更新青睐。
1. nrf52832有64K的ram和512K的flash,开发人员应该很喜欢吧。
2. nrf52832是cortex M4,官方SDK使用KEIL 5 on ARM,也很熟悉。当然功耗也低,SDK也有低功耗的软件架构,容易掌握。
3. nordic SDK分成softdevice、bootloader和application三个部分。Softdevice以bin提供,主要是操作系统和BLE协议和RF操作相关的程序,这部分不对外公开,熟悉接口即可。TI的SDK对外公开操作系统OSAL,开发人员更能全局掌控,DA1458X隐藏固化了操作系统和BLE协议,但是却公开了一些RF硬件寄存器的操作细节,而这个寄存器的SPEC都找不到,对于开发人员来说,看到自己搞不透也不需要关心的细节并不好。
不过nordic 的softdevice有几个版本,目前最新3.0,每个版本支持不同的SDK,目前最新13.0。版本多了,然后分别发布会让新手迷惑。
4. 由于memory足够大,所以nordicSDK在DATA RAM和CODE上对softdevice、bootloader和application三者的memory layout安排也很清晰。
5. DFU设备固件升级、OTA固件空中升级是BLE架构必备的模块。TI和DIALOG都是在应用层集成DFU进行固件空中升级,在bootloader负责版本校验和加载,因此应用和bootloader是共同负责DFU,需要协调配合。但nordic只让bootloader负责DFU空中升级,并做好校验和加载,工具链也简单。应用只需要负责一件事,就是接收到DFU命令就reset到bootloader即可,其不需要关心DFU的过程。当然,这是要损失一部分代码空间的,从成本角度不划算,但是nordic提供的flash也足够大了。
6. 增加一个应用和profile的架构比较简单,跟ti CC254X差不多,dialog要难一些。
7. 友好支持集成模块,如GPIO、I2C,uart,flash等,接口容易掌握,但是实现细节要弄懂也没那么容易,哈哈。
8. SDK的应用分层做得比较好,硬件模块有对应的硬件驱动driver,SDK还会进行在驱动基础上进行再次封装,以库library的形式供应用使用,降低开发难度。如nrf_drv_gpiote是驱动,上层还会分别封装提供app_button按键接口、电平中断接口app_gpiote等。
9. SDK提供的GPIOTE模块是一个按键消息接口,比较有特色。其利用button集成消息模块,支持将消息安装到对应的某个按键上,也就是在广播状态时按这个键发出的消息和连接时发出的消息是不一样的,这样易于应用处理,架构也比较清晰。但是要花时间才能理解这个模块。
10. SDK的例程非常丰富。
11.SDK的开发文档支持也非常详尽,入门到深入都相对容易。http://infocenter.nordicsemi.com/。入门可以去看中文开发文档,深入就要多看看英文说明。