新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PIC32的无线自助点菜系统的实现,包含原理图及

基于PIC32的无线自助点菜系统的实现,包含原理图及

作者:时间:2016-09-12来源:网络收藏

2)最具性价比的ZigBee技术

一般而言,随着通信距离的增大,设备的复杂性、功耗以及系统成本都在增加。相对于现有的各种无线通信技术,ZigBee技术是最低功耗和成本的技术。ZigBee技术也存在着自身的缺点,该技术的数据速率比较低和通信范围较小。但由于本系统所承载数据流量较小,所以ZigBee就非常适合,具有最佳的性价比。

3)Cerebot 32MX4丰富的外设接口

本课题所使用的Digilent Cerebot™ 32MX4开发板是一个功能强大的微控制器开发板,它拥有九个Digilent Pmod™外围模块连接器。本课题需要用到的Digilent Pmod模块有按键开关、字符LCD、以及SD卡插槽,开发板还可以用来连接H-bridge驱动、模数和数模转换器、蜂鸣器、滑动开关、LED指示灯等,其提供了丰富的外设资源。

3.软件流程介绍

3.1无线网络软件设计

系统中通过简单的无线星型网络实现了前台的PC机和PIC32点菜节点的双向通信。无线网络系统初始化时将各节点的通信频率固定在2.48G频点上,通过中心节点轮询各子节点的方式时分复用实现组网及双向通信。

中心节点和子节点的CC2430均通过中断接收串口数据与无线传输的数据。如果PC机通过串口向中心节点发送数据,则中心节点首先解析数据包(33个字节,首字节为地址,其余为数据),并根据地址设置相应的节点标志位。当中心节点对子节点进行询问时首先查询该节点的标志位,若没有数据传输则将发送数据报首位设置为DATA_REQ(0x0F),表明该数据报没有数据内容;若有数据传输则将发送数据报首位设置为DATA_TRANS(0xF0),表明该数据报有数据内容。传输结束后中心节点进入接收状态,接收子节点回传的数据报。接收到的数据报首位为ACK_NO_DATA(0x30)表明数据报中没有数据内容,中心节点不作处理;若数据报首位为ACK_WITH_DATA(0x33),则将子节点号和数据内容通过串口传给PC机,接开始新的询问操作。若中心节点没有收到相应的回传数据报,则中心节点会重复询问子节点,重复询问最高次数为3次。中心节点通过对子节点地址进行计数实现对各个子节点的轮询。

子节点的无线模块一般处于接收状态,当接收到数据报时首先解析数据报的目的地址字节,若目的地址和自身地址不匹配则不作处理;若目的地址和自身地址匹配则对接收到的数据报进行解析,若包头为DATA_TRANS(0xF0)则将数据内容传给终端的PIC32系统,接着查询串口标志位(子节点串口中断接收程序在接受到PIC32发送的数据后设置串口标志位),若有数据发送则将数据报首位置为ACK_WITH_DATA(0x33),并将其和数据内容一起回传给中心节点;若没有数据发送则首位标志置为ACK_NO_DATA(0x30)。

3.2前台人机交互界面设计

点菜系统的前台需要构建操作友好的人机交互界面,考虑到CC2430中心节点板的串口模块可直接将接收到的数据与上位机通信,选用VC搭建该界面。VC提供了MSComm(microsoft communications control)控件,通过串行口进行数据传输和接收,为应用程序提供串行通信功能。MSComm控件通信功能的实现实际上是调用了API函数,而API函数是由Comm.drv解释并传递给设备驱动程序进行的,即MSComm控件的属性提供了通信接口的参数设置,能实现串行通信。

终端与前台通信遵循一定的协议格式,头一个字节是节点号(即就餐桌号),紧接着两个字节是传输命令,最后才是所传输的内容。终端传到前台的命令共有5类:传送菜单(MENU_CMD)、催菜(HUSH_CMD)、加菜(ADD_CMD)、菜单状态(STATE_CMD)和结账(CHECK_CMD);前台传回的命令有两类:操作成功(OK_CMD)和操作失败(NO_CMD)。


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭