您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>无线通信>无线局域网>

系统软件设计 - STM32L152和S14432的无线网络系统设计

2011年08月20日 16:02 单片机与嵌入式系统 作者:肖 星 用户评论(0
4 系统软件设计

  系统的软件设计分为主节点和从节点两部分。软件设计采用功能模块化的设计思路,系统又可分为初始化模块、应用模块和网络管理模块。其中初始化模块包括单片机初始化模块、射频芯片初始化模块和应用初始化模块;应用模块包括无线发送模块、无线接收模块、数据处理模块、工作模式模块;网络管理模块是通过路由协议组建无线网络。

  4.1 系统初始化

  系统上电后,单片机根据主节点和从节点的区别对硬件和功能模块进行初始化,设定各个引脚的功能、单片机的工作模式和资源分配,以及各个应用功能模块的初始化。然后,通过SPI接口对无线射频芯片进行初始化。射频芯片的工作模式、频率、传输速度、传输方式等都按主从节点分别设置。

  4.2 数据处理

  系统采用类似ZMAC协议的帧格式对数据进行打包通信。数据包的格式如下:

  

d.jpg

 

  数据包的前端加上8n位的前导码,是为了使接收端进行帧同步。前导码之后是帧同步字,当接收端收到帧同步字之后,开始接收数据。包长和校验码是接收端用来校验数据接收错误与否。数据处理模块负责在发送前和接收后对数据包进行信息处理。数据包分为网络维护类和信息类,通过包类型位区分,其中数据包内数据位的信息不通。当网络系统处于组建和维护期时,数据包属于网络维护类,数据位的信息为节点的路由信息。节点的路由信息包括到汇聚节点的跳数、到相邻节点的链路质量评估信息、节点编号等。当网络系统处于工作状态时,数据位的信息为控制指令或数据码。节点在数据信息发送前,数据处理模块负责将需要发送的数据信息进行分类,然后向其中分别加入各种不同的位信息,形成成熟的待发送的数据包。节点在数据信息接收后,该模块负责对数据包进行校验,将数据包分类,然后对各种信息位进行分离整理。其中,在发送和接收时,通过对SI4432寄存器的配置操作,可以直接分离出配置位。配置位结构如下:

  

f.jpg

 

  4.3 数据发送和接收

  数据发送模块负责将数据包发送出去。当接收到发送指令时,首先通过SPI清空射频芯片的发送FIFO,然后向发送FIFO里写入需要发送的数据。打开射频芯片发送完成中断并禁止其他所有中断。微控制器使能射频芯片的发送功能,数据开始无线发送。将IRQ引脚拉高,并等待无线发送完成中断。如果数据发送成功,则NIRQ变低电平。

  数据接收模块负责接收数据包。当接收到微控制器的接收指令时,首先通过SPI清空射频芯片的接收FIFO。打开前导码接收、帧同步中断和接收包数据有效中断,并关闭其他中断。准备好开始接收。若引脚NIRQ变为低电平,且读取到接收包数据有效中断位,通过SPI读取接收FIFO中的数据,关闭接收功能。发送和接收程序流程如图5所示。

  

h.jpg

 

  

非常好我支持^.^

(5) 100%

不好我反对

(0) 0%

( 发表人:叶子 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!