EDN China > 设计实例 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

来源:电子产品世界 杨龙山?? 2007年04月27日 ?? 收藏0

????? ·数据接受模块

?????? 根据电路图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)

  {

  u

int8 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通讯软件开发,该设计现已在工厂车间中的分布式监控系统中得到了应用,运行可靠、稳定。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

LPC2131? CAN总线? ARM? μCOS-II?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈