使用無線模組(類似tg11)與rs232連接,做無線單向的資料傳輸遇到的問題 |
缺席
|
allenc
一般會員 發表:1 回覆:1 積分:0 註冊:2005-02-25 發送簡訊給我 |
我是利用rs232連接無線模組來做簡單的單行資料傳輸(只傳過去別台電腦,不接收) 大概的架構是降的
pc->RS232->無線模組(傳送) (接收)無線模組->RS232->pc
不過我直接降子接行不通。 我寫的程式是參考下面的文章
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=37427 不過像上面降子接,問題很可能出現在很多地方。
為了簡化問題。我先用一台電腦的rs232(公接頭),將pin2跟pin3短路(連接),
用降的連接來測試程式是否可以work,結果是可以的
所以應該代表我寫的程式是ok的 接著用同台電腦、同樣程式,我將rs232(公接頭)的pin3接上無線模組的傳送模組,pin2接上無線模組。結果還是不行 後來想想,以為是電壓位準的問題。我就用hin232這個chip來調整電壓位準。
還是不行 想請問一下大家我那裡有可能出問題。不管是小是大的可能的問題。
都可以提出來。因為我本身是唸資工的,在硬體方面有滿多的觀念都不大清楚。
麻煩一下大家 謝謝 這下面有幾個地方是相關的資料
1. 我接地都有接在同一個接地
2. 使用BCB
3. 我設的baud rate為2400
4. 在電腦的硬體管理員也將port com1的baud rate設成2400了
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
TG11模組..基本上是用來傳送簡單的命令而已..類似機車的遙控發動器...
加上編解碼IC,可以傳送的距離非常遠..我有測試過..可達到50幾公尺..再遠沒測過了.. 至於你說的這個架構..
基本上我也是有嘗試過...
只不過我的架構是...
PC->RS-232->HIN232(電壓準位轉換)->無線發射模組 ~~ 無線接收模組->8051的RS-232埠
但是..可以傳送的距離很短..二~三公尺左右.. 因此..基本上你的架構應該是可行的..
只是有些地方可能你可以嘗試一下...
我傳送資料時..大概每秒要傳送30幾筆左右...每筆大約10Byte左右..
8051才能穩定的接收到資料...
我的Baud Rate = 4800 bps...8N1...
給你參考...希望對你有幫助...^^ 另外..你可以到Google用"RWS-434" 關鍵字應該可以查到很多資料..
還有..元智大學也有相關的文件..
http://designer.mech.yzu.edu.tw/article/articles/technical/(2001-08-30) 無線電收發模組電路製作介紹.htm 發表人 - fnk 於 2005/02/26 05:04:14 發表人 - fnk 於 2005/02/26 05:05:06
|
2bod
一般會員 發表:0 回覆:5 積分:1 註冊:2005-02-26 發送簡訊給我 |
|
allenc
一般會員 發表:1 回覆:1 積分:0 註冊:2005-02-25 發送簡訊給我 |
我後來的架構也是類似像fnk大那樣的,只是接收端也有hin232然後接pc PC->RS-232->HIN232(電壓準位轉換)->無線發射模組 ~~ 無線接收模組->hin232->rs232->pc
fnk大介紹的文章,在做之前的架構時,已經有參考過了。就可以了解的觀念應該是有用進去。 謝謝2bod大,baud rate設1200還是不行。 喔 而且只要我一接上電源,接收端就開始一直收到很多的雜訊,是本來就會降的嗎? 發表人 - allenc 於 2005/02/26 15:16:51
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
你可能要嘗試著將傳送資料的"頻率"提高... 例如..每秒傳送字串"123456789"...30-40次...
也就是說..每隔30ms左右..就將字串"123456789"傳送過去...
這樣可以提高資料傳送時的穩定度... 另外..二個模組不要擺太遠..一開始最好離近一點...
模組需要加上天線..會比較好.. 嗯..是的..接收端會一直接收到雜訊..
若要排除接收到雜訊..則可以自定接收的格式...
例如..若你要傳送"ABC"這三個字元過去...
則你的格式可能可以類似寫成這樣子... $ABCk@
$-->表示前導符號...
ABC-->表示欲傳送的資料..
k-->表示檢查碼..Check Sum
@-->表示結束符號... 程式可以寫成...
當接收到的字元..是 '$' 時..
則開始接收資料..並同時儲入Buffer..
一直接收到..結束字元 '@' 出現...或資料長度大於某個值..才結束接收..
當字串接收完成後, 再比對Check Sum與傳送的資料是否符合..
若符合..則表示資料接收正確... 給你參考..希望有幫助..^^ ===========
有興趣,就能進步
=========== 發表人 - fnk 於 2005/02/27 11:44:46
|
48932005
初階會員 發表:3 回覆:42 積分:29 註冊:2003-09-13 發送簡訊給我 |
呵呵~~~看來有人碰到跟我一樣的問題喔~~我之前有做一個題目,其中也是需要無線傳輸,於是我用的架構跟你們討論的一樣(因為這是最方便的),但是我發現,這需要將傳送的包率達到115200才能夠比較容易接收到,而且為了增加傳輸的可信度,使用了handshake boardbast packet的protocol,因為我這是一個server對很多的client做控制,但都是使用一樣的頻率,所以我是用TDM方式來做,但還是不穩,有時不到1秒就可以控制有時要等一分鐘?!@@a....這種通訊系統實在是太爛了....當下我也找不出方法可以解決就畢業了....但是現在我知道問題所在了
原因是0","1"分別要用不同的狀態來表示,不能直接把"O"當成電位0V送給模組,這樣會變成接收段無法判斷現在是什麼狀態,這麼說好了,如果是送1出來的話還沒什麼錯誤,但rs232是狀態0就是0電位,這時接收端就會接收到雜訊,運氣好的話若雜訊是在TTL的0準位以下,就收到0,但雜訊一個過大,就變成1了,那這時就會出錯 所以很不幸的...不能直接送RS232訊號給模組....所以別偷懶了~~~自己寫個protocol來傳吧,我建議可以遵循紅外線的傳送方式來送,因為PT2262這個無線遙控器IC就是用這樣的方式來傳,大家可以去GOOGLE找這個SPEC.裡面有PROTOCOL的詳細解說或是使用Manchester編碼也是可以的~~不管是用什麼方法,反正原則就是千萬不要用電位0來代表有意義的資料送到無線模組~~說完了>_<||
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |