6132|2

965

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

基于安森美AMIS30663芯片的CAN通讯测试 [复制链接]

 
安森美AMIS30663 CANBUS收发器
特性:
  • 完全符合ISO 11898标准
  • 高达1Mbit/s的传输速率
  • 适合12V和24V的工业和汽车应用场景
  • 低电磁辐射,扼流圈不再是必需的
  • 低功耗模式,可通过总线唤醒
  • 欠压锁定
  • 增强的总线故障管理功能
  • 接收端滤波
  • 热关断
  • 短路保护
  • 保护总线引脚防止汽车环境中的瞬态干扰
  • TXD显性超时功能

在充电桩主控板上使用了两个AMIS30663用于和车载BMS通信


主控为STM32,先用USB CAN测试CAN口是否正常

  1. //CAN1初始化
  2. int CAN1_Configuration(void)
  3. {
  4.               unsigned char va=0;
  5.             unsigned short int tempid[2];
  6.             CAN_EXTID tempID;
  7.             CAN_InitTypeDef        CAN_InitStructure;
  8.               CAN_FilterInitTypeDef  CAN_FilterInitStructure;

  9.              CAN_DeInit(CAN1);    //将CAN的外设寄存器设为默认值

  10.              CAN_StructInit(&CAN_InitStructure);     //将CAN的CAN_InitStructure的成员设为默认值

  11.             CAN_InitStructure.CAN_TTCM = DISABLE;    //禁止时间触发通信
  12.               CAN_InitStructure.CAN_ABOM = ENABLE;     //使能自动BUS-OFF管理
  13.               CAN_InitStructure.CAN_AWUM = DISABLE;    //禁止自动唤醒
  14.               CAN_InitStructure.CAN_NART = ENABLE;       //使能非自动传输模式
  15.               CAN_InitStructure.CAN_RFLM = DISABLE;      //禁止接收FIFO锁定模式
  16.               CAN_InitStructure.CAN_TXFP = DISABLE;      //禁止传输FIFO的优先级
  17.               CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;     //工作模式:正常模式
  18.               CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;      
  19.    
  20.             CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;            
  21.             CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
  22.             CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq;
  23.             CAN_InitStructure.CAN_Prescaler = 40;
  24.      if (CAN_Init(CAN1,&CAN_InitStructure) == CANINITFAILED)    //设置CAN1 并查询是否成功
  25.              {
  26.                      va=1;               
  27.     }       

  28.              CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;     //指定滤波模式
  29.               CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;        //滤波器大小
  30.               CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;                           //滤波器标识号高位
  31.               CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;                           //滤波器标识号底位
  32.               CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;                                                 //过滤器的屏蔽号高位
  33.               CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;                   //过滤器的屏蔽号低位
  34.               CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;                                                    //指定FIFO将被分配到的过滤器
  35.               CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;                    //启用过滤器
  36.               CAN_FilterInit(&CAN_FilterInitStructure);                                                                                                  //配置可以指定的接收滤波器

  37.               CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);                                 //挂号中断,进入中断后读FIFO的报文函数释放报文清中断标志

  38.             return va;
  39. }
复制代码

在中断中接收上位机发的数据,再转发给上位机
  1. u8 fla g ;
  2. Can Rxl4sg Rxl4essage;
  3. Can Txl1sg CAN2 Send ;
  4. void CAN1 _ RX0_ IRQHandler(void)
  5. {
  6.     int i;
  7.     CAN_Receive (CAN1, CAN_ FI FO0, &RxMessage);
  8.     CAN2_Send . Stdid=RxMessage . Stdid ;
  9.     CAN2_Send . Extid=RxMessage . Extid ;
  10.     CAN2_Send . RTR=CAN_RTR_DATA;
  11.     CAN2_Send . IDE=CAN_ ID_ EXT;
  12.     CAN2_Send . DLC=8 ;
  13.     for(i=0 ; i<8 ; i++)
  14.         CAN2_Send . Data [i] =Rxl1essage . Data [i] ;
  15.     CAN_Transmit (CAN1 , &CAN2_Send ) ;
  16. }
复制代码
连接好电源,CAN和仿真器


打开CAN TEST,发送数据测试


BMS的数据通过CAN口采集处理后要通过网口发送给PLC,PLC控制DC充电模块给电池充电,所以我以测试了一下CAN口数据到网口的收发过程


TCPIP测试工具发的数据在CAN TEST上显示,CAN TEST发的数据在TCPIP测试工具上显示,完成CAN口数据到网口的收发过程


查看本帖全部内容,请登录或者注册

最新回复

此贴很给力,,,  详情 回复 发表于 2015-6-18 22:06

赞赏

2

查看全部赞赏

点赞 关注
 
 

回复
举报

4177

帖子

9

TA的资源

五彩晶圆(高级)

沙发
 
应该是2.0B了
 
 
 

回复

2万

帖子

342

TA的资源

版主

板凳
 
此贴很给力,,,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表