适用于MS5611的SPI接口设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

适用于MS5611的SPI接口设计
崔璨;邓圣;代航阳;张杨;杨泰波
【摘要】MS5611是瑞士MEAS推出的新一代高分辨率的气压传感器,广泛应用于移动高度计/气压计系统、自行车电脑、智能手表、GPS、智能手机、无人机高度测量系统等.MS5611体积小,内部集成了气压传感器、温度传感器、24位ADC、128位PROM、数字滤波器、SPI和I2C接口.针对MS5611的SPI接口,选用输入输出资源丰富,配置灵活的FPGA作为微控制器,并设计相应的SPI接口电路;采用Verilog编写具有MS5611五种指令的SPI接口模块,并进行了时序仿真验证.仿真结果表明,基于FPGA的SPI接口模块能很好地对MS5611进行控制,并实现数据的读写,在基于MS5611的气压测量设备上有很好应用.
【期刊名称】《科技创新导报》
【年(卷),期】2017(014)001
【总页数】4页(P31-33,35)
【关键词】气压测量;MS5611;SPI;时序仿真
【作者】崔璨;邓圣;代航阳;张杨;杨泰波
【作者单位】中国核动力研究设计院四川成都 610094;中国核动力研究设计院四川成都 610094;中国核动力研究设计院四川成都 610094;中国核动力研究设计院四川成都 610094;中国核动力研究设计院四川成都 610094
【正文语种】中文
【中图分类】TP361.1
气压和温度一直都是很多实验室和工业生产中的重要环境参数,需要对其进行实时检测,以实现对实验室环境和工业生产环境的控制,达到实验预想效果,生产出高品质产品[1]。

例如:在机房设备监测系统中,通过气压传感器对气压进行监测,
当波动较大时,可通过短信通知机房负责人[2]。

而对于登山爱好者来说,非常关心海拔高度,可通过测量气压来计算海拔高度,其测量精度远比全球定位系统(Glo bal Positioningsystem, GPS)高,在原有GPS
基础上增加气压测量功能,可使三维定位更加准确。

另外,在使用导航时,GPS
信号常被地形、地物遮挡,导致精度大大降低,甚至不能使用。

尤其在高楼林立的城区和植被茂密的林区,GPS有效率仅为60%,为弥补这一不足常常采用气压传
感器辅助测量海拔高度[3]。

如今被广泛应用的小型无人机,具有成本低廉、体积小、重量轻、机动性强、续航时间长等特点,而其高度测量系统就是通过海拔高度和压力大小关系计算出来[4-5]。

MS5611作为新一代高分辨率的气压传感器,它具有体积小、重量轻等特点,使
其广泛应用于移动高度计/气压计系统、自行车电脑、智能手表、GPS、智能手机、无人机高度测量系统等。

它具有串行外设接口(Serial Peripheral Interface,sPI)和I2C总线两种数字通讯接口,使它更容易与微控制器进行数据交换,该文针对MS5611的SPI接口,采用现场可编辑逻辑阵列(Field-Programmable Gate Array, FPGA)实现对其数据的读写控制,并对设计的SPI接口模块进行了时序
仿真验证。

1.1mS5611介绍
MS5611体积小,仅为5.0mm×3.0mm×1.0mm,内部集成有气压传感器、温度传感器、2 4位模数转换器(Analog-Digital Converter,ADC)、128位可编程只读存储器(Programmable Read Onlymemory,P ROm)、数字滤波器、S
P I和I2C接口。

其分辨率可达0.012mbar,用于高度测量时,精度可达10 cm。

MS5611同时可以测量温度并对压力进行温度补偿。

其主要技术指标见表1。

1.2 微控制器
MS5611集成有SPI和I2C数字接口,可使用FPGA、单片机等为微控制器,实
现对MS5611的控制。

选用本身具有SPI 或I2C接口的微控制器可缩短开发周期,但这些微控制器本身资源固定,所以灵活性较差。

FPGA是ASIC基础上发展起来的,但它又克服了ASIC灵活性差的缺点。

其端口
资源丰富,并且可以根据用户的需要进行配置,在高速数据采集、数字通信、编码译码方面有着广泛应用。

考虑到MS5611本身供电电压范围为-0.3~4.0 V,该文选用Altera公司的FPGA 芯片EP1C6Q240C8作为微控制器,其逻辑电平为3.3 V,可与MS5611匹配,
在FPGA内部设计针对MS5611的SPI接口模块,实现对其数据读写,同时可以
在FPGA内设计其他数字通讯接口,如RS485等[6],实现数据远程传输。

FPGA必要外围电路包括:下载电路、外部时钟、电源。

如图1所示,存储芯片EPCS1作为FPGA的程序存储,上电后自动加载程序。

外部时钟采用40mHz的
有源晶振,其供电压为3.3 V。

整个系统需要的电压为1.5 V和3.3 V,其中1.5 V 由1117~1.5 V产生,3.3 V由1117~3.3 V产生。

1.3sPI接口电路
该文选用MS5611的SPI接口进行数据通讯。

SPI是一种高速的,全双工,同步
的通信总线,只占用四根线。

它采用主从方式工作,由一个主设备和多个从设备构成,FPGA作为主设备,MS5611作为从设备,接口电路如图2所示。

供电电压
选择与FPGA一致的3.3 V,其中SCLK为时钟信号,PS为通讯模式选择信号,
拉高选择I2C模式,拉低选择SPI模式;CSB为片选信号,对从设备进行选择,
低有效;SDO为串行数据输出总线,SDI为串行数据输入总线。

2.1 控制指令
MS5611具有5种基本的控制指令:复位、读取PROM数据、D1转换、D2转换、读取ADC结果。

复位:复位指令应在芯片上电时发送以确保PROM中的数据能够顺利的加载,同时可在未知状态下复位芯片的只读存储器(Read Onlymemory ,ROM)。

读取PROM数据:PROM是一个128位的存储器,存储了6个出厂时的标定参
数C1~C6,6个参数用于压力补偿和温度补偿,此指令在复位完成后发出,之后返回16位数据。

D1、D2转换:此指令用于启动转换未补偿压力(D1)和未补偿温度(D2)。

ADC读取:在D1转换或D2转换后发出,分别返回24位的压力或温度数据。

以上每种指令均是8位,指令值如表2所示。

2.2sPI接口模块
SPI总线中所有数据均是通过串行时钟SCLK进行同步,每个时钟脉冲传送1位数据[7]。

时钟的相位(CPHA)和极性(CPOL)的不同组合可以让SPI总线工作在
4种不同的模式下。

模式0:CPHA=0,SCL K空闲状态时为低电平;CPOL=0,在CSB有效后SCLK 的第一个周期进行采样。

模式1:CPHA=0,SCL K空闲状态时为低电平;CPOL=1,在CSB有效后SCLK 的第二个周期进行采样。

模式2:CPHA=1,SCL K空闲状态时为高电平;CPOL=0,在CSB有效后SCLK 的第一个周期进行采样。

模式3:CPHA=1,SCL K空闲状态时为高电平;CPOL=1,在CSB有效后SCLK 的第二个周期进行采样。

SPI可工作在主模式或从模式下。

在主模式,每一位数据的发送/接收需要一个时
钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收[7]。

MS5611作为从机,支持工作在模式0和模式3,该文选择在工作在模式3下。

FPGA作为主机,内部设计的SPI接口模块为模式3的主模式。

FPGA内部设计SPI模块采用Quartus II的verilog编写,如图3所示的流程进行,首先将SPI的所有总线初始化,SCLK、CSB、SDO、SDI均拉高。

根据并行输入
8位数据(表2所示指令)判断10种状态,不同状态下所发出的时钟周期不同,ADC读取和PROM读取指令因为分别要返回24位数据和16位数据,时钟周期
分别为32和24,其他指令均是8个时钟周期,SCLK上的时钟信号由晶振分频后产生。

而片选信号CSB均拉低,指令码数据转换为串行数据后通过SDI输入到
MS5611,返回的串行数据通过SDO输入到FPGA再转化为并行数据后存储。

对于设计完成的SPI接口模块需进行时序仿真,以验证其控制时序是否能满足
MS5611的SPI接口。

MS5611的SPI总线可工作在模式0和模式3,该文设计的SPI接口选择工作在
模式3下。

笔者对MS5611的五种指令均进行了时序仿真,结果与MS5611的技术手册上一致,图4列举出了MS5611的ADC读取功能进行的时序仿真结果。

其中,datain[7:0]为指令码并行数据,ADC读取指令码0x00并行输入;spido 为FPGA的串行数据输出,即SDI,仿真图4中输出指令码的0x00的串行数据;spidi为FPGA的串行数据输入,即SDO信号,从时钟信号SCLK的第9个上升
沿开始到32个上升沿为24位ADC转换数据结果,第9个时钟上升沿为数据最
高位。

dataout[23:0]为ADC读取数据并行输出结果,结果为0x7fffff。

spics
为CSB片选信号,指令发出和读取过程中拉低。

spiclk为SCLK时钟信号,ADC
读取共产生32个时钟周期,上升沿进行数据读取。

该文在F PGA内设计适用于MS5611的SPI接口,对MS5611的五种指令进行
了时序仿真,具体列举ADC读取功能进行了介绍,仿真结果表明文中设计的基于
FPGA的SPI接口能很好地对MS5611进行控制,并实现数据的读写,在基于
MS5611的气压测量设备上能有很好应用。

【相关文献】
[1] 赖贵川,黄华伟.基于MS5611-01BA01的高精度气压和温度检测系统设计[J].四川理工学院学报,2012,25(5):33-36.
[2] 陈新兴,尤宇星.机房设备监测系统设计[J].福建电脑,2015(11):123-132.
[3] 朱韶红,王玉泉.危险品物流监控系统中车载终端的研究与设计[J].物流技术,2013,32(12):429-432.
[4] 潘银松,刘天刚,马泽忠,等.基于MS5611的小型无人机高度检测系统设计[J].电子测量技术,2015,38(7):22-25.
[5] 杨新湦,高春燕.一种气压测量系统设计[J].电子产品世界,2014(10):32-34.
[6] 梁士龙,王力男,杨嘉伟.用FPGA实现RS-485通信接口芯片[J].系统工程与电子技术,2002,24(4):103-106.
[7] 杨承富,徐志军.SPI总线接口的FPGA设计与实现[J].军事通信技术,2004,25(2):72-76.。

相关文档
最新文档