微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 由FWl22-M构成的短距离无线数据通信系统

由FWl22-M构成的短距离无线数据通信系统

时间:09-21 来源:互联网 点击:

①PREAMBLE:RFW-D100发送PREAMBLE的目的是使接收机和发送机同步。20位长,高4位为1111,其他16位可以配置。发送顺序为从高到低。
②NET_FIRST:1字节,网络地址字节。
③NET_SEC:1字节,网络地址字节。
④DST_ID:1字节,数据包所发往的目的节点地址。
⑤SRC_ID:1字节,发数据包的源站地址。
⑥SEQUENCE:l字节。这个段包括两个值:高4位表示数据序号,低4位表示数据包的类型。低4位代表的含义:0000b为握手数据包,0001b为握手应答包,0010b为数据包,0011h为数据包的应答包,0100b为拆链包,OlOlb为拆链的响应包。
⑦SIZE:l字节。这个段说明包的大小。当设定数据包为固定大小时,SIZE没有意义。
⑧PAYLOAD:1字节。来自上层软件层的数据。
⑨CRC:1字节。RFW-D100在发送端给每个包增加CRC信息,使得接收机对接收的数据进行检测。

在本系统的协议设计过程中,采用小数据包的传输模式,从串口中收到的数据个数(以字节为单位)等于10时,将这些数据打包发送出去。如果收到的数据个数小于10,并且串口数据的发送已经结束,则系统也将这些数据打包并发送出去。

3.2 系统状态转移图
系统的状态转移如图4所示,包含4个状态,分别是空闲态、握手态、传输态和接收态。

空闲态:如果没有串口中断或外部的握手信号中断,则系统将一直处于空闲状态。
握手态:如果串口中断发生,则表明有上层的数据包需要传输,系统进入握手的状态。
传输态:系统把从串口收到的数据通过无线信道发送出去。
接收态:系统处理接收到的数据包,发往串口,并对从串口到来的数据包做丢弃处理。

3.3 4 个状态的处理流程
系统4个状态的处理流程如图5~图8所示。

系统接收串口数据的缓冲池的大小为15字节。
图6中各个标志位的意义如下:

New_flag 串口中有新数据到来(串口中有数据到来,将New_flag置1,在串口中断中设置此标志位)。
Checkact_suc_flag收到握手应答包的标志。收到握手应答数据包后将此标志位置1。
Tx_size系统接收到的来自串口的字节个数。
Tx_end_flag 串口中的数据发送完毕。由定时器1控制,定时一段时间。如果在这段时间内没有新的数据到来,则认为串口数据的这次发送完牛。每次收到新的串口数据时重置定时器,定时的时间大于1字节数据传输的时间。
Checkact_send_flag由定时器 0控制,在定时的时间内如果没有收到握手应答包,则定时器0溢出,Check-act_send_flag被置1,重发握手包。
图7中各个标志位的意义如下:
New_flag串口中有新的数据到来。若串口有数据到来,则将New_flag置1,在串口中断中设置此标志位。
Pk_sended_nack一个数据包已经发送出去但还没有收到确认包时将此位置1,为0时表示系统可以发送数据包。
Ack_flag为1表示发出的数据包收到了确认。
Tx_end_flag从串口发来的数据已经停止了发送。
Exceed_timing_flag在发送完每一个数据包的同时打开定时器0,从定时器0打开到定时器0溢出的这段时间内,如果没有收到确认包,则认为数据包发送失败,将Exceed_timing_flag置l;如果在这段时间内收到确认的数据包,则将定时器O关闭。
Tx_size系统接收到的来自串口的字节个数。
图8中各个标志位的意义如下:
Lock_flag本节点收到了其他节点发来的数据包。
Tx_t0_s_flag在接收状态.如果MCU中的缓冲区内仍有数据,且Tx_to_s_flag=l,则可向串口发送1字节数据。当MCU的TI中断发生时,将此标志位置1。

4 接口芯片RFW_D100的固件编程
对RFW_D100进行固件的编程是通过对RFW_D100内的特殊功能寄存器的编程实现的。



结语
本设计以射频芯片RFWl22-M及其接口芯片RFE-D100为核心,采用单片机AT89LV52作微处理器,实现了一个短距离无线数据传输系统。今后的工作是完善和改进该协议,进一步提高无线数据的传输效率。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top