DSP的CAN总线通信基础设计

合集下载

基于DSP的CAN总线控制系统的设计

基于DSP的CAN总线控制系统的设计
完 成 。如 图 1 示 。 所
信 功 能 和 现 场 智 能 单 元 控 制 功 能 的 升 级。
S C N 0 0上位机监控 软件 采用 的是 It l i H A 20 neu o l t n公
司的 FX IO驱动程序开发工具 开发 的专用驱 动程 I /
序, 只适 合于 FX监控 组态软件 和单 一厂 家开 发 的 I
SI P总线
C N总 线 A 扩 展
EEPC .1系列 单 片 机 , 围 电路 外
大 , 耗 多。 为 此 ,本 课 题 组 开 发 了 基 于 功
T S82 S M 2 1 D P处 理 器 为 核 心 的 新 型 智 能 测 控 组 件 , 并 采 用 了 O C 服 务 器 实 现 IO 驱 动 , 补 了 P / 弥 S C N o0系 统 中 的缺 陷 。 H A 2o 2 改进 后 系统 ( MB 的体 系结 构 M )
9/ 0 0 N 工控 软件 采用美 国 N 公 司 的 L bi 82 0 / T。 I av w e
软件 , 通过 Lbi av w建立友 好 的人机界 面 , e 完成 实 时 显示 、 历史记 录、 故障报警及打 印报 表等系统监控 和 管理功能 。L bi ave w与现场 的数据 交换 由 O C接 口 P
陈晓侠 , 陆 坦 , 立明 王
( 连 变通 大 学 , 宁 大 匪 l 6 2 ) 大 辽 10 8
摘要 : 以 S C N 0 0控制 系统现场智能测控组件的升级 为背景 , H A 20 介绍 以 D P为现 场智 能测控单元 微处理 S
器 的新 型 智 能 测 控 组件 对 系统 控 制 功 能 厦 通 信 功 能 的 改 善 。详 细介 绍 T 2 1 MS 82信 号 处理 器 的 e A C N模 块 以及 其 与 C N 总 线之 间的 通 信 。 给 出其 通 信 部 分硬 件 和 软 件 的 设 计 方 法 。 用 O C服 务 器 为 上 、 位 机 的 IO 驱 动 A 并 采 P 下 /

基于DSP的CAN总线通信程序

基于DSP的CAN总线通信程序

f e a t u r e s o f he t CAN b u s a n d i t s p o s i t i o n i n i n d u s t r i a l c o n r t o l s y s t e ms . I t a l s o i l l u s ra t t e s CAN n o d e s o t f wa r e d e s i n g wi h t i n i t i a l l f o w, s e n d i n g p r o c e d u r e l f o w a n d c o d e s . T h e d e s i g n me t h o d s i n ro t d u c e d h e r e c a n b e
法 ;
2 C A N 节点通信设计
F 2 8 1 2 DS P的增强型局域网控制器 ( e CAN) 模
块与 C AN2 . 0 B标准 兼容 , 借助 3 2个 完全 可配置 的
邮箱 和 时 间标 志特 性 。e C AN 模 块提 供 了一 种具 有
基于D S P 的C A N 总线通信程 序
陈琪 晟
( 中铁 通信 信 号勘 测设 计 ( 北京 )有限 公 司 ,北京 1 0 0 0 0 0 )
摘要 :介 绍基于T M S 5 2 0 F 2 8 1 2 D S P 的C A N总线的设计及应用方法。在分析C A N 总线的主要技术特性及
持 ; 5 )快 速 的 中断处理 和硬 件 I / O 支持 ;
( 以下称为 CAN) ,是 I S O国际标准化 的串行通信
协议。1 9 8 6年 德 国 电气 商博 世 公 司开 发 出面 向汽 车

针对DSP运动控制器的CAN总线软硬件设计

针对DSP运动控制器的CAN总线软硬件设计

t h e DS P mo t i o n c o n t r o l l e r i S g i v e n .I t c o mp l e t e s t h e d e s i g n o f t h e h a r d wa r e j n t e r f a c e c i r c u i t o f CAN b u s f o r t h e mo t i o n c o n t r o l l e r
硬 件 电路 的 设 计 提 供 了参 考 。
关 键 词 :D S P; C AN 总 线 ; VC + + 6 . 0 ; C 语 言
中 图 分 类 号 :T M5 7 1 文 献 标 识 码 :A 文 章 编 号 :1 6 7 4 — 7 7 2 0( 2 0 1 3 ) 1 7 — 0 0 1 6 — 0 3
c o mmu n i c a t i o n o n l y n e e d s t o mo d i f y s e v e r a l r e g i s t e r s w h i c h c a n r e d u c e t h e d e s i g n c y c l e o f t h e s o f t wa r e g r e a t l y .I t a l s o p r o v i d e s a r e f e F e n c e f o r t h e d e s i g n o f CAN b u s h a r d wa r e c i r c u i t o f DS P .
S o f t wa r e a nd h rd a wa re d e s i g n o f t he CAN bu s f o r t he DS P mo t i o n c o n t r o l l e r

基于DSP控制系统的CAN总线通信

基于DSP控制系统的CAN总线通信
图五 发送 数据 流程 图


4 ——
本文主 要讨论 了TS 2F 82 D P M 30 21 S 在粗纱 机 电控 系统 中的 eA 模块的应用。从eA 模块的初始化、发送和接收三部分做了 C N C N 详细介绍 ,给 出了初始化程序代码 。此系统 已分别应用到了我公 司最 先 进 的J F4 6 DW 11A w 15 ̄ JF 4 8 型粗 纱 机 的 电控 系统 中 ,运 行稳
计算机光盘软件与应用
信 息技术应用研究 C m u e D S f w r n p lc t o s o p t r C o ta ea dA p i a i n 2 1 年第 1 01 2期
( )eA 模 块初 始化 二 CN ( )数据 的接 收 四 e A模 块 必须在 使 用前 对 它初始 化 。 当模块 处 于初 始化 模式 CN 数据 的 接 收程序 由配 置 邮箱 方式和 接 收数 据两 部分 组 成 ,要 下 ,初 始化 才 能进行 。 对 以下 寄存器 进 行操 作 : 要 对 以下 寄存器 或 寄存 器进 行操 作 :主控 制 寄存器 ( AM ) c Nc 1通 过对 邮箱 使 能寄 存器 (A 肛 ) . C N 的相应 位清 0 邮箱 处 于 是 的 改变 配 置请 求位 (C )受 EL O 保护 , 当其 为0 eA 处于 非使 能状 态 设置 M . = 。 CR A LW 时 CN E0 0 要求 正 常工 作方 式 , l eA 处于 要求 配置 方式 ; A .B 位 1 为 时 C N CI DO  ̄C 2 配 置 信 息 标 识 符 寄 存 器 ( I 如 设 置 M GD ( ) . MD) S I 0 是先 发送 或 接收 数据 低位 字 节 ,O 是先 发送 或接 收 数据 高位 字节 ; =0 4f 8 O 0。 x 7O 0 错误 状 态 寄 存器 ( AE ) 的改变 配 置 使 能位 ( C ), 当其 为 1 cNs CE 3首 先置 位接 收屏 蔽 使能 (M )位 MG D3 = 。 . AE S I.0 1 时可 以进 行 初始 化 ;位 定时器 配 置寄 存器 (A B C C NT ), 写入合 适 4 局 部接 收屏 蔽 寄存器 (A )设置相 应 的接 收屏蔽 值 ,用来 . LM 定 时值 参 数配 置 CN 点 。 当CR I ,CU 须等  ̄ CE 位 为 1 存 储局 部 接收 屏蔽 位 。 A节 C=时 P必 OC 置 才 能 操作 CN T 。 AB C 5 置位 邮箱方 向寄 存器 (A ^ )的相 应位 C N D0 1 . c Ni D AM .= 为接 收 邮箱 。 6 覆盖保护控制寄存器 (A OC . C P )的相应位,当其为 l时保 N 护 相应 邮箱 里 的数据 不 被新 的数据 覆 盖 ,为 0则不 保护 。 7 使 能邮箱 。 . 8 接 收信 息未 决寄 存器 (A RⅡ)的相应 位被 置 一 ,表 明邮 . cN  ̄ ) 箱 有一 个接 收 到 的信 息 ;接 收信 息丢 失 寄存器 ( ARL C M )的相 应 N 位 置位 表示 相应 的 邮箱 里有 一条 未读 信 息被新 信 息覆 盖 了。 以邮 箱0 为例 ,其信 息接 收流 程 图所示 。

基于DSP的CAN总线通信设计

基于DSP的CAN总线通信设计
I D。
2 . 2通 过 C A N — T B 0 一 D L R设 置 发 送 缓 冲 区 的数 据 长度 。 2 - 3 通过 C A N — T B x — D L R, C A N — T B x — T B P R设 置 发 送 缓 冲 区 的优 先级 。 2 . 4通 过 G P R 3 设置 M S C A N接 收 发 送 中 断级 别 。 G P R 3 = 0 x 7 5 0 0 。 3 主 程 序 及 定 时 器 溢 出 中 断子 函数 流 程 图 ( 图1 — 2 ) 参 考 文 献 【 1 ] 陈新 , 吴 崇理 . D S P 5 6 8 0 0 E控制 器原理及其应 用【 M 1 . 北京 : 电子 工
技大学 , 2 0 1 1 [ 4 ] Y - 黎明 , 夏立等. C A N 现 场 总 线 系统 的设 计 与 应 用 f M1 . 北京: 电 子
工 业 出版社 . 2 0 0 8 .
图 2 定 时 器溢 出 中 断子 函数 流 程 图
业 出版 社 . 2 0 0 7 .
【 2 】 张培仁. C A N 总 线 设 计 及 分 布 式控 制 【 M】 . 北京 : 清 华 大 学 出版 社 ,
2 0 1 1 ( 2 1 ) .
[ 3 】 何恒. 基于C A N总 线 的 数 字 电话 系统 设 计 与 实现 f D 1 . 北京 : 电子 科
1 CA N初 始 化 配 置 编 程 步 骤 如 下 : 1 +相位 缓 存 段 。 1 . 1 设置软件复位模式 , MS C A N模 式 的改 变 配 置 / 初始化必须 1 - 3 通 过 设 置 同步 时 间 和分 频 因子 设 置 波 特 率 。 通过复位来实现。 1 . 4通 过 接 收符 I D过 滤 控 制 寄 存 器 C A N I D A C设 置 识 别 码 滤 波 1 . 2 设置位 时间。位时间 =同步段 +传播时间段 +相位缓存段 模 式 。 1 . 5 设 置接收符 I D过滤屏 蔽码寄存器 C A N I D A R 0 ~ 7 , 在进行接 收符 I D的过滤 比较时 , 接收符 I D和 比较码的那些 在屏蔽码 寄存 器 中清零的对应位必须完全相 同。因为是实验测试程序 , 所有 的屏 蔽 码位都为 0 , 接收所有 的数据帧 。

基于DSP的CAN总线通信的设计与实现

基于DSP的CAN总线通信的设计与实现

IRl E =M NT ;/ 能 C U 中 断 I 9/ 使 P ENT / 全 局 中断 I ; / 开
均采 用 P lp公司的 P A8 C 5 作为 C N收发器 。 hi i C 2 20 A 其 能提供 C N 总线 的差 动发送 能力及对 C N 控制 A A
器 的 差 动 接 收 能力 , 号 使 用 差 分 电压 传 送 ; 两 条 信 信 号 线 被 称 为 C N 总 线 ( A 和 C N L ,将 收 A C NH A )
E T R M; / / 开实时 中断
fr; { 0 (; } )
) 该 程 序 中  ̄i yC d 为 系 统 初 始化 程 序 , 同 时 nt s t0 S 设 置 系 统 时 钟 ,本 程 序 选 用 系 统 时 钟 为 10 z 2 MH ,
发器 的 R 端接地 以实现高速传输 ,在 C N 和 S A H
C NL 之间接 A 1O 电 阻 为 终 端 匹 配 电 阻 。 2Q T S 2F 82的 C N X M 302 1 A T D和 C N XD输 出 的高 电平 A R 信 号是 3 V的 ,而 P A8C 5 需要 5 供 电 ,因此 在 . 3 C 2 20 V
C N 的时 钟 与系 统 时钟 相等 。Ii cn) 初始 化 A nt a(为 E C N寄存器 的子程序。fr ) A o(为循环等待 C N 的接收 ; A 中断,~旦 T 3 0 2 1 MS 2 F 82接 收成功 T 30 F 4 7 MS 2 L 20
Ii C n / 始 化 C N 寄 存 器 nt a0; 初 E / A
/使能 PE中断 I /
图 2 CA 节 点 硬 件 结 构 图 N
Pi Ct1 EI e r. PI ER9 b tI . i.NTx5= 1 ;

基于TMS320F2812+DSP的CAN总线通信系统设计

基于TMS320F2812+DSP的CAN总线通信系统设计
1 增加了邮箱数量 并且所有邮箱都具有独立的接收屏蔽寄 存器 TMS32OF2812 有多达 32 个的邮箱 占用 512 字节 RAM 都可以配置为发送或接收邮箱 且都有一个可编程的接收屏蔽寄 存器 这样就使数据传输更加方便灵活 信息量大大增加
2 eCAN 是一个 32 位的高级 CAN 控制器 其控制寄存器 的状态寄存器必须以 32 位方式访问 接收屏蔽 时间标识 寄 存 器 超 时 寄 存 器 和 邮 箱 所 在 的 RAM 范 围 可 以 以 8 位 16 位 和 32 位方式访问
接对某个位进行置位或清零的操作,例如:
在头文件中:
/ * eCAN 发送响应寄存器 (CANTA) 的位定义 * /
strUct CANTA_BITS {
/ / 位描述
Uint16
TA0:1;
/ / 0 邮箱 0 发送响应位
Uint16
TA1:1;
/ / 1 邮箱 1 发送响应位
Uint16
TA2:1;
Abstract This paper mainly introduces the new characteristic of the CAN model in the controller of TMS32OF2812 DSP,and gives the example of the CANBus Communicated System in detail.Finally the paper gives some points and experiences to during of debugging in detail.The system is simpler in the design of the hardware and software. Keywords:DSP,TMS32OF2812,CANBus,lnterface

DSP与CAN总线通信系统设计

DSP与CAN总线通信系统设计

摘要本文给出了一种以DSP为微控制器的CAN 总线通信系统,以AT89C52作为智能节点,利用SJA1000 CAN总线控制器与82C250 CAN总线收发器,进行协议转换,使DSP与CAN总线通信,从而控制CAN总线上的智能节点AT89C52。

AT89C52负责温湿度检测与继电器输出等工作。

本次设计包含五个章节,第一章介绍了CAN总线的特点与发展;第二章为总体方案设计,通过对控制要求的分析进行方案设计;第三章为硬件设计,包括DSP 的选型,单片机最小系统设计,与元器件介绍;第四章为软件设计,包括软件设计流程图和程序;第五章是课程设计总结。

关键词:DSP;CAN总线;智能节点;SJA1000;I目录第1章绪论 (1)1.1 CAN总线概述 (1)1.2 CAN总线典型特征 (1)1.3 CAN总线的发展 (1)第2章系统的总体设计 (3)第3章系统硬件设计 (5)3.1 DSP选择 (5)3.2单片机最小系统的设计 (5)3.3 CAN总线控制器SJA1000 (6)3.4 收发器PCA82C250 (7)3.5 6N137介绍 (8)3.6 总体接线图 (9)第4章系统软件设计 (10)第5章课程设计总结 (13)参考文献 (13)附录 (13)第1章绪论1.1 CAN总线概述CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?8)。

是国际上应用最广泛的现场总线之一。

在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。

近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境1.2 CAN总线典型特征CAN总线有如下基本特点:◎废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作;◎采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突;◎采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短;◎每帧数据都有CRC 校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用;◎节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响;◎可以点对点,一对多及广播集中方式传送和接受数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3定时器初始化程序
void timerinit(void)
{
GPR10=0x0100;//定时器0最低优先级
TMRA0_CTRL=0x0000;//定时器0停止计数
TMRA0_CMP1=62500;//为定时器比较寄存器TMRA0_CMP1和//TMRA0_CMP2预置值,该值将与//TMRA0_CNTR相比较
4. 实验结果
在CodeWarrior IDE软件的开发集成环境下,完成了程序代码的编写、编译、执行、调试等功能,实现了以下功能:通过串行通信接收到上位机的“串口调试助手”发送一串数据,串口接收成功,定时器控制绿灯闪烁两下,接收到的数据通过CAN总线点对点发送到乙方,DSP收到乙方返回信息红灯闪烁两下。
GPR13=0x0030;//设置中断优先级
}
3.5中断及IO口初始化
void init(void)
{
asm (bfset #$0100,sr);//置I0位为1,非屏蔽中断
asm (bfclr #$0200,sr);//置I1位为0,开可屏蔽中断
IPR=0xfe12;//设置中断待决寄存器,决定哪个引脚产生中断
TMRA0_CMP2=0x0000;
TMRA0_LOAD=0xffff;//初始化计数器的预置值
TMRA0_CNTR=0xffff;//存放定时器模块相应通道的计数值为0xff
TMRA0_SCR =0x0000;//使能比较寄存器中断
TMRA0_CTRL=0x3e30;//对定时器控制寄存器进行相应设置
CANBTR1=0x0023;
(3)通过设置同步时间和分频因子设置波特率。CANBTR0=0x0053;
(4)通过接收符ID过滤控制寄存器CANIDAC设置识别码滤波模式。CANIDAC=0x0000;
(5)设置接收符ID过滤屏蔽码寄存器CANIDAR0~7,在进行接收符ID的过滤比较时,接收符ID和比较码的那些在屏蔽码寄存器中清零的对应位必须完全相同。因为是实验测试程序,所有的屏蔽码位都为0,接收所有的数据帧。.
uartinit(); //串口初始化
timerinit(); //定时器初始化
while(1)
{
//if(RecData=='f') openPWM23(0,5000);
//if(RecData=='b') openPWM23(5000,0);
//if(RecData=='s') openPWM23(5000,5000);
3.各功能模块的初始化设置
3.1CAN初始化配置编程步骤如下:
(1)设置软件复位模式,MSCAN模式的改变配置/初始化必须通过复位来实现。CANCTL0=0x0001;
(2)设置位时间。位时间=同步段+传播时间段+相位缓存段1+相位缓存段2。
同步段:用于各节点同步。
传播时间段:补偿网络物理延时。
相位缓存段1:补偿沿相位误差。
/**************** Transmit interruption function *************/
/************************************************************/
#pragma interrupt saveall
CAN_TB2_DLR=0x0008;
(3)通过CAN_TBx_DLR,CAN_TBx_TBPR设置发送缓冲区的优先级。
CAN_TB0_TBPR=0x0020;
CAN_TB1_TBPR=0x0010;
CAN_TB2_TBPR=0x0030;
(4)通过GPR3设置MSCAN接收发送中断级别。GPR3=0x7500;
char rdate[9];
int time=1;
int num=0;
char flag=0,flag1=0;
////////////////////////////////////////
int main(void)
{
CANInit(); //初始化CAN,自发自收模式
init(); //IRQA,IRQB中断及B口初始化
switch(time)
{
case 1: GPIO_B_DR=0x0001;break;//让LED1亮
case 2: GPIO_B_DR=0x0000;break;//让LED1灭
case 3: GPIO_B_DR=0x0001;break;
case 4: GPIO_B_DR=0x0000;time=0;TMRA0_SCR&=0xbfff;flag=0;break;// LED1闪烁两次,清标志位
}
定时器的分频因子为128分频,采用减计数,定时器大约0.2s产生一次溢出中断。
3.4SCI串口初始化设置
void uartinit(void)
{
SCI0_SCIBR=0x0104;//设置波特率为40M/(16*260)=9615.38约为9600
SCI0_SCICR=0x002c;//RFIE=1,RE=1,TE=1,允许SCI发送。TEIE=0,//禁止TDRE时产生中断
GPIO_B_PER=0xfff8;设置外设使能寄存器
GPIO_B_DDR=0xffff;设置数据方向寄存器
GPIO_B_DR =0x0000;设置数据寄存器,表明对应口的输入输出状态
}
4.主程序及各模块的流程图
图2-1主程序流程图
图2-2串口中断子函数流程图
图2-3CAN发送中断子函数流程图
图2-4CAN接收中断子函数流程图
//让LED2闪烁两次,清标志位
}
time++;
TMRA0_SCR&=0x7fff;
}
3.CAN收发器通信的硬件原理
图3-1 CAN收发器通信的硬件原理图
如图所示,总线上的CAN信号通过PCA82C250T的CAN收发器转换成DSP能够识别的TTL信号,从MSCAN_TX和MSCAN_RX端输出DSP的CAN控制器部分信号线连接到MSCAN_TX和MSCAN_RX端。PCA82C250T的TXD处是集电极开路的,所以MSCAN_TX端要加一个外部上拉电阻。按照该原理图将两个DSP板的CANbus处对应连接在一起就可以实现CAN的互发通信了。
图2-5定时器溢出中断子函数流程图
关于流程图的一些补充:
本流程图只针对甲方向乙方发数据,在调试中要用互发互收方式,相应的接收寄存器和接收缓冲区的赋值见附录中的程序。
对于流程图中指示灯闪烁两下的部分程序如下:
#pragma interrupt saveall
void timerISR(void)
{
if(flag==1)
void uartsentbyte(char *date)
{
SCI0_SCIDR=*date;
while(!(SCI0_SCISR&0x8000)) ;
}
/************************************************************/
/**************** 串口发送多个字节子程序 *************/
CANIDAR0=0x0020;
CANIDAR1=0x0000;
CANIDAR2=0x0000;
CANIDAR3=0x0000;
CANIDAR4=0x0000;
CANIDAR5=0x0000;
CANIDAR6=0x0000;
CANIDAR7=0x0000;
(6)设置接收符ID过滤比较码寄存器。该寄存器共有8个寄存器,这些16位的寄存器的高8位保留,低8位是屏蔽位。屏蔽位置1表示在进行接收符ID过滤比较时,对应的ID位必须和接收符ID过滤寄存器的相应位一致。
1.CAN总线介绍
MSCAN模块是一种CAN协议的通信控制器。CAN总线通信是一种串行通信,能够通过多种媒介进行最高可达1Mb/s的短距离通信,其最远的通信距离为10km。CAN总线的节点数取决于总线驱动电路,目前可以支持110个节点[1]。
2.本文实现效果
甲方通过串口调试助手向下位机发送数据s,再通过CAN总线将数据传给乙方增加乙方PWM占空比(发送m减小乙方PWM占空比),发送成功LED1闪烁两下,然后乙方通过CAN总线把当前PWM占空比的值返回给甲,然后甲通过串口将数据传给上位机串口调试助手。
CAN_TB0_IDR1=0x0000;
CAN_TB1_IDR0=0x0021;
CAN_TB1_IDR1=0x0020;
CAN_TB2_IDR0=0x0022;
CAN_TB2_IDR1=0x0020;
(2)通过CAN_TB0_DLR设置发送缓冲区的数据长度
CAN_TB0_DLR=0x0008;
CAN_TB1_DLR=0x0008;
/************************************************************/
void uartsentstring(char *string)
{
while(*string)
uartsentbyte(string++);
}
/************************************************************/
}
}
/************************************************************/
/**************** 串口发送1个字节子程序 *************/
/************************************************************/
相关文档
最新文档