蓝牙技术论文Word文件下载.docx
《蓝牙技术论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《蓝牙技术论文Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
(4)嵌入式软件的研发与硬件紧密相关。
由于嵌入式软件的开发是针对具体硬件平台进行的,它往往牵涉硬件驱动方面的一些软硬结合部分,这就要求开发人员必须具备相关的硬件知识。
(5)软件代码要求高效率和高可靠性。
在实时系统中,处理器必须严格处理异步发生的各种任务,这对程序的算法设计提出了更高的要求。
另外,嵌入式软件系统还应该有异常处理、快速复位等特点。
(6)软件一般固化在Flash或ROM中。
为了提高执行速度和系统的可靠性,同时缩短系统复位时间,一般在嵌入式系统软件调试好后,会下载固化到目标板中的Flash或ROM中。
2、蓝牙技术蓝牙技术开始于1994年,Eriesson移动通信公司开始研究移动电话和其它电子设备间低功率、低成本的无线连接方法,其目的是除去电话和计算机间的电缆连接。
1998年2月,Eriesson、Nokia、IBM、Toshiba和Intel成立了一个特别兴趣小组(SIG,SpecialInterestGroup)来研究一种新一代的无线传输技术,其目的是建立发展一种能够简单使用在各种通讯设备上都能畅通无阻的新技术,建立一个实际上的无线接口和相关软件标准,并可以促进更多的设备制造商支持该协议。
目前电子电脑通讯设备的接口及通讯规格相当不统一,甚至在应用方面也存在差异性,导致沟通上存在相当多的问题,蓝牙就是对这些不统一作出一致的规范。
蓝牙技术使各种移动设备、计算机外设等数字设备之间的无线低成本连接成为可能,它不仅取代了这些设备之间的电缆连接,而且还使得许多数字设备的功能得到了扩充,让原来独立的数字设备可以与其他设备联网交换信息。
蓝牙技术的应用目前主要是集中在民用方面。
蓝牙技术在计算机及其外设中的应用包括计算机与键盘和鼠标等计算机外设的无线连接,多台计算机共享一台打印机等设备资源,数码相机、PDA和移动电话等与计算机进行数据通信等。
蓝牙技术的一个很大的优势就在于它应用了全球统一的频率(ISM频段)设定,消除了“国界”的障碍,ISM频段是对所有无线电系统都开放的频段。
因此使用其中的某个频段都会遇到不可预测的干扰源,例如某些家电、无绳电话、微波炉等,都可能是干扰源。
为此蓝牙技术特别设计了快速确认和跳频方案以确保链路稳定。
跳频技术是把频带分成若干个跳频信道,在一次连接中,无线电收发器按一定的码序列不断地从一个信道跳到另一个信道,只有收发双第一章绪论3方都按这个规律通信,而其它的干扰源不可能按同样的规律进行干扰。
跳频的瞬时带宽很窄,但通过扩展频谱技术可将这个窄带成倍的扩展成宽频带,便可使干扰的影响变得很小,与其他工作在相同频段的系统相比,蓝牙跳频更快,数据包更短,这使蓝牙系统比其它系统更稳定。
蓝牙无线通信技术的主要特点有:
(1)低成本、低功率、体积小的无线收发芯片(0.5平方英寸);
(2)短标称的蓝牙无线通信距离(10米),以节省电池能量;
(3)用外加的功率放大器扩展无线通信距离(100米);
(4)在全球可用并且无限制的2.4GHzISM(工业、科学、医疗)频段内。
2、系统概述
无线点菜系统,或称无线点餐系统,是利用现代电子技术、无线技术、计算机技术以及网络技术,取代传统的纸和笔,进行电子点菜操作的系统,是餐饮企业实现信息化改造、提升管理水平、提高运作效率的重要手段。
无线点菜系统的信息流动主要跨越三个区域:
用餐区、前台区和厨房区。
系统的核心是位于吧台的主控计算机(服务器)。
手持终端通过无线的方式与主控计算机进行通信,从事开台、点菜、退菜、申请结账等系列操作,以及实现下载菜单信息、桌台信息、发送工号等辅助功能。
安装于厨房区的厨房终端通过无线方式接收主控计算机发送过来的菜品信息,并进行打印,供厨师烹饪和传菜员传菜。
主控计算机上的餐饮管理软件不仅起到控制作用,对各终端发送过来的信号进行分析、加工、处理和回馈,也实现统计、管理等一系列功能。
蓝牙(Bluetooth)是一个开放性的、短距离无线通信技术标准,也是目前国际上最新的一种公开的无线通信技术规范。
它可以在较小的范围内,通过无线连接的方式,实现固定设备以及移动设备通信之间的网络互联。
蓝牙系统以点对点PPP连接为基础,用无线方式将若干蓝牙设备连接成一个微微网,其中有一个主设备和若干个从设备,主设备负责通信协议的运作。
本系统正是基于此构建了C/S架构的嵌入式系统。
无线点菜系统的框架结构图
在图中,我们可以清楚地了解到此系统所需的各种无线设备,同时,为了是系统具有更好的扩展性,建议有线、无线混合使用。
整套系统大致分为以下几部分:
1)前台接待(点菜)部分:
这部分主要应用无线PDA掌上电脑记录客人的点菜情况,然后通过无线网桥传回前台收银计算机,再通过无线AP或有线交换机传到厨房接收端。
2)厨房接收部分:
当接收到来自前台的点菜信息后,通过POS打印机自动输出客人的菜单。
3)后台管理部分:
即后台数据库,用于管理、进行菜单预结账等。
这种点菜系统是酒店或餐馆里通用的系统模型。
系统结构和功能简介
本系统采用C/S结构,以上述模型为原型,实现了简单的基于蓝牙技术的点菜系统。
将嵌入式开发板ARM2410S作为无线点菜器,即客户端;
PC机作为后台管理端,即服务器端,服务器端在Linux下开发。
客户端和服务器端之间通过蓝牙进行无线通信。
基于蓝牙点菜系统的系统框架图
服务器端有数据库,用于存储菜单信息和消费信息。
为了方便,在客户端也创建了数据库,其中存储了菜单信息和房间信息,因此客户端不能很好地动态共享菜单信息和房间使用信息,所以本系统只适合点对点方式。
软硬件环境
系统用的了ARM2410S开发版上的以下硬件环境
1、USB接口:
连接蓝牙适配器
2、蓝牙适配器
系统用的了以下软件环境:
1、QtDesigner、Qt/E:
开发客户端和服务器端的图形界面。
2、SQlite数据库:
存储菜单信息、消费信息、房间信息等。
3、蓝牙模块:
结合蓝牙适配器实现无线通信。
4、多线程
开发工具
客户端:
ARM2410S嵌入式开发平台、QtDesigner、Qt/Embedded交叉编译
服务器端:
Linux、QtDesigner
3、系统总体设计方案
本系统采用C/S结构,以上述系统架构为原型,实现了简单的基于蓝牙技术的点菜系统。
嵌入式开发板ARM2410作为无线点菜终端,即客户端;
PC机作为后台管理端,即服务器端,服务器端在Linux下工作。
服务器端有数据库,用于存储菜单信息和消费信息。
为了方便,在客户端也创建了数据库,其中存储了菜单信息和房间信息(或餐桌信息)。
由于客户端不能很好地动态共享菜单信息和房间使用信息,所以本系统只适合点对点方式。
其系统结构如图所示:
系统结构图
其中客户端包含以下几个功能模块:
1)开台点菜模块
通过Qt图形界面,客户可以选择房间,并将该房间置为使用状态后,便可以开始点菜,然后进入详细菜单的选择。
客户点完所要的菜后,便可提交,通过蓝牙传输模块将所点的菜传到服务器端。
2)蓝牙传输模块
客户端的蓝牙数据传输主要包括点菜信息的发送和结账房间信息的接收。
关键代码如下:
#include<
stdio.h>
stdlib.h>
string.h>
sys/socket.h>
netinet/in.h>
arpa/inet.h>
intmain()
{
intsockfd=socket(PF_INET,SOCK_STREAM,0);
if(sockfd==-1)perror("
"
),exit(-1);
structsockaddr_inaddr;
addr.sin_family=PF_INET;
addr.sin_port=htons(8888);
inet_aton("
127.0.0.10"
&
addr.sin_addr);
intres=connect(sockfd,(structsockaddr*)&
addr,sizeof(addr));
if(res==-1)perror("
连接失败"
printf("
连接成功\n"
);
欢迎光临\n"
点菜系统\n"
请选择:
1/主食2/汤类\n"
inta,b;
scanf("
%d%d"
a,&
b);
a=%db=%d\n"
a,b);
if(a==1&
&
b==2)
send(sockfd,"
1/铁板牛肉:
Price20元2/紫菜蛋汤:
Price10元\n"
80,0);
/*send(sockfd,"
2/紫菜蛋汤:
10元\n"
20,0);
*/
charbuf[100]={};
recv(sockfd,buf,sizeof(buf),0);
服务说:
%s\n"
buf);
close(sockfd);
}
服务端包含以下几个功能模块:
1)菜单管理模块
通过对Qt图形界面的操作与对数据库中菜单信息表的交互,服务器端可以对菜单进行相关的管理操作,例如,增加、删除和修改菜单信息等。
2)消费结账模块
通过对Qt图形界面的操作与对数据库中消费信息表的交互,服务器端可以实现消费结账功能,即查询并显示某个房间点菜的信息。
3)蓝牙传输模块
服务器端的蓝牙数据传输主要包括点菜信息的接收和结账房间信息的发送,即当客户端点完菜后,将点菜信息发送过来。
time.h>
intres=bind(sockfd,(structsockaddr*)&
绑定失败"
绑定成功\n"
res=listen(sockfd,100);
监听失败"
启动监听\n"
while
(1){
structsockaddr_infromaddr;
socklen_tlen=sizeof(fromaddr);
intfd=accept(sockfd,(structsockaddr*)&
fromaddr,&
len);
if(recv(fd,buf,sizeof(buf),0)<
=0)
perror("
接收数据失败"
else
charBUF[10]={0};
charBUF1[10]={0};
strncpy(BUF,buf+21,5);
strncpy(BUF1,buf+49,5);
BUF);
BUF1);
//price=BUF+BUF1;
//printf("
price);
客户端%s说:
inet_ntoa(fromaddr.sin_addr),buf);
unsignedcharnewbuf[]="
消费金额共计:
30元"
;
send(fd,buf,strlen(buf),0);
send(fd,newbuf,strlen(newbuf),0);
close(fd);
4、终端应用软件的设计
终端应用软件整体结构上分为三个模块:
GUI应用模块、业务处理模块和通信处理模块。
GUI应用模块需要调用业务处理模块中的函数,而业务处理模块调用通信处理模块中的函数。
GUI应用模块使用Qt4进行设计,主要界面包含登录窗口和点菜界面。
Qt/Embedded的类库采用C++封装,包含丰富的控件资源,有较好的可移植性;
Qt/Em-bedded采用FrameBuff作为底层图形接口,使用QtDesigner可以直接开发基于Qt/Embedded的用户操作界面接口。
用户从界面上发起操作,然后应用程序调用业务处理模块提供的功能接口,如果需要与服务器交换数据,那么业务处理模块将构造报文,并将报文传递给通信处理模块以发送给服务器;
同时,还要将服务器返回的应答报文进行解析;
最后,将结果传递给GUI界面模块,供用户查看结果。
5、关键技术设计
1、多线程技术在上述终端软件的实现中,有多个设备需要操作。
一般的,访问设备文件时,使用阻塞方式比较合适,这样子就不必对设备进行轮询操作了。
但是,这样也会产生一个问题,即如果进程阻塞在对设备文件的操作上,则界面无法响应。
这时,可以采用多线程的技术,让一个线程专门负责操作设备文件,当读取到数据时以某种方式通知用户界面线程。
2、数据库设计数据库设计采用SQLite3。
设计了3个表:
List表、Foods表和Employees表,其中Foods表存储了餐饮企业的所有菜单资料,供宾客点菜时使用;
而List表记录点菜情况,List表中的每一个记录对应一个点菜过程,利用记录中的TableNo来区分这道菜所属的餐桌;
Employees表,在终端客户机上增加了员工登录子系统,通过这种处理方式,既可以确保信息安全,又可以为不同员工设定不同的权限,提高了整个系统的管理水平。
6、结束语
本系统的优点是硬件结构简单、价格低、操作方便,可基本满足餐饮企业点菜的需要,同时也可扩展应用到其他小型商店、仓储等企业。
当然,要想成为一款功能完善的点菜系统,我们上位机管理软件还有很多的工作要做。
例如,可以实现网络版的无线点菜系统,实现远程监管功能,可以在异地监控吧台的运营数据、查看各项账单、报表,甚至进行远程审核、财务审批等工作。
参考文献
[1]李科景,李振坤,黄益民.基于PDA无线点菜餐饮系统的实现[J].广东自动化与信息上程2005
[2]李振坤,蓝芳华.基于PDA的无线餐饮点菜应用系统的设计与实现[J].计算机应用研究,2006
[3]田芳,赵方明,姚宗国.基于IEEE802.11系列无线局域网协议的比较及发展趋势[J】.山东人学学报(工学版),2003
[4]田泽.嵌入式系统开发与应用[M].北京:
北京航空航天大学出版社,2005
[5]高寿福,张华.KDE2/Qt编程宝典[M].北京:
电子工业出版社,2002
[6]林晓飞,刘彬,张辉.基于ARM嵌入式linux应用开发与实例教程[M].北京:
清华大学出版社.2007.
[7管耀武.ARM嵌入式无线通信系统开发[M].北京:
电子工业出版社,2006
[8]黄涛.嵌入式无线互连系统开发[M].北京:
中国电力出版社,2007
[9]曹新,孙建梅.无线点菜系统中蓝牙通信的实现[J].科学技术与工程,2010年1月
[10]怯肇乾.嵌入式网络通信开发应用[M].北京:
北京航空航天大学出版社,2010
[11]侯建华,王清华,周城.基于ARM9微处理器的嵌入式手持无线点菜系统的设计[J].中南民族大学学报,2012年12月
[12]陈文智.嵌入式系统开发原理与实践[M].北京:
清华大学出版社,2005.