本帖最后由 zdJack 于 2014-12-2 16:36 编辑
写在前面:
1.本帖与《DSM2/DSMX发射机、接收机的简单资料~~~~~~~》是配套的,因为无法避免所有提及到SPEKTRUM了,仅做简单描述。
再次声明所有发布不属于任何厂商,不针对任何产品,仅作为第三方简单整理自己感兴趣的资料,请根据自己的需要选择判断,强烈鄙视借机发广告的行为。
http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1013299&fromuid=252427
2.本帖是以E-Flite公司LP5DSM模块为蓝本进行描述,原因很简单,因为我看的原贴就是以它为基础的,另外我都不知道E-Flite公司是哪里的或是干嘛的;
3.如果需要查看原帖请自行搜索“Build your own DSM2 transmitter module (its working!)”相关内容,自行查阅;
4.本贴仅对个人感兴趣的内容进行复制粘贴,我只是个搬运工,也只找了自己感兴趣的,如需要了解全部相关内容请参考第三条;
5.原贴的发布时间为“2007年7月31日,上午12时38分”时间相对很旧,请明确这一点,以确定本帖是否真正是你需要的内容。
6.本内容同时发布于5imx及百度空间,转载请注明出处,谢谢。
以下为正式内容:
使用的模块是 Blade CX2 直升机1MW的DSM2发射机模块,有4个连接:Vcc(3.3V), ground, 串行数据接口和 LED输出。(PS:这位大婶的LED输出口竟然自己感觉是)
作者检查串行数据端口的到的结论是:电平转换器似乎是每帧14字节,波特率为115200.(大婶啊,为什么要说似乎呢?我还是比较感兴趣他是怎么测得这些数据的。)
然后作者给出了这样一个假设:假定数据值的每个信道可以被确定,并且可以被加入,那么可以很容易地取得模块并将其连接到任何另一遥控器的PPM***校验。如果已经有了PPM串行数据输出,那么可以计算出数据,写出合适代码,驱动1MW DSM2模块。(好主意)
当有人问到大婶如何对已加密的2.4G收发芯片做逆向工程得到数据时,大婶的回答是“不知道”然后才想检查从控制器mega8到无线发射模块是否被加密。如果加密了作者会很快放弃{:1_69:},另外作者表示对高功率版的发射模块没兴趣,选择LP5DSM模块是因为他便宜,而且对它的工作感兴趣。
作者对对DSM2进行了分析,为了确保内容的完整性,先把相关的内容原文添加下,内容如下:
(SP:这里鄙视一下,原来这里是有英文的原文的,但是被论坛防--火--墙拦--截了,吓我一身冷汗,一点一点写的,要是没了不被死了~~~,百度空间的发上去了,没问题。想看这段原文的可以找下原贴或看百度空间上的,我不保证下面的翻译是正确的。。。。{:1_69:})
然后提供下简单的大致译文,内容入下:
我尝试125K,而不是115200串行端口速率的数据来实现更加容易观察和跟踪。
无线电发送每帧14字节,6个信道的信息,2头字节。数据传输速率是125K 8,N,1
每个帧开始于00 00
每一对的字节后表示的信道和它的值。
每个通道都有一个有效的范围(1024 steps - 10 bit),信道号被嵌入在每一对的字节。
无线电发射第6道是通道1的一个副本,其是端点限制。好像是在进行飞机模式切换的时候,信道6才可以是一个完整的10位信道。
这里是每个通道允许的最小和最大值以及每个通道的有效的10位范围。
CH1(左摇杆,上/下)
字节3&4
最小/最大:0056-03AA
10位范围:000-3FF
CH2(右摇杆,左/右)
字节5&6
最小/最大:0455-07A9 10位范围:400-7FF
CH 3(右摇杆,上/下)
字节7&8
最小/最大:0855-0BA9
10位范围:800 BFF
CH4(左摇杆,左/右)
字节9&10
最小/最大:0C56-0FAA
10位范围:C00-FFF
CH5(旋钮,右上)
字节11&12
最小/最大:1056-13AA
10位范围:1000-13FF
CH6(CH1的复本)-受限通道
字节13&14
最小/最大:152A-162A
10位范围:1400-17FF
渠道细分:
前两个比特是00
#接下来的四个比特表示道#
剩下的10位是为PPM数据串行值
00 00 00 xx xx xx xx xx - ch1 0000-03FF 00 00 00 XX XX XX XX XX - CH1 0000-03FF
00 00 01 xx xx xx xx xx - ch2 0400-07FF 00 00 01 XX XX XX XX XX - CH2 0400-07FF
00 00 10 xx xx xx xx xx - ch3 0800-0BFF 00 00 10 XX XX XX XX XX - CH3 0800-0BFF
00 00 11 xx xx xx xx xx - ch4 0C00-0FFF 00 00 11 XX XX XX XX XX - CH4 0C00-0FFF
00 01 00 xx xx xx xx xx - ch5 1000-13FF 00 01 00 XX XX XX XX XX - CH5 1000-13FF
00 01 01 xx xx xx xx xx - ch6 1400-17FF 00 01 01 XX XX XX XX XX - CH6 1400-17FF
如果支持DSM2低功率模块:
00 01 10 xx xx xx xx xx - ch7 1800-1BFF 00 01 10 XX XX XX XX XX - CH7 1800-1BFF
00 01 11 xx xx xx xx xx - ch8 1C00-1FFF 00 01 11 XX XX XX XX XX - CH8 1C00-1FFF
现在使用上述的数据有可能从LP5DSM无线电DSM2模块建立一个信道6的PPM串行编码器接口。
(其实我很想知道,他说怎么做到这些分析的,因为我也并不具备相关的专业知识,所有我不知道,如果我愿意,以后我会弄明白 。另外我在“给力”固件作者的微博上也看到过一份类似的DSM2协议分析,有需要了解的可以自行查找。) 作者还给出了验证是否加密的办法:使用一块兼容的Cypress评估板用ISP链接查看信号输出情况。(PS:大致是这样,但是还是不是很理解{:1_69:}) 作者有提到:如果你是微行飞行,那么也许使用DSM2模块连接到你最喜欢的发射器和AR6300的微接收器将是一个不错的选择。作者有用三通的来玩小车,并且接收器只有7g,或者更小更轻。(PS:这个主意听起来不错,前提是你自己会弄这些,至少我现在不会。{:1_69:}不过之前有了解过微型模型的收发系统,看起来不错,有需要可以自行查找相关内容。)
作者好像已经成功解决了问题,但是描述的不是很详细,大致是作者得到了相关硬件,并编写的代码从作者的遥控器获得PPM输出串行数据。 CPU是Tiny2313主频为4MHz的。
tiny2313是主频为4MHz给为250ns或4096步进分辨率,然后将数据转移两位(或除以4)得到1us的分辨率(1024步骤),而这正是LP5DSM模块需要。然后,重新排序渠道,让它们匹配什么LP5DSM用途最后所有引导到UART在125K。目前,正在倾向PPM频道7和8,但作者不清楚是否会奏效(PS:这哥挺有幽默感的{:1_69:}),需要一个7或8通道接收器的Spektrum尝试一下。代码的变化将是非常简单的。我已经制定的限制等适当的1024位值不能超过。
作者有提供相关的东西:
另外在作者的实例中,作者的转换模块如下图:
在了解的过程中作者用的是tiny2313实现,有人在作者的帖子回使用PIC12F683实现类似的功能,如果需要了解请自行查找“PPM Translator Processor for Spektrum DX6 (Unigen) RF Deck”相关内容。
以上为本帖全部内容。还有两个相关的内容没有整理完成。
特别说明:本帖并不鼓励去做相关尝试,如果你有兴趣且有能力的话当然不反对。
|