欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
基于單片機串行口紅外通信的設計
基于單片機串行口紅外通信的設計
 更新時間:2010-2-5 16:49:00  點擊數:0
【字體: 字體顏色

   多費率電能表是我國目前節約用電和計劃用電政策下不可缺少的電能計量產品,多費率電能表的通信接口一般兼有紅外接口和RS485接口。紅外通信具有直觀、操作簡便、可靠性高等優點,是電能表中使用最為普遍的一種通信方式,是電能表和掌機之間實現抄表、編程、校時、數據管理等功能的有效手段。采用新茂單片機SSU7301(51系列)、日本光電子公司的紅外發射管SE303和紅外接收管PIC12043,以及單片機串行口、2個定時器/計數器可以有效地實現紅外通信功能。

1 紅外通信原理

紅外通信是利用波長為900nm~1000nm的紅外波作為信息的載體,發射裝置把二進制信號經過高頻調制后發送出去,接收裝置把接收的紅外高頻信號進行解調為原來信息的一種通信傳輸方式。其中調制方式有脈寬調制(通過改變脈沖寬度調制信號PWM)和脈時調制(通過改變脈沖串之間時間間隔調制信號PPM)兩種,本文采用PPM脈時調制方式。

2 串行口紅外通信硬件設計

   多費率電能表的紅外發射和紅外接收電路主要包括新茂單片機SSU7301、日本光電子公司的紅外發射管SE303和紅外接收管PIC12043,以及驅動三極管8550、電阻和電容,紅外通信硬件原理圖見圖1。

 

2.1 紅外發射硬件設計

紅外發射是利用單片機SSU7301的串行數據發送口TXD(P3.1)控制驅動三極管BG1進行二進制數據“0”和“1”的傳輸(數據由串行發送緩沖器SBUF中送出),以及利用P3.4口控制驅動三極管BG2進行高頻38.4kHz調制(高頻驅動信號由定時器/計數器T0的方式2自動重裝模式產生),從而可靠地實現了紅外發射管D1在傳輸數據“0”時進行高頻紅外發射和數據“1”時被截止的發射功能。狀態關系見表1,波形見圖2。


2.2 紅外接收硬件設計

紅外接收是利用紅接收管PIC12034收到高頻信號輸出低電平確定為數據“0”,而沒收到高頻信號輸出高電平確定為數據“1”的方式經過解調,把數據通過單片機SSU7301的串行數據接收口RXD(P3.0)進行串行方式接收(接收數據存儲在串行口緩沖器SBUF中)。

3 紅外通信軟件設計

DL/T645-1997《多功能電能表通信》中規定電能表的紅外載波頻率為38kHz±1kHz;初始速率為1200 bps;通信的字節格式為8位二進制碼D0~D7,傳輸時加上一個起始位(0),一個偶校驗位P和一個停止位(1),共11位,傳輸時先傳低位,后傳高位,傳輸序列見圖3。根據以上要求,本設計中紅外載波頻率采用38.4kHz,波特率為1200bps,串行口采用模式3為9位異步通信方式,加1位起始位和1位結束位,傳送一個字節數據為11位。

 

3.1 紅外載波和定時器/計數器T0設置

紅外載波頻率f2為38.4kHz,當定時器/計數器T0模式控制器TMOD中C/T=0和M1M0=10時,SSU7301的定時器/計數器T0設置成模式2方式。此時,TL0和TH0預置成1個可以自動重裝的8位的定時器/計數器。用軟件將TL0和TH0預置相同的初值后,當TL0計數值增1溢出時,一方面使TF0置1,申請中斷;另一方面產生的溢出脈沖將TH0的數據值自動打入到TL0中去,不需要用軟件對TL0重新置初值。系統的晶振f1為11.0592MHz,則TL0和TH0的初值計算如下:

f2=38.4kHz 得T=1/f2=1/38.4k≈26×10-6=26 μs
所以高頻調制反轉的周期TC=T/2=26/2=13μs

即定時器/計數器T0的初值TL0=TH0=28-(TC×f1)/12=256-(13×10-6×11.0592×106)/12=256-11.9808≈244=0F4H
在定時器/計數器T0的中斷服務程序中只用兩條指令即可實現高頻調制,即 CPL P3.4和RETI。

3.2 串行口和定時器/計數器T1波特率發生器設置

串行口采用模式3為9位異步通信方式,波特率為1200bps。由串行口控制寄存器SCON的操作模式選擇位SM0、SM1都置1設置為模式3,當定時器/計數器T1模式控制器TMOD中C/T=0和M1M0=10時,SSU7301的定時器/計數器T1設置成模式2方式作為波特率發生器,其波特率表示為:

波特率=(T1的溢出率)/ n
當SMOD=0時,n=32;當SMOD=1時,n=16,(本設計中SMOD=0)則
波特率=(T1的溢出率)×2SMOD / 32
T1的溢出率=(f1/12)/(28-T1初值)
得:波特率=(T1的溢出率)×2SMOD / 32
        =[(f1/12)/(28- T1初值)] ×2SMOD / 32
得:定時器/計數器T1初值
TL1=TH1=28-(f1×2SMOD )/(12×32×波特率)
           =256-(11.0592×106)/( 12×32×1200)
           =256-24=232=0E8H

3.3 程序設計

根據以上兩點參數的設置,51系列單片機SSU7301的匯編語言程序設計如下:
;以下為參數設置程序
MOV  TMOD, #22H ;定時器/計數器T0方式2自動重裝模式用于PWM38.4KHZ調
;制用 , 定時器/計數器T1方式2自動重裝模式用于串行口通訊波特率發生器
MOV  TH1,#0E8H  ;波特率1200時,定時器/計數器T1自動重裝初值
MOV  TL1,#0E8H
MOV  TH0,#0F4H  ;38.4KHz高頻頻調制時, 定時器/計數器T0自動重裝初值
MOV  TL0,#0F4H
SETB ET0        ; 定時器/計數器T0溢出中斷允許位
SETB TR1        ; 定時器/計數器T1開始定時控制位
SETB TR0        ; 定時器/計數器T0 開始定時控制位                           
MOV  PCON,#00H  ;SMOD為0不倍增模式
MOV  SCON,#0D0H ;串行口設置為模式3,允許接收
SETB ES         ;串行口允許中斷
SETB EA         ;開總中斷允許位
;以下為定時器/計數器T0中斷溢出服務程序  
ORG  000BH; 定時器/計數器T0中斷入口地址
T0SERVE:CPL  P3.4 ; 定時器/計數器T0定時取反P3.4口進行高頻調制
RETI      ;中斷返回
;以下為串行口中斷服務程序,以接收一個字節數據為例,多字節以此類推
ORG  0023H;串行口中斷入口地址
SENDSERVE:NOP
NOP                
MOV  A,SBUF  ;把接收緩沖器的數據送到A寄存器
   …           ;進行數據處理及其它功能操作
RETI         ;中斷返回
;以下為串行口發送程序,以發送一個字節數據為例, 多字節以此類推
COMSEND: MOV  A,#DATAH ;把數據送到A寄存器
MOV  C,P      ;根據A中數據產生的偶校驗位送到進位標志位
MOV  TB8,C    ;送偶校驗位到發送的第9位數據
MOV  SBUF,A   ;送數據到發送緩沖器
JNB  TI,$     ;以查詢方式等待發送結束
CLR  TI       ;清發送中斷標志位
  …            ;繼續發送或其它功能操作
RET           子程序返回

4 結束語

本設計的最大特點在于省略了脈沖振蕩器,而僅僅利用多費率電能表上所帶單片機的串行口和2個定時器/計數器,這不僅使多費率電能表在硬件設計上更加簡單、成本更加低廉,而且在軟件上也更加方便、可靠。同時這種紅外通信方式也可以應用在帶串行口和定時器/計數器的單片機應用領域。

  • 上一篇: 單總線單片機多機通訊系統設計
  • 下一篇: 沒有了
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1