RSS

LPC2131嵌入式系统的CAN模块设计与实现

来源:网络 作者:不详 时间:2007-03-02 Tag: 点击:


{
IO0CLR=CS;      //片选SJA1000
WriteCan(0,0x09);  //进入复位模式
WriteCan(31,0xe8); //设置时钟分频器
WriteCan(4,0xfd);  //设置中断使能寄存器
WriteCan(16,AcceptCode1);//设置验收代码1
WriteCan(17,AcceptCode2);//设置验收代码2
WriteCan(18,AcceptCode3);//设置验收代码3
WriteCan(19,AcceptCode4);//设置验收代码4
WriteCan(20,MaskCode1); //设置验收屏蔽1
WriteCan(21,MaskCode2); //设置验收屏蔽2
WriteCan(22,MaskCode3); //设置验收屏蔽3
WriteCan(23,MaskCode4); //设置验收屏蔽4          
WriteCan(6,BTR0); //设置总线时序寄存器1
WriteCan(7,BTR1); //设置总线时序寄存器2
WriteCan(8,0xfa);  //设置输出控制积存器
WriteCan(0,0x08);  //进入操作模式
OSCANMbox=OSMboxCreate(0);/建立CAN通
   讯邮箱
if (OSCANMbox==NULL)
{
return FALSE; 
}
return TRUE;
}

?数据发送模块
    假设要发送的数据的ID存储在数组ID[4]中,数据存储在数组SendData[8]中,其发送模块程序如下所示,其中参数DLC为发送的字节数,FF为帧类型,即0为数据帧,1为远程帧。
void Tx(uint8 DLC,uint8 FF)
{
uint8 i;
OS_ENTER_CRITICAL();
If (FF==0x01)
{
WriteCan(16,DLC+0x80);     //数据帧
}
else
{
 WriteCan(16,DLC+0xd0);    //远程帧
}
WriteCan(17,ID[0]);
WriteCan(18,ID[1]);
WriteCan(19,ID[2]);
WriteCan(20,ID[3]);         //TX标识码
for (i=0;i<DLC;i++)
 WriteCan(21+i,sentdata[i]); //TX数据
WriteCan(1,0x01);//设置发送寄存器发送
OS_EXIT_CRITICAL();
}

?数据接受模块

    根据电路图1,采用中断接受的方式来接受数据,LPC2131的P0.30设置为外部中断3,整个数据接受模块由数据接受函数void ReceiveData(uint8 *Rt)、中断处理函数Can_Exception(void)构成。当SJA1000接受到CAN总线数据,通过接收中断使得LPC2131产生外部中断3而使其进入中断处理函数,进而对接受到的数据进行处理。其中数据接受函数和中断处理函数如下:

void ReceiveData (void)
{
uint8 i, err,*Rt;
OS_ENTER_CRITICAL();
Rt=(uint8 *)OSMboxPend(OSCANMbox,0,&err); 
//通过邮箱接受数据
for (i=0;i<13;i++)
ReceiveData[i]=*Rt++;    //将接受到的数据存在
          全局变量中供后续处理
OS_EXIT_CRITICAL();
}
void Can_Exception(void)
{
uint8 temp[13],i;
OS_ENTER_CRITICAL();
for (i=0;i<13;i++)
temp[i]=ReadCan(16+i); //读取CAN数据
OSMboxPost(OSCANMbox,(void *)temp); //将
     CAN数据以邮箱发送到接受函数
EXTINT=0x08;  //清楚ENT3
VICVectAddr=0;       //中断返回
OS_EXIT_CRITICAL();
}

结语

    以ARM芯片作为主控制器,CAN总线作为数据传输方式来进行通讯的嵌入式系统得到了越来越广泛的应用。同时CAN通讯的可靠性也成为影响系统性能的关键部分之一。本文以LPC2131为例,给出了一类微处理器与CAN控制器SJA1000之间的较为通用的硬件连接方法,对CAN总线进行了可靠性设计,并基于嵌入式实时操作系统μCOS-II进行了CAN通讯软件开发,该设计现已在工厂车间中的分布式监控系统中得到了应用,运行可靠、稳定。


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载