基于ZigBee技术的无线点餐系统 设计报告北方工业大学 一队.docx
- 文档编号:18571575
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:28
- 大小:594.76KB
基于ZigBee技术的无线点餐系统 设计报告北方工业大学 一队.docx
《基于ZigBee技术的无线点餐系统 设计报告北方工业大学 一队.docx》由会员分享,可在线阅读,更多相关《基于ZigBee技术的无线点餐系统 设计报告北方工业大学 一队.docx(28页珍藏版)》请在冰点文库上搜索。
基于ZigBee技术的无线点餐系统设计报告北方工业大学一队
基于ZigBee技术的无线点餐系统
WirelessOrderSystemBasedOnZigBeeTechnology
2008年7月14日
摘 要
随着无线通信技术的不断发展,近年来出现了面向低成本设备无线联网要求的ZigBee技术,它是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,主要适合于自动控制、远程控制领域及家用设备联网,我们采用ZigBee技术,可以为无线点餐系统提供很好的解决方案。
关键词:
无线点餐系统ZigBee技术蜂窝状通信网络WinCE270-S嵌入式系统
微处理器ATMEGA128射频收发芯片AT86RF230
Abstract
Aswirelesscommunicationstechnologydevelopingceaselessly,ZigBeetechnologythatmettheneedsoflowcostdeviceslogginginthewirelesslanappearedintheseyears.It’sakindofclosequarters,simpleness,lowpower,lowtransmissionspeedandlowcostbidirectionalwirelesscommunicationstechnology.Andit’smostlypropitioustothefieldsofautomaticandlong-distancecontrolandthehomedevicesnetwork.WeadoptZigBeetechnologysothatprovidethemoreeffectivesolutionstowirelessordersystem.
Keywords:
wirelessordersystemZigBeetechnology
alveolatecommunicationsnetworkWinCE
270-SApplicationsforembeddedsystems
microprocessorATMEGA128radiotransceiverchipAT86RF230
第1章绪论
随着无线通信技术的不断发展,近年来出现了面向低成本设备无线联网要求的ZigBee技术,它是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,主要适合于自动控制、远程控制领域及家用设备联网,我们采用ZigBee技术,可以为无线点餐系统提供很好的解决方案。
目前的点餐系统主要有两种:
人工手工点单操作和无线点餐。
人工手工点单操作也就是传统的点餐方式,目前在市场上还是较为普遍,但是这种简单的点餐方式存在的弊端主要表现为:
人工传递浪费时间,效率低下,直接影响了翻台率;经营大规模菜系时单据多、信息量大,而分单、传菜等环节经过的人越多越容易出问题,因而直接影响了服务质量,同时财务无法保证有效的监督管理机制。
无线点餐技术是基于PDA掌上电脑和802.11b无线局域网技术的全智能餐饮信息服务系统,它能有效提高餐饮机构的服务质量和工作效率。
但是这种无线点餐技术是半无线网络化的组网技术,组网设备的种类比较多,各个节点需要通过电缆与以太网交换机相连,综合布线比较麻烦,会给安装带来很大的不便。
而且一旦布线出问题,会影响到餐厅的整个无线点餐系统,使其不能正常工作。
基于ZigBee技术的无线点餐系统是点餐模式的重大革新。
本文将对ZigBee技术进行详细的阐述,然后实现基于ZigBee技术的无线点餐系统。
第2章系统方案
2.1基本功能
利用本套系统,服务员或顾客可以随时随地使用无线点餐终端进行点菜等工作,并即时把数据传到后台数据服务器。
在数据服务器端,安装有ZigBee无线数据中心节点,可以在有效范围内与无线点餐终端进行随时随地的通讯,并能够准确快速地完成点餐等工作。
它节省了人工传递的时间,提高了工作效率,直接提升了翻台率;对于经营单据多、信息量大的大规模菜系,更好地避免了分单、传菜等环节人为的问题,从而直接提高了服务质量,同时也保证了更加有效的财务监督管理机制。
2.2基本组成
本系统由服务员手持的带ZigBee无线数据通讯功能的无线点餐终端、或安装在餐桌上的具有ZigBee无线数据通讯功能的点餐终端,和连接在装有无线点餐服务器软件的基于WinCE的270EP嵌入式系统服务器端的ZigBee无线数据中心组成。
2.3系统结构
系统由手持无线点餐终端或桌上的无线点餐终端、无线通讯节点及安装了无线点餐服务器软件的基于WinCE的270-S嵌入式系统组成。
270-S嵌入式系统无线通讯节点与无线点餐终端配合使用完成点菜系统的无线数据通讯功能。
一台ZigBee无线通讯中心节点能够以轮询的方式与多台无线点餐终端通讯。
餐厅ZigBee无线节点网络,通过在餐厅、吧台、厨房、收银台、处理中心部署的ZigBee节点设备构成了完整的无线通讯网络,实现了信息处理的自动化。
无线通信系统的ZigBee中心节点、无线ZigBee路由和无线点餐终端,构成一个蜂窝状的通信网络,任何一个节点以多调方式实现通信。
其中任何一个ZigBee路由器,负责与中心网络的连接和数据中继转发;所有的ZigBee路由器组成一个蜂窝网状网络,再与ZigBee中心节点连接,中心节点设置在总服务台,构建成一个完整的ZigBee无线网络,是个通信非常可靠的网络结构。
2.4工作流程
内置无线ZigBee通信模块的手持点餐终端,服务员通过手持的点餐终端处理顾客的点单,用户订单通过终端和大厅内的ZigBee网络自动的上传到厨房和收银台,从而完成整个点餐过程。
第3章功能与指标
3.1ZigBee技术简介
ZigBee是一种无线连接技术的商业化命名,该无线连接技术主要解决低成本、低功耗、低复杂度、低传输速率、近距离的设备联网应用。
国际上,IEEE802.15.4工作组及ZigBee联盟共同致力于该无线连接技术的推广工作,其中,IEEE802.15.4工作组主要负责制定ZigBee物理层及MAC层的协议,其余协议主要参照和采用现有标准,以便于今后不同厂商设备的互联互通;ZigBee联盟则负责高层应用及市场推广工作。
而于2002年成立的ZigBee联盟如今已经吸引了上百家芯片公司、无线设备公司的加入。
目前,Freescale、TI等国际巨头都已推出了比较成熟的ZigBee开发平台。
ZigBee标准基于802.15.4协议栈而建立,具备了强大的设备联网功能,它支持三种主要的自组织无线网络类型,即星型结构、网状结构(Mesh)和簇状结构(Clustertree),特别是网状结构,具有很强的网络健壮性和系统可靠性。
3.2ZigBee技术特点
1、设备省电
ZigBee技术采用了多种节电的工作模式,可以确保两节五号电池支持长达6个月到2年左右的使用时间;
2、通信可靠
ZigBee采用了CSMA-CA的碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;MAC层采用了完全确认的数据传输机制,每个发送的数据包都必须等待接收方的确认信息;
3、网络的自组织、自愈能力强
ZigBee的自组织功能:
无需人工干预,网络节点能够感知其他节点的存在,并确定连接关系,组成结构化的网络;
ZigBee自愈功能:
增加或者删除一个节点,节点位置发生变动,节点发生故障等等,网络都能够自我修复,并对网络拓扑结构进行相应地调整,无需人工干预,保证整个系统仍然能正常工作。
4、具备自组织、自愈能力的无线通信网络才是无线点餐系统最理想的通信方式。
5、成本低廉
设备的复杂程度低,且ZigBee协议是免专利费的,这些可以有效地降低设备成本;
6、ZigBee的工作频段灵活,为免执照频段的2.4GHz,就是没有使用费的无线通信。
7、网络容量大
一个ZigBee网络可以容纳最多254个从设备和一个主设备,一个区域内可以同时存在200多个ZigBee网络;
8、数据安全
ZigBee提供了数据完整性检查和鉴权功能,加密算法采用AES-128,同时各个应用可以灵活确定其安全属性。
3.3ZigBee主要技术指标
参数名称性能参数
频段2.4-2.483GHz
通讯协议标准IEEE802.15.4zigbee
网络拓扑结构网状网、星型
调制方式DSSS(O-QPSK)
数据传输速率最大250KBps
寻址方式64位IEEE地址,8位网络地址
数据加密128-bitAES
错误校验CRC-16/32
信道接入方式CSMA-CA和时隙化的CSMA-CA
信道数16
通信时延15ms(激活或信道接入),30ms(设备搜索)
第4章实现原理
4.1系统硬件结构
4.1.1传感器节点
传感器节点一般由数据采集单元、数据处理单元和数据传输单元以及电源管理单元等模块组成。
在我们系统中,微处理器ATMEGA128通过SPI总线与射频收发芯片AT86RF230进行通信。
数据采集单元主要对外界的信息进行感知和采集,包括光、温度、湿度、加速度、光电、液位、热释电、磁感应、压力等传感器。
为适应多种应用,设计了通用接口,通用接口中有适配电路,以适应不同电参数部件直接接入系统。
通常节点的输出控制器即通过该通用接口接入。
数据处理单元采用ATMEL公司的8位低功耗微处理器ATMEGA128L作为控制核心。
4.2.2系统电源
系统的电源通常由电池提供,也可以由稳压模块供给。
4.2.3RF收发芯片
RF收发芯片负责射频信号的产生和接收解调,其基准时钟由外部高精度的晶体振荡器提供;同时要实现一些物理层和MAC层的基本功能,例如编解码、信道选择、功率控制、接收机能量检测(RSSI)、链路质量指示(LQI)、空闲信道评估(CCA)和硬件CRC校验等。
在实现这些基本功能的前提下,RF芯片应该尽量做到低功耗、高灵敏度和较小封装。
微控制器要有丰富的资源来完成对RF芯片的控制,以及对传感器、各类应用接口和用户接口的实时响应。
通常协议栈需要占用32KB左右的存储空间。
4.2AT86RF230性能和内部结构
4.2.1性能参数
在我们系统中,射频收发芯片采用的是Atmel公司的AT86RF230,AT86RF230是与ZigBee/IEEE802.15.4兼容的无线射频收发芯片。
它工作在2.4GHzISM频段,拥有104dB链路预算,-101dB的接收灵敏度和3dB的传输功率,从而减少网络中所需节点设备的总数,大大降低了IEEE802.15.4系统的组网成本。
所有RF关键器件(除了天线、晶振、去耦电容外)都集成在一块芯片中,封装形式采用32引脚、5mm×5mm×0.9mm大小的QFN封装。
由该芯片所构成的设备仅需6个外部组件。
4.2.2终端节点
终端节点通常是电池供电,发射模式下电流消耗为17mA,接收模式下为15mA,睡眠模式下仅为O.7μA;工作电压可达1.8~3.6V,内部有集成的1.8VLDO。
AT86RF230内部有35个可以通过SPI控制时序访问的8位寄存器,工作时有8个基本状态(可以根据需要扩展为14个)。
片内发送数据和接收数据的缓冲分别为129字节和130字节,正好可以满足IEEE802.15.4协议规定的最大帧长度127字节的要求。
发送时需要加2字节的CRCl6校验码,接收时还要多加1字节的链路质量指示。
4.3网络设备的硬件电路构成
4.3.1设计原理
模块的数字接口为ATmega128l与AT86RF230之间的SPI接口以及其他4条控制线。
AT-megal28l是Atmel公司的8位高性能的AVR单片机。
其基本特征有:
采用RISC构架,具有135条指令,工作在16MHz时吞吐率可达16MIPS;片内具有128KBFlash、4KB片内E2PROM和8KBSRAM,可以通过ISP或JTAG下载程序;工作频率最高可达16MHz,工作电压为l.8~5.5V,掉电模式下只有O.1μA的工作电流。
在本设计中ATmegal281工作于内部为8MHz的振荡频率下。
如果要采用与AT86RF230同步的外部时钟信号,那么CLKM引脚应接到ATmegal281的XTAL1脚上,并且熔丝位要设置为外部时钟。
AT86RF230的各种工作状态中断信号由IRQ脚控制,这里接到ATmegal28l的ICPl脚产生捕获中断,因为捕获中断可通过设置噪声消除方式来减少外界的干扰,从而提高中断的可靠性。
有关AT86RF230寄存器SPI读写时序、状态转换图及各种中断控制的具体方法可以参阅参考文献。
还需注意,AT86RF230所接外部晶振X1的长期工作频率稳定度要小于等于40ppm,并根据晶振和芯片的驱动能力选择合适的负载电容。
4.3.2降低干扰
对于模拟部分设计,为了降低其他部分的干扰,提高RF性能,需要采取抗干扰措施。
例如,模拟电源输入端增加磁珠或电感;AT86RF230模拟地和数字地要分开布线,并在一点接地;为了减小分布参数的影响,铺地要尽可能大,并且要适当打上过孔;滤波用的电容也要尽量靠近芯片。
另外,要注意阻抗匹配,AT86RF230天线端口为2路100Ω的差分输出,可直接接差分馈电的天线,但缺点是阻抗匹配和测试都比较困难,一般可以用巴伦把2路100Ω的差分输出变换成一路50Ω输出,然后接各类单端馈电的天线。
在控制RF信号输出脚PCB导线的阻抗时,可以采用下图所示的模型:
天线馈线阻抗控制模型
4.3.3键盘设计
键盘显示通过如下电路实现,通过ZLG7290键盘显示控制芯片扩展按键部分,与控制处理器通过I2C总线实现按键数值的读写。
为降低功耗,设备采用字段式液晶屏,通过4位总线与控制器相连,实现数据的显示。
4.4节点软件设计
软件设计主要包括射频驱动、外围电路控制和ZigBee协议栈设计3个部分。
软件开发环境为免费的AVRSTUDIO+AVRGCC,也采用的Atmel免费提供的无线通信协议栈实现。
基本过程为:
网络协调器首先初始化WPAN信息数据库,建立ZigBee网络,分配网络ID号和16位网络地址,初始化邻居设备表,然后等待其他节点连接;网络节点上电后,初始化内部资源、网络节点的WPAN信息数据库,发送扫描信号请求连接,连接成功后,记录下网络ID和分配好的16位网络地址,按功能设定向协调器发送信息。
因为网络节点一般为电池供电,所以在空闲时要进入休眠节能状态。
外围电路控制主要是针对传感器、开关等器件的控制,可根据不同需求对软件进行相应的修改。
第5章硬件框图
5.1系统结构图
无线点餐系统总体结构图
上图描述了无线点餐系统的总体结构,直观的反应了基于ZigBee技术的系统框架,从图中我们可以发现该系统的ZigBee节点中继等特点。
5.2节点设备外型图
节点设备外型图如下所示:
系统外型图
系统内部结构图
5.3系统电路框图
5.3.1IEEE802.15.4网络设备基本构成
IEEE802.15.4网络设备基本构成
5.3.2AT86RF230功能框图
AT86RF230功能框图
5.3.3RF芯片电路原理图
RF芯片电路原理图
5.3.4控制器电路
控制器电路
5.3.5天线馈线阻抗控制模型
天线馈线阻抗控制模型
5.3.6键盘显示电路
键盘显示电路
第6章软件流程
6.1系统软件界面
6.1.1界面介绍
基于WinCE的系统服务器基本界面
上图是一个简单的无线点餐系统的服务器界面,能够进行点菜启动、接收多个手持客户端的点菜信息并显示等基本功能。
6.1.2桌号选择
顾客或服务员可以通过选择软件界面左上角的桌号下拉列表,选择并确定桌号。
6.1.3菜品选择
顾客或服务员可以通过选择软件界面中间部分菜品清单,以确定顾客所点的菜肴。
6.1.4功能键说明
在软件界面下方有三个功能键:
1.启动服务器:
在顾客点餐之前,应先点击此按钮,启动数据服务器,从而用以接受顾客的点餐信息。
2.开始点菜:
在顾客点餐之前,先点击此按钮,启动客户端点菜功能,从而用以录入顾客的点餐信息到客户端,发送至服务器。
3.结束点菜:
当顾客点餐结束后,点击此按钮,完成确认点餐。
6.2系统软件数据流图
6.3系统功能基本代码
本系统采用C#编程,系统中与无线基站的通信已经封装到动态链接库SmeshCompactListener.dll中,服务器程序只需要调用该链接库的几个接口即可很方便的进行设备初始化、操作设备和接收数据这些功能。
首先介绍一下SmeshCompactListener.dll,该组件是用于CompactFramework2.0应用程序和无线传感器节点进行数据通讯的中间件组件,该组件对外提供的对象名为SmeshServer,完整命名空间为SmeshLister.SmeshServer,该对象提供的主要方法有:
6.3.1构造函数
publicSmeshServer(stringdatasource,stringcommIdOrremoteIp,intbaudRateOrremotePort)
datasource:
数据来源,当前必须为“SMB510”,表示数据接收的基站类型;
commIdOrremoteIp:
不同的数据来源代表不同的含义,表示串口号或远程服务器地址,当前只能是串口号,如“COM1”;
baudRateOrremotePort:
不同的数据来源代表不同的含义,波特率或服务器端口,但前只表示波特率,一般是9600。
6.3.2启动服务
publicvoidStartServer()
开始数据接收。
6.3.3停止服务
publicvoidDispose()
停止数据接收并销毁该对象。
6.3.4下发指令
publicboolSendDownStream(ushortnodeId,InteractiveTypeinteractivetype,InputStyleinputstyle,EnableDecenabledec,FullScorefullscore,stringobjectcode)
用于向无线节点发送数据
Nodeid:
结点编号,如果为65535则表示向所有节点发送数据
interactivetype:
交互类型,类型为SmeshLister.InteractiveType
inputstyle:
输入类型,类型为SmeshLister.InputStyle
enabledec:
是否允许小数,类型为SmeshLister.EnableDec
fullscore:
满分类型,类型为SmeshLister.FullScore
objectcode:
下发的字符串,要么全是数字,要么全是a-f的字母,长度不能超过6
如果下发成功,返回true,否则,返回false。
该对象的事件是:
OnPackageRecieved(UserInteractiveuserInteractive)
在接收到一个完整的数据包后触发,其中的userInteractive为接收到的有效数据,UserInteractive的
定义如下:
publicstringInteractiveAction;交互数据
publicfloatInteractiveScore;交互分数
publicbyteInteractiveType;交互类型
publicushortNodeId;节点编号
publicfloatVoltage;节点电压
下面将对服务器软件的各个实现的代码进行简单的叙述。
设备连接好之后,首先要启动服务器,服务器启动代码实现如下:
/*
*函数名:
btnStart_Click_1
*函数介绍:
事件函数,相应按钮btnStart的点击事件,初始化无线基站
*调用启动接收数据指令,调用启动服务器命令
*入口参数:
objectsender,EventArgse
*出口参数:
(无)
*返回值:
(无)
*/
privatevoidbtnStart_Click_1(objectsender,EventArgse)
{
smeshServer=newSmeshServer("SMB510","COM1",57600);//初始化无线通信模式和接口
smeshServer.OnPackageRecieved+=newSmeshServer.PackageRecievedHandler(smeshServer_OnPackageRecieved);//启动接收数据函数
smeshServer.StartServer();//启动服务器
this.txtDataOut.Text="";
this.txtDataOut.Text+="点菜系统启动!
";
SetCheckDish(false);//将所有菜系复选框初始化为未选中
SetCheckState(false);//初始化手持设备对应的菜系是否选中的变量
}
上面的代码可以看见关键代码就是首先要定义无线模块的对象,并且设置好串口和串口波特率。
启动服务器后,软件服务器将要对各个客户设备端发送开始点菜指令,开始点菜代码实现如下:
/*
*函数名:
btnSend_Click
*函数介绍:
事件函数,相应按钮btnSend的点击事件,调用开始命令,控制客户端
*入口参数:
objectsender,EventArgse
*出口参数:
(无)
*返回值:
(无)
*/
privatevoidbtnSend_Click(objectsender,EventArgse)
{
SetCheckDish(false);//将所有菜系复选框初始化为未选中
SetCheckState(false);//初始化手持设备对应的菜系是否选中的变量
this.txtDataOut.Text="";
this.txtDataOut.Text+="开始点菜!
";
//接口类的开始命令
smeshServer.SendDownStream(0xffff,InteractiveType.itSelect,InputStyle.isDigital,EnableDec.edEnable,FullScore.fs10,"ABCDEF");
}
smeshServer.SendDownStream就是实现点菜功能的关键函数,里面的参数按照上述参数设置即可。
服务器软件给客户端发送点菜指令后,将启动接收客户端的点菜信息的函数,服务器软件接收到客户端发送的数据后就会进入函数smeshServer_OnPackageRecieved(),并在该函数中解析数据处理数据。
服务器软件接收手持客户端点菜信息代码实现如下:
/*
*函数名:
smeshServer_OnPackageRecieved
*函数介绍:
通过串口接收到数据后,解析数据并且在界面上进行显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于ZigBee技术的无线点餐系统 设计报告北方工业大学 一队 基于 ZigBee 技术 无线 系统 设计 报告 北方工业 大学