- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DS18B20与TMS320LF2407A的测温系统
时间:2010-03-01 21:22来源: 作者: Tag:TMS320LF2407(1)测温(61)DS18B20(48)系统(9130)基于(9411) 点击: 12次
前 言
DS18B2普遍都是与单片 机配合 使用 ,很少有关于 DSP 与DS18B20 的连接 的接口 报道 ,所以此文详细 介绍 了TMS320LF2407与 DS18B20 的连接 方法 ,并且很详细 的介绍 了如何 用C语言 完成精确 的软件 延时 ,从而完成DS18B20 与TMS320LF2407之间的基于 单线总线/ 总线 协议 的数据 通讯 .
1 DS18B20 的时序
1. 1 复位 时序
复位 使用 DS18B20 时,首先需将其复位 ,然后才能执行 其它命令.复位 时,主机 将数据 线拉为低电平 并保持480us~960us,然后释放数据 线,再由上拉电阻 将数据 线拉高15~60us,等待DS18B20 发出存在脉冲 ,存在脉冲 有效 时间为60~240us,这样,就完成了复位 操作 .
1.2 写时序
在主机 对DS18B20 写数据 时,先将数据 线置为高电平 ,再变为低电平 ,该低电平 应大于1us.在数据 线变为低电平 后15us内,根据 写“1”或写“0” 使数据 线变高或继续为低.DS18B20 将在数据 线变成低电平 后15us~60us内对数据 线进行 采样 .要求 写入DS18B20 的数据 持续时间应大于 60us而小于120us,两次写数据 之间的时间间隔应大于1us. 1.3 读时序
读时隙当主机 从DS18B20 读数据 时,主机 先将数据 线置为高电平 ,再变为低电平 ,该低电平 应大于1us,然后释放数据 线,使其变为高电平 .DS18B20 在数据 线从高电平 变为低电平 的15us内将数据 送到数据 线上.主机 可在15us后读取 数据 线..
2 TMS320LF2407与DS18B20 的连接
DS18B20 有三个引脚.其与TMS320LF2407A的接线图如下.VDD 管脚 接5V电压 给传感器/ 传感器 供电 .DQ管脚 为数据 线,与 TMS320LF2407A的IOPA6连接 的同时,还要接一个 4.7K的上拉电阻 ,并接到5V的电源/ 电源 上,使数据 线在空闲状态 下能自动 上拉为高电平 . GND管脚 接地.
3 软件 设计
3.1 精确 的软件 定时 的实现
众所周知,TMS320LF2407的内核 属于C2000系列 的CPU,处理 速度达到 30MIPs,也就是每条指令 所花的时间理论上只有33ns.但是实际情况是,由于DSP 外部电路 的数据 处理 速度与数据 调用 等因素 ,往往处理 速度达不到这个数量级.那怎样 测出每条指令 的处理 时间从而计算 出软件 延时 程序 的精确 时间呢?计算 方法 如下:
1、延时 程序 的C语言 代码 为:
for(loopindex=0;loopindex其中loopindex 为unsigned int,无符号整形数值, N为常量,根据 所要求 的延时 时间,计算 得出.具体算法在下面给出.
2、这个for语句在CCS中的 编译 器编译 后所产生的汇编 语言 为:
LACL #0hSACL *, 0LACL *SUB N(计算 得到的循环次数)BCND 转移的地址,GEQLACC *, 0ADD #1hSACL *, 0LACL *SUB N(计算 得到的循环次数)BCND 转移的地址,LT
这些汇编 语句所占用的时间可以 计算 成公式 :DELAY=(9N+4)*单个指令 周期.
3、测试 出一个 指令 周期
系统 所用晶振为20M,倍频以后的时钟 频率 为40M,定时 器1的分频为1,也就是说定时 器的计时周期为25ns.开启定时 器,单步运行 上面的汇编 语句,看定时 器每次运行 后所增加 的数值.测试 得到,在每次单步运行 占一个 指令 周期的汇编 语句后,定时 器的数值增加 10.也就是说,每个单指令 周期的指令 占用的时间为:25ns*10=250ns,也就是0.25us.
(责任编辑:admin)
4、延时 程序 的最终计算 公式 为:
DELAY =(9n+4)*0.25us.
由公式 可以 看出,当n=0时,DELAY=1us,当n=65535时,DELAY= 150ms.
3.2 主要 程序
由于文章篇幅的关系,这里只给出复位 程序 、读字节程序 与整个读温度 的主程序 ,写命令字的程序 可以 根据 上面所述的时序 自行编写 .
文档评论(0)