引言 在很多單片機應用系統(tǒng)中,常常利用非電信號(如光信號、超聲波信號等)傳送控制信息和數據信息,以實現遙控或遙測的功能。例如在單相電度表抄表系統(tǒng)中,就是使用手持抄表器通過遙控的方式,來完成電度表用電量的抄錄、設置表底數、電度表校時等工作。紅外通信具有控制簡單、實施方便、傳輸可靠性高的特點,是一種較為常用的通信方式。實現單片機系統(tǒng)紅外通信的關鍵在于紅外接口電路的設計以及接口驅動程序的設計。 1 紅外通信的基本原理 紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。發(fā)送端采用脈時調制(PPM)方式,將二進制數字信號調制成某一頻率的脈沖序列,并驅動紅外發(fā)射管以光脈沖的形式發(fā)送出去;接收端將接收到的光脈轉換成電信號,再經過放大、濾波等處理后送給解調電路進行解調,還原為二進制數字信號后輸出。 簡而言之,紅外通信的實質就是對二進制數字信號進行調制與解調,以便利用紅外信道進行傳輸;紅外通信接口就是針對紅外信道的調制解調器。 2 紅外通信接口的硬件電路設計 單片機本身并不具備紅外通信接口,但可以利用單片機的串行接口與片外的紅外發(fā)射和接收電路,組成一個應用于單片機系統(tǒng)的紅外串行通信接口,如圖1所示。 ![]() 2.1 紅外發(fā)送器 紅外發(fā)送器電路包括脈沖振蕩器、驅動管T1和T2、紅外發(fā)射管D1和D2等部分。其中脈沖振蕩器由NE555定時器、電阻(R1、R2)和電容(C1、C2)組成,用以產生38kHz的脈沖序列作為載波信號;紅外發(fā)射管D1和D2選用Vishay公司生產的TSAL6238,用來向外發(fā)射 950nm的紅外光束。 紅外發(fā)送器的工作原理為:串行數據由單片機的串行輸出端TXD送出并驅動T1管,數位“0”使T1管導通,通過T2管調制成38kHz的載波信號,并利用兩個紅外發(fā)射管D1和D2以光脈沖的形式向外發(fā)送。數位“1”使T1管截止,紅外發(fā)射管D1和D2不發(fā)射紅外光。若傳送的波特率設為 1200bps,則每個數位“0”對應32個載波脈沖調制信號的時序,如圖2所示。 ![]() 2.2 紅外接收器 紅外接收電路選用Vishay公司生產的專用紅外接收模塊TSOP1738。該接收模塊是一個三端元件,使用單電源+5V電源,具有功耗低、抗干擾能力強、輸入靈敏度高、對其它波長950nm以外)的紅外光不敏感的特點,其內部結構框圖如圖3所示。 ![]() TSOP1738的工作原理為:首先,通過紅外光敏元件將接收到的載波頻率為38kHz的脈沖調制紅外光信號轉化為電信號,再由前放大器和自動增益控制電路進行放大處理。然后,通過帶通濾波器和進行濾波,濾波后的信號由解調電路進行解調。最后,由輸出級電路進行反向放大輸出。 為保證紅外接收模塊TSOP1738接收的準確性,要求發(fā)送端載波信號的頻率應盡可能接近38kHz,因此在設計脈沖振蕩器時,要選用精密元件并保證電源電壓穩(wěn)定。再有,發(fā)送的數位“0”至少要對應14個載波脈沖,這就要求傳送的波特率不能超過2400bps。利用上述紅外收發(fā)電路構成的紅外信道最大通信距離為8m。 3 紅外通信的軟件設計 3.1 通信方式 考慮到紅外光反射的原因,在全雙工方式下發(fā)送的信號也可能會被本身接收,因此紅外通信需采用異步半雙工方式,即通信的某一方發(fā)送和接收是交替進行的。這里設置單片機的串行口采用方式3通信;通信的數據格式為每幀11位,包括1位起始位、8位數據位、1位奇偶校驗位和1位停止位;片內定時器T1作為波特率發(fā)生器,選擇傳送的波特率為1200bps,則定時器T1的初值應設置為TL1=TH1=E8H,另外應禁止定時器T1中斷,以免因定時器T1溢出而產生不必要的中斷。 3.2 通信協(xié)議 進行紅外通信之前,通信雙方首先要根據系統(tǒng)的功能要求制訂某種特定的通信協(xié)議,然后才能編寫相應的通信程序。例如在電度表抄表系統(tǒng)中,紅外通信的一方是單相電度表,另一方是手持抄表器,雙方遵循表1格式的通信協(xié)議。 表1 抄表系統(tǒng)的通信協(xié)議
3.3 單相電度表通信程序 在電度表抄表系統(tǒng)中,單相電度表接收命令是被動的,因此它采用實時性的中斷方式進行接收。在系統(tǒng)初始化程序中依據如前所述的通信方式,對串行口和定時器T1進行相應的設置。 在中斷程序程序中按字節(jié)形式進行接收,將接收到的字節(jié)存放在預先設定的緩沖區(qū)內,當接收到命令結束符后,則轉入命令處理并回送相應的信息。接收過程中若發(fā)現校驗錯誤,則停止接收并調用錯誤處理子程序,發(fā)送接收出錯的信息,要求發(fā)送端重新發(fā)送。串行口中斷服務程序的流程如圖4所示。 ![]() 3.4 手持抄表器通信程序 在紅外通信過程中,手持抄表器是通信的發(fā)起者,其發(fā)送和接收都是主動的。它的具體工作過程為:CPU不斷掃描鍵盤,若發(fā)現有命令鍵按下,則調用發(fā)送子程序發(fā)送相應的操作命令;發(fā)送結束后即啟動接收子程序,以接收電度表回送的信息,然后對接收到的信息進行后續(xù)處理。 結語 本文介紹的應用于單片機系統(tǒng)的紅外串行通信接口,具有硬件電路簡單、成本低廉、編程方便、通信可靠性高的特點,實現了通信雙方非接觸式的數據傳送。在電度表抄表系統(tǒng)中,由于配備了紅外通信接口,利用手持抄表器可以方便地完成對電度表的抄錄和校準等工作,大大提高了抄表工作的效率,而且抄表確定高并杜絕了估抄和誤抄的問題。這種紅外通信方案也可用于其它遙控、遙測的單片機應用場合。 參考文獻 1. 陳粵初.竇振中 單片機應用系統(tǒng)設計與實踐 1991 2. 潘新民.王燕芳 單片微型計算機實用系統(tǒng)設計 1992 3. 李勛.劉源 單片機實用教程 2000 4. 馬家辰.孫玉德.張穎 MCS-51單片機原理及接口技術 1998 作 者: 哈爾濱工業(yè)大學 柏軍 胡屏 來 源:單片機與嵌入式系統(tǒng)應用 2003(8) |