基于MSP430單片機的紅外遙控器設計
1 引言
在工業控制的許多環境下,不適合操作人員直接控制,例如:高溫、高壓、輻射、粉塵、強酸性、腐蝕性、有毒氣體等。這時,紅外遙控是可行的控制方式。通過這種方式,操作人員能及時采集現場數據,修改控制對象的參數,并發送控制命令,以達到理想的控制效果。紅外遙控通過紅外通信的方式進行控制,具有低功耗、低成本、高可靠性、體積小、結構簡單、避免人身傷害等優點,是一種先進的控制方式,具有廣闊的應用前景。
2 紅外通信原理
紅外通信,即以紅外線作為通信載體,通過紅外光在空中的傳播來傳輸數據的通信方式,它由發射端和接收端來完成。在發射端,發送的數字信號經過適當的調制編碼后,送入電光變換電路,經紅外發射管轉變為紅外光脈沖發射到空中;在接收端,紅外接收器對接收到的紅外光脈沖進行光電變換,解調譯碼后恢復出原信號。
紅外發射端發送數據時,是將待發送的二進制數據調制成一系列的脈沖信號后發射出去。紅外載波為頻率38KHz的方波,采用脈寬調制PWM方式發送,通過待發送二進制數據的“0”或“1”控制兩個脈沖之間的時間間隔,及PWM的占空比。紅外載波既可以通過外圍硬件電路實現,也可以使用單片機內部的定時器的PWM功能實現。
紅外接收端在收到38KHz的載波信號時,會輸出低電平,否則輸出高電平,從而可以將“時斷時續”的紅外光信號解調成一定周期的連續方波信號,經單片機處理,便可以恢復出原數據信號。
3 MSP430單片機簡介
MSP430單片機是TI公司推出的一個新型單片機系列,其主要特點是:超低功耗、16位指令、內置A/D轉換器、串行通信接口、硬件乘法器、 LCD(液晶)驅動器及高抗干擾能力等。因此,MSP430單片機特別適合應用在智能儀表、防盜系統、智能家電、電池供電便攜式設備等產品之中。筆者在開發這款遙控器時,選用的單片機型號是MSP430F413,其性能特點如下:低工作電壓(1.8~3.6V);超低功耗(工作模式4下耗電僅為 0.1μA);16位精簡指令結構(RISC);150ns指令周期;帶有3個捕獲/比較器的16位定時器;片內集成96段LCD驅動器;片內有JTAG 調試接口和FLASH型存儲器,可在線串行編程;開發環境十分方便高效,支持C語言和匯編語言。
4 基于MSP430單片機的紅外遙控器設計
4.1 總體硬件框圖
筆者設計的這款紅外遙控器,不僅能設置控制對象的給定值或控制參數,并通過紅外線發送給對象,而且能接收并顯示對象通過紅外線反饋回的實際值,這是它不同于普通紅外遙控器的地方。因此,實際應用中,紅外遙控器和控制對象上都裝有紅外發送電路和紅外接收電路。紅外遙控器的硬件部分主要包括五個模塊:電源模塊、鍵盤模塊、液晶模塊、紅外發送模塊和紅外接收模塊。總體硬件框圖如圖1所示。由于MSP430、紅外發送模塊和紅外接收模塊都可采用3V電源,所以電源模塊采用兩節1.5V電池供電即可。鍵盤模塊采用4×4行列掃描式鍵盤。液晶模塊由MSP430F413直接驅動。
圖1 總體硬件框圖
4.2 紅外發送模塊
因為發光二極管的發光距離與其發射功率成正比,為了提高發光二極管的發光距離,必須提高它的發射功率,也就是使紅外發光二極管工作于脈沖狀態。可以用兩種方法來實現:一是用硬件方法,即設計脈沖電路來產生占空比盡量小的脈沖載波信號;另一種就是用軟件來控制MSP430F413的輸出端P2.1,讓其輸出即為占空比較小的脈沖信號。
這里利用軟件來實現這個功能。即在需要輸出高電平的時候,讓程序定時把P2.1口輸出狀態反向,其中定時時間是由指令數和指令周期來決定的,每條指令的指令執行周期是固定的,所以如果想讓反向頻率高一些,則讓指令執行的少一些,反之就讓指令多一些。可見輸出信號占空比可以由定時時間的長短來決定,這樣就可以在高電平時輸出占空比盡量小的脈沖信號。因為接收頭對38KHz的光信號轉換能力比較強,所以把高電平的頻率設置為38KHz。在需要輸出低電平的時候,控制P2.1口一直為低就可以了。
紅外發光二極管發射波形如圖3所示。先發一段前導碼,以檢驗這組碼是否為想要的碼。前導碼由一個9ms的高電平和一個4ms的低電平組成。然后再發 32位數據代碼,其中高電平為0.5ms,低電平為0.5ms的一個周期為代碼“0”;高電平為0.5ms,低電平為1.5ms的一個周期為代碼“1”。為了提高發射功率,實際工作時,發光二極管的高電平用38kHz的載波信號載波,低電平則一直為低。
紅外發送程序流程圖如圖4所示。即先發出前導碼,然后再按發出的是‘0’或‘1’來發出不同的數據碼,每發送完一位,就讓碼長計數器num加1,直到num加到32時,發送停止。
圖4紅外發送程序流程圖
圖5紅外接收電路
4.3 紅外接收模塊
紅外接收電路選用Vishay公司生產的專用紅外接收模塊TSOP1838SS3V(以下簡稱1838)。該接收模塊是一個三端元件,使用+3V電源,具有功耗低、抗干擾能力強、輸入靈敏度高、對其它波長(950nm以外)的紅外光不敏感的特點。1838的工作原理為:首先,通過紅外光敏元件將接收到的載波頻率為38kHz的脈沖調制紅外光信號轉化為電信號,再由前置放大器和自動增益控制電路進行放大處理;然后,通過帶通濾波器進行濾波,濾波后的信號由解調電路進行解調;最后,由輸出級電路進行反向放大輸出。
如圖5所示,1838的Vcc接+3V,GND接地,信號從OUT引腳引出,進入MSP430F413的P2.0口。當1838接收到紅外信號,就會把紅外信號轉換的電平從OUT腳輸出,P2.0口就會產生一個中斷,進入紅外中斷服務程序,進而判斷是什么信號,并且對信號做出反應。
1838輸出的接收波形與發射波形恰好反相,即前導碼是9ms的低電平與4ms的高電平,“0”是0.5ms的低電平與0.5ms的高電平,“1” 是0.5ms的低電平與1.5ms的高電平。因此,在接收程序中,通過比較高電平的脈寬來判斷到底是前導碼,還是“0”或“1”。
圖6是紅外接收中斷程序流程圖。在主程序中,先設置P2.0口為上升沿和下降沿都捕獲,然后中斷允許,進入主循環。一旦P2.0口有電平的跳變即進入中斷程序。在中斷程序中,首先判斷是否上升沿。若是,則上升沿標志置1,并記錄上升沿時刻;否則,說明是下降沿,再判斷上升沿標志是否置1。若是,說明已有上升沿,記錄下降沿時刻,并計算脈寬(脈寬=下降沿時刻—上升沿時刻);否則,說明這是干擾信號,直接返回。下一步,判斷脈寬的大小。若是起始碼,則起始碼標志置1,記數值n清0。否則,判斷起始碼標志是否置1,若是,判斷是“0”還是“1”,并保存,n加1,判斷n是否大于或等于32,是則將起始碼標志和記數值n清0,保存32位數據,返回;否則直接返回。
圖6 紅外接收中斷程序流程圖 |
5 結束語
在遙控器開發中,紅外發射電路采用紅外發光二極管,用軟件生成38K的載波;紅外接收電路采用專用模塊TSOP1838SS3V;主控制器采用 MSP430F413單片機。經實際測試,遙控器的發射功率約為38mw,發射距離達到8m。遙控器具有低功耗、便攜式、低成本、高可靠性、體積小、結構簡單的特點。
本文作者創新點:本文中的紅外遙控器主要用于現場儀表的控制。目前帶遙控器的現場儀表還非常少,國外也只有SIEMENS公司開發了帶有遙控功能的現場儀表,而國內這種產品幾乎沒有,所以紅外遙控器的開發,可以說走在了國內同類產品的前列,具有很大的市場優勢。而且,通過紅外遙控器的開發和使用,適應了現代社會對控制的要求日益向便攜式、簡單式方向發展的趨勢。
參考文獻
[1] 柏軍,胡屏. 一種用于單片機的紅外串行通信接口. 單片機及嵌入式系統應用, 2003.8
[2] 蔣俊峰. 基于單片機的紅外通訊設計. 電子設計應用,2003.11
[3] 魏小龍. MSP430系列單片機接口技術及系統設計實例. 北京:北京航空航天大學出版社,2002
[4] 陳茂勇,郭西進. 基于MSP430單片機的智能無功補償控制器的設計. 微計算機信息,2005.5
[5] 馮瑛. 全數字電動調節閥模糊控制系統的研究與開發:[學位論文].長沙:中南大學,2004
評論