点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
▍概述
▍CAN总线标准
物理层
数据链路层
帧起始
仲裁段
控制段
数据段
CRC段
ACK段
远程帧
过载帧
帧间隔
构建CAN节点
▍CAN协议应用层概述
CAN收发器
#// 寄存器基址 REG_BASE_ADDR 0xA000
unsigned char *SJA_CS_Point = (unsigned char *) REG_BASE_ADDR ;
// 写SJA1000寄存器
void WriteSJAReg(unsigned char RegAddr, unsigned char Value) {
*(SJA_CS_Point + RegAddr) = Value;
return;
}
// 读SJA1000寄存器
unsigned char ReadSJAReg(unsigned char RegAddr) {
return (*(SJA_CS_Point + RegAddr));
}
……
for (i=0;i<len;i++)
{
WriteSJAReg(RegAdr+i,ValueBuf[i]);
}
……
……
for (i=0;i<len;i++) {
ReadSJAReg(RegAdr+i,ValueBuf[i]);
}
……
-
每个程序包含用到的头文件 -
每个程序包含一个公用头文件,公用头文件包含所有其他头文件
#// 防止头文件被重复包含 __CONFIG_H__
# __CONFIG_H__
#
#// 包含SJA1000寄存器定义头文件
// 定义取字节运算
# LOW_BYTE(x) (unsigned char)(x)
# HIGH_BYTE(x) (unsigned char)((unsigned int)(x) >> 8)
// 定义振荡器时钟和处理器时钟频率(用户可以根据实际情况作出调整)
# OSCCLK 11059200UL
// 宏定义MCU的时钟频率
# CPUCLK (OSCCLK / 12)
#// __CONFIG_H__
波特率设置
CAN帧发送:
1.检测状态寄存器,等待发送缓冲区可用;
char SetSJASendCmd(unsigned char cmd) {
unsigned char ret;
switch (cmd) {
default:
case 0:
ret = SetBitMask(REG_CAN_CMR, TR_BIT); //正常发送
break;
case 1:
ret = SetBitMask(REG_CAN_CMR, TR_BIT|AT_BIT); //单次发送
break;
case 2:
ret = SetBitMask(REG_CAN_CMR, TR_BIT|SRR_BIT);//自收自发
break;
case 0xff:
ret = SetBitMask(REG_CAN_CMR, AT_BIT);//终止发送
break;
}
return ret;
}
unsigned char SJA_CAN_Filter[8] = { // 定义验收滤波器的参数,接收所有帧
0x00, 0x00, 0x00, 0x00,
// ACR0~ACR3
0xff, 0xff, 0xff, 0xff
// AMR0~AMR3
};
unsigned char STD_SEND_BUFFER[11] = { // CAN 发送报文缓冲区
0x08, // 帧信息,标准数据帧,数据长度 = 8
0xEA, 0x60, // 帧ID = 0x753
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa // 帧数据
};
void main(void) // 主函数,程序入口
{
timerInit();// 初始化
D1 = 0;
SJA1000_RST = 1; // 硬件复位SJA1000
timerDelay(50); // 延时500ms
SJA1000_RST = 0;
SJA1000_Init(0x00, 0x14, SJA_CAN_Filter); // 初始化SJA1000,设置波特率为1Mbps
// 无限循环,main()函数不允许返回
for(;;) {
SJASendData(STD_SEND_BUFFER, 0x0);
timerDelay(100); // 延时1000ms
}
}
码上报名
WISS 2023 第四届世界物联网安全及数据安全治理峰会火热报名中,3月9-10日,上海
码上报名
AutoSec 7周年年会暨中国汽车网络安全及数据安全合规峰会,5月10-11日,上海
更多文章
华为蔡建永:智能网联汽车的数字安全和功能安全挑战与思考
汽车数据合规要点
车载以太网技术发展与测试方法
车载以太网防火墙设计
SOA:整车架构下一代的升级方向
会员权益: (点击可进入)谈思实验室VIP会员
END
微信入群
谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。
每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全、功能安全、自动驾驶、TARA、渗透测试、SOTIF、WP.29、以太网、物联网安全等,现专题社群仍然开放,入满即止。
扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。
谈思实验室,为汽车科技赋能,推动产业创新发展!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论