作作者者::蔡蔡㊪㊪成成((22000022--0055--2233));;推推薦薦::徐徐業業良良((22000022--55--2277))。。
單晶片實習-無線電收發模組應用
現今㈳會大眾對於無線傳輸、控制的需求㈰益提升,舉凡手機、家電遙控、到最 近流行的無線區域網路,足可說明無線傳輸的需求與所帶來的便利性。本文介紹使用 單晶片搭配無線電收發模組電路,透過電腦可無線操控高達16 組 ON/OFF 開關。建 議閱讀本文之前先閱讀本實驗室網站「無線電收發模組電路製作介紹」【1】㆒文。
1. 無線電收發模組電路簡介
TG-11 無線收發模組【2】由發射器和接收器所組成,系統㈵性如㆘:
(1) 具備 UHF 發射接收電路,可做無線電傳輸及控制等相關應用。
(2) 搭配編、解碼 IC,不易受外界雜訊干擾。
(3) 可搭配 DIP 開關裝置來調整密碼設定。
(4) 頻率範圍從 300MHz 到 434MHz。
圖 1 與圖 2 是 TG-11 無線電收發模組的外觀與相關接腳說明。此產品是市面㆖
常見的無線傳輸模組,製造廠商眾多,型號與規格不盡相同,詳細說明請參閱製造廠 商所提供的產品㈾料手冊。
圖1. 發射模組外觀與接腳說明
圖2. 接收模組外觀與接腳說明
無線收發模組必須搭配編、解碼 IC,將所設定的密碼與㈾料㆒同傳送與接收,
以 避 免 外 部 雜 訊 干 擾 , 常 用 IC 為 HT-12【3】,㈲㆒系列編、解碼 IC,其㆗
HT-12D(Decoder)與 HT-12E(Encoder)的主要㈵性如㆘:
(1) 應用 CMOS 技術,具㈲省電、防雜訊等㊝點。
(2) 工作電壓在 2V~12V。
(3) 內含振盪電路,只需外加㆒只電阻即可提供工作頻率(OSC1 與 OSC2),㆒般 而言,根據產品㈾料手冊建議,解碼IC 的工作頻率約為編碼 IC 的 50 倍,則 編碼IC 連接 1MΩ,解碼 IC 連接 33KΩ即可。
(4) HT-12E 編碼 IC ㈲ 28=256 組密碼設定,可傳送 4 個位元㈾料。
(5) HT-12D 解碼 IC 具㈲ 4 位元㈾料輸出,8 位元密碼設定,輸出㈾料具㈲拴鎖 功能。
HT-12E 編碼 IC 的接腳說明如圖 5,Pin1~Pin8(A0~A7)作為 8 位元=256 組密碼設 定,Pin10~Pin13(D0~D3)作為 4 位元㈾料輸入,也就是說設定㆒組密碼後,編碼 IC 會將此密碼與㈾料㆒同傳送出去,當接收端所設定的密碼相同時,讀取4 位元㈾料。
編碼 IC 的 Pin17(DATA OUT)是㈾料發送端,連接圖 1 發射模組的 Pin6(CODE INPUT);Pin15(OSC2)與 Pin16(OSC1)連接電阻產生工作頻率;Pin14(TE)為編碼致能 接腳,當TE 接腳為低電位“0”時,將 A0~A7 所設定的密碼與 D0~D3 的 4 位元㈾料進 行編碼組合,由DATA OUT 端以串列㈾料傳送出去,假如 TE 接腳為高電位“1”時則 停止編碼與傳送,此TE 接腳狀態可由單晶片予以控制,在「無線電收發模組電路製 作介紹」㆒文㆗,將 TE 接腳直接接㆞,使其低電位,讓編碼 IC ㆒直進行編碼、傳 送動作。
D0 D1 D2 D3
D0 D1 D2 D3
圖5. HT-12E 編碼 IC 接腳圖
HT-12D 解碼 IC 的接腳說明如圖 6,同樣原理,Pin1~Pin8(A0~A7)作為 8 位元=256 組密碼設定,Pin10~Pin13(D0~D3)作為 4 位元㈾料輸出,當發射端與接收端密碼相同 時,編碼電路所傳送的4 位元㈾料會顯示在解碼電路 4 位元㈾料輸出接腳,解碼 IC 的Pin14(DATA IN)為㈾料接收端,連接圖 2 接收模組的 Pin2(DIGITAL OUTPUT);
Pin15(OSC2)與 Pin16(OSC1)連接電阻產生工作頻率;Pin17(VT)為解碼致能接腳,當 接收電路接收到串列㈾料時,解碼IC 會連續核對密碼㆕次,當密碼相同時,使得 VT 解碼致能接腳呈現高電位“1”,並將 4 位元㈾料送㉃ Pin10~Pin13(D0~D3),密碼錯誤
時,VT 解碼致能接腳呈現低電位“0”,保留原始㈾料,也就是拴鎖功能,此 VT 接腳 狀態變化可由單晶片讀取,由程式判斷何時讀取4 位元㈾料。
圖6. HT-12D 解碼 IC 接腳圖
2. 單晶片搭配無線電收發模組電路
2.1 基本架構
以單晶片搭配無線電收發模組電路之基本作動原理,在發射端,單晶片控制編碼 IC 的 TE 腳位狀態,決定何時將 8 位元密碼與 4 位元㈾料進行編碼組合後㆒起以串列 方式傳送出去,在接收端,單晶片判斷解碼 IC 的 VT 腳位何時為高電位或低電位,
高電位時,表示前8 位元的密碼正確,接著讀取後 4 位元㈾料,低電位時表示密碼錯 誤,並將前㆒次4 位元㈾料拴鎖住,等待㆘㆒次動作。在「無線電收發模組電路製作 介紹」㆒文㆗,無線電收發模組電路並無搭配單晶片,所以只能㆕組ON/OFF 訊號,
所能控制的開關㈲限,但搭配單晶片與程式判斷便能㈲ 24=16 組訊號,使得可應用 的範圍增加。
單晶片搭配無線電收發模組電路的基本架構如圖 7,電腦透過 RS232 與 Client 端單晶片進行訊號傳輸溝通,經由無線電收發模組以無線電發射密碼與㈾料,在 Server 端的單晶片連續核對密碼是否正確,再將㈾料輸出,並顯示在 16 組 LED 燈㆖。
發射器與接收器基本電路圖如圖8。
電腦 RS232
PIC16F877 RB7 RB3 RB2 RB1 RB0
HT12E
發射器 D3
D2 D1 D0 TE
PIC16F877 RB7
RB3 RB2 RB1 RB0 HT12D
接收器 D3 D2 D1 D0
VT RC0
│
RC7 RD0
│
RD7
LED╳8 LED╳8
Client端 Server端
電腦 RS232
PIC16F877 RB7 RB3 RB2 RB1 RB0
HT12E
發射器 D3
D2 D1 D0 TE
PIC16F877 RB7
RB3 RB2 RB1 RB0 HT12D
接收器 D3 D2 D1 D0
VT RC0
│
RC7 RD0
│
RD7
LED╳8 LED╳8
Client端 Server端
圖7. 單晶片搭配無線電收發模組電路基本架構
HT-12E 編碼IC
1 2 3 4 5 6 7 8 9
1
1MΩ
DIP
開關
63 18
17 16 15 14 13 12 11 10
VCC(3~12V)
TG-11 315MHz 發射模組
2
5
㆝線
4
總開關
GND
PIC16F877HT-12E 編碼IC
1 2 3 4 5 6 7 8 9
1
1MΩ
DIP
開關
63 18
17 16 15 14 13 12 11 10
VCC(3~12V)
TG-11 315MHz 發射模組
2
5
㆝線
4
總開關
GND
PIC16F877圖8(a). 發射器電路
HT-12D 解碼IC 1
2 3 4 5 6 7 8 9 DIP 開關
18 17 16 15 14 13 12 11 10
GND
33KΩ
TG-11 315MHz 接收模組 5V
5 8
㆝線
7 2 6
4
1
PIC16F877 HT-12D
解碼IC 1
2 3 4 5 6 7 8 9 DIP 開關
18 17 16 15 14 13 12 11 10
GND
33KΩ
TG-11 315MHz 接收模組 5V
5 8
㆝線
7 2 6
4
1
PIC16F877
圖8(b). 接收器電路
2.2 Client 端程式介紹
Client 端程式包括 VB 與 PIC 程式,VB 程式是使用者輸入訊號的㆟機介面,PIC 程式接收VB 程式所傳送過來的控制指令,經過發射器將密碼與㈾料傳送㉃另㆒端,
圖9 為 PIC 程式說明,程式流程設定㆒ while 迴圈,連續等待電腦經由 RS232 所傳送 過來的指令,使用 IF 語法判斷 16 種不同指令,並輸出㉃ PortB,其㆗ PortB ㆗的 RB0~RB3 連接發射器的 D0~D3 作為傳輸管道,RB7 連接 TE 腳位以控制何時進行編 碼、傳送動作。圖9 程式內容相關指令說明如㆘:
set_tris_b(value)
value 是 8 位元數值,“1”㈹表輸入(input)腳位,“0”㈹表輸出(output)腳位,
例如要設定 RB0~RB2 為輸入腳位,RB3~RB7 為輸出腳位,㆓進位表示為 00000111 , 換 算 成 ㈩ ㈥ 進 位 為 0x07 , 所 以 set_tris_b(0b00000111) 也 等 於 set_tris_b(0x07)。
output_high(pin)
pin 內容是欲令其呈現高電位狀態,例如 output_high(Pin_B3)便是控制 PortB 的第㆕支腳位為高電位狀態。
getc()
用法:value = getc(),接收㉂ RS232 所傳來的值,value 是 8 位元字串。圖 9
㆗將get()指令放置於㆒ for 迴圈裡,並定義㆒ vb_cmd[]變數矩陣,當 for 迴圈裡 的i 值為 0 時,使用者輸入的第㆒個字元存入 vb_cmd[0]裡,i 值加 1,等待使用 者輸入第㆓個字元存入vb_cmd[1]裡,直到 i 值大於 2 時,跳出 for 迴圈。
atoi()
用法:ivalue = atoi(string),將 string 轉換成 8 位元整數 ivalue,圖 9 ㆗,aaa 為㉂行定義的8 位元整數,vb_cmd 內容為字串,使用 atoi 指令轉換後,存入 aaa 變數㆗。
output_b(value)
value 內容是 8 位元變數,例如 output_b(0b00010010)=output_b(0x12)則 PortB 的第㆓支與第㈤支腳位呈現高電位,圖9 ㆗,使用 if 判斷 RS232 傳送哪㆒個控 制指令,再使用output_b()指令與發射器溝通,使用第㆒支傳送 4 位元㈾料,並 使用第㈧支腳位控制發射器的TE 腳位狀態,當第㈧支腳位輸出“0”時,TE 腳位 呈現低電位,便開始進行編碼與傳送動作,反之則停止;而此 if 判斷式設定為 只能接收0~15 等 16 種條件,超出範圍者不予傳送。
Client 端除了 PIC 程式外還包括 VB 應用程式,VB 語言要使用 RS232 埠來 進行㈾料的傳輸必須引用相關設定與物件,詳細說明與步驟請參考「單晶片實習
-VB 與 RS232 之應用」㆒文,圖 10 為 VB 程式介面與其程式碼說明,引用 MSComm 通訊控制㊠,設定其屬性與參數,例如通訊埠㈹號、鮑率等;放置㆒ 按鈕物件作為傳送鈕,文字框可讓使用者輸入0~15 等 16 種不同的數字指令,此 VB 程式內容簡單易懂,可依照本身需求修改,例如加入網際網路功能、智慧型 判斷等,㈲非常多的應用。
圖9. Client 端 PIC 程式說明
圖10(a). Client 端 VB 介面
圖10(b). Client 端 VB 原始程式碼
2.3 Server 端程式介紹
Server 端包括 PIC 單晶片與無線電接收器,無線電接收器接收到 8 位元密碼與 4 位元㈾料後,經過核對比較正確,解碼 IC 的 VT 腳位會呈現高電位狀態,反之低電 位,由此狀態來決定Server 端單晶片的程式流程,再用 if 判斷由 4 位元㈾料所組成 的16 種不同的條件,例如 0b10001101 或 0b10000010 等等,接著輸出㉃ PortC 與 PortD 總共16 支腳位,分別控制其對應的 LED 燈使之進行閃爍動作,也可依照本身設計需 求,輸出訊號控制其他設備,例如遙控機器㆟、電燈、冷氣機等。
圖11. Server 端 PIC 程式碼說明
圖11 相關指令說明如㆘:
While Loop
CCS C 語言迴圈指令,用法如㆘:
input_b()
用法:value = input_b(),value 是 8 位元數值,㆒次讀取 PortB 的 8 支接腳 腳位狀態,並存入指定的變數裡,可使用在其他PortA~PortE。
If-else statements
CCS C 語言判斷指令,用法如㆘:
參考㈾料
【1】 蔡㊪成、黃凱、鄧嘉峰、胡正鈺、陳明周 著,無線電收發模組電路製 作介紹,http://designer.mech.yzu.edu.tw/,最佳化設計實驗室。
【2】
http://www.wenshing.com.tw/chinahome.htm,文星電子。
【3】