摘要:73K222L是TDK公司新推出的单片式调制解调器,主要用于单片机测控系统。文章分析了它的主要特性,同时结合AT89C51微控制器给出了73K222AL与单片机AT89C51的接口电路及应用程序设计。
关键词:调制解调器 微控制器 通讯 73K222AL
1 概述
73K222AL是TDK公司新近推出的K系列单片式调制解调器,是专门用于和微控制器配套以组成远距离数据通信与控制系统的集成电路芯片。73K222AL芯片是73K212的替代产品,其主要功能如下:
●符合CCITTV.22,V.21,Bell 212A和Bell 103标准协议;
●全双工,速度可达1200bps(DPSK方式);
●具有DTMF拨号功能;
●具有应答音、防卫音的发送与检测功能;
●接口与MCS51系列微控制器兼容;
●可异步、同步串行通讯;
●采用单一5V电源供电。
73K222AL具有TQFP44、DIP28和PLCC28三种封装形式,各主要引脚的功能如下:
VDD与GND:电源接入端。
VREF:内部参考电压,与地之间应接0.1μF旁路电容。
Iset:芯片参考电流端,应外接2MΩ电阻到VDD。
ALE:地址锁存端。
AD0~AD7:地址/数据复用引脚。
CS:片选信号。
CLK:振荡器输出。
INT:中断输出。
RD和WR:读、写控制端。
RESET:复位端、高电平有效。
RXD、TXD:分别为串行输入、输出端。
EXCLK、RXCLK、TXCLK:同步通讯控制端。
RXA,TXA:模拟输入与输出端。
XTL1、XTL2:11.0592MHz晶振接入端。
2 接口电路
73K222AL与单片机的接口电路如图1所示,该电路主要由耦合电路、放大处理电路、modem电路和MCU电路等四部分组成。
2.1 耦合电路
该部分电路包括由光耦O1,电容C8,二极管D1等组成的铃流检测电路以及由PHL1音频隔离变压器组成的隔离电路。由于通讯系统被叫方摘机前,程控交换机将提供25Hz、POVAC的振铃信号。因此可通过光耦产生方波以触发微控制器,以使微控制器在响应该触发后吸合继电器来形成直流通道。
PHL1为耦合变压器,它的参数对整个电路影响很大。对于73K222AL芯片,笔者通过实践得出了如图2所示的该变压器等效电路。该电路在600Hz~3.5kHz范围内的幅度变化在±0.65dB以内,等效阻抗为600Ω,原副级匝数比为1:1。
2.2 放大处理电路与modem电路
该部分电路由LM358集成运放以及外围器件所组成,可用于输入、输出信号的幅度调整。
由于所有modem芯片对电源的要求都比较高。因此应在73K222AL的电源接入端接上0.1μF和22μF的旁路电容器组,以滤云电源噪音。此外,在PCD设计时,还要注意使modem电路尽可能集中,以使其受外界的干扰可能的小。
2.3 MCU电路
MCU电路主要用来对modem芯片进行设置以及串行数据的收发。在这里,笔者采用的是AT89C51单片机。
在单片机与modem的接口电路中,主要有三类信号。
(1)地址与数据:它们由AD0~AD7所组成。
(2)控制信号:由CS、RD、WR组成。
(3)串行通讯线:主要由RXD、TXD等组成。
图1中的电路是经过调试的实用电路,可以直接应用到相关系统中。
3 73K222AL中的寄存器
73K222AL有5个寄存器,可用来对芯片进行设置与控制。
3.1 寄存器0
寄存器0为控制寄存器,用来设置通讯方式和通讯速率,其D0~D7位的意义如下:
对于D0位:当D0=1时,为主叫方,D0=0时为被叫方。所谓主叫方与被叫方,其实就是规定一下数据传输通道。对于主叫方,它数据发送使用的是1200Hz通道,而接收方的数据发送使用的则是2400Hz通道。因为只有这样规定一下,才可进行全双工通讯。
D1为0时,表示不允许TXA输出。D1为1时,表示允许TXA输出。
D6通常为0,其余各位的组合选用方式如表1和表2所列。
表1 寄存器0的D2~D5位组合选择方式
D5 | D4 | D3 | D2 | 功 能 选 择 |
0 | 0 | 0 | 0 | 省电方式 |
0 | 0 | 1 | 0 | 外步同步方式 |
0 | 0 | 1 | 1 | |
0 | 1 | 0 | 0 | 异步通讯,8位(1位起始,6位装饰,1位停止) |
0 | 1 | 0 | 1 | 异步通讯,9位(1位起始,7位数据,1位停止) |
0 | 1 | 1 | 0 | 异步通讯,10位(1位起始,8位数据,1位停止) |
0 | 1 | 1 | 1 | 异步通讯,11位,(1位起始,8位装1饰,位奇偶位,1位停止) |
1 | 1 | 0 | 0 | 选择FSK方式 |
表2 寄存器0的D4、D5和D7位组合选择方式
D7 | D5 | D4 | 选 择 |
0 | 0 | X | DPSK方式,通讯速率1200bps |
1 | 0 | X | DPSK方式,通讯速率为600bps |
0 | 1 | 1 | FSK方式,贝尔103协议 |
1 | 2 | 1 | FSK方式,CCITTV.21协议 |
对于图1所示接口电路,选择波特率为1200bps,对于10位异步串行通讯可将寄存器0设置为:
主叫方:00011011B
被叫方:00011010B
3.2 寄存器1
该寄存器为控制发送单元,其中D0、D1位用于选择工作模式。正常为00,其余为测试状态。
D2为0时为正常工作状态。为1时为省电状态。D3为0时选择11.0592MHz作为CLK脚输出。为1时选择16倍数据速率作为CLK脚输出。
D4为0时选择正常工作方式,此时DPSK数据要通过加扰器。D4为1时选择不加扰方式。
D5为0时禁止INT输出。为1时允许INT输出。
D7和D6的组合选择方式如表3所列。
表3 寄存器1的D6和D7位组合选择
D7 | D6 | 选 择 |
0 | 0 | 选择发送TXD上的数据信号 |
0 | 1 | 选择交替0或1作为发送数据 |
1 | 0 | 选择全1作为发送数据 |
1 | 1 | 选择全0作为发送数据 |
3.3 寄存器2
该寄存器主要用于通讯过程中的监测,其各位的定义如表4所列。
表4 寄存器2的位定义
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
X | X | 与RXD相同 | 未加扰信号检测 | 载波检测 | 回铃音检测 | 监测呼叫信号 | 监测接收的信号电平 |
3.4 寄存器3
寄存器3用于控制接收和产生应答音、DTMF拨号音以及拨号音。
回应答音时,设置为10100001B。
发拨号音时,设置为1001D3D2D1D0,其中D3D2D1D0组成拨号的16个键值[1]。
允许接收RXD时,设置为00000000B。
除了上述3个寄存器外,寄存器4为身份识别寄存器,对于73K222AL芯片,其读出值的D7位为1,D6位为0。
4 控制软件程序
4.1 初始化
初始化的目的是设置波特率和中断管理程序。具体程序如下:
MA2:MOV DPTR,#0E000H
MOV TMOD,#21H ;BAUD=1200
MOV TH1,#0E8H ;MODEM方式
MOV TL1,#0E8H
;
MA0:MOV SCON,#01010000B
MOV PCON,#00H
MOV TH0,4CH ;50mS 19456
MOV TL0,#00H
SETB TR1 ;START T1
SETB TR0 ;START T0
CLR ES ;不允许串行中断
SETB EX0;允许INT0中断,用于专线上信号的检测
SETB EX1 ;允许T0中断
SETB IT1
CLR IT0
SETB PT0
SETB EA
4.2 拨号子程序
如使用电话系统,主叫方只有通过拨号才能与被叫进行联接。这个过程手工艺流程刺:吸合继电器
DIAOUT:mov dptr,#0E000h
mov a,#00011001b
movx @dptr,a
inc dptr
mov a,#00110000b
movx @dptr,a
;
mov rl,#0
t-d0:mov a,r1
mov dptr,#hao1
movc a,@a+dptr
;
mov dptr,#0E003h
movx @dptr,a
;
mov dptr,#0E000h
mov a,#00011011b
movx @dptr,a
;
lcall edlay
;
mov dptr,#0E000h
mov a,#00011001b
movx @dptr,a
;
lcall edlay
inc rl
cjne r1,#4,t-d0
ret
hao1:DB 92h,9ah,91h,9ah
这里,被叫方的电话号码2010,通过修改数据区hao1,就可容易地实现其它号码的呼叫。
4.3 回应答音
被叫方在接到铃流信号后,由单片机产生中断以吸合继电器,发送应答音给主叫方,程序如下:
INT_0:PUSH DPH ;用于吸合继电器,回应答音
PUSH DPL ;再看对方是否有数据来。
CLR P1.6
CLR ES
MOV 2FH,A
lcall edlay
lcall edlay
;
mov dptr,#0E001h
mov a,#00110000b
movx @dptr,a
;不允许RXD
mov a ,#10100001b
mov dptr,#0E003h
movx @dptr,a
;
mov dptr,#0E000h
mov a;#00011010b
movx @dptr,a
;允许TXA
LCALL EDLAY
LCALL EDLAY
在这里,被叫方是将发送的2100Hz信号作为应答音。
4.4 主叫方正常通讯
在被叫方回应答音后,主叫方可以监测寄存器2的D2位,如果为1,则可对主叫的modem作如下设置:
mov a,#00000000b
mov dptr,#0E001h
movx @dptr,a
;
mov a,#0000001b
mov dptr,#0E003h
movx @dptr,a
;
mov a,#00011011b
mov dptr,#0E000h
mov @dptr,a
下面是0.5秒的延时子程序,可用来进行上述程序的协调。
EDLAY:MOV R6,#255
EDLA1:MOV R7,#255
EDLA2:NOP
NOP
NOP
NOP
Nop
Nop
Nip
NOP
NOP
DJNZ R7,EDLA2
LCALL W
DJNZ R6,EDLA1
RET
4.5 被叫方的正常通讯设置
被叫方在回答音后,就可对73K222AL的几个主要寄存器作如下设置,以便进入通讯状态。
; 允许RXD
mov a,#00011000b
mov dptr,#0E000h
movx @dptr,a
;
mov a,#0000000b
mov dptr,#0E001h
movx @dptr,a
;
movx a,#0000001b
mpvx @dptr,a
;
movx @dptr,a
;
mov a,#00011010b
mov dptr,#0E000h
movx @dptr,a
5 结束语
本文详细阐明了73K222AL的使用要点。从目前的资料来看,73K222AL仍是一款性价比非常好的单片式modem芯片,TDK公司K系列的其它款modem芯片的基本原理与73K222AL相近,因此,本文的讨论对于K系列的其它芯片也有参考意义。