通过百度搜索,315/433Mhz无线传输,采用的是ASK(调幅)传输,一般在taobao上,有卖模块的,一对大概也就10块钱,甚至更便宜。使用起来也很方便。输入端一个io,输出端一个io。
用示波器,检测了一下接收端,在接收到遥控器的码型。
高电平持续时间 低电平持续时间
第一个, 600us, 1.84ms
第二个, 1.84ms, 600us
第三个, 600us 1.84ms
第四个, 600us 1.80ms
第五个, 640us 1.80ms
第六个, 1.92ms 600us
第七个, 600us 1.84ms
第八个, 1.92ms 600us
第九个, 600us 192ms
第10个, 600us 1.80ms
第11个, 1.88ms 600us
第12个, 1.92ms 600us
第13个,600us 1.80ms
第14个,1.92ms 600us
第15个,1.92ms 600us
第16个,600us 1.88ms
第17个,600us 1.80ms
第18个,1.80ms 600us
第19个, 1.80ms 600us
第20个,600us 1.80ms
第21个,600us 1.80ms
第22个, 600us 1.80ms
第23个, 600us 1.80ms
第24个, 600us 1.80ms
第25个, 600us 低电平
以上的数据表明,通过高电平,低电平持续时间来区别“0”和“1”,一帧数据有25个码。
把遥控器拆掉以后,看到的芯片是sc2260 ,不过没有看到所谓的15ms的前导码?连续发送时,码与码的间隔为18.2ms
上图是用示波器测试315Mhz收发模块的收发波形图
蓝色的是发送模块,黄色是接收模块
发送模块,和接收模块都接5v供电,发送模块是通过stm8单片机的串口,以波特率为9600的速度发送0x55
接收模块,除电源外,输出出口直接与示波器探头相连,测的上图波形
从上图可以反映出来一些信息:
1,发送模块的io电压为5v,而接收到的数据则不足5v,大概在4v左右。
2,发送端波形规则,因为是用单片机驱动的,所以肯定规则,而接收端的波形则不太规则。
3,由于是通过串口发送,所以串口发送端的空闲电平为高电平,而315M接收模块的空闲电平则为低电平
4,空闲时,接收模块会接收到很多不稳定的杂波。
5,当发送模块完成后,会有一段时间的电平保持时间,然后继续输出杂波
6,发送上升沿时延迟大,而发送下降沿的延迟小。
当将发送端直接与串口相连时,无论设置为多少波特率,都会收到乱码。而发送端发送的数据,虽然可收到,但有误码存在。
这两天在百度搜索了一下遥控器芯片sc2262的说明书,又回想了一下以前查的资料,又看了一下波形。知道了:
1,首先是芯片,地址码,有3中状态,这三种状态是 ,接地,接电源,浮空。这样的话,可以多编很多码,这是一方面。
2,芯片的数据码也可以当地址码,但数据码和地址码的区别是,数据码是负责告诉芯片,什么时候,向外发送数据的,而地址码就没有这个功 能,当几个数据中,只要有一个为高电平时,则会触发芯片连同地址码,一并发送出去。这时,接收端即可接受解析。
3,数据发送时,先发地址码,再发数据码最后才发一个很长很长的低电平,无论叫同步码或者叫引导码,都是最后一个发的。全都发完才算一帧数据
4, 为保证数据的准确传输,一个数据的变化,芯片则会向外发送4次数据。
5,震荡电阻,发送的震荡电阻不同,接收的震荡电阻也不同。
对于以上这4个问题,在写程序时,有以下几点需要注意
发送端:发送的地址,由于增加了浮空输入,所以要对函数的参数进行响应调整,至于怎么调整,目前还没整明白。
发送端:每次发送4个重复的帧。
发送端:脉冲时间要根据接收端不同的振荡电阻进行响应调整。
接收端:同步码的判断。
接收端:接收码的格式,应与发送码一致。
接收端:同时接收4次,判断同时两次,即可执行响应函数。
接收端:考虑震荡电阻,对接收到的数据进行识别。
联系客服