用单片机控制红外线通信接口电路设计

发布者:EnchantedBreeze最新更新时间:2011-10-10 关键字:单片机控制  红外线通信 手机看文章 扫描二维码
随时随地手机看文章

0 前言
  热误差是数控机床的最大误差源,数控机床的温度测试为机床热误差的补偿提供依据。传统的测温方案是将模拟信号通过电缆远距离传输至数据采集卡进行A/D转换并处理,实用中必须解决长线传输和模拟量传感器布线等问题。本文介绍了一种新型的设计方案,控制器采用SAMSUNG公司的32位ARM微控制器S3C44BOX,温度传感器采用单总线数字温度传感器DS18B20。采用数字温度传感器即在测试点完成了信号的数字化,提高了传输的可靠性,同时简化了外围电路,也便于传感器在机床上的布置安装。ARM处理器控制数字温度信号的采集,并与上位PC机通讯,同时其他硬件资源提供热补偿系统其他功能。本文在介绍数字温度传感器DS18B20的基础上,给出了系统的软硬件设计方案,对软件实现中的关键点做了详尽的注释说明。

1 数字温度传感器DS18B20介绍
1.1 DS18B20的结构
  DS18B20是美国DALLAS公司推出的一种可组网数字温度传感器。DS18B20只有一个数据输入/输出口,是单总线专用芯片。DS18B20工作时,被测温度值直接以单总线的数字方式传输。
  DS18B20体积小,电压适用范围宽(3V-5V),可以通过编程实现9~12位的温度读数,即有可调的温度分辨率。测温范围-55℃~+125℃,在-10℃~+85℃时,精度为±0.5℃。其可选封装有TO-92、SOIC及CSP封装。
  每个DS18B20出厂时都有一个唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20而不会出现混乱。  DS18B20包括一个暂存RAM和一个E2RAM。暂存存储器RAM用于存放工作参数和测量值,其作用是保证在单线通讯时的完整性,包括8个字节。E2RAM用于设定非易失性温度报警上下限值TH和TL(调电后依然保存)。内部结构如图1所示。
  头两个字节表示测得的温度读数,数据格式如图2所示: 

 

  S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1,表示0.0625℃
  内部存储器的第五个字节是结构寄存器,主要用于温度值的数字转换分辨率。

1.2 DS18B20的工作时序
  DS18B20严格遵循单总线协议,工作时,主机先发一复位脉冲,使总线上的所有DS18B20都被复位,接着发送ROM操作指令,使序列号编码匹配的DS18B20被激活,准备接受下面的RAM访问指令。RAM访问指令控制选中的DS18B20工作状态,完成整个温度转换,读取等工作。在ROM命令发送之前,RAM命令命令不起作用。表1列出了所有操作命令。
  整个操作主要包括三个关键过程:主机搜索DS18B20序列号、启动在线DS18B20做温度转换、读取温度值。
  其工作流程如图3:
 

 DS18B20对时序及电特性参数要求较高,必须严格按照DS18B20的时序要求去操作。它的数据读写主要由主机读写特定的时间片来完成,包括复位(初始化)、读时间片和写时间片。
(1) 复位时序
  使用DS18B20时,首先需将其复位,然后才能执行其它命令。复位时,主机将数据线拉为低电平并保持480μs~960μs,然后释放数据线,再由上拉电阻将数据线拉高15~60μs,等待DS18B20发出存在脉冲,存在脉冲有效时间为60~240μs,这样,就完成了复位操作。其复位时序如图4所示。


(2) “写”时序
  在主机对DS18B20写数据时,先将数据线置为高电平,再变为低电平,该低电平应大于1μs。在数据线变为低电平后15μs内,根据写“1”或写“0”使数据线变高或继续为低。DS18B20将在数据线变成低电平后15μs~60μs内对数据线进行采样。要求写入DS18B20的数据持续时间应大于60μs而小于120μs,两次写数据之间的时间间隔应大于1μs。写时隙的时序如图5所示。“读”时序机理类似,不再赘述。

 

2 系统软硬件设计
2.1 硬件设计
  我们采用的控制器是SAMSUNG公司的32位ARM微控制器S3C44BOX,是三星公司为一般应用提供的高性价比和高性能的微控制器的解决方案,功耗小,可靠性高。它使用ARM7TDMI核,工作在66MHz。采用的该ARM控制器将服务于整个热误差补偿系统,完成包括数据处理与通讯、控制等多任务的实现。机床测温系统只使用小部分片上资源。
  我们主要通过对I/O引脚的电平读写来完成单总线的通讯,采用ARM内部的定时器产生中断来完成有时隙要求的工作。由于我们通过预分频后产生的计时值单位达到1μs,完全能够满足时序工作的需要。
  DS18B20与控制器的接口及其简单,只需将DS18B20的信号线与控制器的一位双向端口连接即可。系统连接如图8所示:

2.2 软件设计
  遵循DS18B20单总线通讯协议,温度转换与读取工作的软件流程可表示为图9(该流程是在已经选中激活某个选中的DS18B20以后,选中激活流程软件原理类似,此处省略)。   可见,与DS18B20进行通讯主要完成以下三个基本子程序:初始化程序(复位程序)、‘读’子程序,‘写’子程序。系统采用 C语言进行设计,以下是初始化(复位)子程序,设计如下:

U8 resetpulse(void) //复位函数定义
{
U8 RX=1; //函数返回值设置
rPCONF=0x01; //PF0输出口
rPDATF=0x0; //PF0输出0,拉低
rTCNTB1=0x1f4; //定时缓冲器设定,延时500us
rTCON=0x0200; //定时控制器设定,将定时器1手动更新
rTCON=0x0100; //定时器开启,手动更新关闭
while(TIME); //在定时中断产生以前踏步等待(我们在中断中改变这个标志值)
rPDATF=0x01; //低脉冲时间500us已过,PF0置高
TIME=1; //将TIME值恢复
rTCON=0x0; //关闭定时器
rTCNTB1=60; //延时60us
rTCON=0x0200;
rTCON=0x0100;
while(TIME);
TIME=1;
rTCON=0x0;
rPCONF=0x0; //改为输入口,进行读值
if((rPDATF & 0x01)==0) //读到PF0口为低时说明存在脉冲收到
{RX=0;}
rTCNTB1=0x0190; //延时400us
rTCON=0x0200;
rTCON=0x0100;
while(TIME);
TIME=1;
rTCON=0x0;
return(RX); //函数返回RX值,在收到存在脉冲时RX为零
}

  调用该初始化程序就可以实现复位要求。“读”子程序、“写”子程序实现机制类似,代码不再赘述。在单总线协议下,通过调用这几个子程序进行相应的控制,就能完成主机与DS18B20的通讯,实现温度的采集。

3 结论
  本系统接口电路简单,通讯可靠,集成后的系统运行良好,测试精度高,试验证明能完成预定测试任务。

关键字:单片机控制  红外线通信 引用地址:用单片机控制红外线通信接口电路设计

上一篇:基于ARM的智能导航盲杖系统设计
下一篇:单片机系统Flash存储器在系统编程设计

推荐阅读最新更新时间:2024-03-16 12:43

单片机控制继电器原理
首先看看继电器的驱动 这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图 为什么要明白这个图的原理? 单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的 功率驱动 .继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.
[单片机]
<font color='red'>单片机控制</font>继电器原理
基于单片机控制的数字移相器设计方案
简 述 移相电路常用于同步检测器的数据处理中。目前资料上有很多移相电路,其实现方法多种多样,大致可分为模拟式和数字式移相器两类。模拟式移相器的电路较为复杂、线性差、测试精度低;数字式移相器大多以标准逻辑器件按传统数字系统设计方法设计而成,其缺点为功耗大、可靠性低。本文介绍的基于单片机控制的数字移相器,采用环形队列实现信号波形的任意相位移相,并且保持波形的幅度、频率不变。其测试精度高,失真度小。系统原理方框图如图1所示。 1系统硬件电路设计 本系统的硬件电路主要由输入信号倍频电路、AT89C51单片机、A/D转换器、D/A转换器、6116存储器及键盘/显示等电路构成。 1.1输入信号倍频电路 倍频
[单片机]
基于<font color='red'>单片机控制</font>的数字移相器设计方案
单片机控制多个步进电机C语言程序设计
//程序说明:烧好程序,连接好控制线(步进电机1的控制线I1-I4连接到P2.0-P2.3,步进电机2的控制线I1-I4连接 // 到P2.4-P2.7。按S19可控制步进电机1的转动停止、加减速和正反转,按S20可控制步进电机2的转动停 // 止、加减速和正反转。 //**************************************************************************************************************** #include reg51.h //#include stdio.h sbit A1=P2^0; //步进电机1输出脚定义 sbi
[单片机]
单片机控制板的三大设计原则
  单片机控制板在设计过程中,需要遵循的如下原则:   1.在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。   2.尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。实际上,印制电路板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc 走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法
[单片机]
<font color='red'>单片机控制</font>板的三大设计原则
51单片机控制DHT11在1602上显示温湿度的程序
单片机源程序如下: #include reg52.h #define uint unsigned int #define uchar unsigned char typedef bit BOOL; sbit io = P2^0; sbit rs = P2^6; sbit rw = P2^5; sbit ep = P2^7; uchar data_byte; uchar RH,RL,TH,TL; /********延时模块***********/ void delay(uchar ms) { // 延时子程序 uchar i; while(ms--) { for(i = 0;i 250;i++);
[单片机]
基于单片机控制步进电机的水位控制系统设计
基于单片机控制步进电机的水位控制系统,通过金属棒和水的导电性采集水位信号,结合了单片机输出电平控制继电器来控制抽水机的实验,实现了连续控制和跟踪水位,并以液晶实时显示水位。该方案具有原理简单、想法新颖、容易实现、精度高等特点,控制系统对于提高工业自动化水平和提高生活供水质量具有重要的意义。 在生产领域中,实现水位自动检测和控制是工业过程控制的一项关键技术,对于提高工业过程控制的自动化水平有着重要的意义。 在生活领域中,供水方式过去一般是通过人工来实现控制,容易造成对水资源的浪费,所以现在人们越来越关注水资源的问题。 目前,水位控制系统是受到广泛应用的供水系统,水位控制可以有多种实现方法,如机械控制、逻辑电路控制
[单片机]
基于<font color='red'>单片机控制</font>步进电机的水位控制系统设计
DS18B20温度单片机控制显示C程序
温度值精确到0.1度,lcd1602显示 仿真电路图如下 c程序如下: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit DQ=P3^7;//ds18b20与单片机连接口 sbit RS=P3^0; sbit RW=P3^1; sbit EN=P3^2; unsigned char co de str1 ={ temperature: }; unsigned char co de str2 ={ }; uchar da ta disdata ; uint tvalue;//温度值 uchar tf
[单片机]
DS18B20温度<font color='red'>单片机控制</font>显示C程序
基于单片机控制的多路呼叫系统设计
随着信息技术的发展与医疗卫生事业的深化改革,国家金卫工程的实施使医院管理信息化的进程大大加快,医院的信息化建设取得了很大进展。医疗行业面对激烈竞争的市场,需要为病患者提供更人性化,更合理的服务,医疗资源的共享和信息化流程的简化,医疗部门办公网络化、自动化,实现全面信息共享已是大势所驱。越来约多的医院认识到,只有通过信息化建设,逐步建立信息化医院和医疗企业,才能支持医院的可持续发展,从而大力提高医院综合效益和运行效益。因此,设计一个支持医院病床呼叫,具有一条线缆传输多路呼叫信息的功能的系统,是非常必要的。 1 多路呼叫系统整体设计方案 该系统利用单片机的双机通信功能,设计出的具有呼叫、显示、应答等功能的多路呼叫系统,就是
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved