一款通用紅外遙控系統的設計方案
3.4 與主機接口
本文引用地址:http://www.104case.com/article/234916.htm為了能使此遙控器控制電腦就須將紅外信號送入主機內,有兩種可行的接口,分別為電視卡的紅外接收頭和串口。
3.4.1電視卡的紅外接收頭
現在的電視卡很多都帶有紅外遙控器,這樣的遙控器除了可以控制電視的播放外,通過適當的軟件,它還可以控制音頻、視頻播放、圖片瀏覽程序及電腦的關機等,實現真正的電腦遙控功能。這種方法的缺點是需要購買電視卡,成本較高,不予采用。
3.4.2 串口
現在流行的有半軟半硬和全軟兩種方案,半軟半硬方案在紅外接收頭與串口間加入了數據預處理電路,使數據符合串口規范,降低了編程難度,減少了CPU占用率;而全軟方案則是直接把紅外接收頭收到的數據送入串口,完全由軟件處理,其編程難度和CPU占用率偏大,但硬件電路非常簡單。圖5是“軟”方案的硬件電路。

圖5 串行紅外接口電路
由于目前應用串口的技術比較成熟,網上有很多現成的插件可以借鑒,因此我們決定采用串口的方式實現。
4 軟件設計
4.1 液晶(LCD)驅動程序
我們采用89S51單片機來控制液晶屏,通過不斷循環讀取FPGA的狀態編碼來控制液晶顯示器實時地刷新其顯示內容,其中包括遙控系統當前所處的狀態(是處于學習狀態還是遙控狀態)以及當前處理的對象類別和編號,防止用戶由于不清楚當前遙控的對象而產生誤操作,同時在每一個狀態液晶屏都要提示用戶下一步該如何操作,為用戶提供一個十分人性化的使用界面,軟件使用Keil C編寫。其程序流程如圖6所示。

圖6 LCD顯示軟件流程
4.2 Girder程序
Girder是一款完全免費的軟件,從本質上說它可接收來自任何輸入設備的指令,識別后做事先定義好的動作,如啟動某個程序或鼠標雙擊等。首先要設置好硬件,從網上下載串口驅動文件IgorPlug.dll拷貝到Girder目錄下的子目錄Plugins中。Girder軟件的界面如圖7。

圖7 Girder的主界面
進入“filesettings”,點擊選項卡上的“Plugins”,找到滾動窗口中的“Igor SFH-56 device”,在它前面的小框中打上勾,再點擊左邊的“Setting”, 選擇你所使用的串口,點擊OK就可以通過串口來控制電腦了。
對于像關機,關閉顯示器等動作,Girder已經有設置好的現成的命令可用,對于一些較復雜的播放軟件的控制可以通過簡單的設置來完成。
5 關鍵技術--對編碼信號的學習方法
紅外遙控信號的編碼方式多種多樣,例如圖8所示的是一種電視卡自帶的遙控器的編碼波形,它采用的是Space編碼,前面9ms的脈沖加4ms低電平是引導碼,中間是8位地址碼00H、8位地址反碼FFH、8位數據碼E8H、8位數據反碼17H,從引導碼開始計時發送108ms后若按鍵仍沒有松開則以后每隔108ms發送一個9ms高+2ms底+0.5ms高的重復簡碼,直到按鍵松開為止。

圖8 一種電視卡的遙控器編碼波形
如果每一種遙控器都通過解碼后存儲“0”“1”的數字信號,那么解碼的工作將是非常繁重而且不經濟的,一個簡單的方法是記錄下波形中每個高低電平的寬度,使用時再按照原始形式將波形發射出去。
6 結語
本方案通過對電視、電動機和電腦的綜合測試,結果表明該遙控系統學習性能良好,操作簡易,有效遙控距離可達5-7米,完全可以實現一只遙控器控制家中所有的電器。這款家居遙控系統基本實現了家居通用,填補了目前通用家電遙控器市場上只能遙控某一種家電而無法做到真正通用的空白,而且它還具有操作簡便,界面友好等優點。
紅外遙控器相關文章:紅外遙控器原理波段開關相關文章:波段開關原理
評論