当前位置:首页 > 工业控制 > 电子设计自动化

  摘要

  给出了一种由FPGA实现的无线传感器网络MAC控制器的设计方法,采用自顶向下的方法设计各个模块,并在QuartusII8.0完成了仿真,该控制器主要支持IEEE802.15.4协议。测试结果表明,该MAC控制器支持20~250 kbs数据传输速率,适应IEEE802.15.4协议要求。

  媒体访问控制(Medium Access Control,MAC)协议处于无线传感器网络协议的物理层和网络层之间。用于在传感器节点间公平有效地共享通信媒介。它完成载波侦听多路访问(CSMA/CA)的信道存取、协议格式成帧或解帧、自动应答、系统多周期定时和帧校验等功能。

  不同传感网络的应用有着不同MAC协议,其中IEEE802.15.4是最具代表性的协议。本文给出了用FPGA的控制逻辑来实现无线传感器网络MAC控制器的设计方法,并最终实现了符合IEEE802.15.4协议的控制器。

  1 总体设计方案

  无线传感器网络控制器的FPGA设计包括无线传感器网络MAC子层的FPGA设计、MAC子层与上层协议的接口设计以及与物理层(PHY)的接口设计。该无线传感器网络的总体结构设计如图1所示。

  整个系统分为发送模块、接收模块、CSMA/CA协处理器模块、PHY接口模块和MCU接口模块5个部分。

  发送模块和接收模块主要完成MAC帧的发送和接收功能,包括MAC帧的封装和解包,它直接提供了到外部物理层芯片(PHY)的串行接口。

  CSMA/CA协处理器是MAC的核心,控制接收和发送状态机协调半双工收发控制,并且通过程序执行的方式完成CSMA—CA算法。

  2 模块实现

  2.1 MAC发送模块

  发送模块可将上层协议提供的数据封装之后通过PHY接口发送给PHY。发送状态机按照帧的格式将数据进行封装,分别在数据的前端添加前导序列和帧起始分隔符以及在数据的后端添加CRC校验值,封装后的整个数据包以串行格式发送出去。

  因此,发送部分的功能包括前导序列和帧起始分隔符插入、CRC计算、帧发送和自动应答等功能。

  发送模块包括发送FIFO(First In First Out)缓存器模块(Tx_FIFO)、发送状态机模块(Tx_FSM)、自动应答模块(Tx_Ack)、发送计数器模块(Tx_Counter)和CRC计算模块(Tx_Crc)等5个子模块。其内部结构如图2所示。

  2.1.1 发送状态机Tx_FSM

  Tx_FSM是整个发送模块的状态机,它是整个发送模块的核心,主要用于产生发送过程中各个模快的控制信号。发送的状态转移,如图3所示。TxCSP_en是来自MAC控制部分CSMA/CA协处理器的发送状态机控制信号。当TxCSP_en信号为高电平时,启动状态机,开始帧的发送过程。

  (1)IDLE:初始状态。当发送状态机上电复位或者成功接收到数据包时,进入此状态。如果收到TxCSP_en信号时,开始数据发送过程,否则,保持此状态。

  (2)Tx_Preamble:发送前导序列。当状态机将跳变到此状态,开始向数据线上发送符合特定组合的前导码序列。IEEE802.15.4协议的帧格式的前导序列是4 Byte O。

  (3)Tx_SFD:发送帧起始分隔符。在这个状态下开始发送帧的帧起始符,IEEE802.15.4协议的帧格式的帧起始符为10100111。同时启动计数器,对该过程进行计数。

  (4)Tx_Data:发送数据帧MPDU部分。这个状态下发送帧的有效数据,这个有效数据是来自上层。当发送完8位有效数据后,便产生读取FIFO缓存信号,从接收FIFO读取1Byte数据。

  (5)Tx_Crc:发送数据包的CRC校验位。在这个状态下,发送帧的16位CRC校验码。

  (6)Tx_Ack:发送应答状态。如果接收到的帧有应答要求,则启动该状态。

  2.1.2 CRC校验电路

  通过使用16位CRC串行校验来进行帧的差错校验,其中校验多项式采用。将要传送帧的MPDU通过CRC校验模块,便产生了16位CRC校验码。16位串行CRC校验电路如图4所示。

  2.1.3 发送模块的仿真结果

  图5是发送模块的仿真结果,Tx_clk是来自PHY接口的发送时钟,s_out是帧以串行方式发送。最先发送的前导序列码,接下来帧起始分隔符,再就是数据位,最后是CRC检验位。

  2.2 MAC接收模块

  接收模块的主要功能:接收并识别从串行数据线上输入的符合IEEE802.15.4协议格式的帧。如果协处理器RxCSP_en信号有效,则启动数据接收过程。通过接收状态机的控制,按帧格式顺序接收不同的数据域。当接收到1Byte数据后,且Rx_fifowrite信号有效时,数据被写入到接收缓存RxFIFO中。

  接收状态机产生整个接收过程所需要的控制信号,在控制信号的作用下将接收到的帧存储到RxFIFO。接收部分的状态转移如图6所示。

  (1)IDIE:初始状态。当接收状态机上电复位或者成功接收到帧时,进入到此状态。收到RxCSP_en信号时,开始数据接收过程。

  (2)Rx_Preamhle:接收前导序列。启动序列检测器,开始检测数据线上符合IEEE802.15.4协议的序列。

  (3)Rx_Length:接收数据帧长度。在这个状态下,开始接收数据的长度,同时存入计数器寄存器。

  (4)Rx_MPDU:接收数据帧MPDU部分。这个状态下,接收帧的有效数据。每接收到1Byte有效数据后,便产生接收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便可完成网络功能。从而有效降低了成本,减少了版面积,提高了整个系统的集成度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭