基于PIC的FSK/ASK超外差收发机的设计
2006-06-15 来源:单片机及嵌入式系统应用
基于FSK/ASK的超外差收发机在远程无线进入、汽车胎压检测、无线传感器等方面都有很广泛的应用。本文以PICl6F819和MAXl471、MAXl479为基本部件,设计并实现FSK/ASK超外差射频收发机的过程。
1 元器件的选择
(1)控制器的选择
在本系统设计中,需要涉及到以下几个方面:处理器性能、所支持的开发工具、处理器的成本和功耗.综合以上几个方面考虑,微控制器选择Microchip公司的一款高性价比的8位微控制器PICl6F819。PICl6FSl9采用20脚贴片封装,在线方式进行程序调试和烧写;可采用内部晶振,工作频率可选31 kHz~8 MHz;工作电压从2~5.5V;正常工作时使用2V电压供电、使用内部晶振频率为32kHz、电流为7μA;睡眠状态时使用2V电压供电、电流为0.7μA。
(2)收发器件的选择
随着无线技术的发展,无线收发芯片的集成度和性能都得到大幅度提高,芯片性能也各有特色。生产此类芯片的厂商主要有Nordic、TI和Maxim等。选择无线收发芯片时,应考虑以下几点因素:功耗、发射功率、接收灵敏度、传输速率和芯片成本等。Maxim公司的MAXl479和MAXl471分别是超外差射频发射机和接收机,都采用+2.1~+3.3V的单电源供电,可以选择FSK/ASK调制方式,低工作电流,小贴片封装。
2 系统硬件构成
2.1 发射部分
发射部分由微控制器PICl6F819和射频发射芯片MAXl479组成,其系统构成原理图如图1所示。
微控制器PICl6F819通过PA口的8个引脚控制MAXl479的发射工作。MAXl479的主要引脚功能如表l所列。
其中,Mode引脚用于选择发射芯片是FSK模式或ASK模式。Enable引脚为高电平,则MAXl179进入发射状态。DIN引脚输入串行数据。
Clk0和Clk1共同决定Clkout引脚的输出频率,该频率可以作为微控制器的时钟频率输入。Clk0和Clkl的状态组合如表2所列。
Dev0、Devl、Dev2共同决定FSK调制时的背离频率的大小,其组合状态表如表3所列。
发射的载波频率由MAXl479所用的晶振决定,晶振同发射载波频率间的关系是:
fXTAL=32×晶振频率
如果选择的发射载波频率为315MHz,则所使用品振为9.8437MHz;如发射载波频率为433MHz,则所使用品振为13.56MHz。
MAXl479使用的天线要符合50Ω阻抗匹配,天线可以采用l/4波长的鞭状天线,也可以使用PCB布线作为天线。
2.2 接收部分
接收部分由射频接收芯片MAXl47l和微控制器构成,接收方一般和其他系统连接在一起,故不需要刻意根据低功耗选择微控制器,而是根据数据处理的需要自行选择。构成框图如图2所示。
MAXl47l需要外接一个lO.7MHz的低通滤波器,晶振的频率同接收载波的频率的关系为:
fRRECEIVE=(fXTAL×32)+l0.7MHz
如果接收载波的频率为315MHz,则晶振的频率为9.509MHz;接收载波的频率为433.92MHz,则晶振的频率为13.2256MHz。
MAXl47l的主要引脚如表4所列。
其中,IFIN+MIXOUT、AGND连接10.7MHz的低通滤波器,用于ASK数据的解调。ADATA引脚为高,表示到来的是ASK解调数据;FDATA为高,表示到来的是FSK解调数据。微控制器连接SCLK、CS、DIO引脚对MAXl472内部的寄存器进行读写。
MAXl471同样要求50Ω阻抗匹配的天线,可以使用PCB布线作为天线。
3 系统软件设计
3.1 发射部分
发射部分的编程主要是对PIC16F819的操作。程序由PlCl6F8l9初始化、MAXl479初始化和数据发射三部分组成。
对PICl6F819的初始化包括设置内部晶振的工作频率和PA口的状态。对MAXl479的初始化包括设置工作模式、晶振输出频率选择和FSK背离频率的选择。数据发射部分包括:设置数据帧格式、发送位“0”或“l”子程序、发送一个字节数据子程序和循环发送多个字节数据子程序。程序流程图如图3所示。
3.2 接收部分
接收部分程序主要是微控制器通过SCLK、CS、DIO等引脚对MAX147l内部寄存器进行读写的过程。
对MAXl471内部寄存器进行写操作的时序图如图4所示。CS引脚为低,MAXl47l进入工作状态,SCLK引脚产生串行输入时钟,DIO向MAXl47l串行输出命令。命令的格式为;4位命令码、4位地址、8位数据。命令码共有3个:0x01代表写、0x02代表读、0x03代表复位。
对MAXl47l内部寄存器进行读操作的时序图如图5所示。CS引脚为低,MAX147l进入工作状态,SCLK引脚产生串行输出时钟,DI0从MAXl471串行输出数据。当ADATA为高,输出ASK解调数据;当FDATA为高,输出FSK解调数据。输出数据遵循同样的数据格式。
MAX147l内部常用寄存器和地址的对照表如表5所列。
以接收315MHz的FSK数据为例说明接收数据的编程步骤。
①写0x3000对芯片进行复位。
②写0x10f0使能所有的RF和基带部分。
③写0x135f设置晶振寄存器,芯片工作于315 MHz频率。
④写0x1120置配置寄存器的FSKCALLSB位,使能FSK校准。
⑤写0x1121开始FSK校准。
⑥读0x2900读状态寄存器位0和位1的状态,以确定FSK校准已完成。
⑦读FSK调试后的数据,由微控制器进行处理。
结 语
该系统已成功应用在一款无线遥控门锁上,使用效果良好,可以在20m的距离内无误差的识别不同的电子钥匙。发射部分使用3V的锂电池供电,发射时的工作电流在FSK模式为10.5mA,在ASK工作模式为6.7mA。FSK/ASK超外差射频收发机由于其自身的优点,在无线射频领域将会得到广泛的应用。
- 祛魅固态电池:一文看懂这项大火的技术