引言
紅外遙控在家電、玩具、工控、智能儀表中是使用最廣泛的一種通信和遙控手段。Proteus仿真能大大加快該遙控系統(tǒng)的開發(fā)周期和提高其性能,但是當(dāng)前版本的Proteus中尚沒有紅外發(fā)射器的仿真元器件,只有一個IRlink模塊可以用于接收并解調(diào)紅外信號,給紅外系統(tǒng)仿真帶來了較大的難度。目前學(xué)者對紅外遙控系統(tǒng)的接收部分仿真已經(jīng)有較多的研究,但是還很少有針對紅外遙控發(fā)射部分的典型仿真研究??梢栽O(shè)計一種典型的紅外發(fā)射器仿真模塊,該模塊在仿真中相當(dāng)于實際的遙控器。進行紅外遙控系統(tǒng)開發(fā)仿真時,可以將此模塊用于紅外遙控接收電路以及其軟件的快速驗證,加快產(chǎn)品開發(fā)周期。
1 紅外遙控發(fā)射器調(diào)制解調(diào)過程簡介
紅外遙控發(fā)射器發(fā)射的一幀數(shù)據(jù)一般由引導(dǎo)碼、低8位用戶編碼、8位數(shù)據(jù)碼、8位數(shù)據(jù)碼的反碼等4部分組成。其中用戶識別碼能區(qū)別不同的紅外遙控設(shè)備,防止不同機種遙控碼互相干擾。后16位為8位數(shù)據(jù)碼和8位數(shù)據(jù)碼的反碼,每次8位的數(shù)據(jù)碼被傳送之后,它的反碼也隨即被傳送,用于確保接收數(shù)據(jù)準(zhǔn)確。這種遙控碼是采用脈沖寬度調(diào)制方式,它的特征是:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”。
紅外數(shù)據(jù)幀經(jīng)編碼后,還要用38kHz的方波進行脈沖幅度調(diào)制。如圖1所示,最上面一行為待發(fā)射數(shù)據(jù)的波形,第二行為38k載波,第三行為經(jīng)載波調(diào)制后的紅外發(fā)射信號波形,第四行是經(jīng)過一種專門的紅外接收濾波后的數(shù)據(jù)還原??梢钥闯觯詈笸ㄟ^解碼還原出來的數(shù)據(jù)波形與紅外遙控器發(fā)射的數(shù)據(jù)波形相位剛好反向。
2 紅外遙控仿真硬件電路設(shè)計
圖2所示是紅外發(fā)射接收一體化仿真電路。單片機U2部分為紅外接收,并顯示接收到的紅外編碼,顯示部分可采用數(shù)碼管,LCD等顯示器件,學(xué)者已經(jīng)對紅外接收及顯示有較詳細的研究,在此不作論述,只用作驗證紅外遙控發(fā)射器模塊的有效性。
單片機U1部分為模擬紅外遙控器發(fā)射。因Proteus仿真軟件里面沒有常見的紅外遙控發(fā)射器處理芯片,這里用8051單片機U1來實現(xiàn),其P3.4口輸出待發(fā)射數(shù)據(jù),該數(shù)據(jù)經(jīng)與門U3和38k載波信號調(diào)制后發(fā)射到接收電路,接收電路再通過Proteus軟件自帶的IRlink模塊解調(diào)后送到U2的外部中斷INT0。遙控發(fā)射器按鍵輸入采用4×4矩陣鍵盤,當(dāng)按下某一個鍵后會發(fā)出對應(yīng)的編碼。例如按下鍵K6,按照紅外發(fā)射數(shù)據(jù)幀結(jié)構(gòu),將通過P3.4口串行發(fā)送“00,00,006,0f9”,其中,前面的“00,00”為用戶碼,對于不同的設(shè)備需作相應(yīng)的修改;“006”是代表6號鍵,“0f9”是“006”的反碼,用于校驗,提高傳輸準(zhǔn)確性。只要在單片機的程序中對用戶碼和按鍵編碼作相應(yīng)的修改,就能使該遙控發(fā)射器在各類紅外遙控系統(tǒng)仿真中通用。
3 紅外遙控發(fā)射器程序設(shè)計
3.1 軟件功能概述
根據(jù)仿真硬件電路設(shè)計,單片機的軟件程序需要完成以下2個功能:1)按鍵掃描:實時對4×4矩陣鍵盤掃描,得到按鍵碼,并根據(jù)按鍵碼查找出對應(yīng)的紅外發(fā)射編碼。2)編碼發(fā)射:根據(jù)前述2.1和2.2的編碼協(xié)議通過P3.4口發(fā)射紅外編碼。
單片機程序功能較簡單,但是對于按鍵掃描和編碼發(fā)射的時序要求較高,既要保證實時掃描到按鍵,又要保證紅外編碼的實時發(fā)射。
3. 2 程序設(shè)計