//Logo Image
作者:蔡宗成(2002-05-23);推薦:徐業良(2002-5-27)

單晶片實習-無線電收發模組應用

現今社會大眾對於無線傳輸、控制的需求日益提升,舉凡手機、家電遙控、到最近流行的無線區域網路,足可說明無線傳輸的需求與所帶來的便利性。本文介紹使用單晶片搭配無線電收發模組電路,透過電腦可無線操控高達16ON/OFF開關。建議閱讀本文之前先閱讀本實驗室網站「無線電收發模組電路製作介紹」【1】一文。

1.     無線電收發模組電路簡介

TG-11無線收發模組【2】由發射器和接收器所組成,系統特性如下:

(1)   具備UHF發射接收電路,可做無線電傳輸及控制等相關應用。

(2)   搭配編、解碼IC,不易受外界雜訊干擾。

(3)   可搭配DIP開關裝置來調整密碼設定。

(4)   頻率範圍從300MHz434MHz

1與圖2TG-11無線電收發模組的外觀與相關接腳說明。此產品是市面上常見的無線傳輸模組,製造廠商眾多,型號與規格不盡相同,詳細說明請參閱製造廠商所提供的產品資料手冊。

1. 發射模組外觀與接腳說明

2. 接收模組外觀與接腳說明

無線收發模組必須搭配編、解碼IC,將所設定的密碼與資料一同傳送與接收,以避免外部雜訊干擾,常用ICHT-123】,有一系列編、解碼IC,其中HT-12D(Decoder)HT-12E(Encoder)的主要特性如下:

(1)   應用CMOS技術,具有省電、防雜訊等優點。

(2)   工作電壓在2V~12V

(3)   內含振盪電路,只需外加一只電阻即可提供工作頻率(OSC1OSC2),一般而言,根據產品資料手冊建議,解碼IC的工作頻率約為編碼IC50倍,則編碼IC連接1MΩ,解碼IC連接33KΩ即可。

(4)   HT-12E編碼IC28256組密碼設定,可傳送4個位元資料。

(5)   HT-12D解碼IC具有4位元資料輸出,8位元密碼設定,輸出資料具有拴鎖功能。

HT-12E編碼IC的接腳說明如圖5Pin1~Pin8(A0~A7)作為8位元=256組密碼設定,Pin10~Pin13(D0~D3)作為4位元資料輸入,也就是說設定一組密碼後,編碼IC會將此密碼與資料一同傳送出去,當接收端所設定的密碼相同時,讀取4位元資料。編碼ICPin17(DATA OUT)是資料發送端,連接圖1發射模組的Pin6(CODE INPUT)Pin15(OSC2)Pin16(OSC1)連接電阻產生工作頻率;Pin14(TE)為編碼致能接腳,當TE接腳為低電位0”時,將A0~A7所設定的密碼與D0~D34位元資料進行編碼組合,由DATA OUT端以串列資料傳送出去,假如TE接腳為高電位1”時則停止編碼與傳送,此TE接腳狀態可由單晶片予以控制,在「無線電收發模組電路製作介紹」一文中,將TE接腳直接接地,使其低電位,讓編碼IC一直進行編碼、傳送動作。

5. HT-12E編碼IC接腳圖

HT-12D解碼IC的接腳說明如圖6,同樣原理,Pin1~Pin8(A0~A7)作為8位元=256組密碼設定,Pin10~Pin13(D0~D3)作為4位元資料輸出,當發射端與接收端密碼相同時,編碼電路所傳送的4位元資料會顯示在解碼電路4位元資料輸出接腳,解碼ICPin14(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 基本架構

以單晶片搭配無線電收發模組電路之基本作動原理,在發射端,單晶片控制編碼ICTE腳位狀態,決定何時將8位元密碼與4位元資料進行編碼組合後一起以串列方式傳送出去,在接收端,單晶片判斷解碼ICVT腳位何時為高電位或低電位,高電位時,表示前8位元的密碼正確,接著讀取後4位元資料,低電位時表示密碼錯誤,並將前一次4位元資料拴鎖住,等待下一次動作。在「無線電收發模組電路製作介紹」一文中,無線電收發模組電路並無搭配單晶片,所以只能四組ON/OFF訊號,所能控制的開關有限,但搭配單晶片與程式判斷便能有2416組訊號,使得可應用的範圍增加。

單晶片搭配無線電收發模組電路的基本架構如圖7,電腦透過RS232Client端單晶片進行訊號傳輸溝通,經由無線電收發模組以無線電發射密碼與資料,在Server端的單晶片連續核對密碼是否正確,再將資料輸出,並顯示在16LED燈上。發射器與接收器基本電路圖如圖8

7. 單晶片搭配無線電收發模組電路基本架構

8(a). 發射器電路

8(b). 接收器電路

2.2 Client端程式介紹

Client端程式包括VBPIC程式,VB程式是使用者輸入訊號的人機介面,PIC程式接收VB程式所傳送過來的控制指令,經過發射器將密碼與資料傳送至另一端,圖9PIC程式說明,程式流程設定一while迴圈,連續等待電腦經由RS232所傳送過來的指令,使用IF語法判斷16種不同指令,並輸出至PortB,其中PortB中的RB0~RB3連接發射器的D0~D3作為傳輸管道,RB7連接TE腳位以控制何時進行編碼、傳送動作。圖9程式內容相關指令說明如下:

set_tris_b(value)

value8位元數值,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所傳來的值,value8位元字串。圖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~1516種條件,超出範圍者不予傳送。

Client端除了PIC程式外還包括VB應用程式,VB語言要使用RS232埠來進行資料的傳輸必須引用相關設定與物件,詳細說明與步驟請參考「單晶片實習-VBRS232之應用」一文,圖10VB程式介面與其程式碼說明,引用MSComm通訊控制項,設定其屬性與參數,例如通訊埠代號、鮑率等;放置一按鈕物件作為傳送鈕,文字框可讓使用者輸入0~1516種不同的數字指令,此VB程式內容簡單易懂,可依照本身需求修改,例如加入網際網路功能、智慧型判斷等,有非常多的應用。

9. ClientPIC程式說明

10(a). ClientVB介面

10(b). ClientVB原始程式碼

2.3   Server端程式介紹

Server端包括PIC單晶片與無線電接收器,無線電接收器接收到8位元密碼與4位元資料後,經過核對比較正確,解碼ICVT腳位會呈現高電位狀態,反之低電位,由此狀態來決定Server端單晶片的程式流程,再用if判斷由4位元資料所組成的16種不同的條件,例如0b100011010b10000010等等,接著輸出至PortCPortD總共16支腳位,分別控制其對應的LED燈使之進行閃爍動作,也可依照本身設計需求,輸出訊號控制其他設備,例如遙控機器人、電燈、冷氣機等。

11. ServerPIC程式碼說明

11. ServerPIC程式碼說明(continued)

11相關指令說明如下:

While Loop

CCS C語言迴圈指令,用法如下:

input_b()

用法:value = input_b()value8位元數值,一次讀取PortB8支接腳腳位狀態,並存入指定的變數裡,可使用在其他PortA~PortE

If-else statements

CCS C語言判斷指令,用法如下:

參考資料

【1】            蔡宗成、黃凱、鄧嘉峰、胡正鈺、陳明周 著,無線電收發模組電路製作介紹http://designer.mech.yzu.edu.tw/,最佳化設計實驗室。

【2】            http://www.wenshing.com.tw/chinahome.htm,文星電子。

【3】            http://www.holtek.com.tw,盛群半導體。