红外通讯系统的设计.doc
《红外通讯系统的设计.doc》由会员分享,可在线阅读,更多相关《红外通讯系统的设计.doc(37页珍藏版)》请在冰点文库上搜索。
![红外通讯系统的设计.doc](https://file1.bingdoc.com/fileroot1/2023-4/28/ae971821-025e-4ffa-bd59-25286df97fcf/ae971821-025e-4ffa-bd59-25286df97fcf1.gif)
摘要
随着科技的不断发展,各系统间的联系越来越紧密,对各系统间的数据传递的要求也越来越高。
而随着电脑的普及,形成了以电脑为主加上一些外部设备的系统。
但是外部设备越多,连接用的线也越多。
我的这个红外通讯系统能解决这个问题。
红外通讯系统是通过红外设备将单片机与外部设备联系起来进行通讯,实现系统间的无线通讯。
然后把数据存入IC卡中,用IC卡来实现计算机与外部系统间的数据交换。
而且还可以做到一卡多系统,这样就能解决一大堆线带来的烦恼。
还有,由于IC卡的加密特性,可以对数据进行有效的保密。
本论文首先介绍了红外设备及红外通讯的一些知识,第二章介绍了整个系统的硬件开发,第三章介绍了系统的软件开发,最后是一点感想。
关键词:
红外通讯,红外系统,单片机。
第一章绪论
1.1红外技术的背景及其发展
自从1800年英国天文学家F·W·赫歇尔发现红外辐射至今,红外技术的发展经历了将近两个世纪。
从那时开始,红外辐射和红外元件、部件的科学研究逐步发展,但发展比较缓慢,直到1940年前后才真正出现现代的红外技术。
当时,德国研制成硫化铅和几种红外透射材料,利用这些元、部件制成一些军用红外系统,如高射炮用导向仪、海岸用船舶侦察仪、船舶探测和跟踪系统,机载轰炸机探测仪和火控系统等等。
其中有些达到实验室试验阶段,有些已小批量生产,但都未来得及实际使用。
此后,美国、英国、前苏联等国竞相发展。
特别是美国,大力研究红外技术在军事方面的应用。
目前,美国将红外技术应用于单兵装备、装甲车辆、航空和航天的侦察监视、预警、跟踪以及武器制导等各个领域。
红外技术发展的先导是红外探测器的发展。
1800年,F·W·赫歇尔发现红外辐射时使用的是水银温度计,这是最原始的热敏型红外探测器。
1830年以后,相继研制出温差电偶的热敏探测器、测辐射热计等。
在1940年以前,研制成的红外探测器主要是热敏型探测器。
19世纪,科学家们使用热敏型红外探测器,认识了红外辐射的特性及其规律,证明了红外线与可见光具有相同的物理性质,遵守相同的规律。
它们都是电磁波之一,具有波动性,其传播速度都是光速、波长是它们的特征参数并可以测量。
20世纪初开始,测量了大量的有机物质和无机物质的吸收、发射和反射光谱,证明了红外技术在物质分析中的价值。
30年代,首次出现红外光谱代,以后,它发展成在物质分析中不可缺少的仪器。
40年代初,光电型红外探测器问世,以硫化铅红外探测器为代表的这类探测器,其性能优良、结构牢靠。
50年代,半导体物理学的迅速发展,使光电型红外探测器得到新的推动。
到60年初期,对于1~3、3~5和8~13微米三个重要的大气窗口都有了性能优良的红外探测器。
在同一时期内,固体物理、光学、电子学、精密机械和微型致冷器等方面的发展,使红外技术在军、民两用方面都得到了广泛的应用。
在红外技术的发展中,需要特别指出的是:
60年代激光的出现极大地影响了红外技术的发展,很多重要的激光器件都在红外波段,其相干性便于移用电子技术中的外差接收技术,使雷达和通信都可以在红外波段实现,并可获得更高的分辨率和更大的信息容量。
在此之前,红外技术仅仅能探测非相干红外辐射,外差接收技术用于红外探测,使探测性能比功率探测高好几个数量级。
另外,由于这类应用的需要,促使出现新的探测器件和新的辐射传输方式,推动红外技术向更先进的方向发展。
1.2红外数据通讯简介
红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。
通讯一般采用红外波段内的近红外线,波长在0.75um至25um之间。
红外数据协会(IRDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通讯效果,红外通讯协议将红外数据通讯所采用的光波波长的范围限定在850nm至900nm之内。
红外通讯技术的特点
■它是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持;
■通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发。
■主要是用来取代点对点的线缆连接;
■新的通讯标准兼容早期的通讯标准;
■小角度(30度锥角以内),短距离,点对点直线数据传输,保密性强;
■传输速率较高,目前4M速率的FIR技术已被广泛使用,16M速率的VFIR技术已经发布。
红外数据通讯技术的用途
红外通讯技术常被应用在下列设备中:
■笔记本电脑、台式电脑和手持电脑;
■打印机、键盘鼠标等计算机外围设备;
■电话机、移动电话、寻呼机;
■数码相机、计算器、游戏机、机顶盒、手表;
■工业设备和医疗设备;
■网络接入设备,如调制解调器。
厂家和消费者的认同度
外通讯技术已被全球范围内的众多软硬件厂商所支持和采用,目前主流的软件和硬件平台均提供对它的支持。
红外技术已被广泛应用在移动计算和移动通讯的设备中,巨大的装机量使红外无线通讯技术有了庞大的用户群体。
缺点
■通讯距离短,通讯过程中不能移动,遇障碍物通讯中断。
■目前广泛使用的SIR标准通讯速率较低(115.2kbit/s)
■红外通讯技术的主要目的是取代线缆连接进行无线数据传输,功能单一,扩展性差。
随着移动计算和移动通讯设备的日益普及,红外数据通讯已经进入了一个发展的黄金时期。
自1993年IRDA成立至今,红外数据协会的会员已经发展到150多个,当今在IT业和通讯业叱咤风云的大公司几乎都在其中,由此可见IRDA标准已经获得了业界的广泛认同和支持。
目前已经开发生产出来的具备红外通讯能力的设备已有一百种之多,红外模块的年装机量已经达到了一亿五千万套,并且每年还有着40%的高速增长。
尽管现在有了同样是近距离无线通讯的蓝牙技术,但以红外通讯技术低廉的成本和广泛的兼容性的优势,红外数据通讯势必会在将来很长的一段时间内在短距离的无线数据通讯领域扮演重要的角色。
1.3本系统的原理和功能
本系统主要是利用单片机的通讯功能加上红外收发器件组成一个简易红外掌机。
用IC卡作为外存,液晶作为显示。
主要功能是用于对数据的采集和储存
第二章系统硬件设计
2.1系统设计方案
利用51单片机和红外设备实现系统间的数据交换。
外部系统
IC
卡
红外设备
单片机
显示
2.2系统设计原理
下面我们来详细介绍一下各部分的构成及其功能:
2.2.1电源电路与复位电路
在该系统中需要用到+5V的直流稳压,在我们的生活中一般都是使用220的交流电,为了获得高质量的5V直流稳压电源,这就需要我们进行电压转化。
这里的滤波是为了滤去外界电源输入带来的一些不稳定的因素,比如说纹波的影响,而用一个大电容和一个小电容的组合,是为了分别滤去低频或高频的纹波。
在系统中,有时会出现程序跑飞而导致显示不正常,也为了调试方便,我们需要设计一个复位电路,在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。
复位电路可由简单的RC电路构成,也可使用其他的相对复杂,但功能更完善的电路。
在本系统中,电源电路和复位电路的实际应用如下:
2.2.2单片机电路
8051系列微处理器基于简化的嵌入式控制系统结构,被广泛应用于从军事到自动控制再到PC机上的键盘上的各种应用系统上。
仅次于Motorola68HC11在8位微控制器市场上的销量,很多制造商都可提供8051系列单片机,像IntelPhilipsSiemens等。
这些制造商给51系列单片机加入了大量的性能和外部功能,像I2C总线接口,模拟量到数字量的转换,看门狗,PWM输出等,不少芯片的工作频率达到40M,工作电压下降到1.5V。
基于一个内核的这些功能使得8051单片机很适合作为厂家产品的基本构架,它能够运行各种程序。
8051系列的基本结构如下
1一个8位算术逻辑单元
232个I/O口4组8位端口可单独寻址
3两个16位定时计数器
4全双工串行通信
56个中断源两个中断优先级
6128字节内置RAM
7独立的64K字节可寻址数据和代码区
每个8051处理周期包括12个振荡周期每,12个振荡周期用来完成一项操作,如取指令和?
计算指令执行时间可把时钟频率除以12,取倒数,然后指令执行所须的周期数,因此,如果你的系统时钟是11.059MHz,除以12后就得到了每秒执行的指令个数,为921583条指令,取倒数将得到每条指令所须的时间1.085us。
处理器状态
处理器的状态保存在状态寄存器PSW中,状态字中包括进位位,用于BCD码处理的辅助进位位,奇偶标志位,溢出标志位,还有前面提到的用于寄存器组选择的RS0和RS1。
0组从地址00H开始,1组从地址08H开始,2组从地址10H开始,3组从地址18H开始,这些地址都可通过直接或间接方式进行寻址PSW的结构如下
CY
AC
FO
RS1
RS0
OV
USR
P
CY进位标志位
AC辅助进位标志位
F0通用标志位
RS1寄存器组选择位高位
RS0寄存器组选择位低位
OV溢出标志位
USR用户定义标志位
P奇偶标志位
串行接口工作方式:
串口为全双工结构,表示可以同时发送和接收。
它还具有接收缓冲,在第一个字节从寄存器读出之前,可以开始接收第二个字节。
但是如果第二个字节接收完毕时第一个字节仍未读出,其中一个字节将会丢失。
串口的发送和接收寄存器都是通过SFRSBUF进行访问的。
写入SBUF的数据装入发送寄存器,对SBUF的读操作是对物理上分开的接收寄存器进行访问。
串口有4种操作模式:
模式0
串行数据通过RxD进出。
TxD输出时钟。
每次发送或接收以LSB最低位作首位,每次8位。
波特率固定为MCU时钟频率的1/12
模式1
TxD脚发送,RxD脚接收,每次数据为10位,一个起始位(0),8个数据位(LSB在前)及一个停止位
(1)。
当接收数据时,停止位存于SCON的RB8内,波特率可变,由定时器1溢出速率决定。
模式2
TxD脚发送,RxD脚接收,每次数据为11位,一个起始位(0),8个数据位(LSB在前),一个可编
程第9位数据及一个停止位
(1)。
发送时,第9个数据位(SCON内TB8位)可置为0或1。
例如将奇偶位(PSW内P位)移至TB8。
接收时,第9位数据存入SCON的RB8位,停止位忽略。
波特率可编程为MCU时钟频率的1/32或1/64,由PCON内SMOD1位决定。
模式3
TxD脚发送,RxD脚接收,每次数据为11位,一个起始位(0),8个数据位(LSB为首位),一可编程的第9位数据及一个停止位
(1)。
事实上模式3除了波特率外均与模式2相同。
其波特率可变并由定时器1溢出率决定。
在上述4种模式中,发送过程是以任意一条以写SBUF作为目标寄存器的指令开始的,模式0时接收通过设置R1=0及REN=1初始化,其它模式下如若REN=1则通过起始位初始化。
串行端口控制寄存器(SCON)
串行端口控制及状态寄存器即SCON,如下图所示,其中包括模式选择位,以及发送和接收的第9位数据(TB8及RB8),以及串行端口中断位(TI及RI)。
串行控制寄存器(SCON)
波特率
操作模式0的波特率是固定的,为fosc/12。
模式2的波特率是MCU时钟/64或MCU时钟/32,取决于PCON寄存器中的SMOD1位的值。
若SMOD1=0(复位值)。
波特率为MCU时钟/64,若SMOD1=1,波特率为MCU时钟/32。
在80C51中,模式1和模式3的波特率由定时器1的溢出速率决定。
使用定时器1作波特率发生器
当定时器1用作波特率发生器,模式1和3中波特率由定时器1的溢出速率和SMOD1的值决定。
在此应用中定时器1不能用作中断,定时器1可以工作在定时或计数方式和3种工作模式中任何一个,在最典型应用中它用作定时器方式工作自动重装载模式(TMOD的高半字节为0010B),它的波特率值由下式给出
可以定时器1的中断实现非常低的波特率。
将定时器配置为16位定时(TMOD的高半字节为0001B),并使用中断进行16位软件重装。
下图列出了几个常用的波特率以及如何从定时器1获得:
UART模式0
串行数据由RxD端输入,TxD输出同步移位时钟,发送或接收的是8位数据,低位在先,其波特率固定为MCU时钟的1/12。
执行任何一条把SBUF作为目的寄存器的指令时,就开始发送。
S6P2时刻的“写SBUF信号将1装入发送移位寄存器的第9位,并通知发送控制部分开始发送。
写SBUF信号有效后一个完整的机器周期后SEND端有效。
SEND使能RxD(P3.0)端送出数据TxD(P3.1)输出移位时钟。
每个机器周期的S3S4及S5状态内移位时钟为低电平,而S6、S1及S2状态内为高。
在SEND有效时,每一机器周期的S6P2时刻发送移位寄存器的内容右移一位。
数据位向右移时,左边添加零。
当数据字节最高位(MSB)移到移位寄存器的输出端时,其左边是装入“1”的第9位,再左的内容均为0,此时通知Tx控制模块进行最后一位移位处理后禁止SEND并置位T1,所有这些步骤均在“写入SBUF”后第10个机器周期的S1P1时进行的。
接收初始化条件是REN=1及R1=0。
下一机器周期的S6P2时,RX控制单元向接收移位寄存器写入11111110并在下一个时钟使RECEIVE端有效。
RECEIVE使能移位时钟转换P3.1功能,移位时钟在每个机器周期的S3P1及S6P1跳变。
在RECEIVE有效时每一机器周期的S6P2时刻,接收移位寄存器内容向左移一位。
从右移位进来的值是该机器周期S5P2时从P3.0脚上采样得来的。
数据从右边移入时,左边移出为“1”。
当初始时置入最右端的“0”移至最左端时,通知RX控制时钟作最后一次移位后装入SBUF。
在写入SCON清除R1后第10个机器周期,RECEIVE端被清除且置位RI。
UART模式1
串行口工作于模式1时,传输的是10位;1位起始位(0),8位数据(低位在先)及一位停止位
(1)。
由RxD接收,TxD发送。
接收时,停止位存入SCON内RB8。
80C51波特率取决于定时器1的溢出速率
发送过程是由执行一条以SBUF为目的寄存器的指令启动的。
“写SBUF”信号还把1(TB8)装入发送移位寄存器的第9位,同时通知发送控制器进行发送。
实际上发送过程开始于16分频计数器下次翻转后的那个机器周期的S1P1时刻。
每位的发送时序与16分频计数器同步,而并不与“写SBUF”信号同步。
发送以激活SEND端开始,向TxD发送一起始位。
一位(时间)以后DATA端有效,使输出移位寄存器中数据得以送至TxD。
再过一位,产生第一个移位脉冲。
数据向右移出左边不断填以0,当数据字节的最高位移到移位寄存器的输出位置时,其左边是装入“1”的第9位,再左的内容均为0。
此时通知TX控制器作最后一次移位,然后禁止SEND端并置位TI。
这都发生于写SBUF后16分频计时器的第10次翻转时。
接收在RxD端检测到负跳变时启动,为此MCU对RxD不断采样,采速率为波特率的16倍,当检测到负跳变时,16分频计数器立即复位。
同时将1FFH写入输入移位寄存器。
复位16分频计时器确保计时器翻转时位与输入数据位时间同步。
计数器的16个状态将每个位时间分为16份。
在第789状态时,位检测器对RxD端的值采样,取值为三个采样值中取多数(至少2个)作为读入值,这样可以抑制噪声。
如果所接收的第一位不为0,说明它不是一帧数据的起始位。
该位被摒弃,接收电路被复位,等待另一个负跳变的到来。
这用来防止错误的起始位,如果起始位有效,则被移入输入移位寄存器,并开始接收这一帧中的其它位。
当数据位逐一由右边移入时,“1”从左边被移出。
当起始位0移到最左边时(模式1为9位寄存器),通知接收控制器进行最后一次移位,将移位寄存器内容(9)位分别装入SBUF及RB8,并置RI=1。
仅当最后一位移位脉冲产生时同时满足下述2个条件:
RI=0,SM2=0或接收到的停止位=1,才会装载SBUF和RB8,并且置位RI。
上述两个条件任一不满足,所接收到的数据帧就会丢失,不再恢复。
两者都满足时,停止位就进入RB8,8位数据进入SBUF,RI=1。
这时无论上述条件满足与否,接收控制单元都会重新等待RxD的负跳变。
模式2和模式3
模式2和3中,发送(通过TxD)和接收(通过RxD)都是11位,包括1位起始位(0),8位数据位(LSB在先),1位可编程数据位(第9位)及一位停止位
(1)。
发送时,第9位数据位TB8可置为0或1。
接收时,第9位存入SCON的RB8。
模式2时波特率可编程选为MCU时钟频率的1/16或1/32。
在本系统中我们将用到定时器T1,设置TMOD=0X20,而串口则工作在模式1,设置SCON=0X50,下面我们来看一下模式1的功能:
串口模式1
2.2.3夜晶LCD电路
12864M是一种图形点阵液晶显示模块,它主要由行驱动器、列驱动器及128×64全点阵液晶显示器组成。
模块的外部接口
外部接口信号如下表2所示:
表2
管脚号
管脚名称
LEVER
管脚功能描述
1
VSS
OV
电源地
2
VDD
5.0V
电源电压
3
VO
-
液晶显示器驱动电压输入
4
D/I
H/L
D/I=“H”,表示DB7~DB0为显示数据
D/I=“L”,表示DB7~DB0为显示指令数据
5
R/W
H/L
R/W=“H”,E=“H”,数据被读到DB7~DB0
R/W=“L”,E=“H→L”,DB7~DB0的数据被写到IR或DR
6
E
H/L
使能信号:
R/W=“L”,E信号下降沿锁存DB7~DB0
R/W=“H”,E=“H”DRAM数据读到DB7~DB0
7
DBO
H/L
数据线
8
DB1
H/L
数据线
9
DB2
H/L
数据线
10
DB3
H/L
数据线
11
DB4
H/L
数据线
12
DB5
H/L
数据线
13
DB6
H/L
数据线
14
DB7
H/L
数据线
15
CS1
H/L
H:
选择芯片1信号
16
CS2
H/L
H:
选择芯片2信号
17
/RES
H/L
复位信号
18
VEE
-10V
LCD驱动负电压输出
19
EL+
+5V
EL背光板电源
20
EL-
0V
EL背光板电源
指令说明
指令表:
表3
指
令
指令码
功能
RW
DI
D7
D6
D5
D4
D3
D2
D1
D0
显示ON/OFF
0
0
0
0
1
1
1
1
1
1/0
控制显示器的开关,
不影响DDRAM中数据
和内部状态
显示
起始行
0
0
1
1
显示起始行
(0…63)
指定显示屏从DDRAM中
哪一行开始显示数据
设置
X地址
0
0
1
0
1
1
1
X:
0…7
设置DDRAM中的页地址
(X地址)
设置
Y地址
0
0
0
1
Y地址(0~63)
设置地址(Y地址)
读状态
1
0
B
U
S
Y
0
ON/
OFF
RST
0
0
0
0
RST1:
复位0:
正常
ON/OFF1:
显示开0:
显示关
BUSY0:
READY
1:
INOPERATION
写显示
数据
0
1
显示数据
将数据线上的数据
DB7~DB0写入DDRAM
读显示
数据
1
1
显示数据
将DDRAM中的数据读出到数据线DB7~DB0上
1.显示开关控制(DISPLAYON/OFF)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
0
0
0
0
1
1
1
1
1
D
形式
D=1:
开显示(DISPLAYON)意即显示器可以进行各种显示操作
D=0:
关显示(DISPLAYOFF)意即不能对显示器进行各种显示操作
2.设置显示起始行(DISPLAYSTARTLINE)
代码
形式R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
0
0
1
1
A5
A4
A3
A2
A1
A0
前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的。
A5~A06
位地址自动送入Z地址计数器,起始行的地址可以是0~63的任意一行。
例如:
选择A5~A0是62,则起始行与DDRAM行的对应关系如下:
DDRAM行:
62630123●●●●●●●●●●●●●2829
屏幕显示行:
123456●●●●●●●●●●●●●6263
3.设置页地址(SETPAGE“XADDRESS”)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
0
0
1
0
1
1
1
A2
A1
A0
形式
所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2~A0表示0~7页。
读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。
页地址与DDRAM的对应关系见DDRAM地址表。
4.设置Y地址(SETYADDRESS)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
0
0
0
1
A5
A4
A3
A2
A1
A0
形式
此指令的作用是将A5~A0送入Y地址计数器,作为DDRAM的Y地址指针。
在对DDRAM进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。
DDRAM地址表:
表4
CS1=1
CS2=1
Y=
0
1
……
62
63
0
1
……
62
63
行号
X=
0
↓
X=7
DBO
↓
DB7
DBO
↓
DB7
DBO
↓
DB7
DBO
↓
DB7
DBO
↓
DB7
DBO
↓