嵌入式物联网之SPI接口原理与配置

嵌入式物联网之SPI接口原理与配置,第1张

本实验采用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、传感器技术,这也是计算机应用中的关键技术。大家都知道,到为止绝大部分计算机处理的都是数字信号。自从有计算机以来就需要传感器把模拟信号转换成数字信号计算机才能处理。

2、RFID标签也是一种传感器技术,RFID技术是融合了无线射频技术和嵌入式技术为一体的综合技术,RFID在自动识别、物品物流管理有着广阔的应用前景。

3、嵌入式系统技术是综合了计算机软硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。经过几十年的演变,以嵌入式系统为特征的智能终端产品随处可见;小到人们身边的MP3,大到航天航空的卫星系统。嵌入式系统正在改变着人们的生活,推动着工业生产以及国防工业的发展。如果把物联网用人体做一个简单比喻,传感器相当于人的眼睛、鼻子、皮肤等感官,网络就是神经系统用来传递信息,嵌入式系统则是人的大脑,在接收到信息后要进行分类处理。这个例子很形象的描述了传感器、嵌入式系统在物联网中的位置与作用。

物联网是新一代信息技术的重要组成部分,也是"信息化"时代的重要发展阶段。其英文名称是:"Internet of things(IoT)"。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新20是物联网发展的灵魂。

中央领导同志多次提出,要着力突破传感网、物联网的关键技术。什么是物联网?物联网具有哪些基本特征?物联网产业发展对转变经济发展方式具有什么样的意义?当前物联网产业发展在世界范围内展现出哪些新趋势?
进入21世纪以来,一些发达国家为了推动信息社会发展,提出建设“无所不在的网络社会”,并将其作为国家或地区信息化发展的重要组成部分,纷纷出台相关的战略和政策。2010年,我国发布的《国务院关于加快培育和发展战略性新兴产业的决定》,也把新一代信息技术作为战略性新兴产业的重点领域,提出加快建设宽带、泛在、融合、安全的信息网络基础设施,推动新一代移动通信、下一代互联网核心设备和智能终端的研发与产业化,加快推进“三网融合”、促进物联网和云计算的研究和应用示范。
一、物联网是传感网、互联网、自动化技术和计算技术的集成及其广泛与深度应用。
物联网是互联网的延伸与拓展,是新理念引导下新一代信息技术的应用集成创新。物联网以互联网为基础设施,是传感网、互联网、自动化技术和计算技术的集成,及其广泛和深度应用。其功能是,各类实物信息被不同的传感器感知、采集、形成数字信号,通过各类网络快速传输到信息处理层,加工处理的信息形成信号或知识,一方面为管理服务提供信息依据,另一方面可以通过传输层反馈至传感设备,实现对实物的 *** 作。物联网既是网络技术的发展,又是自动控制技术在巨型复杂系统中的应用。物联网的应用是工业化与信息化的深度融合。过去,信息技术与制造业“两层皮”,信息基础设施与实物基础设施“两层皮”,信息基础设施建设、通信、互联网、数字内容等领域独立发展。物联网集合了许多现代信息技术,实现信息基础设施与实物基础设施相结合,把信息化融入产业发展、人民生活和社会管理的各个方面,推动信息技术、互联网技术、自动化技术在更多领域深度应用,促进更多行业、更大范围的信息化与工业化的融合。如智能交通是在车辆大幅度增加后,传统的交通管理模式不能满足交通安全需要的情况下发展起来的;城市智能化管理是在城市功能不断丰富和互联网普及的情况下,为了提高管理效率而发展起来的。物联网产业是传统产业与新兴产业的有机结合。物联网技术的应用与推广,将改造提升一批传统产业,带动一批新兴产业发展,扩大一批传统产业的市场规模。目前,物联网大都在传统产业应用,如交通、物流、电网、石油天然气、食品等行业,极大提升了这些传统产业的效率,改进了发展方式。同时,物联网的应用带动了相关制造业和服务业的发展,包括芯片、传感器、集成模块及设备、中间件制造业,以及应用系统设计与集成、软件开发、试验检测、工程实施、云计算等高技术服务业的发展,扩大了其市场规模。
二、物联网功能多、应用面宽,产业链中服务业比例高,产业发展潜力巨大。
从物联网本身的特点和规律看,物联网产业发展潜力巨大,大有作为。一方面,物联网功能多、应用面宽,以市场需求为发展动力。物联网技术的应用是运营、管理和商业模式创新引导的集成创新。发展物联网的动力是满足市场需求,节约能源、降低成本、改善管理、提高效率和便捷生活。物联网不仅应用于诸多影响国计民生的重要行业,而且在日常生活等领域拥有巨大潜在市场。一是以政府公共服务为主的公共管理和服务市场。如电子政务、城市管理、医疗、教育等领域。二是企业为主的行业应用市场。如电信、电力、物流、石油天然气等行业。三是以个人和家庭为主的消费市场。如购物、家用电器、休闲娱乐等消费领域。随着技术的不断发展,物联网服务的领域正在扩展。另一方面,物联网产业链长,是制造业与服务业的有机融合,对加快发展现代服务业具有重要意义。纵向看,物联网的产业链可以分为上、中、下游。上游是网络设施、终端设备、传感器、芯片、集成模块、中间件制造等相关制造业;中游是互联网及其运营服务;下游是物联网的用户和服务商,包括应用系统设计和集成、软件开发、试验检测、工程实施、云计算和系统运维等高技术服务业。物联网涉及众多应用领域,是一个跨多学科多部门的细分市场。每个物联网应用领域又构成各自的产业链。物联网产业链中服务业比例较高。物联网产业的中、下游大都是信息技术服务业。发展物联网不仅将带动相关制造业发展,而且将极大促进高技术服务业的发展,形成服务业新业态。同时,由于物联网是根据应用系统特点设计的网络,解决的问题不同,应用方案也就不同。因此,发展物联网不能简单地引进技术,不能照搬照抄国外经验,必须有本国的技术支撑。物联网应用具有本地化优势和主动权,主要体现在应用设计自主权和采购主导权方面。
三、物联网应用一般在社会效益较大的领域优先布局,逐步向生活消费领域拓展。
目前,全球物联网产业部分领域处于重大技术突破的孕育期和产业发展初期,物联网技术的研发和应用主要集中在美、欧、日、韩和我国。从世界范围看,物联网技术发展和应用主要呈现以下趋势:
第一,需求导向,整体规划,目标明确。近些年来,欧美日韩等纷纷出台发展物联网的战略计划。一是在社会效益较大的领域优先布局,逐步向生活消费领域拓展。目前,各国政府主要在医疗、电子政务、电网、教育、交通、城市管理等领域推行物联网计划。如,近年来,美国政府以刺激经济为目标,重点支持宽带网、智能电网、卫生医疗信息技术应用等。欧盟从发展绿色经济的角度出发,优先发展智能汽车和智能建筑,2009年发布的《欧盟物联网战略研究路线图》又提出了航空航天、汽车、医药、能源等18个物联网主要应用领域。日本从营造“使国民安心和有活力的社会环境”出发,以交通、医疗、教育、环境监测、政府治理等公共领域的信息服务为重点。韩国则从寻求增长动力和发展优势产业出发,在食品和药品管理、交通和物流管理、环境监测、安全监测、工业自动化等方面进行应用示范;国际金融危机发生后,又提出发展智能通信、家庭应用和娱乐等,推动物联网在消费领域应用。二是根据实际需要确定物联网应用重点,有针对性地解决行业问题。三是市场需求驱动,企业自发创新发展。大部分物联网技术的应用是水到渠成,当信息技术发展到一定程度,就出现了应用物联网技术的市场需要。如物流行业最初应用物联网技术是出于对食品安全监控的需要;发展云计算是一些掌控信息资源的企业,为了利用剩余的计算资源,通过商业模式创新与技术创新发展起来的。
第二,坚持成本效益原则,提高社会整体效益。有些大规模应用的物联网投资巨大,只有当其整体效益超过提供者和用户负担的成本时,投资才有意义。与此同时,还要发挥各种合作机制的作用,多层次、多渠道、多方式推进国际科技合作与交流。鼓励境外企业和科研机构在我国设立研发机构;鼓励我国企业和研发机构积极开展全球物联网产业研究,在境外开展联合研发和设立研发机构,大力支持我国物联网企业参与全球市场竞争,持续拓展技术与市场合作领域。
第三,应用导向,技术和标准先行。目前,全球物联网产业的核心技术尚不成熟,标准体系正在构建中。研制与物联网有关的标准不仅有利于规范市场、指导产业发展,而且对各国掌握物联网产业发展的主导权具有重要意义。因此,发达国家在发展物联网的过程中,一方面根据应用需求进行技术研发,掌握关键核心技术;另一方面要在制订标准上狠下功夫。
(作者系国务院发展研究中心技术经济部部长)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13483630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-16
下一篇 2023-08-16

发表评论

登录后才能评论

评论列表(0条)

保存