基于FPGA无线传感器网络MAC控制器的设计
接收状态机产生整个接收过程所需要的控制信号,在控制信号的作用下将接收到的帧存储到RxFIFO。接收部分的状态转移如图6所示。本文引用地址:https://www.eepw.com.cn/article/191147.htm
(1)IDIE:初始状态。当接收状态机上电复位或者成功接收到帧时,进入到此状态。收到RxCSP_en信号时,开始数据接收过程。
(2)Rx_Preamhle:接收前导序列。启动序列检测器,开始检测数据线上符合IEEE802.15.4协议的序列。
(3)Rx_Length:接收数据帧长度。在这个状态下,开始接收数据的长度,同时存入计数器寄存器。
(4)Rx_MPDU:接收数据帧MPDU部分。这个状态下,接收帧的有效数据。每接收到1 Byte有效数据后,便产生接收FIFO缓存写信号,同时将数据写入到接收FIFO。如果接收数据CRC校验有误或者接收过程中发生堵塞现象,则状态机退回到初始状态。
(5)Rx_CRC_CHECK:接收CRC校验。接收数据包的CRC校验码,同时启动CRC校验的过程。
(6)Rx_RSSI_PAD:帧末尾RSSI值填充。计算RSSI强度值,并附着CRC校验结果,将该字节填入接收FIFO。
(7)Rx_CRC_PAD:CRC状态和Correlation值填充。
2.3 CSMN/CA协处理器模块
CSMA/CA协处理器是MAC控制器设计中的核心模块。协处理器主要包括指令寄存器、4个辅助寄存器以及控制信号产生模块。通过指令寄存器、4个辅助寄存器与系统CPU接口的功能。同时,控制信号产生模块产生MAC控制器发送和接收模块所需要的控制信号。
MAC控制器包括4种工作状态:
(1)睡眠状态:在该状态下,除协处理器模块外,所有子模块的时钟都将停止,从而降低功耗。只有当协处理器执行发送使能指令或接收使能指令时,才离开睡眠状态。
(2)发送状态:当协处理器执行发送使能指令时,进入发送状态。如果一帧发送完成,则自动转入接收状态。
(3)接收状态:当协处理器执行接收使能指令时,进入接收状态。因为接收状态是主要的工作状态,所以在成功接收完一帧或帧校验失败后依然处于接收状态。
(4)发送应答帧状态:当协处理器执行应答指令时,进入到此状态。
无论在那种状态,一旦执行了休眠指令,控制器立即进入睡眠状态。
2.4 接口模块
接口模块分为和系统MCU的特殊功能寄存器接口以及和与物理层芯片的物理接口。MCU要想控制MAC控制器的运行,就必须采用一种接口与它进行通信,本文采用SPI接口。
SPI(Serial Peripheral Interface)是一种串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。优点如下:第一,它是一种高速的,全双工,同步的通信总线;第二,它只占用4根线,节约了芯片的管脚,同时为PCB的布局上节省空间。SPI接口主要应用在EEPROM,Flash,实时时钟,A/D转换器,还有数字信号处理器和数字信号解码器之间。
SPI的通信原理:它以主从方式工作,这种模式通常有一个主设备,一个或多个从设备,需要至少4根线。
(1)SEL:从设备使能信号,由主设备控制。
(2)MOSI:主设备数据输出,从设备数据输入。
(3)MISO:主设备输入,从设备数据输出。
(4)SCLK:时钟信号,由主设备产生。
其中,SEL是控制芯片是否被选中,也就是说只有片选信号为预先规定的使能信号时,对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。由SCLK提供时钟脉冲,MOSI和MISO则基于此脉冲完成数据传输。数据输出通过MOSI,MISO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取,完成一位数据传输。输入也使用同样的原理。这样,在至少8次时钟信号改变内,就可以完成8位数据的传输。MAC控制器采取的是上升沿接收、下降沿发送、高位先发送。
3 综合结果
本设计采用Verilog语言,FPGA芯片使用Altera公司的Cyclone,整个设计都是在Altera公司的Quartus8.0下进行综合、布局布线以及仿真。表1是综合结果。
4 结束语
本文给出了完全用FPGA实现无线传感器网络MAC控制器的设计方法,该方法只需外接物理层芯片和MCU便可完成网络功能。从而有效降低了成本,减少了版面积,提高了整个系统的集成度。
评论