基于BMP085的IIC软件模拟编程学习笔记.docxVIP

基于BMP085的IIC软件模拟编程学习笔记.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.软件模拟厂C接口 曲于设计所要用到的51单片机不带HC总线接口,因此它与带HC总线接口的 气压传感器模块进行连接时,不能直接相连。为解决这一问题,实际上可以考虑 两种方法,一是通过接口电路IIC总线/并行转换器,来实现51单片机与带有IIC 总线接口器件之间的通信,但这种方法是通过硬件來实现的;二是通过软件模拟 的方法來实现这一功能,所谓软件模拟,就是利用51单片机的I/O口來模拟IIC 总线的工作时序,从而达到能够访问带IIC总线接口器件的目的。 1.1厂c总线协议 总线必须由主设备控制,IIC的时钟线(SCL)和数据线(SDA)都是双向的。 在IIC总线上,主控器与被控器相互Z间进行传输的信息有启动信号、停止 信号、地址码、读/写控制信号、数据字节、应答信号等等。其中,启动信号、 停止信号、地址码、读/写控制信号是由主控器发送给被控器的,应答信号是由 被控器发送给主控器的。完成一次通信的IIC总线工作时序如图3-1所示。 START ADDRESS R/W ACK DATA ACK DATA ACK STOP condition condition 图1-1 IIC总线的工作吋序图 主控器与被控器之间在IIC总线上进行一次数据传送时,一定是按照一?定的 数据格式进行传送的。按照MC总线所约定的规范,传送的信息由启动信号、寻 址字节、数据字节、应答信号以及停止信号组成的。其小启动信号表示数据传送 的开始,接下来是寻址字节,包含7位地址码和1位读/写控制位,再接下来是要 传送的数据字节和应答信号,数据传输完后,主控器耍发出一个停止信号给被控 器。因此IIC总线数据传送格式可由表3-1表示。 表1-1 IIC总线的数据传送格式 启动 7位地 读/写 应答 数据 应答信 数据 应答或 停止 信号 址码 信号 信号 字节1 号 字节2 非应答 信号 信号 在使用软件模拟IIC接口的方法(也就是通过软件控制单片机的I/O 口模拟实 现HC通信时序)时,单片机的时钟频率必须满足气压传感器模块中的SDA和SCL 信号线上升沿和下降沿的时间耍求。因此在软件模拟吋一定耍确保典型信号时序 要求的准确性。然而在确保准确的前提下,必须掌握这些典型信号的时序要求, 如启动信号、数据传送字节、应答信号和停止信号等。下面介绍这几种典型信号 的吋序耍求。 1) 启动信号 在时创线SCL保持高电平期间,数据线SDA上的电平负跳变定义为IIC总线的 “启动信号”。启动信号是一种电平跳变时序信号,而不是一个电平信号。启动 信号是由主控器主动建立的,在建立该信号之前,IIC总线必须处于空闲状态, 即SDA和SCL两条信号线同时处于高电平。 2) 停止信号 在时创线SCL保持高电平期间,数据线SDA被释放,使SDA的电平正跳变,定 义为IIC总线的“停止信号”。停止信号也是一种电平跳变的时序信号,而不是一 个电平信号。停止信号也是由主控器主动建立的,该信号Z后,1IC总线返回空 闲状态。 3) 数据传送字节信号 在11C总线上传送的每一位数据都冇一个时钟脉冲相对应。也就是说,在SCL 时钟的配合下,在SDA数据线上一位一位地传送数据。进行数据传送时,在SCL 高电平期间,SDA线上的电平必须保持稳定,当SCL为低电平期间,才允许SDA线 上的电平改变状态。 4) 应答信号 在IIC总线上所有数据都是以8位字节传送的,发送器每发送一个字节Z后, 就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电 平时,定义为有效应答信号。对于有效应答信号的要求是,接收器在第9个时钟 脉冲Z前的低电平期间将SDA电平拉低,并且确保在该时钟的高电平期间为稳定 的低电平。 1.2 IIC 串行 EEPROM EEPROM是可用工作屯压擦出和改写内容的只读存储器。176位的EEPROM被划 分为11个字,每个字16位(11*16二176)。这样就包含了 11个校准系数,每个器件 模块都冇自己单独的校准系数。在第一次计算温度压力数据之前,控制器应该先 读出读岀E2PROM中的数据(即先读岀校准数据,然后再开始采集数据)。 1.3所要读取的数据以及存放单元 在本系统设计中,主要口的是测量小型无人机的高度,而气压传感器 (BMP085)模块测量的数据有温度和大气压力值,因此通过对这两个数据进行一 定的计算,才能实现高度的测量。 通过阅读BMP085的技术手册,了解到BMP085测得的数据有,11个校准系数, 压力数据UP (16到19位),温度数据UT (0到16位)。其中温度UT是经过温度补偿 后的数据,这两个数据都是经过A/D转换的。 BMP085气压传感器有四种模式,不同模式下,读取数据的方法和计算的方法 是不一样的。 Mode Parameter o versamp

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档