资 源 简 介
原理:此项目的关键是,FSK是连续相位的,且高电平与低电位的频率不成倍数关系(1200Hz与2200Hz).采用测量脉冲宽度的话不容易确定上升沿与下降沿.理论上用AD转换后的幅值对时间查表可确定上升下降沿,但软硬件太复杂,还不如买成品fsk解调IC.我采用的办法是测量脉冲宽度,因为数据是异步串行通讯方式,由1到0的下降沿来确定时钟,即由1200hz到2200hz的改变来确定,关键是1200到2200的改变是任意相位的,而不是从0相位开始.说明白点,用单片机不停测脉冲宽度,先是1200的宽度,突然来了个脉冲宽度在1200与2200之间,这说明下降沿在这个脉冲内的某个时间,怎么确定这个时间呢?经过我周密计算 :--) ,公式如下,T(下降沿距当前时间)=[ T(这个脉冲时间) - T(2200hz脉冲宽度) ] x 2.2有了起始位的下降沿,检测1200Hz,2200Hz对你们来说就容易了吧?