基于CMX469A的无线MODEM设计
摘要:CMX469A是CML公司推出的FFSK/MSK全双工MODEM芯片,它内部集成了载波检测、RX时钟恢复电路和振荡电路,并具有很好的信噪比以及低电压、低功耗等特性,能够接收、发射FFSK/MSK信号,同时可提供收发时钟。文中给出了CMX469A的工作原理、应用电路和程序控制流程。
关键词:快速移频键控;CMX469A;调制解调器
1 CMX469A的主要特点
CMX469A是CML(公司新推出的全双工无线Modem芯片)它采用CMOS工艺制造,工作电压为2.7V~5.5V,当电源电压为3V时,它的典型工作电流为2mA,数据传输速率可设定为1200 bps、2400 bps和4800bps。在这三种波特率下,逻辑高、低电平的频率相应为1200/1800Hz,1200/2400Hz,2400/4800Hz。
CMX469A采用快速移频键控FFSK/MSK调制方式,可广泛应用于无线通讯系统中(例如水文检测系统、船载监控系统等)。CMX469A的主要特性如下:
●具有独立的发送、接收使能控制;
●可以接外部1.008MHz或4.032MHz晶振;
●可选择三种波特率:1200bps、2400bps、4800bps(4800bps传输时,需要外接4.032MHz晶振);
●具有载波检测、接收时钟故障恢复功能;
●低电压、低功耗(电源为3V时,典型工作电流为2mA;节能模式下,供电电流只有300μA);
●抗干扰性能优良,在信号条件比较差的情况下具有优良的灵敏度,同时可通过外部电容设置载波检测周期,以使器件在高噪音环境下具有更完善的性能。
2 CMX469A的引脚说明
CMX429A有22脚PDIP、20脚SOIC、24脚TSSOP三种封装,这三种封装的对应引脚不同。表1是20脚SOIC封装所对应的引脚功能介绍,其余两种封装只是引脚序号不相同。
表1 CMX469AD3的引脚说明
引 脚 | 名 称 | 类 型 | 功 能 描 述 |
1 | CLOCK/XTAL | I | 片内振荡器的输入端或外部时钟输入端 |
2 | XTALN | O | 片内振荡器的输出端 |
3 | Tx SYNC | O | 发送同步时钟输出 |
4 | TxSIGNAL | O | FFSK/MSK信号输出 |
5 | TxDATA | I | 发送数据串行输入端 |
6 | TxENABLEN | I | 发送使能 |
7 | BAND PASS | RX带通滤波器输出 | |
8 | RxENABLE | I | 接收使能 |
9 | VBIAS | BI | 偏置电压输出 |
10 | VSS | P | 地 |
11 | UNCLK DATA | O | 接收异步数据输出 |
12 | CLK DATA | O | 接收同步数据输出 |
13 | CD OUT | O | 载波检测输出 |
14 | RxSIGNAL | I | FFSK/MSK信号输入 |
15 | RxSYNC | O | 接收同步时钟输出 |
16 | BAUD SELECT | I | 1200/2400波特率选择 |
17 | BAUD SELECT | I | 4800波特率选择 |
18 | COLOCK RATE | I | 4.032MHz/1.008MHz外晶振选择 |
19 | CD TIME CINSTANT | BI | 载波检测响应时间调整端,影响抗干扰能力 |
20 | VDD | P | 接电源2.7~5.5V |
3 与单片机的硬件接口设计
基于CMX469A的无线调制解调器的硬件设计主要包括CMX469A与电台的接口电路以及与单片机的接口电路两部分。
CMX469A与电台的接口主要用于实现输入、输出模拟电路部分的放大。这部分电路设计非常简单,用运放LM358就可以实现,这里就不再多说,以下主要说明CMX469A与单片机的接口设计。硬件接口电路如图1所示。
CMX469A与单片机接口时,CMX469A内部产生的TxSYNC和RxSYNC同步时钟线可以同步单片机的发送和接收串行数据。由于发送数据时,从单片机输出的串行数据在TxSYNC的上升沿必须有效且稳定,因此,应该在时钟的下降沿输出单片机的串行数据。同样,在RxSYNC的下降沿读取单片机同步数据线(CLOCK DATA)上的串行数据,同时在RxSYNC的上升沿忽略同步数据线的状态。而在接收数据时,载波检测端口的输出状态可表明有效的FFSK数据是否进入CMX469A,并可通过载波检测来防止CMX469A接收虚假的数据。
CMX469A与单片机的接口电路设计主要分为两部分:发送接口电路设计和接收接口电路设计。发送接口电路由发送允许(TxEN)、发送时钟线(TxSYNC)、发送数据线(TxDATA)三部分构成。此时的FFSK数据输出线(TxSIGNAL)用于输出经过调制的FFSK信号。接收接口则由接收允许(RXEN)、接收时钟线(RxSYNC)、载波检测(Carrier Detect)、时钟同步接收数据线(CLOCK DATA)等四部分构成。此时,FFSK数据输入线RxSIGNAL为需要解调的FFSK/MSK信号的输入端口。
TXEN为发送使能控制端口,当低电平发送使能后,在时钟信号TxSYNC的同步下,TXDATA数据线上的信号将依次被采样,同时经过调制即可在TxSIGNAL引脚输出调制后的FFSK信号。在1200bps下,该系统可将高电平“1”转换为1200Hz的正弦波,而将低电平“0”转换为1800Hz的正弦波,并由TxSIGNAL端口输出。其发送时序如图2所示,Tx-DATA引脚信号将在时钟信号TXSYNC的上升沿被采样,因此,TXSYNC的上升沿必须有效并且保持稳定。设计程序时,应该在时钟信号的下降沿依次串行输出要发送的数据。拉高TxEN将使发送电路进入节能状态,这时TXSYNC将输出逻辑高电平,TxSIGNAL进入高阻态。TxEN由内部上拉为VCC。
RxEN为接收使能引脚。RxEN为高时,使能接收电路,为低时则使接收电路进入节能状态。此时,RxSYNC和接收数据端将输出固定电平。接收使能时,输入RxSIGNAL的 FFSK信号经过内部滤波器后可被恢复为串行数据输出。同时,从接收的数据中还可恢复出同步时钟,单片机通过采样此同步时钟来同步接收数据。接收时序如图3所示。设计该程序时,应该在同步时钟RxSYNC的下降沿采样CLOCK DATA引脚的数据。
4 软件设计
该MODEM的软件设计主要包括FFSK发送程序和FFSK接收程序,其程序流程图如图4所示。发送FFSK数据时,首先需要拉低发送使能端口TxEN,接着检测时钟线(TxSYNC)?并在每一个时钟下降沿移位输出一位数据,一直到数据全部发送完成,然后拉高发送使能端口。至此,FFSK发送数据结束。
接收FFSK数据时,由于接收时钟线RxSYNC被接在单片机的中断引脚上,因此,只要有FFSK数据到达,接收时钟线就会输出经过恢复的时钟信号,并引起单片机中断。为了防止误操作,进入中断子程序以后,应该首先判断载波检测端口是否有效。如果无效,表明是误操作,此时应退出接收子程序;如果有效,则继续接收FFSK数据。在每一个RxSYNC时钟的下降沿,都要锁存接收数据线(CLOCKED DA-TA)的状态,一直到接收数据结束。同时,在接收数据时,为了防止单片机由于等待数据而死机,必须加上码间隔判断,如果超过一定的时间没有收到预期的数据,则将以前接收的数据废弃,并进行数据接收初始化,以重新进行接收。
发送、接收FFSK数据内容可以按照自定义协议来完成,具体为:第一字节为数据长度,然后为若干个字节的数据内容,最后为和校验码以及异或校验码。经笔者实践证明,这种协议可以比较有效地实现数据的发送和接收,同时检测传输误码的效果也比较好。
5 结束语
利用CMX469A实现的无线MODEM具有抗干扰能力强、电路简单、程序设计方便等优点,对于只有一个串行口的51系列单片机来说,由于CMX469A不占用串行口,因此,单片机可以利用串行口方便地与计算机或者其它设备进行串口通信,从而为整个系统的设计提供方便。
评论