这里写描述
NB-IoT是由电信标准延伸而出的,主要是由电信运营商支持,而LoRa则是一个商业运用平台,两者主要区别在于商业运营的模式:NB-IoT基本是由电信运营商来把控运营,所以使用者必须使用它的网关及服务,而LoRa就量对开放一些,有各种不同的组合方式,商业的模式是完全不同的。
技术层面上来看,NB-IoT和LoRa的差异其实并不是很大,属于各有优劣。而相对于某些领域,国内有一些用户在并行使用这两种技术和网络。NB-IoT相对而言是受限于基站的,而LoRa则要加入一个网关相对简单容易,并且总的来说价格要比NB-IOT低廉。用户可以根据需求,增加不同的网关覆盖。所以从覆盖程度上来说LoRa的覆盖程度可能比NB-IoT更广一点。
LPWAN又称LPN,全称为LowPower Wide Area Network或者LowPower Network,指的是一种无线网络。这种无线网络的优势在于低功耗与远距离,通常用于电池供电的传感器节点组网。因为低功耗与低速率的特点,这种网络和其他用于商业,个人数据共享的无线网络(如WiFi,蓝牙等)有着明显的区别。
在广泛应用中,LPWAN可使用集中器组建为私有网络,也可利用网关连到公有网络上去。
LPWAN因为跟LoRaWAN名字类似,再加上最近的LoRaWAN在IoT领域引起的热潮,使得不少人对这两个概念有所混淆。事实上LoRaWAN仅仅是LPWAN的一种,还有几种类似的技术在与LoRaWAN进行竞争。
概括来讲,LPWAN具有如下特点:
• 双向通信,有应答
• 星形拓扑(一般情况下不使用中继器,也不使用Mesh组网,以求简洁)
• 低数据速率
• 低成本
• 非常长的电池使用时间
• 通信距离较远
LPWAN适合的应用:
• IoT,M2M
• 工业自动化
• 低功耗应用
• 电池供电的传感器
• 智慧城市,智慧农业,抄表,街灯控制等等
LoraWAN和Lora之间关系
虽然一样是因为名字类似,很多人会将LoRaWAN与LoRa两个概念混淆。事实上LoRaWAN指的是MAC层的组网协议。而LoRa只是一个物理层的协议。虽然现有的LoRaWAN组网基本上都使用LoRa作为物理层,但是LoRaWAN的协议也列出了在某些频段也可以使用GFSK作为物理层。从网络分层的角度来讲,LoRaWAN可以使用任何物理层的协议,LoRa也可以作为其他组网技术的物理层。事实上有几种与LoRaWAN竞争的技术在物理层也采用了LoRa。
LoraWAN的主要竞争技术
这里写描述
如今市场上存在多个同样使用LoRa作为物理层的LPWAN技术,例如深圳艾森智能(AISenz Inc)的aiCast。aiCast支持单播、多播和组播,比LoRaWAN更加复杂完备。许多LoRaWAN下不可能的应用因此可以实现。
Sigfox使用慢速率的BPSK(300bps),也有一些较有前景的应用案例。
NB-IoT(Narrow Band-IoT)是电信业基于现有移动通信技术的IoT网络。其特点是使用现有的蜂窝通信硬件与频段。不管是电信商还是硬件商,对这项技术热情不减。
关键技术Lora简介
LoRaWAN的核心技术是LoRa。而LoRa是一种Semtech的私有调制技术(2012收购CycleoSAS公司得来)。所以为了便于不熟悉数字通信技术的人们理解,先介绍两个常见的调制技术FSK与OOK。选用这两个调制方式是因为:
1这两个是最简单、最基础、最常见的数字通信调制方式
2在Semtech的SX127x芯片上与LoRa同时被支持,尤其是FSK经常被用来与LoRa比较性能。
OOK
OOK全称为On-Off Keying。核心思想是用有载波表示一个二进制值(一般是1,也可能反向表示0),无载波表示另外一个二进制值(正向是0,反向是1)。
在0与1切换时也会插入一个比较短的空的无载波间隔,可以为多径延迟增加一点冗余以便接收端解调。OOK对于低功耗的无线应用很有优势,因为只用传输大约一半的载波,其余时间可以关掉载波以省功耗。缺点是抗噪音性能较差。
这里写描述
FSK
FSK全称为Frequency Shift Keying。LoRaWAN协议也在某些频段写明除LoRa之外也支持(G)FSK。FSK的核心思想是用两种频率的载波分别表示1与0。只要两种频率相差足够大,接收端用简单的滤波器即可完成解调。
对于发送端,简单的做法就是做两个频率发生器,一个频率在Fmark,另一个频率在Fspace。用基带信号的1与0控制输出即可完成FSK调制。但这样的实现中,两个频率源的相位通常不同步,而导致0与1切换时产生不连续,最终对接收器来讲会产生额外的干扰。实际的FSK系统通常只使用一个频率源,在0与1切换时控制频率源发生偏移。
这里写描述
GFSK是基带信号进入调制前加一个高斯(Gaussian)窗口,使得频率的偏移更加平滑。目的是减少边带(Sideband)频率的功率,以降低对相邻频段的干扰。代价是增加了码间干扰。
对于这一方面的研究实验发现:学习Lora调制技术的一些准备及发现
然而,对于“悠久历史积累”和高安全、易部署等综合优势的LoRa阵营来说,最近几年里,在技术和落地方面虽取得了长足的进步,但离真正的规模、解决行业客户的切实问题是有着不小的差距。那么,究竟是技术壁垒突破较难?产业链生态不健全?亦或者是商业模式限制了从业者对市场规模的想象?对于LoRa产业链的广大从业者而言,找到制约LoRa技术大规模发展的瓶颈,并联手产业合力突围对推动产业良性发展至关重要。
物联网就业前景很好,物联网产业具有产业链长、涉及多个产业群的特点,其应用范围几乎覆盖了各行各业。
物联网专业是教育部允许高校增设新专业后,高校申请最多的学校,这也说明了国家对物联网经济的重视和人才培养的迫切性。物联网的产业规模比互联网产业大20倍以上,而物联网技术领域需要的人才每年也将在百万人的量级。
物联网的基本特征从通信对象和过程来看,物与物、人与物之间的信息交互是物联网的核心。物联网的基本特征可概括为整体感知、可靠传输和智能处理。
整体感知—可以利用射频识别、二维码、智能传感器等感知设备感知获取物体的各类信息。
可靠传输—通过对互联网、无线网络的融合,将物体的信息实时、准确地传送,以便信息交流、分享。
智能处理—使用各种智能技术,对感知和传送到的数据、信息进行分析处理,实现监测与控制的智能化。
单向组网。单向组网是将采集到的数据通过DTU(数据传输终端)单向发送至服务器,称之为单向组网。
这种组网方式在热水炉温度监测、远程抄表中很常见。通常采用GPRS、4G、NB-IOT等网络类型的数据传输设备来完成。本实验采用W25Q64芯片
W25Q64是华邦公司推出的大容量SPI
FLASH产品,其容量为64Mb。该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的 *** 作。
W25Q64的擦写周期多达10W次,可将数据保存达20年之久,支持27~36V的电压,支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可达80Mhz。
一。SPI接口原理
(一)概述
高速,全双工,同步的通信总线。
全双工:可以同时发送和接收,需要2条引脚
同步: 需要时钟引脚
片选引脚:方便一个SPI接口上可以挂多个设备。
总共四根引脚。
(二)SPI内部结构简明图
MISO: 做主机的时候输入,做从机的时候输出
MOSI:做主机的时候输出,做从机的时候输入
主机和从机都有一个移位寄存器,在同一个时钟的控制下主机的最高位移到从机的最高位,同时从机的最高位往前移一位,移到主机的最低位。在一个时钟的控制下主机和从机进行了一个位的交换,那么在8个时钟的控制下就交换了8位,最后的结果就是两个移位寄存器的数据完全交换。
在8个时钟的控制下,主机和从机的两个字节进行了交换,也就是说主机给从机发送一个字节8个位的同时,从机也给主机传回来了8个位,也就是一个字节。
(三)SPI接口框图
上面左边部分就是在时钟控制下怎么传输数据,右边是控制单元,还包括左下的波特率发生器。
(四)SPI工作原理总结
(五)SPI的特征
(六)从选择(NSS)脚管理
两个SPI通信首先有2个数据线,一个时钟线,还有一个片选线,只有把片选拉低,SPI芯片才工作,片选引脚可以是SPI规定的片选引脚,还可以通过软件的方式选择任意一个IO口作为片选引脚,这样做的好处是:比如一个SPI接口上挂多个设备,比如挂了4个设备,第二个用PA2,第三个用PA3,第四个用PA4作为片选,我们
跟第二个设备进行通信的时候,只需要把第二个片选选中,比如拉低,其他设备的片选都拉高,这样就实现了一个SPI接口可以连接个SPI设备,战舰开发板上就是通过这种方法来实现的。
(七)时钟信号的相位和极性
时钟信号的相位和极性是通过CR寄存器的 CPOL 和 CPHA两个位确定的。
CPOL:时钟极性,设置在没有数据传输时时钟的空闲状态电平。CPOL置0,SCK引脚在空闲时为低电平,CPOL置1,SCK引脚在空闲时保持高电平。
CPHA:时钟相位 设置时钟信号在第几个边沿数据被采集
CPHA=1时:在时钟信号的第二个边沿
CPOL=1,CPHA=1,
CPOL=1表示时钟信号在没有数据传输时即空闲时的状态为高电平。如果CPHA=1,那么数据就在时钟信号的第二个边沿即上升沿的时候被采集。
CPOL= 0,CPHA=1, CPOL=0表示时钟信号在没有数据传输时即空闲时的状态为低电平。
如果CPHA=1,那么数据就在时钟信号的第二个边沿即下降沿的时候被采集。
CPHA=0时:在时钟信号的第一个边沿
CPOL=1,CPHA=0,
CPOL=1表示时钟信号在没有数据传输时即空闲时的状态为高电平。如果CPHA=1,那么数据就在时钟信号的第一个边沿即下降沿的时候被采集。
CPOL= 0,CPHA=0, CPOL=0表示时钟信号在没有数据传输时即空闲时的状态为低电平。
如果CPHA=1,那么数据就在时钟信号的第一个边沿即上升沿的时候被采集。
为什么要配置这两个参数
因为SPI外设的从机的时钟相位和极性都是有严格要求的。所以我们要根据选择的外设的时钟相位和极性来配置主机的相位和极性。必须要与从机匹配。
(八)数据帧的格式和状态标志
数据帧格式:根据CR1寄存器的LSBFIRST位的设置,数据可以MSB在前也可以LSB在前。
根据CR1寄存器的DEF位,每个数据帧可以是8位或16位。
(九)SPI中断
(十)SPI引脚配置 (3个SPI)
引脚的工作模式设置
引脚必须要按照这个表格配置。
二。SPI寄存器库函数配置
(一)常用寄存器
(二)SPI相关库函数
STM32的SPI接口可以配置为支持SPI协议或者支持I2S音频协议。默认是SPI模式,可以通过软件切换到I2S方式。
常用的函数:
1 void SPI_Init(SPI_TypeDef SPIx, SPI_InitTypeDef
SPI_InitStruct);//SPI的初始化
2 void SPI_Cmd(SPI_TypeDef SPIx, FunctionalState NewState); //SPI使能
3 void SPI_I2S_ITConfig(SPI_TypeDef SPIx, uint8_t SPI_I2S_IT,
FunctionalState NewState); //开启中断
4 void SPI_I2S_DMACmd(SPI_TypeDef SPIx, uint16_t SPI_I2S_DMAReq,
FunctionalState NewState);//通 过DMA传输数据
5 void SPI_I2S_SendData(SPI_TypeDef SPIx, uint16_t Data); //发送数据
6 uint16_t SPI_I2S_ReceiveData(SPI_TypeDef SPIx); //接收数据
7 void SPI_DataSizeConfig(SPI_TypeDef SPIx, uint16_t SPI_DataSize);
//设置数据是8位还是16位
8 其他几个状态函数
void SPI_Init(SPI_TypeDef SPIx, SPI_InitTypeDef
SPI_InitStruct);//SPI的初始化
结构体成员变量比较多,这里我们挑取几个重要的成员变量讲解一下:
第一个参数 SPI_Direction 是用来设置 SPI 的通信方式,可以选择为半双工,全双工,以及串行发和串行收方式,这里我们选择全双工模式
SPI_Direction_2Lines_FullDuplex。
第二个参数 SPI_Mode 用来设置 SPI 的主从模式,这里我们设置为主机模式 SPI_Mode_Master,当然有需要你也可以选择为从机模式
SPI_Mode_Slave。
第三个参数 SPI_DataSiz 为 8 位还是 16 位帧格式选择项,这里我们是 8 位传输,选择SPI_DataSize_8b。
第四个参数 SPI_CPOL 用来设置时钟极性,我们设置串行同步时钟的空闲状态为高电平所以我们选择 SPI_CPOL_High。
第五个参数 SPI_CPHA
用来设置时钟相位,也就是选择在串行同步时钟的第几个跳变沿(上升或下降)数据被采样,可以为第一个或者第二个条边沿采集,这里我们选择第二个跳变沿,所以选择
SPI_CPHA_2Edge
第六个参数 SPI_NSS 设置 NSS 信号由硬件(NSS 管脚)还是软件控制,这里我们通过软件控
制 NSS 关键,而不是硬件自动控制,所以选择 SPI_NSS_Soft。
第七个参数 SPI_BaudRatePrescaler 很关键,就是设置 SPI 波特率预分频值也就是决定 SPI 的时
钟的参数 , 从不分频道 256 分频 8 个可选值,初始化的时候我们选择 256 分频值
SPI_BaudRatePrescaler_256, 传输速度为 36M/256=140625KHz。
第八个参数 SPI_FirstBit 设置数据传输顺序是 MSB 位在前还是 LSB 位在前, ,这里我们选择
SPI_FirstBit_MSB 高位在前。
第九个参数 SPI_CRCPolynomial 是用来设置 CRC 校验多项式,提高通信可靠性,大于 1 即可。
设置好上面 9 个参数,我们就可以初始化 SPI 外设了。
初始化的范例格式为:
SPI_InitTypeDef SPI_InitStructure;
SPI_InitStructureSPI_Direction = SPI_Direction_2Lines_FullDuplex;
//双线双向全双工
SPI_InitStructureSPI_Mode = SPI_Mode_Master; //主 SPI
SPI_InitStructureSPI_DataSize = SPI_DataSize_8b; // SPI 发送接收 8 位帧结构
SPI_InitStructureSPI_CPOL = SPI_CPOL_High;//串行同步时钟的空闲状态为高电平
371
SPI_InitStructureSPI_CPHA = SPI_CPHA_2Edge;//第二个跳变沿数据被采样
SPI_InitStructureSPI_NSS = SPI_NSS_Soft; //NSS 信号由软件控制
SPI_InitStructureSPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; //预分频
256
SPI_InitStructureSPI_FirstBit = SPI_FirstBit_MSB; //数据传输从 MSB 位开始
SPI_InitStructureSPI_CRCPolynomial = 7; //CRC 值计算的多项式
SPI_Init(SPI2, &SPI_InitStructure); //根据指定的参数初始化外设 SPIx 寄存器
(三)程序配置步骤
三。W25Qxx配置讲解
(一)电路图
片选用的PB12
W25Q64 是华邦公司推出的大容量SPI FLASH 产品,W25Q64 的容量为 64Mb,该系列还有 W25Q80/16/32
等。ALIENTEK 所选择的 W25Q64 容量为 64Mb,也就是 8M 字节。(1M=1024K)
W25Q64 将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为 16个扇区(Sector),每个扇区 4K
个字节。W25Q64 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。这样我们需要给 W25Q64 开辟一个至少 4K 的缓存区,这样对 SRAM
要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的 *** 作。
W25Q64 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 27~36V,W25Q64 支持标准的
SPI,还支持双输出/四输出的 SPI,最大 SPI 时钟可以到 80Mhz(双输出时相当于 160Mhz,四输出时相当于 320M),更多的 W25Q64
的介绍,请参考 W25Q64 的DATASHEET。
在往一个地址写数据之前,要先把这个扇区的数据全部读出来保存在缓存里,然后再把这个扇区擦除,然后在缓存中修改要写的数据,然后再把整个缓存中的数据再重新写入刚才擦除的扇区中。
便于学习和参考再给大家分享些spi 的资料
stm32之SPI通信
>
电力物联网
1、是什么?
国家电网在2019年度工作会议上提出,加快建设具有全球竞争力的世界一流能源互联网企业,重点是建设运营好“两网”。
两网,一是建设运营好以特高压为骨干网架、各级电网协调发展的坚强智能电网;二是要充分应用移动互联、人工智能等现代信息技术和先进通信技术,打造状态全面感知、信息高效处理、应用便捷灵活的泛在电力物联网。
坚强智能电网,主要指能源的供给侧,或者说电力供给侧 ,主要强调以特高压为骨干网架的多级电网的协调发展。经过十余年发展,国网规划的2020年坚强智能电网全面建成目标有望如期实现。
泛在电力物联网,侧重用户侧或者说能源的需求侧, 指利用“大云物移智”(大数据、云计算、物联网、移动互联网、智慧城市)等先进信息通信技术,实现用能、运维成本不断降低,也更好满足用户对多种能源的需求。
3月8日国高层及众领导于北京召开“泛在电力物联网”专项部署工作会议,表示 ”最紧迫、最重要的任务就是加快推进泛在电力物联网建设” 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)