基于nRF9E5的无线网络控制应用设计方案
- 格式:pdf
- 大小:1.27 MB
- 文档页数:4
基于nRF9E5的无线网络控制应用设计方案王雄辉,沈玉利,林庆浩,郑甲任,吴东岳( 广东海洋大学信息学院,广东 湛江 524088)摘 要: 结合现代餐饮业自动化服务的需求,以无线Soc 芯片nRF9E5和点阵型LCD 模块ST7920为硬件核心,结合C++ Builder 软件编程环境,构建了一种基于nRF9E5芯片的无线网络自动化服务管理系统,该系统具有人机界面友好、数据管理软件完善、无线数据传输与控制稳定、高效等特点。
可以推广应用到区域水质、土壤等环境的自动监测等领域。
关键词: nFR9E5 ;人机交互界面; 无线控制;C++ builder中图分类号:TN925.93;TP273.5 文献标志码:A 文章编号:1673-9159(2008)03-0079-04An Application Design of Wireless Network Control Based on nRF9E5WANG Xiong-hui, SHEN Yu-li, LIN Qing-hao, ZHENG Jia-ren, WU Dong-yue( 1. School of Information, Guangdong Ocean University , Zhanjiang 524088, China;)Abstract: Considering the demand of the modern automatic diet service, withthe wireless chip nRF9E5 and lattice LCD12864 containing Chinese fonts’ storeroom as center hardware, combining with the C++ Builder compiler, we have designed an application system based on the nRF9E5 chip for wireless network control. This system has the features of friendly human-computer interface, sufficient data managing software, as well as stable and efficient wireless data transmission and control. It can also be useful in automatic inspection of the water quality, soil and so on, which reveals a tip of its bright future development.Key words: nFR9E5; interface for man-machine conversation; wireless control; C++ builder1 主控芯片片上系统级芯片nRF9E5内嵌nRF905无线收发模块、8051内核、10位ADC 、UART 、SPI 、看门狗等电路。
它没有复杂的通讯协议, 完全对用户透明,同种产品之间可以自由通讯,内置的硬件CRC 纠错电路和协议免去了软件纠错编程和微控制器的纠错运算,降低了无线应用系统的开发难度,增强了无线抗干扰能力,系统主要结构框图如图1所示。
nRF9E5片内的nRF905收发模块通过内部SPI口与8051内核块进行通信,可自动处理字头和CRC(循环冗余码校验)。
发送数据时只需将要发送的数据和接收地址送给nRF905,nRF905自动完成数据打包(加字头和CRC 校验码)然后发送,收发模块接收到正确的数据包时,自动移去字头、地址和CRC 校验码,然后通知微处理器取数据。
初始化程序有:nRF905模块的发射功率,工作频段,发送数据宽度、地址,接收数据宽度、地址,CRC 校验等。
片内收发器有3种工作方式:接收(RX)方式、发送(TX)方式和空闲模式。
nRF9E5芯片中的收发器的所有设置都是通过SPI 接口进行的。
SPI 接口由状态寄存器、配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。
状态寄存器包含DR 和AM 两个信号的内容;配置寄存器包含收发器配置信息,如频率和输出功能等,可根据需要配置[1]。
图1 nRF9E5结构框图Fig.1 The structure chart of NRF9E52 系统总方案设计如图2所示,该系统由多台服务面板下位机、图2 系统方案总框图Fig.2 The main block chart of system scheme收/发上位机、PC 机等组成。
系统的服务面板下位机主要由nRF9E5芯片和STC7920点阵型LCD 模块组成,nRF9E5是实现系统控制和无线收发的主要芯片,由于nRF9E5集成度高,功能强大,功耗低,很适合用于小型化和低压场所的射频控制系统的场合。
LCD 具有显示零辐射、低耗能、画面稳等优点,本方案采用具有串行/并行多种接口方式的LCD 模块ST7920,其内带有国标一级、二级简体中文字库,可降低程序编写的难度,很方便地设计出友好方便的人机操作界面,服务面板硬件方框如图3所示。
收/发上位机主要以nRF9E5和MAX232电平转换芯片组成的收/发上位机,负责总机的无线收发PC 数据连接,方框图如图4所示。
PC 端程序是在C++ Builder 环境下编写的,主要实现对下位机的收发控制,以及数据管理功能。
图3 服务面板硬件方框图Fig.3 The hardware block chart of the service panel12864LCMnRF9E5模块键盘服务面版1(下位机)服务面版2(下位机)服务面版3(下位机)服务面版N(下位机)总机(PC连接器)PC (上位机)PC 端软件打印输出P C 网络PC 机厨房服务终端经理或其它PC…图4 收发上位机方框图Fig .4The transceiver block chart of the upper-machine3 系统软件设计3.1 服务面版下位机软件设计下位机以nRF9E5为主控和通信芯片,完成人机交互界面、数据收发等功能,主要程序流程图如图5所示,其中nRF9E5初始化配置程序有:nRF905模块的发射功率、工作频段、发送数据宽度、接收数据地址等;ST7920的初始化程序主要包括:LCD 清屏(包括字符和点阵)、地址复位等。
图5 下位机总流程图Fig .5 The main flow chart of the lower-machine3.1.1 单片机与液晶模块的通信实现 单片机与液晶模块采用2线串行模式通信[2],两者之间传送1字节的数据共需24个时钟脉冲。
首先,单片机以5个连续的“1”作数据起始位。
在接收到起始位时下一个字节的数据或指令将被分为2个字节来串行传送或接收。
数据或指令的高4位被放在第2个字节串行数据的高4位,其低4位则置为“0”或被放在第3个字节的高4位,其低4位也置为“0”,如此完成一个字节指令或数据的传送。
3.1.2 LCD 人机交互界面设计 人机交互设计的重点在于窗口界面的显示、滚屏、光标的管理及参数的显示、修改和保存。
由于12864的LCD 模块只能同时显示4个菜单项,每个菜单项占据256个字节的点阵存储空间。
窗口多于4个菜单项时,应当使用滚屏功能。
为提高系统响应的速度,在滚屏时只要将新的菜单点阵数据读入LCD 点阵存储 ,其余3个菜单的点阵数据保持不变,显示的参数来自键盘输入或系统内部。
由于ST7920控制器的LCM 的图形层和文字层是可以同时使用的。
当同时使用时它们是异或的关系。
在文字模式下显示文字,然后切换到图形模式下,写入相应要反白显示的点阵[3]。
我们可以利用以上特性设计行选中效果。
如图6所示的窗口滚屏过程中LCD 点阵存储区的快照以及LCD 屏上显示的菜单次序从A 到E 的滚屏每一步都是可逆的。
只要将1个即将显示的菜单项点阵数据写入LCD 点阵存储区,图中加黑框的菜单项就是新写入的。
当向下滚屏时,从LCD 显示缓冲区中“显示中的菜单项”域检索出菜单序号最小的项,从显示缓冲区的“菜单点阵数据”域把菜单的点阵数据读到LCD 点阵存储区中相应位置。
然后再检索更新后的“显示中的菜单项”域,找出最小菜单项所在的行号,设置扫描起始行Z 为此行号,图中箭头指向的位置即为扫描起始行。
图6 滚屏功能设计原理Fig .6 The design principle of the rotating screen3.2 无线网络通信 (控制)的实现实现上/下位机的数据通信和控制,需要对nRF9E5进行初始化,并根据实际情况配置设计,对每个上/下机的通信进行定义,实现一对多功能。
本设计中将收发总机的无线收发器nRF905和所有下位机的收发器nRF9E5的RF 工作频率都设置在P C 软件R S232电平芯片nR F9E 5芯片相同的ISM频段,并将收发地址设为相同值,下位机根据自身编号的字段,获得相应的控制命令。
3.2.1通信容错协议 nRF9E5芯片集成了硬件电路实现的循环冗余校验(CRC),CRC校验由于实现简单,检错能力强,因此被广泛使用在各种数据校验应用中,本设计系统在对nRF905进行初始化配置时选用16位的CRC校验码,免去了复杂的相关算法编程,提高了通信质量和距离。
由于无线通信杂波的干扰,可能导致地址和数据被破坏,系统中设定:在一个通信程序周期中将每一个地址和数据反复发送5次,接收方接到有效数据大于3次时,即被认为通信有效,这样大大增加了系统通信成功率和通信有效范围[4]。
3.2.2通信数据包定义由于收发总机和下位机之间要相互传送各种控制和信息数据,所以必须要对数据包进行定义,上下位机根据数据包中不同的标识符对数据进行处理或决定自己的工作状态。
本设计中主要定义的数据包如表1,程序可根据自己状态和数据标识符做出相关处理。
表1 主要数据包定义Tab.1 The definition of main data package项目 第0字节 第1字节 第2字节 … 第31字节有效菜单 标识符:‘A’ 1号菜选定状态 2号菜选定状态 … 31号菜选定状态 有效菜单 标识符:‘B’ 32号菜选定态 33号菜选定状态 … 63号菜选定状态 人工服务 标识符:‘C’ 无效 无效 无效 无效确认 标识符:‘O’ 无效 无效 无效 无效无效 标识符:‘E’ 无效 无效 无效 无效3.3 PC端程序开发C++ Builder是一款高性能可视化集成开发工具,它内置了100多个Windows公用特性且具有完全可扩展性的可重用控件,它实现了可视化的编程环境和功能强大的编程语言C++的完美结合,可快速地建立应用程序界面,达到较高的控制要求,成本也相对低廉。