紅外通信的設計與實現(xiàn)
4.2 接收電路的硬件設計
紅外接收電路中使用了HS0038A接收器,HS0038A的內(nèi)部邏輯框圖如圖3所示。
由此可看出該接收器內(nèi)部實現(xiàn)了紅外接收、放大、濾波及解調(diào)功能,當收到紅外載波光信號時,紅外接收器輸出低電平,反之紅外接收器輸出高電平,從而可以將時斷時續(xù)的紅外光信號調(diào)制成連續(xù)的方波信號,經(jīng)單片機內(nèi)部處理可以將其轉(zhuǎn)換成原來的數(shù)據(jù)。
硬件原理圖如圖4所示。
由于HS0038A內(nèi)置濾波并且采用環(huán)氧塑封,可以作為紅外濾波器,因此電路中不需要另外增加濾波器,并且HS0038A具備較強的抗干擾能力。
紅外接收器輸出引腳RevData連接在TPM2通道0,使用了TPM的輸入捕捉功能,在上升沿時發(fā)生輸入捕捉,比較兩次捕捉發(fā)生時通道寄存器TPM2C0V的值,可以得到一個周期脈沖的寬度,根據(jù)發(fā)射數(shù)據(jù)的時序圖,就可知道不同的脈沖寬度對應的數(shù)據(jù)是什么,由此就可將原數(shù)據(jù)還原出來。
5.1 38 kHz紅外載波設計
MC9S08GT60使用了外部4 MHz的晶振頻率,通過配置ICG1=0x78,ICG2=0x30,將總線頻率控制為20 MHz。MC9S08GF60內(nèi)部有定時/脈沖輸出模塊,將TPM1的狀態(tài)控制寄存器的位CPWMS置1,則TPM1工作在中心脈寬輸出模式;將TPM1通道0的狀態(tài)控制寄存器的ELS0B:ELS0A設置為10,控制發(fā)生輸出比較時將脈沖信號置高或置低。為使TPM1C1輸出38 kHz頻率的載波信號,就要對20 MHz的總線頻率進行526分頻,即526個20 MHz的方波周期產(chǎn)生一個38 kHz的方波周期,因為是中心脈寬輸出模式,輸出脈沖寬度是通道值寄存器TPM1C1V中值的2倍,輸出脈沖周期是通道預置寄存器TPM1M0D中值的2倍,因此令TPM1C1V=131,TPM1M0D=263,啟動定時器后,定時器1的計數(shù)器TPM1CNTL在自增1計數(shù)時,當該值跟通道值寄存器TPM1C1V中值匹配時,將脈沖輸出信號拉低,定時器1的計數(shù)器TPMlCNTL在計數(shù)值開始進行自減1操作時,當下降到跟通道寄存器TPMlClV時,將脈沖輸出信號拉高。中心脈寬輸出的時序圖如圖5所示。從此通道輸出的方波頻率通過示波器查看為37.9 kHz或38 kHz。
5.2 數(shù)據(jù)編碼的設計
MC9S08GT60單片機有36個端口,大部分端口都具有雙重功能,本文使用端口PTA7,配置該端口的方向寄存器PTADD_PTADD7為1,即PTA7為輸出,根據(jù)脈沖編碼的規(guī)則,進行不同的延時操作,使該端口輸出一定寬度的數(shù)據(jù)脈沖,通過示波器查看該端口,可看到穩(wěn)定的脈沖序列。
評論