LF2407型DSP内嵌eCAN模块的检测程序设计

发布时间:2010-08-04
分享到

1 引言

    LF2407型数字信号处理器()以其处理能力强(30 MI/s),外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。笔者以某车载武器系统的前期预研为背景,讨论了该处理器内嵌模块e的检测功能及其软硬件实现过程。

2 检测系统的功能与硬件构成

2.1 eCAN控制模块


    该控制器是一个16 bit的外围器件,其特性有:(1)完全支持CAN2.0B协议;(2)具有6个邮箱,其中mailbox2与mailtiox3可按工程需求配置为接收或发送邮箱,数据长度为0—8字节;(3)当发送时出错或仲裁过程中数据丢失时,该控制器具有自动重发功能;(4)能够通过软件编程实现自检测功能。

    对的操作分为对控制,状态寄存器的访问以及对邮箱RAM的读写三个部分。这些寄存器与邮箱在内存空间的分配如图1所示,其中,7200H~7230H所在RAM区域为6个邮箱的分布地址。

寄存器与邮箱在内存空间的分配


2.2  硬件电路的连接

  &nb

sp; 对于LF2407型处理器而言,如果源代码编译后放在程序区0x0000地址开始的空间.当引脚nap/mc配置为mp方式时.则00~7FFF下空间被映射到外部存储器,此时必须在DSP外有相应的存储器方可正常加载,否则就会一直提示“Data verificationfailed at address Ox0.P1ease verify target memory andmempry map”的信息。当引脚配置为mc方式,则00~7FFF这段空间由片内Flash提供,代码程序要放在片内F1ash中,就必须用烧写操作完成。一般说来,前者适用于在线调试的开发方式:对于已经定型的软件代码,当要脱机运行时用后者较为方便。笔者选用外扩存储器的方式来完成*.out文件的加载.其中74阳8器件的功用是将CY7C1021型电路的内存区域一分二,分别用作外扩的程序空间与数据空间。

    如图2所示,PCA82C250为总线驱动器.是LF2407内嵌CAN控制器与特殊总线之间所需要的接口电路,实现对总线的差动发送与接收能力。在硬件连接时要注意将RS引脚接地使PCA82C250处于高速模式下,而且为完成检测功能,CANH引脚和CANL引脚应通过阻值为120Ω的终端匹配电阻器相连接。

硬件电路的连接

    在项目开发过程中,笔者使用带ISA接口的仿真器驱动板.尽管不需要驱动程序.但还是要安装SetupC2XX.exe文件.否则在Code Composer集成开发环境内会出现调试困难。

3 软件编程

3.1 配置存储器

    因为设计硬件时采用的是外扩存储器的方式。所以为了正确地加载输出文件.必须对CY7C1021作引导配置。具体说来就是修改initgel文件中的StartUp函数(该函数在系统默认状态下为空函数。一般说来,每次进人Cede Composer集成开发环境时,它都会被调用。对于硬件系统的初始化代码经常放置于其内)。下面给出主要的代码语句:

StartUp0
{
GEL_MapReset0;
GEL_MapAdd(0x0000,0,0x7fff,1,1);
GEL_MapAdd(0x8000,0,0xT000,1,1);
GEL_MapAdd(0x0000,1,0x10000,l,1);
GEL_MapAdd(0xffff,2,1,1,1);
GEL_MapOnO;
GEL_MemoryFill(0xffff,2,l,Ox40);
*(volatile unsigned int*)SCSRI=0x0200;
*(volatile unsigned int*)SCSR2=0x000C;
*(volatile unsigned int*)WDNTR=Ox006f;
*(volatile unsigned int*)WDKEY=0x055;
*(volatile unsigned int*)WDKEY=Ox0AA;
}
    如果需要开发相应的Flash烧写子程序.可以参考此部分的格式完成。

收藏
赞一下
0