基于AT89S52型单片机的红外无线PPM发射机设计.docx
《基于AT89S52型单片机的红外无线PPM发射机设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52型单片机的红外无线PPM发射机设计.docx(24页珍藏版)》请在冰豆网上搜索。
![基于AT89S52型单片机的红外无线PPM发射机设计.docx](https://file1.bdocx.com/fileroot1/2022-12/18/9ccc44fb-857c-4709-82e6-83615c63b69c/9ccc44fb-857c-4709-82e6-83615c63b69c1.gif)
基于AT89S52型单片机的红外无线PPM发射机设计
红外线通信是一种廉价、近距离、无线、低功耗、保密性强的通讯方案,主要应用于近距离的无线数据传输,也有用于近距离无线网络接入。
从早期的IRDA规范(115200bps)到ASKIR(1.152Mbps),再到最新的FASTIR(4Mbps),红外线接口的速度不断提高,使用红外线接口和电脑通信的信息设备也越来越多。
红外线接口是使用有方向性的红外线进行通讯,由于它的波长较短,对障碍物的衍射能力差,所以只适合于短距离无线通讯的场合,进行“点对点”的直线数据传输,因此在小型的移动设备中获得了广泛的应用。
红外线通讯发展早期存在着规范不统一的问题,许多公司都开发出自己的一套红外通讯标准,但不能与其它公司有红外功能的设备进行红外通讯,因此缺乏兼容性。
自1993年起,由HP、COMPAQ、INTEL等多家公司发起成立了红外数据协会(InfraredDataAssociation,简称IRDA),建立了统一的红外数据通信标准。
一年以后,第一个IRDA的红外数据通讯标准——IrDA1.0发布,又称为SIR(SerialInfraRed),它是基于HP开发出来的一种异步的、半双工的红外通信方式。
通过对串行数据脉冲和光信号脉冲编解码实现红外数据传输。
IrDA1.0的最高通讯速率只有115.2Kbps,适应于串行端口的速率。
1996年,该协会发布了IrDA1.1标准,即FastInfraRed,简称为FIR。
FIR采用了全新的4PPM调制解调技术,其最高通讯速率达到4Mbps,这个标准是目前运用得最普遍的标准,我们在采购红外产品时也应注意这标准的产品。
继IRDA1.1之后,IRDA又发布了通讯速率高达16Mbps的VFIR技术(VeryFastInfraRed)。
不断提高的速率使红外线使它在短距无线通信领域占有一席之地,而不仅是数据线缆的替代。
红外线的传输距离为1~100CM,传输方向的定向角30度,点对点直线数据传输。
基于红外线的传输技术最近几年有了很大发展。
目前广泛使用的家电遥控器几乎都是采用的红外线传输技术。
作为无线局域网的传输方式,红外线方式的最大优点是不受无线电干扰,且它的使用不受国家无线管理委员会的限制。
但是,红外线对非透
明物体的透过性较差,导致传输距离受限制。
红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。
红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。
红外数据协会(IRDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。
IRDA标准包括三个基本的规范和协议:
物理层规范(PhysicalLayerLinkSpecification)、链接建立协议(LinkAccessProtocol:
IrLAP)和链接管理协议(LinkManagementProtocol:
IrLMP)。
物理层规范制定了红外通信硬件设计上的目标和要求,IrLAP和IrLMP为两个软件层,负责对链接进行设置、管理和维护。
在IrLAP和IrLMP基础上,针对一些特定的红外通信应用领域,IRDA还陆续发布了一些更高级别的红外协议,如TinyTP、IrOBEX、IrCOMM、IrLAN、IrTran-P和IrBus等等
基于AT89S52型单片机的红外无线PPM发射机设计
1引言
在工业和生活环境中,便携式信息终端设备的出现加速了无线数字通信线路和局域网的引进,然而,由于无线电的局限性,使他在无线高速数据链路应用方面受阻。
在此情况下红外(IR)无线光通信得到人们的重视[1]。
作为一种室内短距离通信的传输介质,IR具备赛过无线电的显著长处:
IR有巨大的带宽且不需许可证,能够进行高速数据传输;IR不穿透墙壁,因而消除了在不同房间进行通信时可能带来的干扰,而且通信时不容易被侦听,提高了通信的安全性;IR探测器的尺寸比IR无的波长大得多,避免了多径衰落;IR可强度调制,IR通信设备比无线电通信设备要便宜简单得多。
对室内无线电局域网,需要红外数据链路的峰值-平均光功率比高,高峰值功率可提高系统的灵敏度,低平均功率可满足人眼安全和低功耗的需要,脉冲位置调制(PPM)通信方式就符合这些需要,现在,PPM已被IEEE无列入无线局域网IEEE802.11标准。
用纯硬件设计实现PPM光发射机是比较复杂和困难的,笔者利用功能强大的AT89S52型单片机和编程软件VC++设计了一种基于电脑串口和的红外无线PPM发射机。
AT89S52通过串口从电脑获取数据,编码得到脉冲宽度调制(PWM)信号后通过输出端口输出,输出的PWM信号经过波形转换电路得到PPM电脉冲信号,再通过光源驱动电路转换为PPM光脉冲信号,从而完成红外无线PPM发射机的设计。
2PPM信号格式
PPM采用断续的周期性光脉冲作为载波,调制信号受到信源二进制符号地控制,脉冲的时间位置随之发生变化而传递信息,PPM信号结构如图1所示,在数字PPM通信中,同步是至关重要的。
为了实现帧同步,应在传送信息帧之前发送一次帧同步头,为接收端提供同步信息,同时在信息帧的前面和后面分别安排2个标志帧以表示信息的开始和结束,这样接收机捕获到同步信号和起始标志符后,开始解调随后的脉冲信号,直到接收到结束标志,表明数据接收完毕。
每一个信息帧又分为信息段和保护段(由光源和信道的特性决定),共M个时隙,每个时隙的宽度为Ts,其中前Q个时隙为信息段TQ=(QTs),后D个时隙为保护段TD=(DTs)。
对Q元PPM,平均光功率为Pa,光脉冲峰值功率为QPa,又一帧表示log2Q位的二进制信息,因此数据传输速率R为
R=log2Q/T=log2Q/MTs=Log2Q/(Q+D)Tsbit/s
(1)
其中,T为一帧的时间长度。
在T不变的条件下,PPM的传信率和峰值功率随时隙数Q增大,但是Q值过大,也就是一帧分成的时隙数过多,会给信号的传输和解调带来困难,信息和Q值成对数关系,例如,当Q=256时,一个脉冲表示8比特信息,而Q=512表示9比特信息,由此可见,Q较大时,脉冲携带的信息量随Q值的增大并没有明显增加,综合考虑以上情况和实际设计需要,笔者采用Q=16的PPM调制方式,时隙宽度Ts设为15μs。
3AT89S52的特点
AT89S52是一种低功耗、高性能CMOS8位单片机,片内含8KBISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程式存储器、该器件采用Atmel公司的高密度、非易失性存储技术制造、兼容标准MCS-51指令系统及80C51引脚结构。
片内整合了通用的8位CPU和ISPFlash为存储单元,可为众多嵌入式控制应用系统提供高灵活、高性价比的解决方案。
TA89S52具备如下特点:
40个引脚,8KBFlash片内程式存储器,256Bytes的随机存储数据存储器(RAM),32个外部双向输入/输出(I/O)口,1个6向量2级中断结构;3个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路和片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件配置的省电模式。
在空闲模式下,CPU暂停工作,而RAM、定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,禁止电路的其他功能直至外中断激活或硬件复位。
同时该电路还具备PDIP、TQFP和PLCC等封装形式,以适应不同产品的设计需要。
4硬件设计
红外线PPM发射机由AT89S52型单片机和电脑的串行通信电路,PWM到PPM波形转换电路和光源驱动电路构成,其系统结构框图如图2所示。
4.1串行通信电路
为了能使单片机和电脑通信,必须使其遵循相同的通信协议,AT89C51的串行口输入/输出为TTL逻辑电平,抗干扰性较差,而电脑的串行接口是符合EIARS-232C规范的外部总线标准接口,具备较强的抗干扰性,为了解决电平不一致的矛盾,该系统设计选用了Maxim公司的MAX232型电平转换器实现电平转换,MAX232属于通用串行接收/发送驱动器,其外围电路很简单,只需外接4个0.1μF的电容器。
AT89S52具备串行通信接口(SCI),SCI是能和电脑等外设通信的全双工异步系统,AT89S52和电脑采用RS-232C接口方式,这种方式下,SCI采用标准的不归零(NRZ)格式,开始是1位起始位,以逻辑“0”表示,接着是8位数据位,最后是1位停止位,以逻辑“1”表示故一次传送据长度为10比特,电脑发送数据,AT89S52接收数据,AT89S52将接收到的数据进行PWM编码,得到帧周期固定,而脉冲宽度随外部信号不断变化的PWM信号,然后通过P1.0端口输出。
4.2波形转换电路
经过单片机编码输出的PWM信号经过一个下降沿触发器即可得到PPM脉冲信号,波形转换如图3所示[7]。
当P1.0端口输出的信号由高电平变为低电平时,触发器的输出端产生所需的PPM脉冲信号,其脉冲宽度由外部定时电路决定。
4.3驱动电路
对于无线红外通信系统来说,半导体发光二极管(LED)是能够选用的最好光源,笔者采用带有温度补偿特性的射极耦合LED驱动电路[8],该电路看上去像一个线性差分放大器,实际上是个电流开关电路,PPM信号加在驱动电路的输入端,当PPM信号的电位低于设定的参考电位时,LED无脉冲电流通过,LED不发光;反之,脉冲电流通过LED而使LED发光。
如图4所示,注入电流IF相等的条件下,LED的输出光功率P随着温度的上升而下降,所以设计中采用温度补偿电路进行温度补偿,当温度升高时,LED的注入电流也随之增加,从而补偿LED的功率变化。
5软件设计
5.1电脑软件编程
电脑的主要作用是通过串口传送源数据给单片机。
利用VisualC++编制串行通信程式一般有3种方法:
调用MicrosoftWin32应用程式接口(API)提供的串行通信函数,利用VC++的MFC类库函数实现;用ActiveX通信控件(MSComm)研发串口通信程式,笔者利用VC++提供的MSComm控件来实现电脑和单片机之间的串行通信,利用VC++的通信控件MSComm进行软件设计只需对串口进行简单的配置即可。
程式实现很简单,结构清楚,在Windows环境下,串口是系统资源的一部分,应用程式要使用串口进行通信,必须在使用之前向系统提出资源申请需要(打开串口),通信完成后必须释放资源(关闭串口)。
5.2单片机软件编程
单片机的主要作用是从发送端(电脑)接收数据,并对接收到的数据进行PWM编码,然后通过输出端口输出,单片机部分的编程主要由串口初始化子函数,接收数据子函数和PWM信号发送子函数组成。
5.2.1串口初始化子函数
使用串口之前,应动其进行初始化,初始化程式如下:
5.2.2接收数据子函数
接收数据流程如图5所示,程式如下:
5.2.3PWM发送信号子函数
PWM信号发送包括发送PWM编码后的同步头、起始标志符、接收的数据和结束标志符、下面重点讨论对接收的数据进行编码及发送,其流程如图6所示,程式如下:
6结束语
红外通信为构建高速宽带室内无线局域网提供了新的选择。
PPM的脉冲峰值功率和平均功率之比很高,能够有效减小平均辐射功率和提高接收灵敏度,笔者设计的红外无线PPM发射机利用单片机实现PPM调制,具备电路结构简单、调试容易、可靠性高、精度高、成本低和功耗低的长处,由于设计中只采用了单只红外LED作为光源,输出功率不大,而且受辐射角的限制,通信具备方向性,能够考虑采用多只红外LED构成发射阵列来增加发射功率和辐射范围。
发信人:
dingshan (cityhunter), 信区:
MET
标 题:
一种用于单片机的红外串行通信接口
红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。
发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。
简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。
2 红外通信接口的硬件电路设计
单片机本身并不具备红外通信接口,但可以利用单片机的串行接口与片外的红外发射和接收电路,组成一个应用于单片机系统的红外串行通信接口,如图1所示。
2.1 红外发送器
红外发送器电路包括脉冲振荡器、驱动管T1和T2、红外发射管D1和D2等部分。
其中脉冲振
荡器由NE555定时器、电阻(R1、R2)和电容(C1、C2)组成,用以产生38kHz的脉冲序列
作为载波信号;红外发射管D1和D2选用Vishay公司生产的TSAL6238,用来向外发射950nm的
红外光束。
红外发送器的工作原理为:
串行数据由单片机的串行输出端TXD送出并驱动T1管,数位“0
”使T1管导通,通过T2管调制成38kHz的载波信号,并利用两个红外发射管D1和D2以光脉冲
的形式向外发送。
数位“1”使T1管截止,红外发射管D1和D2不发射红外光。
若传送的波特
率设为1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图2所示。
2.2 红外接收器
红外接收电路选用Vishay公司生产的专用红外接收模块TSOP1738。
该接收模块是一个三端
元件,使用单电源+5V电源,具有功耗低、抗干扰能力强、输入灵敏度高、对其它波长(9
50nm以外)的红外光不敏感的特点,其内部结构框图如图3所示。
TSOP1738的工作原理为:
首先,通过红外光敏元件将接收到的载波频率为38kHz的脉冲调制
红外光信号转化为电信号,再由前放大器和自动增益控制电路进行放大处理。
然后,通过
带通滤波器和进行滤波,滤波后的信号由解调电路进行解调。
最后,由输出级电路进行反
向放大输出。
为保证红外接收模块TSOP1738接收的准确性,要求发送端载波信号的频率应尽可能接近38
kHz,因此在设计脉冲振荡器时,要选用精密元件并保证电源电压稳定。
再有,发送的数位
“0”至少要对应14个载波脉冲,这就要求传送的波特率不能超过2400bps。
利用上述红外
收发电路构成的红外信道最大通信距离为8m。
3 红外通信的软件设计
3.1 通信方式
考虑到红外光反射的原因,在全双工方式下发送的信号也可能会被本身接收,因此红外通
信需采用异步半双工方式,即通信的某一方发送和接收是交替进行的。
这里设置单片机的
串行口采用方式3通信;通信的数据格式为每帧11位,包括1位起始位、8位数据位、1位奇
偶校验位和1位停止位;片内定时器T1作为波特率发生器,选择传送的波特率为1200bps,
则定时器T1的初值应设置为TL1=TH1=E8H,另外应禁止定时器T1中断,以免因定时器T1溢出
而产生不必要的中断。
3.2 通信协议
进行红外通信之前,通信双方首先要根据系统的功能要求制订某种特定的通信协议,然后
才能编写相应的通信程序。
例如在电度表抄表系统中,红外通信的一方是单相电度表,另
一方是手持抄表器,双方遵循表1格式的通信协议。
表1 抄表系统的通信协议
格 式
操 作 操作码 地址码 数 据 结束符
读取表数 AAH 3字节BCD码 3字节BCD码 EDH
设置表号 BBH - 3字节BCD码 EDH
设置表底数 CCH 3字节BCD码 3字节BCD码 EDH
开/关表设备 DDH 3字节BCD码 A0H/B0H EDH
校验出错 EEH 3字节BCD码 - EDH
3.3 单相电度表通信程序
在电度表抄表系统中,单相电度表接收命令是被动的,因此它采用实时性的中断方式进行
接收。
在系统初始化程序中依据如前所述的通信方式,对串行口和定时器T1进行相应的设
置。
在中断程序程序中按字节形式进行接收,将接收到的字节存放在预先设定的缓冲区内,当
接收到命令结束符后,则转入命令处理并回送相应的信息。
接收过程中若发现校验错误,
则停止接收并调用错误处理子程序,发送接收出错的信息,要求发送端重新发送。
串行口
中断服务程序的流程如图4所示。
3.4 手持抄表器通信程序
在红外通信过程中,手持抄表器是通信的发起者,其发送和接收都是主动的。
它的具体工
作过程为:
CPU不断扫描键盘,若发现有命令键按下,则调用发送子程序发送相应的操作命
令;发送结束后即启动接收子程序,以接收电度表回送的信息,然后对接收到的信息进行
后续处理。
结语
本文介绍的应用于单片机系统的红外串行通信接口,具有硬件电路简单、成本低廉、编程
方便、通信可靠性高的特点,实现了通信双方非接触式的数据传送。
在电度表抄表系统中
,由于配备了红外通信接口,利用手持抄表器可以方便地完成对电度表的抄录和校准等工
作,大大提高了抄表工作的效率,而且抄表确定高并杜绝了估抄和误抄的问题。
这种红外
通信方案也可用于其它遥控、遥测的单片机应用场合。
]基于单片机红外无线通信的抄表系统
基于单片机红外无线通信的抄表系统
作者:
周文举文章来源:
微计算机信息点击数:
摘 要:
本文介绍了用红外线实现上位单片机和多个单片机间的无线串行通信的新方法,并基于该方法设计实现了新型无线抄表系统,给出了硬件线路图、通信协议和程序流程图及用MCS51汇编语言编写的部分串行通信程序。
关键词:
红外线;单片机;抄表系统;主从式;无线串行通信
多台单片机的通信系统,已有很多资料做了介绍,在这些系统中的数据通讯一般采用的是串行通信方式。
串行通信可采用有线与无线两种方式,作者根据单片机串行通信原理、脉冲编码调制(PCM)技术和红外无线通信技术,开发设计了单片机编解码红外无线通信接口。
用该接口构成的新型无线抄表系统,利用红外线这种非电信号作为传输介质,来传送数据信息,可以在那些不适合或不方便架设电缆线及电磁干扰较强的工作环境,来实现单相电度表的抄表系统,完成电度表用电量的抄录、设置表底数、电度表校准等工作。
本文就利用单片机红外通信技术实现无线抄表系统做一介绍。
1.红外线通信原理
在抄表机数据通信系统中,单片机之间的数据通信采用一对多的主从模式,利用波长为940μm的远红外波通信。
其原理示意图如图1。
主机(即抄表机单片机)负责发送从机(即电度表单片机)地址、控制命令及调度,从机则负责收集现场信息,进行一定的数据处理,根据主机的要求返回数据,并执行主机发出的命令。
抄表机单片机与电度表单片机之间的信息交换是通过串行通信来实现。
在采用主从式多机串行通信系统中,从机不主动发送命令或数据,一切都由主机控制。
由于发送和接收共用同一物理信道因此在任意时刻只允许一台从机处于发送状态,其余的从机不能发送。
只有被主机呼叫的从机才能占用总线,对主机做出应答。
每台从机均分配有一个唯一的从机地址,主机与从机通信时,主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换,而未被呼叫的从机则继续处于等待状态。
主机发送的信息可以传到多个从机或指定的从机,各从机发送的信息只能被主机接收。
为了完成上述功能需通过设置单片机的串口控制寄存器SCON来实现,在此将单片机设置在工作方式3,即SM0=1、SM1=1。
通信的数据格式为每帧11位,包括1位起始位、8位数据位、1位奇偶校验位和1位停止位;片内定时器T1作为波特率发生器,选择传送的波特率为1200bps,则定时器T1的初值应设置为TL1=TH1=E8H,另外应禁止定时器T1中断,以免因定时器T1溢出而产生不必要的中断错误。
当主机发送一帧地址信息时,应保持这帧数据的第9位TB8为“1”;发送一帧数据信息时,应保持这帧数据的第9位TB8为“0”,所有从机最初均处于接收状态,即SM2=1状态,当接收的一帧数据的9位为1,所有从机均产生中断,接收这一帧地址数据并与各自的从机地址进行比较,以判断主机是否要与本机通讯。
接收到的地址数据与从机地址相等的为被呼叫从机,该从机将串行口控制寄存器SCON中的控制位SM2清0,去接收主机发来的数据帧(数据帧的第9位为0),此时不管接收到的第9位数据是否为1,都要产生串口中断,保证了主机与被叫从机间的正常数据通讯。
通讯结束后,该从机又重新将串行口控制寄存器SCON中的控制位SM置为1,为下一次与主机进行通讯做好准备。
其它从机则一直在SM2=1下继续自己的等待,不会受到其它从机与主机通讯的干扰。
在通信协议中规定:
(1)单片机以方式3进行通信,一帧数据的第9位为“1”代表地址帧,为“0”代表数据帧。
(2)设定通信波特率为1200bps。
(3)00H是以地址帧形式发送的一条对所有从机起作用的控制命令,命令各从机恢复SM2=1,等待接收状态。
(4)主机与从机的联络过程为;
主机下发地址帧,被呼叫从机向主机返回地址帧,以便主机确定与从机联络上了。
主机下发控制命令,从机根据命令或接收主机的数据块,或向主机发送数据块。
(5)主机发送的控制命令代码为:
AAH:
设置表底数;BBH:
读取表数;CCH:
开表设置;DDH:
关表设置
EEH:
校验出错;EDH:
传送结束符。
(6)数据块组成格式为:
数据块最后一帧为结束符EDH,结束符之前本数据块内容可以是操作码帧、地址码帧和数据帧。
为了实现多机通信,所有发射电路的振荡频率和所有的接收电路的振荡频率都必须调整一致,为保证正常通信,防止自己发自己接,数据传送方向必须为半双工传送,收发器在发射时,必须屏蔽自己的接收中断,发射结束后再开放中断。
多机通信过程为:
(1)所有从机的SM2=1,处于地址帧接收状态。
(2)主机发送一帧地址信息,其中包含8位地址,第9位为“1”,与所需的从机进行联络。
(3)从机接收到地址信息后,各自将其与自己的地址相比较;对于地址相符的从机使RI=0,TB8=1,发送自身地址,并使SM2=0,TI=1,以等待接收主机随后发来的所有信息;对于地址不相符的从机仍保持SM2=1状态,对主机随后发来的数据不理睬直至发送新的一帧地址信息。
(4)主机接收到地址后将SCON第9位TB8清“0”,然后进行地址校对,若地址校对通过,说明从机已经联络上,发送进一步的通信控制命令信号;地址校对出错,说明从机没有联络上,发送结束本次通信命令,修改SCON第9位,,将TB8置“1”。
主机向被寻址的从机发送控制指令与数据,一帧数据的第9位为“0”,表示发送的是数据或控制指令。
(5)被叫从机接收到命令后进行命令分析,收集现场信息,进行一