新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 适于底层协议栈开发的数据采集与仿真系统

适于底层协议栈开发的数据采集与仿真系统

作者:时间:2010-05-07来源:网络收藏

2.2 输出数据
根据1.1节所选择的点,需在DSP的栈代码中输出时所用的数据: (1)需要输出的为前端AD/DA数据,以及栈与上层栈之间的交互数据,这是通信协议栈接收、发射信息时所需的输入数据与最终的输出结果; (2)其他外围设备产生的中断和输入数据也会影响底层协议栈流程,是时所必须的部分;(3)底层协议栈各任务挂起、运行、结束等状态变化需要输出,以保证程序运行时刻与实际情况一致。另外,在2次AD/DA中断之间会发生多次变化的全局变量也需要输出,以弥补时间片划分的不足。
2.3 数据解析
1.5节中所存储的接收数据不方便直接用于仿真,需要进行格式转换。根据2.1节中所述框架,所有事件通过AD/DA数据计时,故而除AD/DA数据外,其他类型数据需要记录AD/DA数据个数信息,作为时间戳,因而可将所有数据分为两大类:AD/DA数据和非AD/DA数据。为仿真方便,将这2种类型数据分别存放于2个文件中。在解析数据时,需要将1.3小节中为了与CY68013A兼容而通过FPGA拆分开的2个16位数据重新合并为1个,并将不同类型的数据分开。AD/DA数据一般长度固定,由AD/DA转换器分辨率(位数)而定,例如,AD/DA数据为16位,每次中断输出1个数据,则解析后的数据格式如表2所示。

本文引用地址:http://www.eepw.com.cn/article/157453.htm

  非AD/DA数据根据程序需求,长度不固定,可在协议栈程序输出数据中包含长度信息,也可在接收程序与输出程序中提前规定好数据长度。例如,非AD/DA数据以字为单位,数据长度为N,则解析后的数据格式如表3所示。

由于底层协议栈需要兼顾外围硬件控制,各种外部中断比较多,很可能会打断数据输出,因而在解析数据时,需要考虑各种数据之间的嵌套。为此,可以对每种数据采用单独的缓冲区,待解析到1条完整数据之后再存入文件中,同时还要保证文件中各种非AD/DA数据按照发生时间的先后顺序排列。其流程如图3所示。

2.4 仿真
仿真之前,首先要将运行于DSP中的底层协议栈代码转换为PC机上可运行的代码,一般DSP大多采用C语言和汇编语言相结合的方式进行,C代码基本上不需要进行大量修改,而汇编代码需要根据其工作原理,转译成C代码。系统仿真时采用2.3节中解析后的数据文件作为输入,按照2.1节定义的仿真系统框架,以AD/DA数据为驱动,通过判断非AD/DA数据的发生时刻(AD/DA数据计数值)来调动底层协议栈各部分任务运行,以达到再现协议栈运行状况、调试程序的目的。仿真流程如图4所示。有些硬件操作需要底层协议栈控制,仿真时可以按照“[发生时间] 硬件操作内容”的格式写到文件中作为仿真程序的输出。这样通过查询输出文件,各种硬件操作的先后关系一目了然,更形象化,有利于发现硬件控制上的逻辑错误。

本文设计了一种专门用于底层协议栈与仿真系统,利用USB高速传输特点以及物理连接的便利性,采用CY68013A进行数据传递,充分利用其GPIF资源,使用FPGA进行格式转换。文中对仿真系统的整体框架和数据转换细节进行了详细说明。该系统可用于各种类型协议栈调试,便于追踪、再现问题。经过实验验证,系统可承受100 Mb/s的实时数据流,在数字集群手持终端中进行了广泛应用,不仅降低了协议栈的开发难度,而且缩短了开发周期,有很高的实用性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭