EDN China > 设计实例 > 工业电子 > 网络与总线 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

CAN总线系统的设计与实现

来源:电子产品世界 /李胜明 初光宇 吕实诚?? 2008年05月14日 ?? 收藏0

  在现场总线概念的出现到现在的近20年时间里,已经出现了好几种现场总线技术并走向成熟。其中CAN总线已被公认为几种最有前途的现场总线之一。 CAN是一种由带有CAN控制器组成的高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。由于其具有通信速度快、可靠性高和性能价格比好等突出优点,它正越拉越广泛地应用于汽车、机械工业、纺织机械、农业用机械、机器人、数控机床、医疗器械、家用电器及传感器等领域。图1所示是典型的CAN总线节点的系统框图。

CAN总线节点的系统框图

  系统硬件设计

  SJA1000独立CAN控制器是PHILIPS公司PCA82C200CAN控制器的替代产品,它是在完全兼容PCA82C200的基础上,增加了一种新的工作模式PeliCAN,SJA1000完全支持具有很多新特性的CAN2.0B协议。SJA1000的工作模式通过其内部的时钟分频寄存器中的CAN模式为来选择。SJA1000可以支持多种为处理器的时序特性,如Intel模式或Motorla模式,SJA1000与微处理器的接口非常简单,微处理器以访问外部存储器的方式来访问SJA1000。

  TJA1050是控制器局域网CAN协议控制器和物理总线之间的接口,TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接收性能。TJA1050主要有以下特征:完全符合ISO 11898标准,最高速到达1Mb/s,输入级3.3V以及5V器件兼容,至少可以连接110个节点。本设计的微处理器为89C51负责初始化 SJA1000及通过控制SJA1000实现数据的接收和发送等通信任务,系统电路图如图2所示。

系统电路图

  CAN控制器SJA1000的数据线AD0~AD7连接到51单片机的P0口,连接到基址为0xFA00的外部存储器片选信号,当访问地址 0xFA00~0xFA31时,CPU可对SJA1000执行相应的读写操作。SJA1000的、、分别与51对应的引脚相连,接51的使51可以通过中断方式访问SJA1000。

  系统软件设计

  本设计的系统由4个节点组成,一个节点由上位机通过并口转CAN总线的数据收发器构成,另外3个节点由图2所示的单片机CAN总线收发系统构成。单片机系统每秒发送一帧(8个字节)数据。连接上位机的CAN总线收发器有相应的上位机测试软件支持,本文主要介绍单片机CAN总线收发器的程序设计。图3是下位机软件的流程图。

下位机软件的流程图

  系统设计的部分代码如下:

main()
  {
Sja_1000_Init();???? //初始化SJA1000
?Init_Cpu();????? //初始化CPU
?Init_T0();?????? //初始化定时器
?flag_init=0x00;
?while(1)
?{
? if(rcv_flag)??? //rcv_flag为接受标志位,有接收则单片机进行处理
? {
?? rcv_flag=0; BCAN_DATA_RECEIVE(rcv_data);
?BCAN_CMD_PRG(0X04);
?? disp_rec();
? }
if(flag_sec)??? //定时中断标志为,定时时间到则发送数据帧
?{? flag_sec=0;? send_data[0]=0xaa;? send_data[1]=0x08;? send_data[2]=DA1;
?send_data[3]=DA2;
  send_data[4]=DA3;
  send_data[5]=DA4;
  send_data[6]=DA5;
  send_data[7]=DA6;
  send_data[8]=DA7;
  send_data[9]=DA8; BCAN_DATA_WRITE(send_data);? BCAN_CMD_PRG(0X01);
? }
? if(err_flag)
? {
?? err_flag=0;
?? disp_err();
? Sja_1000_Init();
? }
? display(a);? //循环显示接受数据


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


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

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

CAN? 总线系统? 现场总线?

相关文章

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