基于单片机无线电子点菜系统硬件设计及实现
[09-11 23:01:53] 来源:http://www.88dzw.com 单片机学习 阅读:8376次
文章摘要:3.方式2和方式3当设定SM0、SM1为10或11时,串行口工作于方式2或方式3,这两种方式都是9位异步通信,仅波特率不同,适用于多机通信。在方式2或方式3下,数据由TXD发送RXD接收,1帧数据为11位,1位起始位(低电平),8位数据位(低位在前),1位可编程位(第9位数据,用作奇偶校验或地址/数据选择),1位停止位(高电平)。与方式1相比,多了一位可编程位,发送时,第9位数据为TB8,接收时,第9位数据送入RB8。通过以上单片机串行口各种工作方式的比较,由于使用一个开发板和PC机进行单独的通信,因此工作方式1比较适合系统的要求。通过设置合适的波特率和帧格式,来实现开发板和PC机之间准确的数
基于单片机无线电子点菜系统硬件设计及实现,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com3.方式2和方式3
当设定SM0、SM1为10或11时,串行口工作于方式2或方式3,这两种方式都是9位异步通信,仅波特率不同,适用于多机通信。在方式2或方式3下,数据由TXD发送RXD接收,1帧数据为11位,1位起始位(低电平),8位数据位(低位在前),1位可编程位(第9位数据,用作奇偶校验或地址/数据选择),1位停止位(高电平)。与方式1相比,多了一位可编程位,发送时,第9位数据为TB8,接收时,第9位数据送入RB8。
通过以上单片机串行口各种工作方式的比较,由于使用一个开发板和PC机进行单独的通信,因此工作方式1比较适合系统的要求。通过设置合适的波特率和帧格式,来实现开发板和PC机之间准确的数据传递。
由于PC机和单片机的处理速度的不同,PC机给开发板发送数据时,单片机采用中断的方式进行数据接收。通过软件设置单片机的传输属性参数为”9600,N,8,1″,来实现和PC机端串行口传输速率同步。开发板向PC机发送数据时,采用查询方式,这样可以节省单片机有限的资源。
开发板还要通过专门的接口和无线数据传输模块进行数据交换,由于系统设计为点对点通信,因此只使用了nRF2401一个信道。nRF2401的数据传输方式为同步传输,因此使用普通的I/O口通过软件方式模拟SPI方式传输。
nRF2401有四种工作模式:收发模式,配置模式,空闲模式和关机模式[16][17]。工作模式由PWR_UP 、CE、TX_EN和CS三个引脚决定,详见表4.1。
表4.1 nRF2401的各种工作模式的设置方式
工作模式 PWR_UP CE CS
收发模式 1 1 0
配置模式 1 0 1
空闲模式 1 0 0
关机模式 0 * *
前文已经讲过有关nRF2401的收发方式,这里重点讨论一下它的配置方式。nRF2401的所有配置工作都是通过CS、CLK1和DATA三个引脚完成,把其配置为ShockBurstTM收发模式需要15字节的配置字。
ShockBurst TM的配置字可以分为以下四个部分:
(1) 数据宽度:声明射频数据包中数据占用的位数。这使得nRF2401能够区分接收数据包中的数据和CRC校验码;
(2) 地址宽度:声明射频数据包中地址占用的位数。这使得nRF2401能够区分地址和数据;
(3) 地址:接收数据的地址,有通道1的地址和通道2的地址;
(4) CRC:使nRF2401能够生成CRC校验码和解码。
nRF2401的配置字如表4.2所示:
在配置模式下要保持PWR_UP引脚为高电平,CE引脚为低电平,配置字从最高位开始,依次写入nRF2401。在CS引脚的下降沿,新送入的配置字开始工作。
表4.2 nRF2401的配置字
位 位数 名字 功能
Shockb
Brst T
M 配置 143:120 24 TEST 保留
119:112 8 DATA2_W 接收频道2有效数据长度
111:104 8 DATA1_W 接收频道1有效数据长度
103:64 40 ADDR2 接收频道2的地址,最高为5字节
63:24 40 ADDR1 接收频道1的地址,最高为5字节
23:18 6 ADDR_W 接受频道地址位数
17 1 CRC_L 8位或16位CRC校验
16 1 CRC_EN 使能CRC校验
常用器件配置 15 1 RX2_EN 使能第二频道
14 1 CM 通信方式设置
13 1 RFDR_SB 发射数据速率
12:10 3 XO_F 晶震频率
9:8 2 RF_PWR 发射输出电源
7:1 7 RF_CH# 频道设置
0 1 RX_EN 接收或发送操作
开发板通过串行口和PC机交换数据的流程图如下:
图4.1 开发板和PC机通过串行口交换数据的流程图
开发板通过IO口和无线数据传输模块进行数据交换的流程图为图4.2。
图4.2开发板通过IO口和无线数据传输模块进行数据交换的流程图
4.1.2 移动端驱动程序
移动端的开发板的结构和PC机端的开发板的结构完全相同,但由于它不需要和PC机通信,只需要和无线数据传输模块进行通信。因此相对另一端的驱动简单一些。具体编程规则在上一节已经详细叙述,这里不再多说,具体的程序是PC机端程序的一部分。
4.2 串行口调试工具
串行口调试工具是用微软公司的visual c++6.0[20][21]开发的。几乎所有世界级的软件,从业界领先的Web浏览器到面向任务的企业应用,都是使用Microsoft Visual C++开发系统来开发的。要用C++来开发Windows和Web上的高性能应用程序,Visual C++是效率最高的首选工具。Visual C++ 6.0在不牺牲灵活性、性能和控制力度的同时,给C++带来了更高水平的生产效率。它具有可视化的界面,封装了大量的类,使界面制作变的很简单,使用它可以方便快捷地开发Windows环境下的应用程序。visual c++6.0专门为串行口通信提供了Mscomm[20][21]控件,使用该控件程序员不必花时间去了解比较复杂的API函数,通过简单修改控件的属性和使用控件提供的方法就可以实现对串口的配置,完成串口发送和接收数据。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 下一页
《基于单片机无线电子点菜系统硬件设计及实现》相关文章
- › 基于单片机的直接数字频率合成器的设计
- › 基于单片机P89C61X2的FPGA配置
- › 基于单片机的直流调速系统设计
- › 基于单片机仿真器的设计
- › 基于单片机和DSP的被动声目标探测平台设计
- › 基于单片机的电子导游系统设计
- 在百度中搜索相关文章:基于单片机无线电子点菜系统硬件设计及实现
- 在谷歌中搜索相关文章:基于单片机无线电子点菜系统硬件设计及实现
- 在soso中搜索相关文章:基于单片机无线电子点菜系统硬件设计及实现
- 在搜狗中搜索相关文章:基于单片机无线电子点菜系统硬件设计及实现