葉林俊
(福州大學(xué) 物理與信息工程學(xué)院,福州350001)
葉林?。ùT士生),研究方向?yàn)楝F(xiàn)代電視系統(tǒng)。
紅外線遙控是一種無線、非接觸控制技術(shù),是目前使用最廣泛的一種通信和遙控手段[1]。由于紅外線遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),抗干擾能力強(qiáng),信息傳輸可靠,易實(shí)現(xiàn),被很多電子設(shè)備,特別是家用電器廣泛采用。鑒于家用電器的品種多樣化和用戶的使用特點(diǎn),生產(chǎn)廠家對紅外遙控器進(jìn)行了嚴(yán)格的規(guī)范編碼。這些編碼各不相同,從而形成不同的編碼方式,統(tǒng)一稱為紅外遙控器編碼傳輸協(xié)議。紅外遙控協(xié)議已多達(dá)10種,如 RC5、SⅠRCS、SONY、RECS80、Sharp、NEC、Motorola、JVC、SAMSWNG 和 Daewoo等。一般的紅外遙控器編碼調(diào)制方式采用遙控專用集成電路,不能兼容如此眾多的紅外遙控器編碼傳輸協(xié)議。因此,本文通過對紅外遙控器發(fā)射碼序的特征進(jìn)行分析,提出一種基于單片機(jī)Ⅰ/O口的軟件調(diào)制技術(shù)。
遙控專用集成電路是發(fā)射系統(tǒng)的核心部分,其內(nèi)部由振蕩電路、定時電路、掃描信號發(fā)生器、鍵輸入編碼器、指令譯碼器、用戶碼轉(zhuǎn)換器、數(shù)碼調(diào)制電路及緩沖放大器等組成。它能產(chǎn)生鍵位掃描脈沖信號,并能譯出按鍵的鍵碼,再經(jīng)遙控指令編碼器得到某鍵位的遙控指令(遙控編碼脈沖),由38kHz的載波進(jìn)行脈沖幅度調(diào)制,載有遙控指令的調(diào)制信號激勵紅外二極管發(fā)出紅外遙控信號。
圖1 紅外遙控調(diào)制發(fā)射電路
系統(tǒng)使用NT68F632[2]作為遙控調(diào)制發(fā)射器主芯片,紅外遙控調(diào)制發(fā)射電路如圖1所示。系統(tǒng)采用Novatek公司的單片機(jī)芯片NT68F632,該芯片內(nèi)部集成8051 8位微處理器,帶有全雙工的UART通信接口。NT68F632單片機(jī)的UART控制口RXD和TXD腳負(fù)責(zé)和上位機(jī)(PC機(jī))的RS232通信,接收要發(fā)送的紅外遙控器編碼信號。NT68F632單片機(jī)接收到發(fā)送的紅外遙控器編碼信號后,經(jīng)過微處理器分析處理,調(diào)制成紅外遙控信號。由NT68F632單片機(jī)控制PC6引腳輸出經(jīng)過調(diào)制的紅外遙控信號,驅(qū)動晶體管Q1開關(guān),使得紅外發(fā)光二極管LED1發(fā)送調(diào)制的紅外光波。
紅外遙控器編碼傳輸協(xié)議NEC碼的主要特征是8位地址和8位指令;地址和命令2次傳輸(確??煽啃裕?;PWM脈沖位置調(diào)制,以發(fā)射紅外載波的占空比代表“0”和“1”;載波頻率為38kHz;位時間為1.125ms或2.25ms。
NEC的協(xié)議使用的位脈沖距離編碼。每個脈沖是560μs、38kHz的載波爆裂(約21個周期)。一個邏輯1傳輸需要2.24ms(560μs脈沖+1 680μs低電平),一個邏輯0的傳輸需要1.12ms(560μs脈沖+560μs低電平)。紅外遙控調(diào)制特征波形如圖2所示。
圖2 紅外遙控調(diào)制特征波形
而遙控接收頭在收到脈沖的時候?yàn)榈碗娖?,在沒有脈沖的時候?yàn)楦唠娖剑?-4],這樣,在接收頭端收到的信號為:邏輯1應(yīng)該是560μs低+1680μs高,邏輯0應(yīng)該是560 μs低+560μs高。遙控接收特征碼如圖3所示。
圖3 遙控接收特征碼
NEC遙控指令的數(shù)據(jù)格式為:引導(dǎo)碼、客戶碼、客戶反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。引導(dǎo)碼由一個9ms的低電平和一個4.5ms的高電平組成,客戶碼、客戶反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼均是8位數(shù)據(jù)格式。按照低位在前、高位在后的順序發(fā)送。采用反碼是為了增加傳輸?shù)目煽啃?。NEC遙控指令格式如圖4所示。
圖4 NEC遙控指令格式
NT68F632單片機(jī)的UART控制口RXD、TXD腳和上位機(jī)(PC機(jī))的RS232通信,接收要發(fā)送的紅外遙控器編碼信號。其傳輸控制串口的通信協(xié)議如圖5所示。定義的通信協(xié)議分4個字節(jié):Command、Address code、Data code、Check SUM。第1個字節(jié)Command表示紅外遙控協(xié)議類型,區(qū)分是NEC碼還是RC5碼等;第2個字節(jié)Address code表示地址碼或客戶碼;第3個字節(jié)Data code表示按鍵數(shù)據(jù)碼;第4個字節(jié)Check SUM表示校驗(yàn)碼。
圖5 通信協(xié)議
系統(tǒng)的遙控碼發(fā)送主程序流程如圖6所示。NT68F632單片機(jī)的UART控制口接收串口通信數(shù)據(jù),微處理器根據(jù)串口通信協(xié)議對數(shù)據(jù)分析處理,并調(diào)制成相應(yīng)的遙控數(shù)據(jù)碼,同時控制PC6口發(fā)送遙控數(shù)據(jù)碼。
圖6 遙控碼發(fā)送主程序流程
本調(diào)制技術(shù)中,NEC碼的每個脈沖是560μs,而載波頻率為38kHz,故約21個周期的載波爆裂。每個載波是26.3μs,其中8.77μs的高電平、17.53μs的低電平。NEC碼脈沖調(diào)制流程如圖7所示。
圖7 NEC碼脈沖調(diào)制流程
NEC碼的脈沖函數(shù):
產(chǎn)生一個字節(jié)的脈沖函數(shù):
NEC碼的發(fā)送流程如圖8所示。先發(fā)送9ms高電平、4.5ms低電平的引導(dǎo)碼,接著發(fā)送8位客戶碼和8位客戶碼的反碼,最后發(fā)送8位數(shù)據(jù)碼和8位數(shù)據(jù)碼的反碼。
圖8 NEC碼的發(fā)送流程
在本文中,根據(jù)紅外遙控發(fā)射碼的特征,采用基于單片機(jī)Ⅰ/O口的紅外遙控軟件調(diào)制技術(shù)。該單片機(jī)能夠根據(jù)串口通信協(xié)議和上位PC機(jī)進(jìn)行串口通信,接收各種紅外遙控協(xié)議編碼,并在經(jīng)過調(diào)制后進(jìn)行紅外發(fā)射。經(jīng)實(shí)驗(yàn)測試,本軟件調(diào)制技術(shù)可靠實(shí)用。該系統(tǒng)可廣泛應(yīng)用在自動測試、生產(chǎn)控制等領(lǐng)域。
[1]李從宏.基于功能碼的紅外遙控軟件解碼技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(9):72-73.
[2]Novatek Microelectronics Corp.NT68F632[OL].[2011-06].http://www.novatek.com.tw.
[3]唐柳,方風(fēng)才.一種基于AT89S52單片機(jī)的紅外遙控發(fā)射碼解碼技術(shù)[J].廣西師范學(xué)院學(xué)報:自然科學(xué)版,2009,26(2):44-47.
[4]施新華.利用單片機(jī)實(shí)現(xiàn)的紅外遙控技術(shù)[J].上海電機(jī)學(xué)院學(xué)報,2006,9(3):69-71.