基于单片机射频无线键盘设计.docx
- 文档编号:11465591
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:41
- 大小:338.83KB
基于单片机射频无线键盘设计.docx
《基于单片机射频无线键盘设计.docx》由会员分享,可在线阅读,更多相关《基于单片机射频无线键盘设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机射频无线键盘设计
探讨无线数据通信
在MCU系统中的应用
院系:
XXXXXXXXX
专业:
XXXXXXXXXXX
班级:
XXXXXXXXX
作品名称:
基于单片机的键盘无线数据通信系统
组长:
XXX
成员:
XXX、XXX、XXX
指导教师:
XXXX
探讨无线数据通信在MCU系统中的应用
摘要
本作品研究的内容是通过MCU控制无线数据芯片,以此来实现大量数据的无线高速传输,无论是在国防军事方面,还是民用通讯方面都有很重要的研究意义。
可改装数控操控设备、医疗设备、数据通信设备等,使数据控制、交换、采集简单化,对无线数据通信在MCU系统中的应用和多单片机协同工作中具有非常宝贵的参考价值。
实物的作品,实现了一种基于PS/2接口和电脑进行无线数据通信的系统。
电脑键盘输入的数据通过单片机采集传送到射频发射模块。
在一百米,甚至到几公里(只需加PA模块拓展)将数据传送给另一块单片机,单片机再通过USB接口转换芯片和电脑进行通信。
产品贴切实际具有抗干扰能力强且成本低廉,确实为一款优秀实用的电子产品。
关键词:
PS/2接口,2.4G射频,MCU核心,MAX232,USB通信
一、数据无线传输系统设计的研究背景
随着社会的发展,数据传输已经成为人们生产、生活中不可或缺的一部分,小到用餐时的点菜系统,大到国家中央情报局的情报交换。
数据传输中按传输介质可分为有线传输和无线传输。
有线传输就是用线缆传输信息,如光纤,同轴电缆,双绞线等等。
在许多情况下,用户往往由于受到地理环境和工作内容的限制,例如山地、港口和开阔地等特殊地理环境,对有线网络、有线传输的布线工程带来极大的不便,采用有线的施工周期将很长,甚至根本无法实现。
无线就是不用线缆传递信息,而是利用电磁波传递信息,分发射部分和接收部分。
采用无线可以摆脱线缆的束缚,有安装周期短、维护方便、扩容能力强,迅速收回成本的优点。
近十几年来,移动通信技术飞速发展,越来越多的信息采集和远程控制系统采用了无线数据传送技术。
与有线数据传输相比,无线数据传输布线成本低、安装简便、便于移动的优点,使其在遥控遥测、门禁系统、无线抄表、小区传呼、工业数据采集、无线遥控系统、无线鼠标等领域都得到了广泛的应用,而且它在高科技领域的应用也正在迅猛发展,比如卫星、导弹、无人侦察机等的数据采集,遥控机器人等的控制,以及一些监控设备等。
此外,在现代军事通讯领域方面,无线传输技术也有重要的战略地位。
在未来高科技战斗中,由于军事卫星通讯手段在未来战争中容易被摧毁且难以紧急恢复,所以人们可以利用无线短波、超短波等方式实现数据是无线传输,因而取得战争中的主动权。
民用方面,在一些线路架设比较困难的地方,或者有天然的阻隔的地理条件较复杂较恶劣的地方数据的无线传输便显示出了巨大威力。
无线传输还便于通讯设备移动,具有明显的灵活性。
二、数据无线传输的发展现状及前景
进入二十一世纪,无线数据通讯技术在我国蓬勃发展,也得到了信息产业部以及各行各业的高度重视,因为任何有线数据传输网络只能是网状覆盖,而无线数据传输网可达到真正的面覆盖。
目前主要的短距离无线数据传输技术主要有蓝牙、Zigbee、IEEE802.11x、微功率短距离无线通讯技术,与已具备相当规模的无线长距离通讯网络(比如蜂窝移动通讯网、卫星数据通讯)相比,短距离无线通讯系统在基本结构、服务范围、应用层次以及通讯业务(数据、话音、视频)上,均有很大不同。
下面分别介绍这几种无线传输技术。
蓝牙技术(Bluetooth)主要面对网络中的各种数据和语言设备,通过无线方式将它们连接起来,从而方便快速的实现数据传输,它使用2.4GHZ的ISM频段,最大传输率1Mbit/s。
IEEE802.11x的技术标准是无线局域网的国际标准,也是用2.4GHZ的ISM频段,协议主要在OSI的物理层和数据链路层,虽然传输速度快,但此类设备比较昂贵,技术复杂。
Zigbee是一种新型的短距离、低速度、低功耗无线网络技术,是一种介于无线标记技术和蓝牙之间的技术,基于IEEE无线个人区域网标准,数据传输速率通常为10kb/s到250kb/s,有效覆盖范围10到75米,由于其协议简单、成本低、网络容量大等优点,使其在无线传感网络中得到广泛的应用。
在未来,短距离无线数据传输将向着更高传输速率、更高传输精确度的方向发展,而且传输设备的成本也会进一步降低,传输协议也会进一步简单,从而是短距离无线通讯走入我们的生活,给我带来更多方便。
三、作品研究的目的和意义
本作品研究的内容是通过MCU按照无线协议控制无线数据芯片,以此来实现大量数据的无线高速传输,无论是在国防军事方面,还是民用通讯方面都有很重要的研究意义。
可改装数控操控设备、医疗设备、数据通信设备等,使数据控制、交换、采集简单化,对无线数据通信在MCU系统中的应用和多单片机协同工作中具有非常宝贵的参考价值。
四、作品简介
实物作品,实现了一种基于PS/2接口和电脑进行无线数据通信的系统。
电脑键盘输入的数据通过单片机采集传送到射频发射模块。
在一百米,甚至到几公里(只需加PA模块拓展)将数据传送给另一块单片机,单片机再通过USB接口转换芯片和电脑进行通信。
五、基本思路和关键技术
1、整体设计思路和框图
通过单片机将键盘数据采集,再利用单片机转换将信号转换成数字信号,然后通过SPI总线将数据传输给无线发送芯片,无线发送芯片将数据发送出去。
同样,接收端单片机通过SPI总线控制接收端芯片,将无线传输过来的数据接收,再经过USB接口芯片转换,将数据传送给电脑,从而实现了无线数据传输。
系统整体流程图如图1所示:
图1.整体设计流程图
2、PS/2数据采集接口
一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。
在本作品中使用的是六脚mini-DIN连接器,其实这两种连接器都只有四个脚有意义,它们分别是Clock(时钟脚)、Data(数据脚)、+5V(电源脚)和Ground(电源地)。
在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。
在本设计中只需将+5V(电源脚)与单片机的40脚相连,Ground(电源地)与单片机的20脚相连,Clock(时钟脚)与单片机的12脚外部中断相连,Data(数据脚)与其它任一I/O口相连即可。
[1]现在比较常用的连接器如图3所示。
图3PS/2的mini-DIN连接器
3、PS/2电气特性
PS/2通讯协议是一种双向同步串行通讯协议。
通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。
任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。
[4]如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。
一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。
推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。
每一数据帧包含11~12个位,具体含义如表2所列。
表2数据帧格式说明
表1个起始位
总是逻辑0
8个数据位
(LSB)低位在前
1个奇偶校验位
奇校验
1个停止位
总是逻辑1
1个应答位
仅用在主机对设备的通讯中
4、数据传送输模块介绍
nRF2401是北欧集成电路公司生产的单片射频收发芯片,工作于2.4~2.5GHzISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。
芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。
其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。
引脚分布图
其特点如下:
●全球开放的2.4GHz频段多频道125个满足多频及跳频需要
●高速率1Mbps高于蓝牙内置硬件CRC电路及多点通信控制高数据吞吐量
●采用0.18um先进加工技术极具竞争力的成本
●1.9-3.6V低电压低功耗满足低功耗设计需要
●广泛适用于手持终端PDA无线数字耳机数字视频数码相机以及其他短距离高速无线通信应用
●集成度高所有高频元件包括电感滤波器振荡器等已经全部集成在芯片内部使得产品一致性良好成本低性能稳定且不受外界影响
●内部具有点对多点通信协议控制每个芯片可以通过软件设置最多40bit地址只有收到本机地址时才会输出数据提供一个中断指示编程方便
点对多点通信示意图
●嵌入CRC通信效验协议纠检错是无线通信设计的难点,nRF2401内置了CRC硬件电路和协议;
●双接收功能独特设计nRF2401的DuoCeiver技术可以同时接收两个nRF2401的数据可以有效降低成本拓展用途
●编程配置发射功率工作频率等所有工作参数全部通过SPI串口软件设置完成
●外围元件极少,只需一个晶振和一个电阻即可设计射频电路;
●发射功率和工作频率等所有工作参数可全部通过软件设置;
●电流消耗很小,-5dBm输出功率时的典型峰值电流为10.5mA;
●芯片内部设置有专门的稳压电路,因此,使用任何电源(包括DC/DC开关电源)均有很好的通信效果;
●采用DuoCeiver技术可同时接收两个nRF2401的数据;
●采用ShockBurstTM模式时,能适用极低的功率操作和不严格的MCU执行;
●带有集成增强型8051内核、9路10bitADC、UART异步串口、SPI串口和PWM输出;
●内置看门狗;
●无需外部SAW滤波器;
●可100%RF检验;
●带有数据时隙和数据时钟恢复功能.
3内部工作原理和外部组成原理图
nRF2401的内部结构原理及外部组成框图如图2所示,下面介绍其工作原理.
5、射频模块ShockBurstTM模式应用技术
nRF2401的ShockBurstTMRX/TX模式采用片上先进先出(FIFO)来进行低数据率的时钟同步和高数据率的传输,因此极大的降低了功耗.
ShockBurstTM发射主要通过MCU接口引脚CE、CLK1和DATA来完成.当MCU请求发送数据时,置CE为高电平,此时的接收机地址和有效载荷数据作为nRF2401的内部时钟,可用请求协议或MCU将速率调至1Mbps;置CE为低电平可激活ShockBurstTM发射.
双接收模式
ShockBurstTM接收主要使用MCU接口引脚CE、DR1、CLK1和DATA来实现.当正确设置射频包输入载荷的地址和大小后,置CE为高电平可激活RX.此后便可在nRF2401监测信息输入200μs,若收到有效数据包,则给MCU一个中断并置DR1为高电平,以使MCU以时钟形式输出有效载荷数据,待系统收到全部数据后,此时RF2401再置DR1为低电平,此时如果CE保持高电平,则等待新的数据包.若CE置低电平,则开始接收新的序列。
DuoCeiverTM的双信道接收模式:
nRF2401的DuoCeiverTM技术为RX提供了两个独立的专用数字信道,因而可代替两个单独接收系统.图3所示是DuoCeiverTM同时双接收信道结构图.nRF2401可以通过一个天线接口从相隔8MHz的两个1Mbps接收机上接收数据.同时将两个数字信道的输出反馈到两个单独的MCU接口.具体的两个信道如下:
数字信道1:
CLK1,DATA,DR1;
数字信道2:
CLK2,DOUT2,DR2;
应当说明的是,数字信道2的频率只有在比数字信道1的频率高出8MHz时,才能保证正常接收.
6、直接收发模式应用技术
在直接收发模式下,nRF2401如传统的射频收发器一样工作。
在直接发送时接口引脚为CE、DATA。
当微控制器有数据要发送时,把CE置高,nRF2401射频前端被激活。
所有的射频协议必须在微控制器程序中进行处理(包括字头、地址和CRC校验码)。
在直接接收模式时接口引脚为CE、CLK1和DATA。
一旦nRF2401被配置为直接接收模式,DATA引脚将根据天线接收到的信号开始高低变化(由于噪声的存在),CLK1引脚也开始工作,一旦接收到有效的字头,CLK1引脚和DATA引脚将协调工作,把射频数据包以其被发射时的数据从DATA引脚送给微控制器,字头必须是8位。
由于DR引脚没用上,所有的地址和CRC校验必须在微控制器内部进行。
7、数据接收模式应用技术
接收端单片机可以通过输入C语言程序对无线射频芯片NRF24L01的参数进行设置,设为接收模式,即可接受检验信号。
接收到检验信号后,NRF24L01的自动应答功能会发送应答信号给发送端已确认收到信号,接着NRF24L01通过IRQ中断通知接收端单片机,单片机进行数据接收并通过USB芯片将其转换成电脑识别的信号传给电脑。
接收端的单片机在接收到中断的同时,要同发射端芯片进行时间上的协同,以此来保证发送和接收的配合。
最后清除NRF24L01的状态寄存器,再次为下一次数据的接收做好准备。
8、MCU硬件串行通信应用技术
RS-232是现在主流的串行通信接口之一。
由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在“南方的老树51CPLD开发板”中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
在MAX232与单片机进行通信时,串行口的SBUF是作为同步移位寄存器使用的。
在串行口发送时,SBUF相当于一个并行进入、串行输出的移位寄存器,由单片机的内部总线并行接收8位数据,并从RXD信号线串行输出。
在接收操作时,它又相当于一个串行输入、输出的移位寄存器。
在本设计中MAX232与单片机的串口通信原理图如下所示:
上图为本设计应用的RS232串行通信原理图
9、PS/2接口的键盘与无线发射模块的数据传送应用技术
在本设计中PS/2键盘与单片机的连接方式如图9所示。
P3.2口接PS/2数据线;P3.3(INT0)接PS/2时钟线,即采用外部中断0的方式来接受PS/2接口键盘的传输数据。
①从设备到主设备的通信
当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平。
如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据。
传输的每一帧由11位组成,发送时序及每一位的含义如图7所示。
图7从设备到主设备的通信
每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。
从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读人数据线状态。
②主设备到从设备的通信
主设备与从设备进行通信时,主设备首先将时钟线和数据线设置为“请求发送”状态,具体方式为:
首先下拉时钟线至少100us抑制通信,然后下拉数据线“请求发送”最后释放时钟线。
在此过程中,从设备在不超过10us的间隔内必须检查这个状态,当设备检测到这个状态时,它将开始产生时钟信号。
此时数据传输的每一帧由12位构成,其时序和每一位含义如图8所示。
图8主设备到从设备的通信
与从设备到主设备通信相比,其每帧数据多了一个ACK位。
这是从设备应答接收到字节的应答位,由从设备通过拉低数据线产生,应答位ACK总是为0。
主设备到从设备通信过程中,主设备总是在时钟线为低电平时改变数据线的状态,从设备在时钟上升沿读人数据线状态。
图9硬件连接电路
单片机接收完数据后便要进入nRF24L01的发射模块。
在本设计中nRF24L01选择ShockBurstTM收发工作模式。
在ShockBurstTM发射流程中,接口引脚为CE,CLK1,DATA,当微控制器有数据要发送时,其把CE置高,使nRF24L01工作。
当nRF24L01工作后,才把接收机的地址和要发送的数据按时序送入nRF24L01,随后微控制器把CE置低,激发nRF24L01进行ShockBurstTM发射。
10、无线接收应用技术
在nRF24L01工作在ShockBurstTM接收流程中,接口引脚CE、DR1、CLK1和DATA(接收通道1),首先要配置本机地址和要接收的数据包大小。
一但进入接收状态,便把CE置高,200us后,nRF2401进入监视状态,等待数据包的到来。
当接收到正确的数据包(正确的地址和CRC校验码),nRF2401自动把字头、地址和CRC校验位移去,nRF2401通过把DR1(这个引脚一般引起微控制器中断)置高通知微控制器,之后微控制器把数据从nRF2401移出,所有数据移完,nRF2401把DR1置低,此时,如果CE为高,则等待下一个数据包,如果CE为低,开始其它工作流程。
六、PCB电路板制作的关键技术材料
1、PCB电路图
图基于PS/2接口的无线数据传送系统的PCB图
2、装配图
3、元件清单
元件标号
封装
参数
C1
rad0.1
104
C2
rad0.1
104
C3
rad0.1
104
C4
rad0.1
104
C5
rad0.1
104
C6
rad0.1
104
C7
rad0.1
104
C8
rad0.1
104
C9
rad0.1
104
C10
cap0.1
220U
C11
cap0.1
10U
C12
cap0.1
10U
C13
rad0.1
0.1
C14
rad0.1
20
C15
rad0.1
20
C16
rad0.1
20
C17
rad0.1
20
C18
cap0.1
100U
C19
cap0.1
100U
C20
cap0.1
100U
C21
cap0.1
100U
D1
led
LED
D2
led
J1
sip4
ISP
J2
USB1
USB
J3
DB9RA/M
DB9
JP1
IDC10
24L01
LED1
led
LED
R1
AXIAL0.4
1K
R2
AXIAL0.4
1K
R3
AXIAL0.4
1K
R4
AXIAL0.4
1K
R5
AXIAL0.4
10K
R6
AXIAL0.4
22
R7
AXIAL0.4
22
RP1
SIP9
10K
S1
BUT1
TEST
U1
SOJ-28
PDIUSBD12
U2
DIP40
8051
U3
DIP16
MAX232
U4
AS1117a
AMS1117
Y1
XTAL1
6M
Y2
XTAL1
22.1184M
七、软件设计流程图
1、主程序流程图
主程序先对系统初始化,接收机初始化后等待进入中断接收数据,转换数据传给芯片转换。
发送机初始化后,等待PS/2的数据信号,采集转换给射频模块,无线送出数据。
主程序流程图如下图所示。
图发送机主程序流程图
接收机主程序流程图
2、子程序流程图
在有外部中断发生时,表示PS/2接口的键盘将向单片机发送数据,待数据发送完成后,单片机保存数据并由无线发射模块发射出去。
其程序流程图如图12所示。
图发送端外部中断子程序流程图
接收端外部中断子程序流程图
2、发射主程序
#include
#include
#include"24L01.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitKB_CLK=P3^3;
sbitKB_DATA=P3^2;
uintn=0;
voidDelay_NS(uintx)
{
for(;x>0;x--);
}
voiddelay_nms(unsignedintt)
{
unsignedinti,j;
for(i=0;i for(j=0;j<120;j++); } voidSend_Key(uchardat) { uinti; KB_CLK=0; Delay_NS(10); KB_DATA=0; KB_CLK=1; while(KB_CLK); KB_DATA=0; while(! KB_CLK); for(i=0;i<8;i++) { while(KB_CLK) _nop_(); KB_DATA=dat&0x01; if(KB_DATA)n++; while(! KB_CLK) _nop_(); dat>>=1; } switch(n){ case0: case2: case4: case6: KB_DATA=1;break; case1: case3: case5: case7: KB_DATA=0;break; default: break; } while(KB_CLK) _nop_(); while(KB_CLK) _nop_(); KB_DATA=1; while(! KB_CLK) _nop_(); while(KB_CLK) _nop_(); while(! KB_CLK) _nop_(); } ucharKey_Scan(void) { uchari,key_temp; KB_CLK=1; KB_DATA=1; key_temp=0; while(KB_CLK); for(i=0;i<8;i++) { key_temp>>=1; while(! KB_CLK); while(KB_CLK); _nop_(); if(KB_DATA) { key_temp|=0x80; } } while(KB_CLK); returnkey_temp; } unsignedcharkey2asc(unsignedcharKey) { unsignedchartemp=0xff,i; for(i=0;i<49;i++) { if(Key==kbdasciicode[i][0]) { temp=kbdasciicode[i][1]; break; } } if(temp==0xff) { for(i=0;i<37;i++) { if(Key==kbdcontrolcode[i][0]) { temp=kbdcontrolcode[i][1]; break; } } } if(temp==0xff) { for(i=0;i<18;i++) { if(Key==E0startedcode[i][0]) { temp=E0startedcode[i][1]; break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 射频 无线 键盘 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)