再次感谢大家的帮助,在楼上的提示下,我又想到了一个fsk调制的实现方法:我把基准频率定在1khz,那么单片机在发送a的时候,a的值和khz的值是一一对应的,即如果频率是100.000mhz(a=0),当a=50时,则频率的低位就是100.050mhz。
我把要发送的数据给单片机,单片机根据发送的是1或0,程序里对a进行修改(比如3khz调制,则a加3或a减3)。然后发给pll新的分频数,频率自然就变了。
缺点:单片机肯要忙死,不停的判断,不停的发分频数。我的程序里发一次分频数要400us,再考虑pll的锁定速度(这里是不是可以把lpf的时间常数减短?)也就是说数据中每一位的时间大概要有几百ms。对于实时性不强的,可以把数据一次性的先存在单片机里,慢慢发。实时性强的就没戏了。而且系统要发的数据和实际发射的数据肯定有延时。
给朋友讲了我的想法,他说我这叫“软件无线电”(第一次听说,哪位给解释一下),也不知道是不是。