在我们的家庭、办公室和工厂中,几乎没有一种嵌入式设备,它没有某种形式的无线通讯。在我们开车的时候,我们身边到处都是各种各样的设备,比如锻炼自行车,或者监督制造过程。不久以前,情况正好相反。我们家里的恒温器,我们汽车的音乐播放器,我们办公室的自动扶梯是孤立的应用;只是做他们需要做的工作。毫无疑问,物联网(物联网)和it的工业形式——IIoT,都是网络连接激增的原因;但这种无处不在的无线环境的基础是基于智能手机及其应用的出现。
从工程的角度来看,将射频连接的任何方面融入到产品中,已经远远超过了必须进行离散的无线设计。虽然对于非常高的体积设计,对离散无线的投资反映在一个较低的材料成本清单上,但可能是设计它并承担必要的无线电监管批准的时间比选择基于模块的方法的成本差异更大。当一个新产品的市场规范被制定出来时,通常情况下,它可以被用于世界上任何一个国家或地区。认为产品只会用于销售的地理位置的日子已经一去不复返了。一个预先认证的无线模块满足所有必要的无线电批准标准极大地简化了设计区域产品变体的设计要求。
帮助工程师加速将无线通讯融入设计的工作,现在是一项更直接的任务。诸如数字键的物联网产品选择器这样的资源会分解选择合适的组件和模块以用于开发的过程。在选择无线模块时,第一个标准是要使用的通信标准和协议。最流行的方法是wi - fi和蓝牙,后者是短范围、低功率通信的默认方法。具体来说,蓝牙低能量(BLE)配置文件似乎是为电池驱动的物联网设备制造的。它还被称为蓝牙4.0 / 4.2或蓝牙智能,它提供了300英尺的范围和高达270 kbs的数据吞吐量。除了在各种IoT设备(如传感器和执行器)中使用外,在医疗保健、健身、家庭娱乐和信标应用程序中也可以找到BLE。作为一种营销手段,为了推销客户的智能手机,销售渴望的零售组织将其作为营销和室内导航的目标。根据市场研究公司Research and Markets的数据,在2016年至2020年期间,零售信标的使用量预计将增长222%。除零售外,信标正被用来对乘客的航班状况和机场内潜在的延误情况进行更新。
面对为他们的设计选择一个BLE模块,当不是所有的模块都提供相同的功能时,工程师应该寻找什么特性?有些模块具有无线收发调制解调器,但依赖于主机应用程序来运行必要的软件栈。其他的,越来越常见的方法是“无主机”,由无线SoC设备组成,它集成了无线收发器和微控制器。这样的无线SoC设备有足够的计算资源,不仅可以运行协议栈,还可以运行最终的应用程序,尽管对复杂的设计有明显的限制。在评估潜在产品时,会有明显的,但仍然重要的,物理尺寸,功耗和外围能力的数据表规范。
然而,最可能帮助加速模块集成到最终设计的因素并不总是从数据表中得到体现。一个原型平台的可用性,如评估套件或参考设计是一个很好的起点。此外,还需要考虑软件工具和堆栈。供应商提供这些吗?他们需要授权吗?额外的电路是否需要如外部时钟或天线匹配元件?另外,开发平台是否附带了代码示例?您能否设置一个非常简单的测试来快速建立对使用模块的信心?写“Hello world”或“眨眼”的日子可能已经过时了,但它们在模块和开发环境中产生了很大的信心,并建立了一个值得信赖的位置,从这个位置开始下一步。
一个BLE模块的例子是来自模块制造商Rigado的bmd - 3xx系列。
图1:Rigado bmd -300 BLE模块。
基于nrf528322.4 GHz无线SoC的北欧半导体,该模块提供了一个完整的射频解决方案,该解决方案在全球所有地区获得认证。无需额外的RF设计,因为该模块可用内部天线或U。FL连接器。这两个版本都是14 x 9.8 x 1.9毫米。一种超紧凑的变形,bmd - 350,仅测量8.7 x 6.4 x 1.5毫米也可用于极端空间受限的设计。
图2:bmd - 3xx系列模块的框图。
图2突出显示了bmd - 3xx系列的功能框图。SoC有一个ARM cortex - m4f 32位内核,有FPU,512kb的嵌入式闪存和64kb RAM。外围接口包括3个SPI主/奴隶、2个2线I2C、I2S音频、UART和32个GPIO。一个128位的AES硬件加密函数,随机数发生器,32位和24位定时器和一个12位的ADC是一些其他特征。完成这个综合模块的功能是一个集成dc - dc转换器,一个温度传感器,一个低功率比较器和一个正交解调器。预加载的BMDware固件提供了iBeacon和UART bridge功能,无需以任何方式编程模块。或者,可以使用一些北欧半导体SoftDevice协议栈来创建集成的BLE应用程序。通过一个使用该模块的aec - 128功能的安全引导装载器,提供加密过的无线(OTA)固件更新。通过一个串行线调试(SWD)接口和串行线输出(SWO),标准ARM调试功能允许非侵入式的调试程序代码、设置断点和单步执行代码。此外,该模块还支持ETM和ITM跟踪数据,这些数据被发送给附加到一个4位跟踪端口的调试器。
一个集成的32 MHz晶体为无线操作提供高频率时钟。一个低频的时钟源也是必需的,这可以由一个内部RC振荡器提供,从高频时钟或外部提供。选择一个外部水晶有助于保持电力预算尽可能低,除了保持准确性。
图3所示的bmd - 300系列评估组件,bmd -300- eval,提供了一个全面的原型和开发平台,可以从其中开始设计。这是一个完整突破的模块别针,一个32.768 kHz晶体的低频时钟和几个按钮和发光二极管。在板上编程和调试中使用Segger j - link - ob允许通过USB接口访问SWD / SWO。利用Atmel单片机实现对测试环境和模块本身的接口。与北欧半导体自身的nRF52评估板共享许多共同之处,意味着大多数代码示例和设置过程也在bmd - 300平台上运行。
图3:bmd - 300系列评估试剂盒。
设置和编程是一个简单的过程,并在模块的评估工具包用户指南中详细说明。这个过程的第一步包括下载和安装最新的Keil mdk - arm开发包,北欧半导体的nrfgo - studio,目前最流行的Segger j - link实用工具,以及北欧最新的nRF5 SDK。除了所有必要的库、驱动程序和软件栈之外,SDK还提供了一组完整的代码示例。
一旦所有以上的项目都已经安装好了,就可以通过Segger j - link接口将评估套件连接到计算机上了。nRFgo Studio与j - link接口一起提供对模块功能的完全访问。使用这种方法也可以使用SoftDevice协议文件对模块进行编程。
图4:北欧半导体nRFgo Studio SoftDevice窗口。
S132软设备是一个BLE central和外围协议栈,支持多达8个连接的额外观察者和一个广播员角色都同时运行。图4说明了在nRFgo Studio工具中设置这个工具。该栈还集成了一个BLE控制器和主机,并配备了一组灵活的api来集成到您自己的应用程序中。可以在北欧半导体站点上找到一个完整的SoftDevice文件清单。
评估板还有一套与Arduino屏蔽格式兼容的连接器,通过许多标准的Arduino屏蔽模块访问模块GPIO。
图5:北欧nRF SDK的文档化代码示例。
正如上面所提到的,北欧SDK提供了许多使用api与SoftDevice协议交互的示例应用程序。图5显示了一个示例,显示了' ble_app_blinky_c ' main。c文件。这段代码有很好的文档记录,这让开发人员第一次很容易地了解程序内部发生了什么。
如果您希望在评估板周围创建您自己的开发和测试环境,这个过程相对简单,因为Rigado提供了所有必要的布局、PCB、在他们的网站上的钻孔和示意图。一个完整的材料文件清单也包括,给制造商和数字关键零件号码。
结论
为您的下一个设计选择一个无线模块的整体方法,不仅要查看模块本身,还要查看评估工具、软件堆栈和代码示例的可用性,确保您的设计将在尽可能短的时间内进行通信。