【转载】用廉价的315M遥控模块实现数据传输
生活随笔
收集整理的這篇文章主要介紹了
【转载】用廉价的315M遥控模块实现数据传输
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
常用的近距離無(wú)線傳輸有很多種方式:1)CC1100/NRF905 433MHz無(wú)線收發(fā)模塊;2)NRF2401 2.4GHz無(wú)線收發(fā)模塊;3)藍(lán)牙模塊;4)Zigbee系列無(wú)線模塊;以上1/2/3模塊,一個(gè)大概要幾十塊錢,一套加起來(lái)要一百多塊,4就更貴了,單個(gè)就要上百塊錢。
而常用的315M遙控模塊就便宜很多了,收發(fā)一套淘寶上才賣8塊錢。這種模塊用途極其廣泛,例如遙控開(kāi)關(guān)/汽車/門禁/防盜等,大部分是配合2262/2272編解碼芯片實(shí)現(xiàn)開(kāi)關(guān)的功能。如果能夠利用315M模塊實(shí)現(xiàn)數(shù)據(jù)傳輸,透明傳輸串口數(shù)據(jù),那將是無(wú)線數(shù)據(jù)傳輸最廉價(jià)的方式。
就是這種模塊,不帶編碼解碼芯片的,淘寶價(jià)一套8塊錢:
發(fā)送電路圖,使用聲表,工作穩(wěn)定:??
接收電路圖,超外差接收,用了一片LM358:
試驗(yàn)一:單片機(jī)串口發(fā)送端TX直接接315M發(fā)送模塊的TXD,另外一個(gè)串口的接收端RX直接接315M接收模塊的DATE輸出端:
結(jié)果如上圖所示,串口發(fā)送單字節(jié)0x50的時(shí)候,串口TX端的波形如上圖上半部分所示,一個(gè)開(kāi)始位,一個(gè)停止位,8個(gè)數(shù)據(jù)位(低位在前高位在后)。下半部分是通過(guò)315M模塊無(wú)線傳輸之后,在串口接收端RX收到的波形。接收下來(lái)之后,發(fā)現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤,發(fā)送0x50,收到的是0x05,發(fā)0x40收到0x01,發(fā)送0x41收到0x50,發(fā)送0x42收到0x28。傳輸錯(cuò)誤的原因:在有數(shù)據(jù)時(shí)候,波形是正確的。但是串口TX端在空閑的時(shí)候,是高電平狀態(tài),而通過(guò)315M無(wú)線傳輸之后,空閑時(shí)候卻是低電平狀態(tài)!結(jié)果就是接收電路讀出的數(shù)據(jù)錯(cuò)開(kāi)了一位,數(shù)據(jù)傳輸錯(cuò)誤。
試驗(yàn)二:串口TX經(jīng)過(guò)反相后,再通過(guò)315M模塊傳輸,接收端再反相一下,電路圖如下:
這次數(shù)據(jù)傳輸成功了!1)在1200bps和2400bps速率下,在數(shù)據(jù)傳輸期間,數(shù)據(jù)是正確的,但是數(shù)據(jù)發(fā)送完成后,接收端會(huì)收到一大堆的亂碼;2)在4800bps速率下,首字節(jié)丟失,其他字節(jié)傳輸正常,發(fā)送完成后仍然跟著一堆亂碼。
---------------------------------------- ? 分割線 ?-------------------------------------------------------------------總結(jié):1)通過(guò)315M無(wú)線模塊透明傳輸串口數(shù)據(jù)是可行的,但是傳輸之前和接收之后要加一個(gè)三極管反相;2)在1200bps和2400bps速率下數(shù)據(jù)穩(wěn)定傳輸;在4800bps速率下,首字節(jié)丟失,其他字節(jié)傳輸正常;3)數(shù)據(jù)發(fā)送完成后,接收端會(huì)收到一大堆的亂碼,所以在軟件上要加上幀校驗(yàn),否則可能會(huì)引起誤觸發(fā)。例如我的遙控小車,遙控器發(fā)送給小車的控制命令只需要單字節(jié),我在軟件上使用3個(gè)字節(jié)作為一個(gè)命令幀,格式為AT+命令字,只有連續(xù)收到A和T兩個(gè)字符之后,后面收到的一個(gè)字符才認(rèn)為是有效的命令,否則認(rèn)為是亂碼,丟棄之。4)傳輸距離:發(fā)送端和接收端都采用5V供電,天線使用一小段線圈的情況下,直線5米穩(wěn)定傳輸。更長(zhǎng)的距離沒(méi)有測(cè)試過(guò),以后有空測(cè)試一下再補(bǔ)充。
經(jīng)過(guò)深入研究,傳輸性能有了極大的提高,具體參見(jiàn)日志:315M模塊數(shù)據(jù)傳輸-深入研究
而常用的315M遙控模塊就便宜很多了,收發(fā)一套淘寶上才賣8塊錢。這種模塊用途極其廣泛,例如遙控開(kāi)關(guān)/汽車/門禁/防盜等,大部分是配合2262/2272編解碼芯片實(shí)現(xiàn)開(kāi)關(guān)的功能。如果能夠利用315M模塊實(shí)現(xiàn)數(shù)據(jù)傳輸,透明傳輸串口數(shù)據(jù),那將是無(wú)線數(shù)據(jù)傳輸最廉價(jià)的方式。
就是這種模塊,不帶編碼解碼芯片的,淘寶價(jià)一套8塊錢:
發(fā)送電路圖,使用聲表,工作穩(wěn)定:??
接收電路圖,超外差接收,用了一片LM358:
試驗(yàn)一:單片機(jī)串口發(fā)送端TX直接接315M發(fā)送模塊的TXD,另外一個(gè)串口的接收端RX直接接315M接收模塊的DATE輸出端:
結(jié)果如上圖所示,串口發(fā)送單字節(jié)0x50的時(shí)候,串口TX端的波形如上圖上半部分所示,一個(gè)開(kāi)始位,一個(gè)停止位,8個(gè)數(shù)據(jù)位(低位在前高位在后)。下半部分是通過(guò)315M模塊無(wú)線傳輸之后,在串口接收端RX收到的波形。接收下來(lái)之后,發(fā)現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤,發(fā)送0x50,收到的是0x05,發(fā)0x40收到0x01,發(fā)送0x41收到0x50,發(fā)送0x42收到0x28。傳輸錯(cuò)誤的原因:在有數(shù)據(jù)時(shí)候,波形是正確的。但是串口TX端在空閑的時(shí)候,是高電平狀態(tài),而通過(guò)315M無(wú)線傳輸之后,空閑時(shí)候卻是低電平狀態(tài)!結(jié)果就是接收電路讀出的數(shù)據(jù)錯(cuò)開(kāi)了一位,數(shù)據(jù)傳輸錯(cuò)誤。
試驗(yàn)二:串口TX經(jīng)過(guò)反相后,再通過(guò)315M模塊傳輸,接收端再反相一下,電路圖如下:
這次數(shù)據(jù)傳輸成功了!1)在1200bps和2400bps速率下,在數(shù)據(jù)傳輸期間,數(shù)據(jù)是正確的,但是數(shù)據(jù)發(fā)送完成后,接收端會(huì)收到一大堆的亂碼;2)在4800bps速率下,首字節(jié)丟失,其他字節(jié)傳輸正常,發(fā)送完成后仍然跟著一堆亂碼。
---------------------------------------- ? 分割線 ?-------------------------------------------------------------------總結(jié):1)通過(guò)315M無(wú)線模塊透明傳輸串口數(shù)據(jù)是可行的,但是傳輸之前和接收之后要加一個(gè)三極管反相;2)在1200bps和2400bps速率下數(shù)據(jù)穩(wěn)定傳輸;在4800bps速率下,首字節(jié)丟失,其他字節(jié)傳輸正常;3)數(shù)據(jù)發(fā)送完成后,接收端會(huì)收到一大堆的亂碼,所以在軟件上要加上幀校驗(yàn),否則可能會(huì)引起誤觸發(fā)。例如我的遙控小車,遙控器發(fā)送給小車的控制命令只需要單字節(jié),我在軟件上使用3個(gè)字節(jié)作為一個(gè)命令幀,格式為AT+命令字,只有連續(xù)收到A和T兩個(gè)字符之后,后面收到的一個(gè)字符才認(rèn)為是有效的命令,否則認(rèn)為是亂碼,丟棄之。4)傳輸距離:發(fā)送端和接收端都采用5V供電,天線使用一小段線圈的情況下,直線5米穩(wěn)定傳輸。更長(zhǎng)的距離沒(méi)有測(cè)試過(guò),以后有空測(cè)試一下再補(bǔ)充。
經(jīng)過(guò)深入研究,傳輸性能有了極大的提高,具體參見(jiàn)日志:315M模塊數(shù)據(jù)傳輸-深入研究
總結(jié)
以上是生活随笔為你收集整理的【转载】用廉价的315M遥控模块实现数据传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 全新大 Y 标志,联想拯救者 Y9000
- 下一篇: 汽水音乐怎么开启个性化设置