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