張金美 王慶福


摘要:當前工業化的自動化水平已經成為衡量一個行業是否進步的標志,工業自動化要求能夠通過簡單的機器操作來減少人為干涉,從而提升社會勞動力的合理分配。文章指出,家庭電器設備自動化是當前智能家居的重點和中心實驗領域,基于單片機的紅外控制能夠有效地解決家庭設備多路控制問題,極大地改善人們的日常生活。
關鍵詞:工業自動化;單片機;紅外控制
單片機作為—種微型計算機,能夠將各邏輯部件按照一定的邏輯功能組合在一起,其內可以包含CPU、RAM、ROM、總線、控制系統等必需的邏輯部件,將這些邏輯部件按照各組件的有機結合固化在芯片上。當前工業的自動化水平作為檢驗社會生產力進步的重要標志,如何提升工業自動化程度是一個非常重要的指標。工業自動化的目標是希望通過提高機器自動化的程度來盡可能地減少人為的強行干預,極大地提升社會生產力。家庭電器作為人們日常生活中最常見的部分,實現家庭電器操作的一體化是單片機的一個重要應用領域,應對家庭電器中諸多遙控器的問題,采用基于單片機的紅外控制系統,減少人為操作的復雜性,實現一鍵式操作模式,能夠極大地方便人們的生活,具有非常重要的經濟意義和社會意義。
1.單片機
當前單片機在日常生活中的每個方面都有涉及,幾乎是人們日常生活不可或缺的一部分。小到電話、玩具、手機、各類刷卡機、電腦鍵盤、彩電、冰箱、空調、電磁爐,大到汽車、工業自動控制、機器人、導彈導航裝置,甚至是美國的火星車,這些設備里面都含有一個或者多個單片機。單片機是一種控制芯片,一個微型的計算機,而晶振、存儲器、地址鎖存器、邏輯門、七段譯碼器(顯示器)、按鈕(類似鍵盤)、擴展芯片、接口等都是單片機系統。下面介紹單片機中一些重要概念。
(1)時鐘周期。也稱為振蕩周期,定義時鐘頻率的倒數(時鐘周期就是單片機所接的外部晶振的倒數,如12MHz的晶振,它的時鐘周期就是1/12us),它是單片機中最小的時間單位。在一個時鐘周期內,CPU只完成一個最基本的動作。時鐘脈沖是CPU的基本工作脈沖,脈沖的大小反映CPU工作頻率的快漫節奏,通常可以認為時鐘脈沖越高,CPU的工作效率也越高。然而因為不同單片機的內部構成不同,高脈沖的CPU不適用于任何單片機。所以,通常不同的單片機都有其自身獨特的時鐘脈沖。常用的STC89C系列單片機的時鐘范圍大概在1-40MHz。
(2)狀態周期。它是時鐘周期的2倍。用作單片機內部各功能部件按序協調工作的控制信號。
(3)機器周期。單片機的基本操作周期,在一個機器周期內,單片機完成一項基本操作,如取指令、讀寫存儲器等。由12個時鐘周期(6個狀態周期)組成。
(4)總線周期。總線上掛載了存儲器、控制器和相關的I/O設備,CPU對這些設備的訪問通過總線實現,因此定義以此CPU的外設訪問為一個總線周期。
(5)指令周期。顧名思義,是指執行一條指令所需要的時間。一般而言,一條指令包含多個操作,可能會需要1~4個機器周期。例如,對于一條簡單的取數指令,從寄存器中獲取數據并編碼執行即可,一個機器周期即可完成,但對于一些較為復雜的運算指令,可能涉及取數、存儲、運算等多個步驟,則可能需要一個或者多個機器周期。通常意義上,一個機器周期的指令成為單周期指令,多個機器周期的指令成為多周期指令。
(6)總線。總線是元器件中一個重要的概念,在模擬電路中各種部件之間都是通過串行的方式連接,各部件之間的連線并不多,然而計算機中各種元器件太繁多,還涉及各部件之間相互通信和協調的問題,如果每條功能指令或者2個元器件之間的通信都通過線互聯,則計算機內部的線路將會非常龐大,對于整體的維護和升級也極為不易,因此需要總線來協調各組件問的及時通信。總線是計算機內部的主干線路,一切互聯的器件都通過總線進行通信。然而還存在另一個問題,當2個元器件同時對外輸出信號時,一個元器件的輸出信號為1,另一個元器件的輸出信號為0,則接受方在接受后應該如何處理呢。這種情況依賴當前的總線是不夠的,因此引入了控制總線的概念。控制總線是各元器件之間指令交互的工具,任何時候控制總線只被允許進行一種指令的傳輸來保證指令的有序性,這樣,接受方在收到指令后則可以進行有效的判斷。而數據總線是各元器件間數據交換的工具。另外,單片機內部還存在著地址的分配,某些存儲單元要完成地址分配才能進行信號傳輸,由于存儲單元過多,管理起來也較為不易,因此以地址總線進行協同控制。
(7)數據、地址、指令。從某種意義上來說,這三者都可以認為是數字,是由一連串0101的數字串構成的。簡而言之,地址和指令也可以認為是數據。地址通過0101的數字序列對應到計算機存儲器件中某個具體位置,指令通過0101的數字序列表征具體的指令,指令有著比較嚴格的界定,不能由單片機的開發者隨意更改,一個確定的數字序列指令就對應著具體的操作。同理,單片機內部器件的地址也是事先由芯片設計者設計好的,不可更改,外部的單元可以提供給開發者自由設定,不受限制。數據部分是整個單片機處理的核心,最終的結果都是為了數據的傳輸和運算,不同的電路中數據也有著一定的差異。
2.紅外控制系統
紅外控制是一種應用比較廣泛的通信和遙感技術。因其功耗低、體積小、攜帶便捷、價格低等優勢,已經在家用電器(空調、彩電、冰箱)中廣泛應用,一些音響設備等也逐漸開始使用紅外控制。一方面,紅外控制在操作上簡便易行;另一方面,獨特的控制性能是首選。此外,在不適合人現場操作的場景下,如高壓、高氣流、缺氧、毒氣和粉塵等環境下,紅外控制也逐漸嶄露頭角,可靠的穩定性和操作性能夠有效地隔離毒氣粉塵對人身體的影響和傷害。
紅外控制系統一般由發射系統和接收系統兩部分組成,發射系統通常可以由鍵盤、芯片和相關的紅外發射源通過連接紅外發射電路,將基帶產生的二進制信號轉換為脈沖信號,通過紅外發射管發射。接收系統通過接收傳遞過來的紅外光線進行脈沖分析,提取脈沖信號對應的二進制信號,從而進一步對二進制進行響應。
UPD6121G通過產生連續的32位二進制編碼輸出指令,在32位編碼中,前16位用于區分不同的發射方,防止不同電器之間的信號干擾。通常情況下,前16位身份碼固定為01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多有128種不同組合的編碼。
相應的操作設備按鍵被按下時,會周期性地輸出不同的指令(即32位狀態碼),每組的狀態碼間通過0101的數據分布相區別,不同的數據分布對應不同的數據指令。
下面介紹采用單片機的紅外控制系統的具體布線細節,圖1為紅外遙控的系統結構。
如前所述,通常意義上的紅外控制系統由兩部分組成:信號發射部分和信號接收解析部分。因此,一般需要編碼器/解碼器對此種功能進行解析,編碼器的目的是將當前的輸出指令編碼成脈沖信號進行傳輸,解碼器的作用是針對發射的脈沖信號進行解碼,換成對應的電信號。此處以TC9012編碼芯片為例分析紅外遙控,介紹如何利用51單片機進行信號的解碼。當用戶使用遙控設備按下按鍵時,觸發按鍵背后的單片機線路,不同的按鍵對應著不同的功能,不同的按鍵會產生不同的脈沖信號,此類遙控碼具備如下特征:采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,遙控器發射的信號由一串0和1的二進制代碼組成,不同的芯片對O和l的編碼有所不同。編碼主要以曼徹斯特編碼和脈沖寬度編碼2種為主,TC9012的0和1采用PWM方法編碼,即脈沖寬度調制,其0碼和l碼如圖2所示(以遙控接收輸出的波形為例)。0碼由0.56ms低電平和O.56ms高電平組合而成,脈沖寬度為1.12ms。l碼由O.56ms低電平和1.69ms高電平組合而成,脈沖寬度為2.25ms。在編寫解碼程序時,通過判斷脈沖的寬度,即可得到0或1,具體的編碼細節如圖2所示。
當接收系統接收到來自發射方的脈沖信號后,首先對信號進行判斷,判斷當前的信號屬于何種信號,如按下空調的遙控開關時,表示是需要調節當前空調的溫度還是調節風量,又或是調節當前房間的濕度等。解碼的關鍵就是需要根據接收的脈沖信號0101中解析具體的信號。可想而知,對于特征的設備和頻段,固定的命令格式必然是固定的,否則不同型號的空調可能會對相同的按鍵產生不同的操作,這是不能接收的。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“l”,為了可靠起見,延時必須Lho.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右均可。根據碼的格式,應該等待9ms的起始碼和4.5ms的結果碼完成后才能讀碼。
3.結語
本文從當前工業的自動化水平為切入點,闡述當前家庭電器的重要開發領域,分析基于單片機的紅外控制系統的研發,能夠極大地提高經濟效益,節約時間。