《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

多费率电能表中基于单片机串行口红外通信的设计
程序匠人 发表于 2005-11-15 11:00:00  阅读全文 | 回复(2) | 引用通告 | 编辑

多费率电能表中基于单片机串行口红外通信的设计
作者:谷海明

作者Email:   3-14159265@163.com

摘要:利用单片机的串行口、定时器/计数器T0、定时器/计数器T1、红外发射管和红外接收管等简单的软硬件就可靠地实现了多费率电能表的红外通信功能。本设计详细介绍了串行口红外通信的软硬件设计方法,并给出了具体的电路原理图、波形图和51单片机程序。

关键词: 红外通信 串行接口 电能表 SSU7301单片机

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个定时器/计数器,这不仅使多费率电能表在硬件设计上更加简单、成本更加低廉,而且在软件上也更加方便、可靠。同时这种红外通信方式也可以应用在带串行口和定时器/计数器的单片机应用领域。

本文所附 SCH 图 由下下载:

http://www.21ic.com/upload-image/pic.Sch

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:多费率电能表中基于单片机串行口红外通信的设计
好好(游客)发表评论于2007-9-1 19:10:00  个人主页 | 引用 | 返回 | 删除 | 回复

好好(游客)好感!

看《匠人手记》,与匠人同行!北航出版,正在热卖!

回复:多费率电能表中基于单片机串行口红外通信的设计
zb001(游客)发表评论于2006-7-1 15:43:00  个人主页 | 引用 | 返回 | 删除 | 回复

zb001(游客)怎么你的图看不到啊

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!