新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FlexRay协议的媒体接入控制的设计

基于FlexRay协议的媒体接入控制的设计

作者: 时间:2014-01-07 来源:网络 收藏

  本文提出的基于内存的方式实现控制功能的思路如下:首先从内存中读取所需要的配置信息,主要有gdstaticSloc、 gNumberOfMinislots、gdSymbolWindow、gdActionPointOffset、 gdMinislotActionPointOffset。当接收到时钟产生模块提供的周期开始信号时,控制模块根据gdstaticSloc实现周期中的静态段。静态段使用静态槽实现TDMA,以协调数据的传输。在每个通道,通信控制器上设置一个槽计数器(vslotcounter),统计静态槽的个数。当时钟周期开始的时候,设置槽计数器的值为1;当槽结束的时候,槽计数器的值加1。对于一个具体的簇,静态槽的总数是一定的,由参数 gNumberOfStaticSlots确定。对于每个静态槽,FlexRay通信控制器根据用户的配置和MAC模块当前的操作模式决定是否为编解码模块提供数据。

  根据gNumberOfMinislots,该模块实现周期中的动态段。动态段使用动态槽实现事件触发的媒体接入方法,以协调数据的发送。通信控制器在每个通道上设置一个动态槽计数器,统计动态槽的个数。每个动态槽根据zMinislot来计数,当有数据传送时,动态槽可能占用多个zMinislot;当没有数据传送时,动态槽占用一个zMinislot。所以动态槽的大小是根据是否有数据发送决定的。对于一个具体的簇,zMinislot的总数是一定的,由参数gNumberOfMinislots确定;最后它根据gdSymbolWindow实现周期中的符号窗口。最后一个周期中剩下的时间就是网络空闲段。

  具体处理流程如图3所示。

 图3 处理流程

  图3 处理流程

2 设计验证

  确保设计正确性的关键是设计验证,主要通过逻辑功能仿真。逻辑功能仿真是在不考虑信号延迟的情况下对设计的逻辑功能进行验证。验证过程是:首先编写好设计的HDL代码;然后编写对应的TestBench,对设计进行关键性的验证;最后利用仿真软件ModelSim进行模拟,查看波形或者输出,若发现错误则查找错误原因、修改代码或者测试文件,直到符合设计要求。

  设计验证的首要工作是根据FlexRay协议设定具体的参数。具体参数的设定如下: gMacroPerCycle=48,gdStaticSlot=4,pMicroPerCycle=672,gNumberOfMinislots=15,gdSymbolWindow=3,gdActionPointOffset=1,gdMinislotActionPointOffset=1。

图4 时钟产生模块的周期信号图

  图4 时钟产生模块的周期信号图

图5 控制模块的四个段

  图5 控制模块的四个段

  图4是时钟产生模块的周期信号图。从图中可以看到,时钟产生模块需要等待晶振的最小时钟节拍信号,然后进行判断产生周期信号。当周期信号开始时,周期编号从默认的63变为 0,然后一直编号下去直到63。

  图5是对图4产生的周期信号开始周期的四个段的划分。从图中可以看到,0周期分为静态段、动态段、符号窗口、网络空闲段。

  图6是静态段的媒体接入方式。从图中可以看到,槽计数器(vslotcounter)从1开始编号直到用户配置的值。在第一个静态槽实现了媒体接入。

  图7是动态段的媒体接入方式。从图中可以看到,周期8的动态段有动态槽计数器zMinislot,从0开始编号直到用户配置的值。在第5个动态槽实现了媒体接入。

图6 静态段的媒体接入方式

  图6 静态段的媒体接入方式

图7 动态段的媒体接入方式

  图7 动态段的媒体接入方式

结语

  本文介绍了基于FlexRay协议的媒体接入控制的设计过程,并进行了设计验证。从仿真结果分析,它符合协议的要求,能够生成通信控制器的时钟周期,将时钟周期进一步划分为4个段,并且给出静态段和动态段的具体媒体接入方式。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭