《物联网技术》首先讨论物联网的基本概念、体系结构、软硬件平台系统组成、关键技术以及应用领域;其次介绍节点感知识别技术,包括射频识别工作原理、RFID系统的基本组成及其典型应用、传感器及检测技术等;然后讲述与物联网相关的通信与网络技术、传感网及其关键支撑技术等内容;最后介绍物联网中的数据融合、云计算技术、物联网应用系统的规划设计与典型应用,使课程理论与实践紧密地结合起来。
本实验采用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通信
>
物联网应用技术;是指掌握射频、嵌入式、传感器、无线传输、信息处理、物联网域名等物联网技术,掌握物联网系统的传感层、传输层和应用层关键设计等专门知识和技能,具有从事WSN、RFID系统、局域网、安防监控系统等工程设计、施工、安装、调试、维护等工作。;就业方向;营销、技术施工、软件开发或者硬件开发。要看你在学校主要感兴趣的是什么,如果喜欢专业技术,并且学习的还不错,可以从事技术,技术包括施工、方案设计和产品研发。
01物联网工程所学内容包括:信息与通信工程、电子科学技术、计算机科学与技术、物联网概论、电路分析基础、信号与系统、模拟电子技术、数字电路与逻辑设计、微机原理与接口技术、工程电磁场、通信原理、计算机网络、现代通信网、传感器原理、嵌入式系统设计、无线通信原理、无线传感器网络、近距无线传输技术、二维条码技术、数据采集与处理、物联网安全技术、物联网组网技术等。
物联网工程是继计算机、互联网和移动通信之后的又一次信息产业的革命性发展,目前被正式列为国家重点发展的战略性新兴产业之一。互联网是一个时代,物联网,也是一个时代。物联网技术是当今电子、通信、计算机、IT行业技术的大融合。物联网工程所学内容包括:信息与通信工程、电子科学与技术、计算机科学与技术等等。
物联网工程专业就业方向:
物联网工程专业毕业生能在政府管理部门、科学研究机构、设计院、咨询公司、建筑工程公司、物业及能源管理、建筑节能设备及产品制造生产企业等单位从事建筑节能的研究、设计、
施工、运行、监测与管理工作。
培养要求:
本专业学生要具有较好的数学和物理基础,掌握物联网的相关理论和应用设计方法,具有较强的计算机技术和电子信息技术的能力,掌握文献检索、资料查询的基本方法,能顺利地阅读本专业的外文资料,具有听、说、读、写的能力。
知识技能:
掌握和计算机科学与技术相关的基本理论知识、掌握物联网工程的分析和设计的基本方法、了解文献检索、资料查询的基本方法,具有一定的科学研究和实际工作能力。
随着物联网技术的高速发展,人们的生活进入了智能化的阶段。本文分享了一种基于物联网技术的远程控制方法,欢迎大家共同探讨。
1、 远程控制原理一,原理框图如下所示:
此种方法,不需要数据库,因此只能实现较少接入设备,实时的查询和控制,如果设备长时间不在线就可能控制失败,(当然如果服务软件一直不清除命令的数据记录,也能够保存一段时间,直至服务器断电或者服务软件关闭,但是一般为了设备的稳定运行,服务软件不会一直保存控制命令,会定时清除并释放相应内存。)
2、 远程控制原理二,原理框图如下所示:
此种方法,手机控制端直接和服务器上面的数据库进行通讯,服务软件定时去在数据库里面查询有无相应设备的数据,并发送给设备进行通讯和控制。这种模式是大多数商用模式的原型,可以同时接入更多的设备,因为设备的信息都在数据库里面,服务软件可以分时进行处理,甚至的软件异常关闭、重启也不影响用户数据。
我们公司就是可以开发的,如果你们公司内部没有这样的技术,团队,可以考虑找软件公司开发,这样也省去了你们学习和犯错的时间,给有技术的软件公司开发相对来说,比你们自己开发的优势还是有很多的。
随着社会的逐渐信息化,以及学习工作的繁多、杂乱,使得越来越多人接触到MindManager系列思维导图,MindManager(win10)作为一个思维导图软件,给人们带来的不只是便利。在我们学习复杂的知识时,它是快捷的梳理工具;下面回答就来讲一讲流程图怎么制作,快来一起看一看吧!
图一:MindManager软件新建页面
首先我们下载并打开MindManager ,点击文件按钮进入新建页面。在新建页面我们看可以看到MindManager自带的模板,其中就包括我们今天要讲的流程图模板,但是制作流程图不仅仅只有这一种方法,随后我们会讲到其他方法。模板主页里自带的模板是最基础的模板。
图二:MindManager 自动化流程图
点击流程图模板就进入到编辑流程图的页面,用鼠标随便点击编辑页面,你可以看到在任何方向上都可以延伸出一个主题框,按照你所需要的流程图的样子进行编辑。今天就讲一下上图的流程图怎么制作。软件流程图绘制默认是使用的直角关系,你可以点击线段右击修改线段关系形状。
图三:MindManager 物联网流程图
比如今天绘制关于自动化、物联网、设计之间的流程图,你就可以点击每一个小主题框并在里面填写你需要的主题。每一个主题框四周也可以添加很多副主题,比如自动化周围添加了六个关联主题,添加主题主要通过点击主题框周围的小加号。如上图物联网和自动化有联系,就可以将自动化延伸出来的线条搭建在物联网主题框上。
图四:MindManager 工业设计流程图
依照上述步骤创建小主题,并且利用不同的线段将他们联系起来。初步完成图就如图四所示,可以通过改变主题框内的字体大小来改变主题框的大小,便于我们看出整个流程图中的重点,点击主题框并且右击你可以看到很多的 *** 作,比如为了使每个主题的着重点不一样,你可以改变主题框的填充颜色,还可以改变主题框的形状,如上图将主题框设置为圆形,让流程图更加清晰。
图五:MindManager 总体流程图
在MindManager制作好的整个流程图就如图五所示,如果觉得一个一个修改线段的关系有点麻烦,那你也可以选中整个流程图,点击格式化关系就可以整体修改线段的关系,简单方便易 *** 作。
MindManager在制作逻辑关系,连接关系是很占优势。利用MindManager处理问题方便快捷,思路清晰,简单明了。你快快用起来吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)