首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32L152和S14432的无线网络系统设计(3)

STM32L152和S14432的无线网络系统设计(3)

4 系统软件设计          系统的软件设计分为主节点和从节点两部分。软件设计采用功能模块化的设计思路,系统又可分为初始化模块、应用模块和网络管理模块。其中初始化模块包括单片机初始化模块、射频芯片初始化模块和应用初始化模块;应用模块包括无线发送模块、无线接收模块、数据处理模块、工作模式模块;网络管理模块是通过路由协议组建无线网络。
          4.1 系统初始化
          系统上电后,单片机根据主节点和从节点的区别对硬件和功能模块进行初始化,设定各个引脚的功能、单片机的工作模式和资源分配,以及各个应用功能模块的初始化。然后,通过SPI接口对无线射频芯片进行初始化。射频芯片的工作模式、频率、传输速度、传输方式等都按主从节点分别设置。
          4.2 数据处理
          系统采用类似ZMAC协议的帧格式对数据进行打包通信。数据包的格式如下:

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

       
          4.3 数据发送和接收
          数据发送模块负责将数据包发送出去。当接收到发送指令时,首先通过SPI清空射频芯片的发送FIFO,然后向发送FIFO里写入需要发送的数据。打开射频芯片发送完成中断并禁止其他所有中断。微控制器使能射频芯片的发送功能,数据开始无线发送。将IRQ引脚拉高,并等待无线发送完成中断。如果数据发送成功,则NIRQ变低电平。
          数据接收模块负责接收数据包。当接收到微控制器的接收指令时,首先通过SPI清空射频芯片的接收FIFO。打开前导码接收、帧同步中断和接收包数据有效中断,并关闭其他中断。准备好开始接收。若引脚NIRQ变为低电平,且读取到接收包数据有效中断位,通过SPI读取接收FIFO中的数据,关闭接收功能。发送和接收程序流程如图5所示。

       
继承事业,薪火相传
返回列表