基于ADuC7020的HART接口时钟与调制解调电路设计
0赞本接口电路主要实现的功能是协调现场检测设备与HART总线之间的通信,硬件设计包括输入ADuC7020处理电路,HART信号的调制解调电路,HART信号的监测,HART信号输入调理电路,HART信号输出调理电路,D/A转换电路及键盘和显示电路等。
1 .ADuC7020外围电路
本设计选用ADI公司的ADuC7020,它是精密模拟微控制器,其内部是一个功能强大的32bit RISC内核,采用ADuC7020可以让模块的功能得以通过软件方式来设定,或控制更为复杂的模块。在其内部集成有精密的A/D和D/A转换器以及闪存微控制器,包括有45Mbps ARM7TDMI 闪存MCU和5通路1MBPS、12位的ADC以及四个12位轨到轨电压输出DAC,此外它还集成了精密的基准电压源,62KB在电路中可重新编程的闪存程序/数据存储器,8KB SRAM,4个串行接口如UART,SPI和双I2C,比较器,可编程逻辑阵列(PLA),电源监视器(PSM),加电重置(POR)以及灵活的核时钟选择和降功耗模式,能在系统中进行串行编程和JTAG仿真。

由于ADuC7020使用3.3V供电,所以我们选用AD公司的电源芯片ADP3333给ADuC7020供电,它将5V的直流输入电压转换成3.3V直流输出。S1为运行模式选择键,S2为复位键,J1是下载端口,本次设计采用串行下载方式下载程序。ADuC7020模式选择方法是:当复位管脚低电平时,如果10脚为低电平则为程序下载模式,如果10脚是高电平则为运行模式。
2. HT2012时钟电路
HT2012接收460.8kHz的外部时钟信号,用于产生各种内部和外部的时钟和控制信号。内部时钟并不是一直工作的,HT2012是一款低功耗芯片,其内部某一模块不进行工作的时候,那模块的时钟便关闭以降低功耗,这也就是HT2012低功耗的原因。除此之外,HT2012的低功耗还表现在460.8kHz的时钟频率,大多数芯片使用的时钟频率与之相比要高的多。在一般正常的情况下,内部的时钟频率为19.2kHz,从19.2K引脚输出,作为其他外部电路的输入或用于进行精确的时钟同步的时候使用。芯片允许的460.8kHz时钟频率的误差是0.1%。

本次设计中采用常见的1.8432MHz的晶振模块,通过74HC4040进行4分频产生460.8 kHz的频率,1.8432MHz
4=460.8kHz。74HC4040是一款12阶的二进制计数器芯片,一般为16脚的DIP封装。除了16和8脚分别作为电源干和地、10脚作为输入端、11脚为复位端,高电平有效,所以接地、其余的各脚分别作为1~12阶的分频输出。要从1.8432MHz的晶振中分频出460.8 kHz,需要的是4分频,2阶,于是从CD4040B的7脚引出就获得了460.8kHz的时钟频率。
460.8kHz的时钟频率将被分频后产生1200Hz和2200Hz的表示逻辑‘1’和‘0’的频率。从460.8kHz出发,分别经过3分频和5.5分频产生153.6kHz和83.8kHz的频率,再共同经过70分频后,就可以分别得到1200Hz和2200Hz的频率。
3. 调制解调电路
HART协议符合BELL202标准,采用频移键控技术,在传统的4~20mA模拟信号上叠加数字信号,允许模拟信号和数字信号同时传输,这也是它是模拟通信向数字通信的原因所在。它用1200Hz的单个正弦波代表数字量“1”,用2200Hz的两个正弦波信号代表数字量“0”。由于在HART总线上传输的是FSK信号(可理解为正弦信号),而单片机处理的是数字信号,所以HART信号要经过调制解调信号才能供单片机处理。在此,我选用HART专用调制解调芯片HT2012。
Smar公司专门为HART产品开发的HT2012,它符合BELL202标准,采用频移键控技术,信号传输速率为1200bps,半双工工作方式,功耗仅为40uA,在调制工作模式时,HT2012将CPU的串行口输出端输出的不归零数字信号调制成1200Hz(逻辑1)和2200Hz(逻辑0)的FSK方波电压信号,经AD421叠加在4~20mA回路上输出;处于解调工作模式时,HT2012将回路信号经带通滤波、放大整形后取出的FSK信号解调为数字信号。
由于是半双工工作方式,由CPU改变HT2012的INRTS脚上的电平以决定是进行调制还是解调工作。在半双工方式下,为便于HART设备侦听网络和启动接收,HT2012还提供载波检测信号OCD,将它接到CPU的某个I/O口上,在无HART通信的FSK信号时,OCD保持高电平,一旦接收到信号,延迟一小段时间后,OCD端的高电平就变为低电平,从而触发CPU中断。

电路说明:ADuC7020共有10个复合串口(SPM0~ SPM9),可通过改写相应的寄存器使能复合串口的功能,包括:普通I/O,UART,SPI,I2C及可编程逻辑阵列输入/输出接口。本设计中,将SPM0及SPM1分别定义为UART传口通讯方式的输入/输出管脚:SIN和SOUT。同时,定义SPM0及SPM1为普通I/O口,分别接到HT2012的INRTS和OCD引脚,用以控制HT2012的调制/解调模块的使能,并且接收HT2012的载波监听信号。
工作时,ADuC7020将要传输的数据通过SOUT引脚送入HT2012的调制模块输入管脚ITXD,同时置低INRTS,调制器使能,HT2012将TTL电平数据调制为FSK方波。当IRXA引脚出现正确的HART信号,OCD自动置低,触发ADuC7020动作,置低INRTS,解调器使能,HT2012将FSK信号转换为TTL电平信号由ORXD引脚输出,从而ADuC7020接收总线上的数据。
