新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于LPC2131嵌入式系统μCOS-II实现CAN通讯

基于LPC2131嵌入式系统μCOS-II实现CAN通讯

作者:时间:2013-09-12来源:网络收藏

·数据接受模块

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

void ReceiveData (void)

{

uint8 i, err,*Rt;

OS_ENTER_CRITICAL();

Rt=(uint8 *)OSMboxPend(OSCANMbox,0,err);

//通过邮箱接受数据

for (i=0;i13;i++)

ReceiveData[i]=*Rt++; //将接受到的数据存在全局变量中供后续处理

OS_EXIT_CRITICAL();

}

void Can_Exception(void)

{

u

int8 temp[13],i;

OS_ENTER_CRITICAL();

for (i=0;i13;i++)

temp[i]=ReadCan(16+i); //读取CAN数据

OSMboxPost(OSCANMbox,(void *)temp); //将

CAN数据以邮箱发送到接受函数

EXTINT=0x08; //清楚ENT3

VICVectAddr=0; //中断返回

OS_EXIT_CRITICAL();

}

结语

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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭