二线串行8位数模转换器MAX517的特性与应用

发布时间:2010-6-11 16:07    发布者:techieboy
关键词: MAX517 , 二线串行 , 数模转换
引言

在计算机的测控系统中,常要用到模拟输出,数模转换器(DAC)就是一种将数字信号转换成模拟电信号的器件。DAC根据输入数据的格式一般分为并行和串行两种,并行的DAC通常有8位、10位、12位和16位等,并行芯片进行D/A转换时,输出建立时间短,通常不超过10μs,但它们的引脚比较多,芯片体积大,与CPU连接时电路较复杂。有些应用并不太计较D/A转换的输出建立时间,比如在数控机床中,主轴电机通常由交流变频器来控制,交流变频器接受数控系统输出的模拟电压,当需要改变主轴转速时,从数字量转速的输入到模拟量转速的实现,由于三相异步电机的启动,中间通常有一个较长的时间(一般需要1~3s)。此时,在数控系统中,选用串行DAC来控制变频器,即可满足要求,虽然输出建立时间比并行DAC稍长(通常也不超过100μs),但这样的时间与电机的启动时间比起来,完全可以忽略不计,且串行DAC与CPU连接时所用引线少、电路简单,芯片体积小、价格低。



当精度要求不是太高时,对于单路的DAC,可以选用美国MAXIM公司生产的8位串行D/A芯片MAX517。本文将主要介绍MAX517的特性及其与AT89S52单片机的通信。



MAX517的性能简介

MAX517是8位电压输出型数模转换器,它带有简单的双线串行接口,允许多个设备之间进行通信。MAX517使用简单的双线串行接口,只需要标准的微处理器提供2根总线与之相连,如图1所示。微处理器的SCL输出时钟信号,SDA输出数据。当微处理器的SCL传送时钟脉冲时,对于MAX517来说,最高频率不能超过400kHz,即波特率不超过400kbps。图2是MAX517的一个完整的串行数据传送时序。

首先,微处理器应给MAX517一个地址字节,MAX517收到之后,给处理器一个应答信号;其次,处理器再给MAX517一个命令字节,MAX517收到之后,又发一个应答信号给处理器;最后,处理器将要转换的数字量(输出字节)送给MAX517,MAX517收到之后,再一次向处理器发送一个应答信号。至此,一个完整的串行数据传送即告结束。

MAX517与AT89S52单片机的通信

对于AT89S52单片机来说,有两种方式向MAX517传送数据,一种是串行传送方式,另外一种是普通输出方式。

● 串行传送方式

如图4所示,将AT89S52的RXD、TXD引脚分别连接到MAX517的SDA和SCL引脚,把AT89S52的串行口设置成工作方式0。此时,AT89S52 CPU的串行口为同步移位寄存器方式,其波特率是固定的,为CPU晶振频率fosc的 1/12,数据由RXD引脚出入,同步移位脉冲由TXD引脚送出,发送或接收的是8位数据,低位在先,高位在后。当一个8位的数据写入CPU的串行口发送缓冲器SBUF时,串行口即将8位数据以 fosc/12的波特率从RXD引脚输出(从低位到高位),发送完成时,置中断标志TI=1。采用上述传送方式时,正好与MAX517的串行口特性相吻合。详细的传送程序清单如下。

---CLR ES ;关串行口中断
---MOV SCON,#00H ;初始化,写串行口控制字,取工作模式0
---MOV A,#01011000B ;准备MAX517的地址字节
---MOV SBUF,A ;向CPU的串口发送
---JNB TI,$ ;送完8位否?若未送完,则踏步等待
---CLR TI ;若送完,则清TI标志
---JB P3.0,$ ;查应答信号
---NOP ;地址已送完
---MOV A,#00000000B ;准备MAX517的命令字节
---MOV SBUF,A ;向CPU的串口发送
---JNB TI,$ ;送完8位否?若未送完,则踏步等待
---CLR TI ;若送完,则清TI标志
---JB P3.0,$ ;查应答信号
---NOP ;命令已送完
---MOV A,#xxH ;准备MAX517的输出字节
---MOV SBUF,A ;向CPU的串口发送
---JNB TI,$ ;送完8位否?若未送完,则踏步等待
---CLR TI ;若送完,则清TI标志
---JB P3.0,$ ;查应答信号
---NOP ;输出字节已送完
---RET







值得注意的是,MAX517的+5V SCL在接收CPU送来的脉冲信号时,fmax=400kHz,而CPU的串口工作在方式0时,从TXD引脚输出的脉冲频率fTXD=fosc/12。这样,就要求fTXD=fosc/12≤400kHz,即fosc≤4.8MHz,也就是说,CPU的晶振频率不能超出4.8MHz。对于机床数控系统来说,选用MCS-51系列单片机作CPU时,若fosc≤4.8MHz,虽然照顾了MAX517的数据传送,但会导致系统的处理速度大大降低。因此,采用CPU串口方式0进行数据传送的方案,要视具体场合,在高速场合,通常不可取,只能用在低速场合。另外,采用串行传送时,CPU就不能再与其他系统进行串行通信了。

● 普通输出方式

在普通输出方式下,可以通过CPU的2根输出线,或系统扩展输出芯片(如8255A)的2根输出线与MAX517进行通信。图4中采用的是AT89S52的P1.1、P1.0两引脚,分别与MAX517的SCL、SDA两引脚相连接。CPU遵照MAX517的工作时序,通过其P1.1引脚在必要的时候主动地输出单个的时钟脉冲,作为时钟信号,然后从P1.0引脚逐个地输出地址字节、命令字节和输出字节。在普通输出方式下,串行数据传送的软件流程如图5所示。在数据的传送过程中,必须遵守以下的约定:

(1)起始条件

传送没有开始的时候,CPU 先将P1.1置高,使得MAX517的SCL=1;然后CPU控制P1.0由高变低,使得MAX517的SDA产生负跳变,标志着传送的开始。

(2)中间过程

中间过程需要传送地址字节、命令字节和输出字节。根据MAX517的工作时序,当且仅当SCL=0(即P1.1=0)时,SDA才能产生跳变(P1.0由0变1,或由1变0);当SCL=1(即P1.1=1)时,SDA状态保持(即P1.0=0或1,保持不变)。

(3)终止条件

当传送快要结束的时候,CPU先将P1.1置高,使得MAX517的SCL=1;然后CPU控制P1.0由低变高,使得MAX517的SDA产生正跳变,标志着传送的结束。

在普通输出方式下,不占用CPU的串行口,不影响本系统与其他系统的串行数据通信;并且普通输出方式的传送易于控制速度,不像串行传送方式对CPU的晶振频率有限制,因此推荐使用普通输出方式。

结束语

在研制的机床数控系统中,选择AT89S52单片机作为CPU,采用本文提出的普通输出方式向MAX517传送数据,实现了对交流变频器的控制。应用实践表明,采用MAX517进行D/A转换时,硬件连接简单,软件编程方便,器件成本低廉,系统运行可靠。本文提出的单片机与MAX517的通信方式,对于MAX518和MAX519两种DAC也具有一定的参考价值。

参考文献

1 吴秀清等.微型计算机原理与接口技术.中国科学技术大学出版社.2002
2 刘红玲等.实用微机接口技术.中国电力出版社.2003
3 MAXIM. NEW RELEASES DATA BOOK. Volume V. Printed USA.1996
4 李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.1993
5 王玉琳.CK-I型车床闭环控制系统的研究与应用.合肥工业大学.1991
本文地址:https://www.eechina.com/thread-12767-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表