版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机的接口技术 传统的单片机外围扩展接口采用并行方式,即单片机与外围器件用8根数据线进行数据交换,再加上一些地址线和一些控制线,占用了大量的单片机I/O口。这不仅造成单片机资源的浪费,甚至会影响单片机其他功能的实现。因此近年来,越来越多的新型外围器件采用了串行接口,绝大多数单片机应用系统的外围扩展接口也从并行方式过渡到串行方式。 I2C总线是Inter IC Bus(内部集成电路总线)的缩写,是Phulips公司研发的一种双向二线制总线,用于单片机及其外围设备,是近年来应用较多的串行总线之一。I2C总线的优点是简单、有效,并且占用的空间非常小,减少了电路板的空间以及芯片引脚的数量,降低了
2、互联成本。总线的长度可达总线的长度可达8m8m,最多可支持最多可支持4040个器件。个器件。目前具备I2C接口的芯片有很多,如AT24系列EEPROM、PCF8563日历时钟芯片、PCF8576LCD驱动器及PCF8591A/D转换器等。1. I2C总线接口总线接口 I2C总线只有两根信号线,一根是双向的数据/地址线SDA,另一根是串行时钟总线SCL。所有连接到I2C总线上的设备的串行数据线都接到SDA上,而所有设备的串行时钟线都接到SCL上。应用时两根总线必须接有510K的上拉电阻。 一个单片机系统外围可以扩展多个I2C总线器件,每个器件需要设定不同的地址。这样单片机可以根据器件的不同地址进
3、行识别并与之进行数据传输。 I2C总线的数据传输速率在标准工作方式下为100Kb/S,高传输速率可达到400Kb/S 。 当某个器件向总线上发送信息时,它就是发送器(也叫主器件)(在任何时刻总线上只有一个主控器件实现总线的控制操作),而当从总线上接收信息时,该器件又称为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时钟信号以开放传送的器件,此时任何被寻址的器件都被认为是从器件。I2C总线器件完全由挂接在总线上的主器件送出的地址和数据控制。 2. I2C总线器件的地址总线器件的地址 I2C总线可进行双向的信息传送。外围器件并联在总线上,就像电话机一样只有拨通各自的电话号码才能工作,所以
4、每一个器件都有唯一的地址。器件的地址共7位,它与方向位构成了I2C总线器件的寻址字节SLA。位位D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0含义含义DA3DA3DA2DA2DA1DA1DA0DA0A2A2A1A1A0A0R/WR/WDA3、DA2、DA1和DA0:器件的地址位,是I2C总线外围接口器件固有的地址编码,器件出厂时就已经定了,使用者不能更改。例如I2C总线器件AT24Cxx系列器件的地址是1010。A2、A1和A0:引脚地址位,是由I2C总线外围器件的地址端口根据接地或接电源的不同而形成的地址数据,由使用者控制。R/W:数据方向位,规定了总线上主节点对从节点的数
5、据方向。R/W = 1时,为接收,R/W = 0时为发送。3. I2C总线上的时钟信号总线上的时钟信号 I2C总线上的时钟信号是挂接在SCL时钟线上的所有器件的时钟信号逻辑“与”运算的结果。一旦某个器件的时钟信号下跳变为低电平,将使SCL线一直保持低电平,所有器件都开始低电平期。当所有器件的时钟信号都跳变为高电平时,低电平期结束,SCL线被释放返回高电平。其后,第一个结束高电平期的器件又使SCL线的信号变成低电平。这样就在SCL线上产生一个同步脉冲,可见时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件决定。4. I2C总线的传输协议与数据传送总线的传输协议与
6、数据传送(1)起始和停止条件 在数据传送过程中,必须确认数据传送的开始和结束。在I2C总线技术规范中,开始和结束信号(也称为启动和停止信号)的定义如图所示。2)数据格式在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址的。方向位为0表示发送,即主器件把信息写到所选择的从器件。方向位为1表示接收,即主器件将从从器件读信息。开始信号后系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果两者一致,则该器件为被主器件寻址的器件。 I2C总线上的数据传输采用时钟脉冲逐位串行传送方式,时序如下图所示。在SCL的低电平期间,SDA线上高、低电平能变化,即数据可以变化。在SCL高电
7、平期间,SDA线上的数据必须保持稳定,不允许变化。因为此时SDA状态的改变已经被用来表示起始和停止条件,以便接收器件的采样接收。5. 响应响应 I2C总线协议规定:每传送一个字节数据(含地址及命令字)后,都要有一个应答信号(也叫应答位,用ACK表示),以确定数据传送是否正确。应答位的时钟脉冲由主机产生,发送器件需要在应答时钟脉冲的高电平期间释放(送高电平)数据/地址线SDA,转由接收器件控制。通常接收器件在这个时钟脉冲内必须向SDA传送低电平,以产生有效的应答信号表示接收正常。如接收器件不能接收或不能产生应答信号时,则保持SDA为高电平。此时主机产生一个停止信号,表示接收异常,使传送异常结束。
8、 当主机为接收器件时,主机对最后一个字节不应答,以向发送器件表示数据传送结束。此时发送器件应释放SDA,以便主机产生一个停止信号。 考虑I2C器件驱动过程都一样,我们采用统一的I2C_driver.h来实现对I2C器件的使用。具体见L16M相关I2C的范例。7.9.3 单总线器件及其接口技术单总线器件及其接口技术 I2C总线器件与单片机之间的通信需要两根线,而单总线器件与单片机的数据通信只需要一根线。美国DALLAS公司推出的单总线技术与I2C总线不同,它采用单根信号线,既可以传输时钟信号又可以传输数据信号,且数据又可以双向传输,因而这种总线技术具有线路简单、成本低廉、便于扩展和维护等优点。1
9、. 1. 单总线简介单总线简介单总线适用于单主机系统,能够控制一个或多个从机设备。主机通常是单片机,从机可以是单总线器件,它们之间通过一条信号线进行数据交换。单总线上同样允许挂接多个单总线器件。因此,每个单总线器件必须有各自固有的地址。单总线通常需要接一个4.7K欧姆的上拉电阻。这样当总线空闲时,状态为高电平。(1)初始化单总线器件单总线上的所有处理均从初始化开始,单片机先发出一个“复位”脉冲,当单总线器件接收到复位脉冲后向单片机发出“存在”脉冲信号,以“告知” 单片机该器件在总线上并且已经准备好,等待操作。(2)识别单总线器件总线上允许挂接多个单总线器件,为便于单片机识别,每个单总线器件在出
10、厂前都光刻好了64位的序列号作为地址序列码。所以单片机能够根据该地址来识别,并判断对哪一个单总线器件进行操作。(3)数据交换单片机与单总线器件之间的数据交换必须遵循严格的通信协议。单总线协议定义了复位信号、应答信号、写“0”、读“0”、写“1”、读“1”的几种信号类型。所有的单总线命令序列都是由这些基本的信号类型组成的。除了应答信号外,其他均由单片机发出同步信号,并且发送的所有命令和数据的低位字节在前。2. DS18B20数字温度传感器简介数字温度传感器简介(1)DS18B20基本情况DS1820具有以下基本特性:只要有一个I/O脚即可实现温度的采集,实际应用中不需要外部任何元器件即可实现测温
11、;测量温度范围在55到125 之间;数字温度计的分辨率用户可以从9位到12位选择,精度为0.5C。内部有E2PROM,用户可以进行温度上、下限报警设置;(2)DS18B20的引脚功能描述DS18B20的外观如图所示。GND:地信号;DQ:数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。VDD:外接供电电源输入端。当工作于寄生电源时,此引脚必须接地。(3)DS18B20数据输出格式 DS18B20读出的温度结果的数据为两个字节,用16位符号扩展的二进制补码读数形式提供。因此,在系统中要将得到温度值数据进行格式转换,才能用于显示。 高8位中的低3位D6D5D4和
12、低8位中的高4位D3D2D1D0构成温度的整数部分。低8位中的D-1D-2D-3D-4为 温 度 的 小 数 部 分 ( 为0.5+0.25+0.125+0.0625)。温度值数据输出高位字节 低位字节数据输出(十六进制)+12500000 111 1101 000007D0H+8500000 101 0101 00000550H+25.062500000 001 1001 00010191H+10.12500000 000 1010 001000A2H+0.500000 000 0000 10000008H000000 000 0000 00000000H-0.511111 111 1111
13、 1000FFF8H-10.12511111 111 0101 1101FF5DH-25.062511111 110 0110 1111FE6FH-5511111 100 1001 0000FC90HDS18B20的温度举例的温度举例(4)DS18B20相关操作命令 使用DS18B20测温时,首先要对DS18B20进行初始化,由主机发出的复位脉冲(下拉500uS,然后释放),DS18B20收到信号后等待1660uS,然后发出应答脉冲(60240uS的低电平脉冲)。当DS18B20发出响应主机的应答脉冲时,即向主机表明DS18B20已处在总线上并且准备工作。 DS18B20相关操作命令有两类,一
14、类是ROM命令,通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。另一类是功能命 令 , 通 过 功 能 命 令 对 D S 1 8 B 2 0 的Scratchpad存储器进行读/写,或者启动温度转换。ROM及功能命令及功能命令指令约定代码功 能读ROM0 x33读DSl8820温度传感器ROM中的编码(即64位地址)匹配ROM0 x55发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DSl8820的读写作准备搜索ROM0 xF0用于确定挂接在同一总线上DSl8820的个数和识别6
15、4位ROM地址。为操作各器件作好准备跳过ROM0 xCC忽略64位ROM地址,直接向DSl8820发温度变换命令。适用于单只DSl8820工作报警搜索命令0 xEC执行后只有温度超过设定值上限或下限的芯片才做出响应指令约定代码功 能温度变换0 x44启动DS18B20进行温度转换,12位转换时最长为1750 ms(9位为93.75 ms)。结果存入内部9字节RAM中读高速缓存0 xBE读内部RAM中9字节的内容写高速缓存 0 x4E发出向内部RAM的字节2、3写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据复制高速缓存0 x48将RAM中字节2、3的内容复制到EEPROM中重调EEP
16、ROM 0XB8将EEPROM中内容恢复到RAM中的第3、4字节读供电方式0XB4寄生供电时DS18B20发送0,外接电源供电时DS18B20发送1 DS18B20使用注意事项 DS18B20虽然具有诸多优点,但在使用时也应注意以下几个问题: 于DS18B20与微处理器间采用串行数据传送方式,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则,将无法正确读取测温结果。对于在单总线上所挂DS18B20的数量问题,若单总线上所挂DSl8:B20超过8个时,则需要解决单片机的总线驱动问题,这一点,在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。当采用
17、普通信号电缆且其传输长度超过50 m时,读取的测温数据将发生错误。而将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150 m,如采用带屏蔽层且每米绞合次数更多的双绞线电缆,则正常通信距离还可以进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DSl8B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。在DS18B20测温程序设计中,当向DS18B20发出温度转换命令后,程序总要等待Dsl8820的返回信号。这样,一旦某个DS18B20接触不好或断线,在程序读该DSl8B20时就没有返回信号,从而使程序进入死循环。因此,在进行DSl8B20硬件连接和
18、软件设计时,应当加以注意。如果单片机对多只DS18B20进行操作,需要先执行读ROM命令,逐个读出其序列号,然后再发出匹配命令,就可以进行温度转换和读写操作了。单片机只对一只DS18B20进行操作,一般不需要读取ROM编码以及匹配ROM编码,只要用跳过ROM命令,就可以进行温度转换和读写操作。温度传感器DS18B20驱动程序软件包 由于DS18B20的驱动过程象LCD驱动一样,都是程式化的程序软件,所以为方便使用将其编成名为DS18B20_drive.h的软件包文件。 DS18B20_drive.h DS18B20_drive.h具体内容如下:具体内容如下: #define uchar unsigned char #define uint unsigned int sbit DQ=P13; /定义DSl8820端口DQ uchar yes0;*以下是延时函数* void Delay(uint num) while( -num); *以下是DSl8820初始化函数。若返回值为0,则DSl8820正常;若返回值为1,则不正常 Init DSl8820( ) DO=l;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保护小手课件
- 中职护理礼仪教育课件
- 新闻宣传战略合作协议书(2篇)
- 施工安全协议书(2篇)
- 混凝土公司安全生产协议书
- 物业服务岗位职责培训
- 九年级上册物理课件下载
- 《如何带好创业团队》课件
- 职业监看培训
- 沿街商铺消防安全知识
- 中医医院急诊科建设与管理指南
- 班级管理交流-班主任工作经验交流课件(共28张ppt)
- 2023年《致青春》诗歌朗诵稿致青春诗歌朗诵稿(5篇)
- 脑血管造影术后病人护理查房
- 任意角公开课一等奖课件
- 控制工程基础-总复习课件
- WPS操作知识考试题库及答案
- 中药制剂室工作制度
- 2023国家开放大学《大数据技术导论》实验报告1-5
- 初中英语-九年级英语Itsimportanttogetenoughsleep.教学课件设计
- 2023年学校教师招聘:班主任任前技能理论知识考试题(附含答案)
评论
0/150
提交评论