论坛风格切换切换到宽版
  • 15886阅读
  • 59回复

性价比新选择?FX602 APRS解码初步实验 [复制链接]

上一主题 下一主题
离线wirelessfans
发帖
150
只看该作者 40楼 发表于: 2010-12-31
'
我原来也对波形反相感到疑惑。看到wirelessfans对nrzi的解释现在也理解了。波形的相位相反,但是只要遵循0跳1不跳,连续5个1也要跳(为了同步时钟)的规则就行了。
'
同步很简单,来了波形,抓0x7e,通常为了打开信道,激活睡眠的接收机,发送方会发送数个,数十个hdlc 0x7e帧头的,没抓到0x7e前需要每个bit的分析,一旦抓到0x7e后,就是抓到了整个帧的顺序,以后就可以一次抓8个bits了,如果仍是0x7e,那么就说明还是在帧头,一旦下一个字节不是0x7e啦,就说明开始接收帧内信息了。然后放到buffer里面就行啦,buffer了帧内的字串后,又遇到了0x7e,就说明这个帧结束啦,礼貌性的多抓几个判断下就ok啦。

就是这么个算法吧?呵呵

我这个应该是独家透露如此的技术秘密细节吧 ? 哇,有没有人把这个当技术秘密极度保密呢,哈哈哈哈哈

有木有高手出来鉴定一下啊 。。。 拜师拜师 。。。
离线wirelessfans
发帖
150
只看该作者 41楼 发表于: 2010-12-31
'
这两张测出了发送的频率
'
bg9iu,你能否将这个波形的调制声音录制成.wav上传到这里 ?
离线BG2BHC
发帖
5338
只看该作者 42楼 发表于: 2010-12-31
'
同步很简单,来了波形,抓0x7e,通常为了打开信道,激活睡眠的接收机,发送方会发送数个,数十个hdlc 0x7e帧头的,没抓到0x7e前需要每个bit的分析,一旦抓到0x7e后,就是抓到了整个帧的顺序,以后就可以一次抓8个bits了,如果仍是0x7e,那么就说明还是在帧头,一旦下一个字节不是0x7e啦,就说明开始接收帧内信息了。然后放到buffer里面就行啦,buffer了帧内的字串后,又遇到了0x7e,就说明这个帧结束啦,礼貌性的多抓几个判断下就ok啦。
就是这么个算法吧?呵呵
我这个应该是独家透露如此的技术秘密细节吧 ? 哇,有没有人把这个当技术秘密极度保密呢,哈哈哈哈哈
有木有高手出来鉴定一下啊 。。。 拜师拜师 。。。
'
我理解也是这样的,不过对于比较长的数据帧收发双方时钟积累误差的影响具体有多少还不了解
离线wirelessfans
发帖
150
只看该作者 43楼 发表于: 2011-01-01
[quote=小小ham]我理解也是这样的,不过对于比较长的数据帧收发双方时钟积累误差的影响具体有多少还不了解[/quote]
你看一下nrzi编码就知道,你考虑的这个问题不是问题,哈哈
无论多长的帧,都不会有累积误差的。usb也是nrzi编码传输的,也没有时钟线,只有d+,d-,可是,无论你传输多少g、t的数据,都不会有误差的。
离线bg9iu
发帖
12
只看该作者 44楼 发表于: 2011-01-01
连续5个1也要跳(为了同步时钟),我理解这里的同步是为了正确的解调bit。如果数据是连续的1那么音调不会改变,这样你如何知道这些连续的1是多少个呢。必定要设置一个定时器来延时采样,定时器的时间就是需要同步的。连续5个1必须跳就是为了将延时的误差控制在一个范围内。

wirelessfans说的抓0x7e,应该是先需要完成字节同步,能够正确的从比特流区分字节。

然后是帧同步,可以正确的解释ax.25协议了。
离线bg9iu
发帖
12
只看该作者 45楼 发表于: 2011-01-01
录音文件上传。
附件: Record10.zip (0 K) 下载次数:46
离线i86net
发帖
368
只看该作者 46楼 发表于: 2011-01-01
顶呀,学习了,又有新东西了,嘻嘻
离线BG2BHC
发帖
5338
只看该作者 47楼 发表于: 2011-01-01
'
连续5个1也要跳(为了同步时钟),我理解这里的同步是为了正确的解调bit。如果数据是连续的1那么音调不会改变,这样你如何知道这些连续的1是多少个呢。必定要设置一个定时器来延时采样,定时器的时间就是需要同步的。连续5个1必须跳就是为了将延时的误差控制在一个范围内。
wirelessfans说的抓0x7e,应该是先需要完成字节同步,能够正确的从比特流区分字节。
然后是帧同步,可以正确的解释ax.25协议了。
'
理解一些了,怪不得w2fs kiss tnc的程序里只是简单用了一个循环延时而没有用定时器
离线BA5AG
发帖
4257
只看该作者 48楼 发表于: 2011-01-02
就定时精度而言,循环不会比定时器中断差,相反,由于中断处理机制的缘故,定时器中断比循环要差。
在windows或unix中,由于多进程的缘故,循环不能用来做准确定时,但是没有os的mcu不存在这个问题。当然,在那段循环中,要关闭中断。
离线BG2BHC
发帖
5338
只看该作者 49楼 发表于: 2011-01-02
学习了 谢谢5阿哥
离线wirelessfans
发帖
150
只看该作者 50楼 发表于: 2011-01-02
有没有人用过njm2211呀,哈哈,这个也不错啊,fsk单解调ic啊,价格也是宜人啊,也有成熟应用。
离线wirelessfans
发帖
150
只看该作者 51楼 发表于: 2011-01-02
'
就定时精度而言,循环不会比定时器中断差,相反,由于中断处理机制的缘故,定时器中断比循环要差。
在windows或unix中,由于多进程的缘故,循环不能用来做准确定时,但是没有os的mcu不存在这个问题。当然,在那段循环中,要关闭中断。
'
我觉得这个不能一概而论。
stm32里面的systicks中断就很精准。不同的应用场合,各有优劣。但总的说来,还是中断灵活、精准些。个人意见。
离线wirelessfans
发帖
150
只看该作者 52楼 发表于: 2011-01-07
谢谢楼上朋友们的支持呀,经过对比发现 fx602 和 fx614的解码是完全相同的哦,就是说,用fx602替代fx614完全没问题哦 。。。
年底好忙,努力中……
离线BG6JJI
发帖
4942
只看该作者 53楼 发表于: 2011-01-19
贴一段发送短信息的代码:

2011-01-17 1144 utc bg6jji: 75 bytes
0x00 b g 6 j j i > a p z d 4 1 , t c p i p * , q a c , t 2 f z : : b
  4247364a4a493e41505a4434312c54435049502a2c7141432c5432465a3a3a42
0x20 g 8 e j t     : t e s t   m e s s a g e   f r o m   a n d r o
  4738454a542020203a74657374206d6573736167652066726f6d20416e64726f
0x40 i d   p h o n e { 7 3
  69642070686f6e657b3733
离线dingding
发帖
978
只看该作者 54楼 发表于: 2011-01-19
aprs技术贴,强烈顶!
离线cqbest
发帖
20
只看该作者 55楼 发表于: 2011-01-20
好东东!期待!
离线BG6JJI
发帖
4942
只看该作者 56楼 发表于: 2011-04-14
老大们,怎么样了?
离线BG2BHC
发帖
5338
只看该作者 57楼 发表于: 2011-04-28
要继续干活了,回来温习一下。
离线BG2BHC
发帖
5338
只看该作者 58楼 发表于: 2011-04-29
请教下,ccitt运算后是否需要取反再发送?
离线BG2BHC
发帖
5338
只看该作者 59楼 发表于: 2011-04-29
自己写了nrzi和hdlc解码的程序,还没有试验,本子的tab键先坏了。。
温习了一下数字通信手册,发现了一点问题。按照154页的说法,似乎并没有用nrzi编码。是作者出错了吗?