EV1527收發Protesu.zip
(260.28 KB, 下載次數: 37)
EV1527_收發.zip
(149.18 KB, 下載次數: 40)
可以看出,每次按鈴,由同步碼引導的數據被發送了8次。
測量得到窄脈沖=346us,長寬脈沖=10.732ms,寬脈沖=1.04ms
EV1527的發碼格式:
首先發送一個同步碼:窄脈沖+長寬脈沖
接著發送20位地址碼:
接著發送4位數據碼:
解讀一下邏輯分析儀測量的數據:
經過實際解讀,發現,它和資料上介紹的不太一樣。實際硬件的發碼方式是同樣的數據發8遍,每一遍由同步碼,地址碼20位,數據碼4位組成,而且不重復,也就是0bit,就用窄+寬表示,1bit,用寬+窄表示,沒有地址懸空碼F。
解讀一下這些信息:
其中綠色的是C0---C19共20位地址碼:0100 1011 0001 1010 0110
由于發送數據的時候是從最低位開始發送的,因此真正的地址碼應該反過來看,也就是:01100101100011010010 就是十六進制數字 Addr=0x658D2;
黃色是D0,D1,D2,D3,共4位數據碼: 0001,反過來就是1000就是0x08;
每按下一次電鈴按鍵,相同的信息發送8次,這就是實際硬件的輸出信息。
下面使用單片機來模擬信號的發送。
超再生發送模塊的1接P3.2,2接Vcc,3接地,連接超再生315M發射模塊
使用STC15W4K56S4芯片,11.0592MHz
地址和數據均從最低位開始發送。
編寫接收程序:
規定EV1527一共發送8次數據,接收其中的5次,如果有3次相同,就認為收到了正確的數據。
一定要注意,發送時,無論地址還是數據都是從最低位開始發送的,因此,接收的時候,需要將它們反序,才能得到正確的地址碼和數據碼。
例如這里的地址碼是 0x0658D2
十六進制: 6 5 8 D 2
二進制: 0110 0101 1000 1101 0010
接著發送數據碼:0x02
二進制: 0010
接收時將它們從一個unsigned long 型變量的最高位依次右移,得到:
十六進制: 2 6 5 8 D 2 0 0
二進制: 0010 0110 0101 1000 1101 0010 0000 0000
數據碼是橙色的,右移28位得到。
地址碼,首先屏蔽掉最高的4位,與0x0FFFFFFFL做與,長整形要寫L,然后右移8位得到。
接收使用STC15W4K56S4,硬件連接使用P3.2,也就是中斷INT0。接收模塊使用超外差(超再生)接收模塊。
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |