计算机红外通信_第1页
计算机红外通信_第2页
计算机红外通信_第3页
计算机红外通信_第4页
计算机红外通信_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、课程设计的目的与要求

1、设计目的:

1)进一步掌握高档微机的汇编语言程序设计方法;

2)进一步掌握微机常用接口电路的工作原理和使用方法;

3)掌握微机红外接口电路的设计与调试方法;

4)掌握微机短距离无线数据传输的原理和方法;

5)掌握微机软件,硬件系统综合设计的基本方法。

2、设计要求

1);独立完成各部分接口电路的设计与调试;

2)独立完成各部分应用程序的设计与调试;

3)利用自己设计的接口电路实现数据的调制、发送、接收和解调;

3)利用8250串口芯片、红外接口电路、8279芯片及其键盘扫描和显示

电路,实现数据的自发自收;

4)与其他组配合,从对方接收数据或者向对方发送数据:

5)记录各个步骤的调试结果(信号波形的程序功能)。

二、技术背景

目前微型计算机的短距离通信连接还是有线连接文件之间以及微机与外设

直接的联线往往造成麻烦,短距离的联接的发展必然要走向无线联机,目前主要

的短距离无线连接技术有红外通信技术和蓝牙技术,前者采用红外线,后者采用

无线电波作为信息传播的媒介。由于红外无线通讯的技术与蓝牙相比较,红外技

术比较成熟,并且其接口电路简单,成本低,因此本设计采用红外无线通信。

无线通信需要有通讯的协议(标准),它是物理层的协议,可以透明的传输

比特流。

o在电脑技术发展早期,数据都是通过线缆传输的,线缆传输连线麻烦,需要特

制接口,颇为不便。于是后来就有了红外、蓝牙、802.11等无线数据传输技术。

在红外通讯技术发展早期,存在好几个红外通讯标准,不同标准之间的红外

设备不能进行红外通讯。为了使各种红外设备能够互联互通,1993年,由二十

多个大厂商发起成立了红外数据协会(IrDA),统一了红外通讯的标准,这就是

目前被广泛使用的IrDA红外数据通讯协议及规范。

IrDA即红外数据协会,全称TheInfraredDataAssociation,是1993年6月成

立的一个国际性组织,专司制订和推进能共同使用的低成本红外数据互连标准,

支持点对点的工作模式。由于标准的统一和应用的广泛,更多的公司开始开发和

生产IrDA模块,技术的进步也使得IrDA模块的集成越来越高,体积也越来越小。

IrDAl.O可支持最高115.2kbps的通信速率,而lrDA1.1可以支持的通信速率达

到4Mbps0

IrDA(红外数据协会)的宗旨是制订以合理的代价实现的标准和协议,以推动

红外通信技术的发展。

IrDA数据通信按发送速率分为三大类:SIR、MIR和FIR。串行红外(SIR)

的速率覆盖了RS-232端口通常支持的速率(9600b/s〜115.2kb/s)。MIR可支

i

持0.576Mb/s和1.152Mb/s的速率;高速红外(FIR)通常用于4Mb/s的速率,

有时也可用于高于S1R的所有速率。

IrDA提出了对工作距离、工作角度(视角)、光功率、数据速率不同品牌设

备互联时抗干扰能力的建议。当前红外通讯距离最长为3米,接收角度为30度。

随着红外通信技术的发展,其通信速率也将不断提高,今年IrDA将推出

16Mbps的超高速红外(VFIR)标准。IrDA红外通信的作用距离也将从1米扩

展到儿十米。近两年兴起的蓝牙无线通信技术具有距离离远、无角度限制等优点,

但数据速率较低且成本高,误码率和保密性也不如红外通信,因此蓝牙无线通信

技术还未达到完全替代红外通信的程度。

在基本的IRDA应用模式中,设备分为主设备和从设备。主设备用于探测它

的可视范围,寻找从设备,然后从那响应它的设备中选择一个并试图建立连接。

在建立连接的过程中,两个设备彼此协调,按照它们的共同的最高通信能力确定

最后的通信速率。以上的“寻找”和“协调”过程都是在9.6kb/s的波特率下进

行的。IRDA数据通信工作在半双工模式,因为在发射时,接收器会被反射的光

芒所屏蔽,这样通信的两个设备将通过快速转换链路来模拟全双工通信,并由主

设备负责控制链路的时序。

三、课程设计的内容

1、基本的收发接口电路的设计

CPU通过串行通信接口芯片8250,把数据传送出去,然后按照IRDA物

理层协议,把数字信号转化成RZI反相归零的调制信号,该调制信号加载到

红外发射管上,转化成红外光信号发射出去,再用红外接收管把红外光信号

接收下来,并通过解调,把RZI反相归零信号解调为数字信号,由8250接

口芯片接收,最后传到CPU中,完成基本的接口电路的功能。

2、利用8279键盘扫描和显示接口芯片来实现数据的产生和显示,利用8250

和红外接口电路来实现数据的发送和接收,整个数据流向为:键盘——8279——

CPU——8250——红外发送电路——红外接收电路——8250——CPU——8279

------LED显示。

3、联机通信。相邻的两台计算机利用8250串口芯片好红外接口电路来实现

数据的发送与接收。

四、硬件部分的设计与调试步骤

1、理清调制与解调的方法

IRDA物理层协议.

IRDA物理层的方框图如下所示

2

数据

字节

数据

字节

图1、1RDA物理层方框图

图中表示了两种调制与解调的方法,当数据率小于•41\^/$时-,使用使用

RZI(归零反转)调制与解调;而在4Mb/s的数据率时,使用4PpM(脉冲位置)

调制与解调。

RZI调制的编码效果如下图所示:

起始位数据位停止位

UARTfoS

[R帧_n__n_n___n__

——----3/16s

图2、IRDA(3/16)调制

将代表0的码元调制为原来码元的3/16的宽度的高电平脉冲,将原来代表1的码元调制为

原理码元宽度的低电平信号。这样做的好处是:使用归零码可以便于提取同步信号,使用反

相调制时,如果没有发送数据,即UART帧发送停止位时,发送的是高电平的停止位,这

时红外接口的发送部分就可以不发送光信号,从而节省功率。

4PPM的调制方法如卜.图所示:

这种方法是把每两个比特调制成四个比特,规则如上图。解调器在接收时,将每

四位码元的相位锁定后,即可根据高电平脉冲在码组中的位置来判定原来的位的

状态。

3

本次课程设计采用的是SIR模式,即数据率低于4M,所以要采用RZI的调制方

法。

课程设计所提供的元器件有

三输入端与非门3个

与非门6个

电解电容(luF、4.7uF、0.47uF、0.luF)、瓷介电容(0.luF)和电阻(100欧、

300欧、1千欧、10千欧、100千欧、1兆欧)若干。

根据8250串口芯片既有输入输出口,又有一个速率为码元速率的16倍的波

特率输出口,根据3/16的调制要求,可利用此波特率信号来调制。

74HC393A具有分频功能,根据其分频特性,可以对波特率进行分频,即以波

特率信号做定时信号,以UART输出数据做控制信号,然后通过对分频后的信号

进行逻辑运算得到所要求的3/16调制特性

(1)调制电路

4

电路说明:

观察74hc393a分频器的时序图后可知,在相当于一个码元宽度的16个时钟

周期内,当UART输出码元。时,让分频器的四个输出的逻辑组合为3/16的高电

平,即时序图中所示的第6、7、8这三个时钟的时间内,分频器的四个输出的逻

辑组合为高电平,当UART输出1时,让分频器的四个输出的逻辑组合为0,就

可以实现RZI的3/16的调制。

我们还注意到,3/16的调制要求脉冲在整个码元宽度的正中间,但是根据分

频器的时序,6、7、8这三个脉冲并不是在正中间,而是稍微偏左,这是器件的

限制,但这并不影响实际的应用。

对于1码,只要将数据信号送到分频器的RESET(复位端,高电平有效),就

可以使分频器四个输出都为0;对于。码,由于数据信号接到了分频器复位端,

为低电平,分频器能正常工作,经观察,可以很容易的实现第6、7个时钟期间

输出高电平,其他时钟周期内输出低电平,逻辑组合公式为:

Y1=Q2*Q3*(Q4,)

但是,现在仅为2/16的脉冲宽度,与要求的3/16的宽度不符,所以还要对

这2/16码元宽度的脉冲进行处理,使其变为3/16的宽度。根据手上拥有的器件,

可以选用74HC74A触发器作为主要的变换器件。将信号Y1送到触发器的数据输

入端,利用Y1的上升沿触发,使触发器输出高电平,在第九个时钟脉冲开始的时

刻,利用触发器的RESET(复位端,低电平有效),将触发器的输出置为低电平,

这就实现了2/16到3/16的转换,这种方法的关键在于寻找一个信号,该信号在

第9个时钟脉冲开始时刻由高电平跳变为低电平。设经Y1信号触发的,没有复

位信号的触发器的输出信号为Y2,Y2的一个码元宽度中,前6个时钟周期为低

电平,后10个时钟周期为高电平,则经过对分频器的四个输出和Y2的观察,得

出产生这个信号的逻辑组合是:

Y3=(Y2*(Q1*Q4)')

经过这种变换后,就完成了0信息码转换成3/16码元宽度脉冲的调制。只

5

要将这个已调信号接到红外发射管上,就实现了红外接口电路的发送部分的设

计。

电路图中的74HC393A和74HC74A的clock端口均接到串口芯片8250的波特

率输出端,74HC393A的复位端接到8250的数据发送端,74HC74A的Q端为3/16

调制信号,接到红外发送管上。

对这个调制电路的测试如下。

将该电路与8250串口芯片合理连接,编写一程序,连续的发送同一个字节

的信号,该信号由8250串行输出送到调制电路,用双踪示波器同时观察8250

的输出信号和调制后的信号的波形,调试程序如下

stacksegment

stackends

datasegment

dataends

codesegment

assumecs:code,ss:stack,ds:data

start:movdx,20bh;写线路控制字,允许写波特率

moval,80h

outdx,al

movdx,208h;写波特率

moval,12

outdx,al

incdx

moval,0

outdx,al

movdx,20bh;写线路控制字,不允许访问波特率因子,无奇

偶校验,字长为8位

moval,03h

outdx,al

movdx,209h;写中断允许控制字,不允许所有中断

moval,00h

outdx,al

xh:movdx,208h;连续循环发送数据

moval,65h

outdx,al

jmpxh

codeend:

endstart

用示波器测得的波形如下图,完全符合3/16调制的要求。

6

(2)解调电路

电路说明:

图中的红外接收管和电源,电阻组成红外光信号的接收并转换成电信号,当

有红外光照射时,接收管的电阻突然变得很小,经过分压,电阻R1上得到高电

平,当无红外光照射时,接收管的电阻很大,经过分压,电阻R1上得到低电平。

R1上的电压对电容C1进行充电和放电,在电容C1上就可以得到跟随红外光变

化的电压信号,该电压的特性是:在3/16脉冲处,由于电容充电,产生波峰,

在其它时刻,为低电平。

由于电容上的电压波峰的位置就是3/16脉冲的位置,成一一对应的关系,

只要对该信号进行电平判决再生,就可以准确地恢复出原来的3/16调制信号。

这部分工作可以由反相器来完成。判决电平为反相器高低电平的判决电平,判决

后生成的脉冲宽度可能不是3/16的码元宽度,这是由电容C1的充放电的多少来

决定的,但这不会影响脉冲之间的相对位置,因而也不会影响到解调。为了讨论

方便,这里仍假定为3/16的宽度。由以上电路看出,经过三个反相器的判决再

生,倒相,驱动后,得到了倒相的3/16调制信号,设该信号为Y4。只要将该信

7

号的低电平部分变换为一个码元宽度,就实现了解调。

这里仍使用触发器74HC74A作为变换的器件。在以上设计的电路中,触发器

的Q端为为解调输出端,数据输入端接高电平。为了分析的方便,设Y4信号为

高电平时为常态。在常态时,触发器输出高电平,分频器复位,输出低电平,因

而不存在提供给74HC74的时钟信号;当Y4为低电平时,对触发器复位,触发器

输出低电平,同时分频器有效,产生时钟信号提供给触发器,触发器的时钟信号

在有效时刻开始的一个码元宽度时间后会有一个正跳变,在该跳变时刻,如果

Y4已经恢复为常态,即复位信号消失了,则该跳变将触发器输出触发为高电平

(因为触发器的输入端接高电平),若在该跳变时刻Y4又出现第二个低电平(即

出现信码为连0的情况),在复位信号和触发信号同时存在的情况下,复位信号

有效,输出仍为低电平,符合解调的要求。这里值得注意的是,可能由于Y4的

两个相邻低电平之间的距离不是为一个准确的码元宽度,则可能会有竞争现象,

即会出现尖峰脉冲,这就是所设计的这个电路的缺点。

调试时,将红外发送管和红外接收管对准,红外接收解调后的信号接到8250

的串行接收口,实验程序仍如上一个程序所示,实验调试所得波形如下:

该图在上面的波形为调制前的波形,在下面的波形为解调后的波形。两个波形符

合解调的规则,解调后的波形与调制前的波形完全一致,只是在时间上,解调波

形比调制前的波形相比有一定的延时,这是符合实际情况的;用纸张挡在红外发

送管和接收管之间,则接收端接收不到任何信号波形,这说明接收到的信号确实

是通过红外光来传送的,到此,即完成了红外发送和接收接口的硬件电路部分的

设计。

(3)利用8279、8250和红外接口电路实现自发自收的框图。

8

五、自发自收软件部分的设计与调试

软件总流程图

9

;FOREAT598

Z8279EQU239H

D8279EQU238H

LEDMODEQU00;左边输入,八位显示外部译码八位显示

LEDFEQEQU38H;扫描频率

10

CODESEGMENT

ASSUMECS:CODE,DS:CODE

START:;初始化

PUSHCS;数据段和代码端使用同一段

POPDS

movch,0;ch作两个学号的轮显标志

movcl,0©作学号的低两位,用于学号的递增

movdx,203h;8250的初始化

moval,8Oh

outdx,al

movdx,200h

moval,12

outdx,al

movdx,201h

moval,0

outdx,al

movdx,203h

moval,Obh

outdx,al

;键盘显示器芯片8279的初始化

MOVDX,Z8279

MOVAL,LEDMOD

OUTDX,AL

MOVAL,LEDFEQ

OUTDX,AL

MOVDX,D8279

MOVAL,7FH

OUTDX,AL

MOVDX,D8279

MOVAL,7FH

OUTDX,AL

MOVDX,D8279

MOVAL,7DH

OUTDX,AL

MOVDX,D8279

MOVAL,7FH

OUTDX,AL

II

MOVDX,D8279

MOVAL,70H

OUTDX,AL

MOVDX,D8279

MOVAL,5EH

OUTDX,AL

MOVDX,D8279

MOVAL,79H

OUTDX,AL

MOVDX,D8279

MOVAL,77H

OUTDX,AL;以上为写(AEDK8688)

NOP

;8250接收数据并显示

zzz:movbx,00ffh;置查询次数256次

RE:MOVDX,205H;8250线路状态寄存器地址

decbx;查询次数减1

jzbbb;已查询256次,但接收缓冲器仍无内容,转查询是否有

发送

INAL,DX;读取线路状态寄存器内容

TESTAl,1

JZRE;接收数据未就绪,继续查询

MOVDX,200H;8250接收数据寄存器地址

INAL,DX;已接收到键码,读入AL

NOP;查表,将键码放入AL中

LEA]BX,LED

XLAT

cmpal,77h;按键是否未A键

jzeee;是人键,则转A键的处理程序

cmpal,7ch;判断按键是否为B键

jziii;是B键则转B键处理程序

;除人8之外的按键,仍然按照正常显示

MOVDX,D8279;显示数码管地址

OUTDX,AL;将AL中内容写到数码管上

jmpzzz;转而继续查询是否有新的数据接收

12

;输出学号且学号递增,只有个位和十位递增,

eee:

MOVDX,z8279

MOVAL,90H

OUTDX,AL

moval,cl;cl内容送入AL中去作乘法

callhaha;调用子程序haha

moval,06H;写后续的学号

OUTDX,AL

moval,3FH

OUTDX,AL

moval,3FH

OUTDX,AL

moval,6DH

OUTDX,AL

moval,3FH

OUTDX,AL

moval,06H

OUTDX,AL

inccl;显示一遍后,值CL递增1

cmpcl,42浮号最大值为42,大于42则归零

jzkkk

jmpzzz

;输出学号

iii:

MOVDX,z8279

MOVAL,90H

OUTDX,AL

cmpch,0;比较ch内容是否为0,区分写哪一个人的学号

jzggg;为0则转而显示135学号

MOVDX,D8279;不为0,显示101学号,显示数码管地址

moval,06H;将学号2写到数码管上

OUTDX,AL

moval,3fH;写学号2

OUTDX,AL

moval,06H;写学号1

OUTDX,AL

moval,3FH

OUTDX,AL

moval,3FH

OUTDX,AL

moval,6DH

13

OUTDX,AL

moval,3FH

OUTDX,AL

moval,06H

OUTDX,AL

movch,0;将品作为标志位置0,用于学号的轮换

jmpzzz

;输出另一个人的学号

ggg:MOVDX,D8279

moval,6dH;将学号0写到数码管上

OUTDX,AL

moval,4fH;写学号2

OUTDX,AL

moval,06H;写学号1

OUTDX,AL

moval,3FH

OUTDX,AL

moval,3FH

OUTDX,AL

moval,6DH

OUTDX,AL

moval,3FH

OUTDX,AL

moval,06H

OUTDX,AL

movch,1;将(±作为标志位置1,学号轮换

jmpzzz;继续查询是否接收到新数据

kkk:movcl,0

jmpzzz

;8279接收键值和8250发送键值,当8250没接收到数据时跳转到这里

ddd:MOVDX,Z8279;FIFO清空,关蜂鸣器

MOVAL,0C2H

OUTDX,AL

bbb:MOVDX,Z8279

INAL,DX

ANDAL,80H

CMPAL,80H

JEbbb;FIFO正在清除期间则跳转等待

movbx,00ffh

14

ccc:MOVDX,Z8279

IN/XL,DX

decbx

jzzzz

ANDAL,0FH

CMPAL,OOH

JEccc;无键按下则等待

MOVAL,40H;写读FIFORAM命令字

OUTDX,AL

MOVDX,D8279;读入FIFORAM内容

INAL,DX

NOP

movbl,al

send:movdx,205h;利用8250发送键值

inal,dx

testal,20h

jzsend

movdx,200h

moval,bl

outdx,al;发送

jmpddd

nop

;学号的个位和十位的二十进制转换并显示

hahaprocnear

movbh,l;al中内容乘以1,为了分离出,十"个,位

mulbh

aam;使用乘法调整指令,ah中为十位,al中为个位

LEABX,LED;查表,将键码放入AL中

XLAT;查表取得个位的显示段码

MOVDX,D8279

OUTDX,AL;将个位写到数码管上

moval,ah;查表取得十位显示段码

xlat

outdx,al;将十位写到数码管上

ret

hahaendp

NOP

15

FINI:MOVDX,Z8279;清FIFO寄存器并关蜂鸣器

MOVAL,0C2H

OUTDX,AL

JMP

;表格,在程序段中

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB5EH,79H,71H

CODEENDS

ENDSTART

实际调试时,将红外发送管和红外接收管对准,运行以上程序。开始时八位

LED显示器显示AEDK8688字样;按下某一个按键时(A、B除外),则在显示

器上从右端输入该按键的键值;每按一次A键时,学号的末两为从00递增到42,

如此循环;B键被按下奇数次后,显示第一个人的学号,B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论