基于ARM的IEEE802.11bMAC层协议IP核设计
(凹丫丫范文网fanwen.oyaya.net收集整理)
在系统行为定义阶段,要特别注意代码生成器对SDL设计的结束,例如对于C advanced生成器不支持信道子结构、信号细化等;对于C micro生成器不支持连续信号、服务、优先输入/输出等。在系统行为分析仿真调试阶
段,使用C basic/C advanced代码生成器产生系统代码,与SDT提供的仿真内核一起编译连接,得到系统行为的仿真醋,然后可以使用text、SDL、MSC等多种跟踪方式进行仿真调试。在系统行为验证时,使用相同的代码只不编译连接时加入SDT提供的验证内核,可得到系统行为的验证模型,可以使用自动状态空间遍历、覆盖率分析等方式进行系统行为的验证。仿真和验证都无环境函数,由仿真器和验证器充当系统的环境,产生和接收与系统交互的信号。在系统行为经仿真验证正确后,可以应用C advanced/C micro生成器产生面向应用的系统代码和环境函数。
应用SDT生成的代码经过适当修改和处理后可以输入ARM开发工具ADS,进行嵌入式系统的开发,其方法和设计流程详见后。
3 系统软件的设计和开发
系统的软件设计主要分为三部分:协议软件、驱动软件和接口软件。其中协议软件部分主要用于实现IEEE 802.11bMAC层协议定义的各种服务(如授权、关联等)和算法(如DCF、PCF、时钟同步算法等)。这一部分软件采用图2所示的设计流程,完全使用形式描述语言SDL进行设计实现,并使用SDT的代码生成器将SDL的系统描述换成面向应用的C/C++代码。驱动软件部分主要用于实现对硬件设备的驱动功能。如PCMCIA接口驱动,这一部分软件用C/C++语言进行设计实现。接口软件部分主要完成SDL转换出的系统代码与RTOS及硬件平台的接口功能。这一部分软件借用于代码生成器产生的环境函数,用C/C++语言设计实现。软件部分的层次结构如图3所示。
4 与ADS接口及软件后端开发
从SDL转化出C/C++代码后,可使用ARM的开发工具ADS进行后续的软件开发。其与SDT工具的接口及开发流程如图4所示。
由SDL描述转换出的C/C++代码,与环境函数、Runtime库以及C/C++库一起用ARM的编译器编译,产生面向ARM的可执行程序。其中,环境函数主要用描述系统运行的具体物理环境。由SDT工具根据用户所作的系统描述自动生成一个结构框架,然后用户根据的采用的具体硬件平台环境编辑这个文件,以描述真实的系统工作环境。Runtime库主要包含SDL预定义的数据类型、操作符的实现、调度函数、运行错误处理等信息。SDT工具提供简单的Runtime库。C advanced/C micro代码生成器都有各自对应的Runtime库。C/C++库是ADS本身携带的函数库,主要包含ISO标准定义的C/C++库函数。
在使用ARM编译器编译后,产生ARM的目标文件(.o文件)。如果还有用ARM汇编指令编写的汇编程序,可用汇编器(armasm)汇编,产生相应的目标文件。把所有的目标文件用链接器(armlink)链接,便可得到能在ARM7TDMI处理器上执行的映像文件(.aof文件)。这时可以用ADS提供的调试工具AXD进行程序的调试。
因为SDL的系统设计在高层进行了仿真和验证,所以调试的主要工作集中在驱动、中断和环境函数的调试上。对SDL系统的调度主要是通过仿真确定对系统性能影响严重的模块并对其进行优化以及系统在实时运行状态下能否满足设计要求。如果在调试中发现问题需要修改SDL的系统设计,可重新执行如图4所示的流程,直到满足设计要求。
5 问题及分析
(1)代码生成器的选择问题。SDT提供三种代码生成器,即C basic、C advanced和C micro。其中C basic是最简单的代码产生器,一般只用于在SDT开发环境中仿真系统的行为。C advanced和C Micro是面向应用的代
《基于ARM的IEEE802.11bMAC层协议IP核设计(第2页)》