多費率電能表中基于單片機串行口紅外通信的設計
作者Email: 3-14159265@163.com 摘要:利用單片機的串行口、定時(shí)器/計數器T0、定時(shí)器/計數器T1、紅外發(fā)射管和紅外接收管等簡(jiǎn)單的軟硬件就可靠地實(shí)現了多費率電能表的紅外通信功能。本設計詳細介紹了串行口紅外通信的軟硬件設計方法,并給出了具體的電路原理圖、波形圖和51單片機程序。 關(guān)鍵詞: 紅外通信 串行接口 電能表 SSU7301單片機 0 引言 多費率電能表是我國目前節約用電和計劃用電政策下不可缺少的電能計量產(chǎn)品,多費率電能表的通信接口一般兼有紅外接口和RS485接口。紅外通信具有直觀(guān)、操作簡(jiǎn)便、可靠性高等優(yōu)點(diǎn),是電能表中使用最為普遍的一種通信方式,是電能表和掌機之間實(shí)現抄表、編程、校時(shí)、數據管理等功能的有效手段。采用新茂單片機 SSU7301(51系列)、日本光電子公司的紅外發(fā)射管SE303和紅外接收管PIC12043,以及單片機串行口、2個(gè)定時(shí)器/計數器可以有效地實(shí)現紅外通信功能。 1 紅外通信原理 紅外通信是利用波長(cháng)為900nm~1000nm的紅外波作為信息的載體,發(fā)射裝置把二進(jìn)制信號經(jīng)過(guò)高頻調制后發(fā)送出去,接收裝置把接收的紅外高頻信號進(jìn)行解調為原來(lái)信息的一種通信傳輸方式。其中調制方式有脈寬調制(通過(guò)改變脈沖寬度調制信號PWM)和脈時(shí)調制(通過(guò)改變脈沖串之間時(shí)間間隔調制信號PPM)兩種,本文采用PPM脈時(shí)調制方式。 2 串行口紅外通信硬件設計 多費率電能表的紅外發(fā)射和紅外接收電路主要包括新茂單片機SSU7301、日本光電子公司的紅外發(fā)射管SE303和紅外接收管PIC12043,以及驅動(dòng)三極管8550、電阻和電容,紅外通信硬件原理圖見(jiàn)圖1。
本文引用地址:http://dyxdggzs.com/article/201610/306788.htm2.1 紅外發(fā)射硬件設計 紅外發(fā)射是利用單片機SSU7301的串行數據發(fā)送口TXD(P3.1)控制驅動(dòng)三極管BG1進(jìn)行二進(jìn)制數據“0”和“1”的傳輸(數據由串行發(fā)送緩沖器 SBUF中送出),以及利用P3.4口控制驅動(dòng)三極管BG2進(jìn)行高頻38.4kHz調制(高頻驅動(dòng)信號由定時(shí)器/計數器T0的方式2自動(dòng)重裝模式產(chǎn)生),從而可靠地實(shí)現了紅外發(fā)射管D1在傳輸數據“0”時(shí)進(jìn)行高頻紅外發(fā)射和數據“1”時(shí)被截止的發(fā)射功能。狀態(tài)關(guān)系見(jiàn)表1,波形見(jiàn)圖2。 2.2 紅外接收硬件設計 紅外接收是利用紅接收管PIC12034收到高頻信號輸出低電平確定為數據“0”,而沒(méi)收到高頻信號輸出高電平確定為數據“1”的方式經(jīng)過(guò)解調,把數據通過(guò)單片機SSU7301的串行數據接收口RXD(P3.0)進(jìn)行串行方式接收(接收數據存儲在串行口緩沖器SBUF中)。 3 紅外通信軟件設計 DL/T645-1997《多功能電能表通信》中規定電能表的紅外載波頻率為38kHz%26;#177;1kHz;初始速率為1200 bps;通信的字節格式為8位二進(jìn)制碼D0~D7,傳輸時(shí)加上一個(gè)起始位(0),一個(gè)偶校驗位P和一個(gè)停止位(1),共11位,傳輸時(shí)先傳低位,后傳高位,傳輸序列見(jiàn)圖3。根據以上要求,本設計中紅外載波頻率采用38.4kHz,波特率為1200bps,串行口采用模式3為9位異步通信方式,加1位起始位和1位結束位,傳送一個(gè)字節數據為11位。
3.1 紅外載波和定時(shí)器/計數器T0設置 紅外載波頻率f2為38.4kHz,當定時(shí)器/計數器T0模式控制器TMOD中C/T=0和M1M0=10時(shí),SSU7301的定時(shí)器/計數器T0設置成模式2方式。此時(shí),TL0和TH0預置成1個(gè)可以自動(dòng)重裝的8位的定時(shí)器/計數器。用軟件將TL0和TH0預置相同的初值后,當TL0計數值增1溢出時(shí),一方面使TF0置1,申請中斷;另一方面產(chǎn)生的溢出脈沖將TH0的數據值自動(dòng)打入到TL0中去,不需要用軟件對TL0重新置初值。系統的晶振f1為 11.0592MHz,則TL0和TH0的初值計算如下: f2=38.4kHz 得T=1/f2=1/38.4k≈26%26;#215;10-6=26 μs 所以高頻調制反轉的周期TC=T/2=26/2=13μs 即定時(shí)器/計數器T0的初值TL0=TH0=28-(TC%26;#215;f1)/12=256-(13%26;#215;10-6%26;#215; 11.0592%26;#215;106)/12=256-11.9808≈244=0F4H 在定時(shí)器/計數器T0的中斷服務(wù)程序中只用兩條指令即可實(shí)現高頻調制,即 CPL P3.4和RETI。 3.2 串行口和定時(shí)器/計數器T1波特率發(fā)生器設置 串行口采用模式3為9位異步通信方式,波特率為1200bps。由串行口控制寄存器SCON的操作模式選擇位SM0、SM1都置1設置為模式3,當定時(shí)器 /計數器T1模式控制器TMOD中C/T=0和M1M0=10時(shí),SSU7301的定時(shí)器/計數器T1設置成模式2方式作為波特率發(fā)生器,其波特率表示為: 波特率=(T1的溢出率)/ n 當SMOD=0時(shí),n=32;當SMOD=1時(shí),n=16,(本設計中SMOD=0)則波特率=(T1的溢出率)%26;#215;2SMOD / 32 T1的溢出率=(f1/12)/(28-T1初值) 得:波特率=(T1的溢出率)%26;#215;2SMOD / 32 =[(f1/12)/(28- T1初值)] %26;#215;2SMOD / 32 得:定時(shí)器/計數器T1初值 TL1=TH1=28-(f1%26;#215;2SMOD )/(12%26;#215;32%26;#215;波特率) =256-(11.0592%26;#215;106)/( 12%26;#215;32%26;#215;1200) =256-24=232=0E8H 3.3 程序設計 根據以上兩點(diǎn)參數的設置,51系列單片機SSU7301的匯編語(yǔ)言程序設計如下: ;以下為參數設置程序 MOV TMOD, #22H ;定時(shí)器/計數器T0方式2自動(dòng)重裝模式用于PWM38.4KHZ調 ;制用 , 定時(shí)器/計數器T1方式2自動(dòng)重裝模式用于串行口通訊波特率發(fā)生器 MOV TH1,#0E8H ;波特率1200時(shí),定時(shí)器/計數器T1自動(dòng)重裝初值 MOV TL1,#0E8H MOV TH0,#0F4H ;38.4KHz高頻頻調制時(shí), 定時(shí)器/計數器T0自動(dòng)重裝初值 MOV TL0,#0F4H SETB ET0 ; 定時(shí)器/計數器T0溢出中斷允許位 SETB TR1 ; 定時(shí)器/計數器T1開(kāi)始定時(shí)控制位 SETB TR0 ; 定時(shí)器/計數器T0 開(kāi)始定時(shí)控制位 MOV PCON,#00H ;SMOD為0不倍增模式 MOV SCON,#0D0H ;串行口設置為模式3,允許接收 SETB ES ;串行口允許中斷 SETB EA ;開(kāi)總中斷允許位 ;以下為定時(shí)器/計數器T0中斷溢出服務(wù)程序 ORG 000BH; 定時(shí)器/計數器T0中斷入口地址 T0SERVE:CPL P3.4 ; 定時(shí)器/計數器T0定時(shí)取反P3.4口進(jìn)行高頻調制 RETI ;中斷返回 ;以下為串行口中斷服務(wù)程序,以接收一個(gè)字節數據為例,多字節以此類(lèi)推 ORG 0023H;串行口中斷入口地址 SENDSERVE:NOP NOP MOV A,SBUF ;把接收緩沖器的數據送到A寄存器 … ;進(jìn)行數據處理及其它功能操作 RETI ;中斷返回 ;以下為串行口發(fā)送程序,以發(fā)送一個(gè)字節數據為例, 多字節以此類(lèi)推 COMSEND: MOV A,#DATAH ;把數據送到A寄存器 MOV C,P ;根據A中數據產(chǎn)生的偶校驗位送到進(jìn)位標志位 MOV TB8,C ;送偶校驗位到發(fā)送的第9位數據 MOV SBUF,A ;送數據到發(fā)送緩沖器 JNB TI,$ ;以查詢(xún)方式等待發(fā)送結束 CLR TI ;清發(fā)送中斷標志位 … ;繼續發(fā)送或其它功能操作 RET 子程序返回 4 結束語(yǔ) 本設計的最大特點(diǎn)在于省略了脈沖振蕩器,而僅僅利用多費率電能表上所帶單片機的串行口和2個(gè)定時(shí)器/計數器,這不僅使多費率電能表在硬件設計上更加簡(jiǎn)單、成本更加低廉,而且在軟件上也更加方便、可靠。同時(shí)這種紅外通信方式也可以應用在帶串行口和定時(shí)器/計數器的單片機應用領(lǐng)域。 本文所附 SCH 圖 由下下載: http://www.21ic/upload-image/pic.Sch
評論