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 校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用;◎节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响;◎可以点对点,一对多及广播集中方式传送和接受数据。

DSP的CAN总线通信基础设计

DSP的CAN总线通信基础设计
uartinit(); //串口初始化
timerinit(); //定时器初始化
while(1)
{
//if(RecData=='f') openPWM23(0,5000);
//if(RecData=='b') openPWM23(5000,0);
//if(RecData=='s') openPWM23(5000,5000);
char rdate[9];
int time=1;
int num=0;
char flag=0,flag1=0;
////////////////////////////////////////
int main(void)
{
CANInit(); //初始化CAN,自发自收模式
init(); //IRQA,IRQB中断及B口初始化
3.各功能模块的初始化设置
3.1CAN初始化配置编程步骤如下:
(1)设置软件复位模式,MSCAN模式的改变配置/初始化必须通过复位来实现。CANCTL0=0x0001;
(2)设置位时间。位时间=同步段+传播时间段+相位缓存段1+相位缓存段2。
同步段:用于各节点同步。
传播时间段:补偿网络物理延时。
相位缓存段1:补偿沿相位误差。
DSP芯片的CAN总线通信设计
本文介绍了基于DSP56F807的CAN通信各模块的初始化程序,并具体实现了以下功能:甲方通过串口调试助手向下位机发送数据s,再通过CAN总线将数据传给乙方增加乙方PWM占空比(发送m减小乙方PWM占空比),发送成功LED1闪烁两下,然后乙方通过CAN总线把当前PWM占空比的值返回给甲,然后甲通过串口将数据传给上位机串口调试助手。

基于DSP的CAN总线网络设计

基于DSP的CAN总线网络设计

基于DSP的CAN总线网络设计文章利用TI公司的TMS320LF2407A内嵌的CAN控制器模块,构成了CAN 总线通讯网络,给出了其硬件和软件设计的一般方法,从而为基于DSP的CAN 总线监控系统的构建提供了一种模型化设计,设计具有较强的灵活性和通用性,可用于多种工业现场控制。

标签:DSP;CAN总线网络;设计随着工业自动化的快速发展,传统的控制系统已经难于实现设备之间以及系统与外界的信息交换,成为了“信息孤岛”。

而现场总线CAN(Controller Area Network)是众多现场总线中唯一具有国际标准的控制器局域网,CAN总线采用报文短帧结构,增强了系统的实时性,另外它还具有传输距离远、传输速率高、抗电磁干扰能力强、成本低等优点。

现在已广泛应用于工业现场、控制智能大厦、小区安防、汽车行业、家用电器、医疗仪器及环境监控等众多领域。

因此CAN 总线已成为最有发展前途的现场总线之一[1]。

本文提出了一种较为通用的CAN总线网络系统的设计,利用TI公司的TMS320LF2407A的CAN控制器模块组成通讯网络,详细给出了其硬件电路和软件设计原理。

1 系统硬件设计1.1 CAN总线网络的单个节点设计美国德州仪器公司生产的TMS320LF2407A控制器内嵌CAN模块,支持最新的CAN2.0B通信协议,并利用内部邮箱实现数据的接收与发送,当总线的报文出现冲突和丢失数据时,启动非破坏性仲裁和自动重发送功能。

通过DSP2407构成CAN节点其硬件设计简单,只要在外部增加CAN总线驱动即可,PCA82C250是飞利浦公司生产的支持CAN2.0B通信协议的驱动芯片[2]。

DSP2407和PCA82C250构成的CAN接口硬件电路如下图1所示,DSP2407通过稳压芯片获得3.3V电源,PCA82C250则为5V电源,为了抑制总线回路中的回波反射,在总线终端接了阻值为120Ω的匹配电阻R4,由于CAN总线的电平与TTL电平不兼容,因此利用阻值为10kΩ的R1、阻值为3kΩ的R2、阻值为4kΩ的R3和快速回复二级管1N4007的D1构成电平转换电路。

基于DSP和FPGA的CAN总线通信系统设计与实现

基于DSP和FPGA的CAN总线通信系统设计与实现

互转换,此种系统具有较快的信息转换速度,并且具 有较强的实时性、可靠性及稳定性 。 [2]
系统中使用 IT 较高性能及定点数字信号的处理 器 芯 片 ,其 具 有 较 高 的 工 作 效 率 。 通 过 数 字 信 号 处
收稿日期:2018-04-10 稿件编号:201804087
理 器 芯 片 作 为 主 控 制 器 ,通 过 上 层 应 用 程 序 实 现 千
现代通信系统中的子设备和分系统一般通过不 同总线网络相互连接,比如 CAN 总线、1553B 总线及
1 通信系统的总体设计方案
千 兆 以 太 网 等 ,因 为 不 同 总 线 网 络 中 的 设 备 信 息 相 互 交 互 较 为 困 难 ,所 以 就 要 在 不 同 种 类 数 据 总 线 中 实现转换系统的设置[1]。对于此种问题,传统解决方 法就是通过 PC 机到 CAN 板卡中对不同总线之间通
DSP and FPGA
WANG Xiao⁃wei (Xianyang Vocational Technical College,Xianyang 712000,China)
Abstract: Aiming at the problem of data transmission in modern high speed condition,a CAN bus communication system based on DSP and FPGA is proposed to control CAN bus,so that data can be transmitted effectively. The system uses SJA2512 as the controller of CAN bus,using PCA566 as the transceiver,use control bus control to read and write and parallel signal processing,data transmission through the data processing unit to realize the bus controller,can avoid the waste of time of data transmission between DSP and FPGA. Finally,the designed CAN bus communication system is tested. The experimental results show that the system is stable and reliable in data transmission,and it can effectively meet the demand of signal transmission and processing in high-speed condition. Key words: DSP;FPGA;CAN bus;communication system

基于DSP的电动汽车CAN总线系统通讯技术设计

基于DSP的电动汽车CAN总线系统通讯技术设计

基于DSP的电动汽车CAN总线系统通讯技术设计德国Bosch 公司为了解决现代车辆中众多的控制和数据交换问题,开发出一种CAN(Controller AreaNetwork) 现场总线通讯结构. CAN 总线硬件连接简单, 有良好的可靠性、实时性和性能价格比. CAN 总线能够满足现代自动化通讯的需要,已成为工业数据总线通讯领域中最为活要跃的一支.其主要特点是: ①CAN 总线为多主站总线,各节点均可在任意时刻主动向网络上的其它节点发送信息,不分主从,通信灵活; ②CAN 总线采用独特的非破坏性总线仲裁技术,优先级高的节点优先传送数据,能满足实时性要求; ③CAN 总线具有点对点,一点对多点及全局广播传送数据的功能; ④CAN 总线上每帧有效字节数最多为8 个,并有CRC 及其它校验措施,数据出错率极低,万一某一节点出现严重错误,可自动脱离总线,总线上的其它操作不受影响; ⑤CAN 总线只有两根导线, 系统扩充时,可直接将新节点挂在总线上即可,因此走线少,系统扩充容易,改型灵活; ⑥CAN 总线传输速度快,在传输距离小于40m 时,最大传输速率可达1Mb/s. 正是由于CAN 总线具有这些其它通信方式无法比拟的优点,使之成为电动汽车控制系统的理想总线.1 电动汽车对通讯网络的需求电动汽车由于储能设备容量有限,在运行过程中对能源的管理十分严格. 效率是衡量电动汽车系统性能的重要指标,国家863 十五电动汽车重大专项要求电动机系统额定效率为85% ,控制器的额定效率达到95%. 电动汽车电子控制系统的动态信息必须具有实时性,各子系统需要将车辆的公共数据实时共享,如电机转速、车轮转换、油门踏板位置和刹车踏板位置等. 但不同控制单元的控制周期不同,数据转换速度、各控制命令优先级也不同,因此需要一种具有优先权竞争模式的数据交换网络,并且本身具有极高的通信速率. 此外,作为一种载人交通工。

基于DSP的CAN总线接口设计

基于DSP的CAN总线接口设计

基于DSP的CAN总线接口设计1.CAN 总线简介控制器局部网络(CAN ControllerAreaNetwork)是德国Bosch 公司从20 世纪80 年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。

1991 年9 月PHILIPS 公司制定并颁布了CAN2.0 技术规范;1993 年11 月国际标准化组织(ISO)正式颁布了关于CAN 总线的ISO11898 标准,为CAN 总线的标准化、规范化应用铺平了道路。

世界各半导体厂商推出了许多CAN 总线产品。

一类是专用的CAN 控制器芯片,如Intel 公司的82526,82527;PHILIP 公司的82C200,SJA1000;NEC 公司的72005 等;另一类是嵌入CAN 接口的单片机,如Intel 公司的87C196CA/CB;PHILIP 公司的80C592,80CE598;Motorola 公司的68HC05X4,68HC05X16,TI 公司的TMS320F240x 系列DSP 等。

CAN 总线具有如下特点:1)结构简单,通信介质可是双绞线、同轴电缆或光纤;2)通信方式灵活。

可以多主从方式工作,可以点对点、点对多点及全局广播方式发送和接收数据;3)采用短帧通讯格式,保证了实时性和可靠性,可满足一般工业应用;4)非破坏总线仲裁技术,具有多优先级;5)集成了CAN 协议的物理层和数据链路层功能,可完成对通讯数据的成帧处理工作。

CAN 总线具有良好功能特性和极高的可靠性,现场抗干扰能力强。

广泛应用于工业测控领域。

2.CAN 总线接口的硬件设计图1 CAN 总线接口电路硬件设计使用了TI 公司的TMS320LF2407A 的DSP 芯片,其CAN 总线接口的硬件电路如图1 所示。

一般在CAN 控制器和物理总线间采用82C250 驱动芯片,提供对总线的差动发送和接收功能。

但是因为82C250 为5V 供电,而F2407 采用3.3V 供电,两芯片间需要电平转换电路。

基于DSPIC芯片和CAN总线的控制模块研发与设计

基于DSPIC芯片和CAN总线的控制模块研发与设计

基于DSPIC芯片和CAN总线的控制模块研发与设计一、项目背景随着现代汽车电子化的发展和智能汽车的崛起,控制模块的研发与设计变得愈发重要。

基于DSPIC芯片和CAN总线的控制模块可以实现高性能、高效能的控制和通信功能,因此成为了目前控制模块设计的主要方向之一二、技术原理1.DSPIC芯片DSPIC芯片是一种专门用于数字信号处理的微控制器,具有高性能、高灵活性和低功耗的特点。

它集成了DSP和微控制器的功能,在计算能力和处理速度方面有着明显优势。

2.CAN总线CAN(Controller Area Network)总线是一种广泛应用于汽车电子系统中的通信协议,它可以实现各个控制模块之间的高速数据传输和通信。

CAN总线具有较强的抗干扰能力,可靠性高,并且支持多主机和多设备的连接。

三、硬件设计1.DSPIC芯片选型根据具体需求,选择合适的DSPIC芯片,考虑计算能力、存储容量、功耗等因素。

2.CAN总线接口电路设计设计CAN总线接口电路,包括电气层和协议层。

电气层需要设计CAN收发器和电平转换电路,确保CAN总线与DSPIC芯片之间的电气兼容性;协议层需要实现CAN总线的数据通信和控制逻辑。

3.外围电路设计根据实际需要添加外围电路,如时钟电路、稳压电路、输入输出接口、扩展接口等。

四、软件设计1.DSPIC芯片固件开发使用C语言或汇编语言等进行DSPIC芯片的固件开发,包括初始化设置、各种算法实现和控制逻辑编写。

2.CAN总线协议栈开发设计CAN总线协议栈,实现CAN数据通信和控制逻辑,包括消息的发送和接收、错误处理、帧过滤等功能。

3.软硬件接口驱动开发根据硬件设计的接口,编写驱动程序,并提供统一的API接口,方便上层应用程序调用。

五、测试与验证1.单元测试对芯片固件、CAN协议栈和硬件接口驱动进行单元测试,验证其功能正确性。

2.集成测试将各个模块集成到一起进行测试,验证整个控制模块的性能和稳定性。

3.系统测试将控制模块连接到实际系统中进行测试,验证其在实际环境下的可靠性和适应性。

基于DSP的CAN总线系统设计与实现

基于DSP的CAN总线系统设计与实现

0 引言eCAN模块是一种片上增强型控制器,其性能较之已有的DSP内嵌CAN控制器有较大的提高,而且数据传输更加灵活方便。

数据量更大、可靠性更高、功能更加完备。

随着TMS320F2812的大量推广使用,基于DSP的CAN总线通信方式将得到广泛的应用。

1 eCAN模块的增强特性eCAN模块是TI公司的新一代32位高级CAN控制器,它完全兼容CAN2.0B协议,可以在有干扰的环境里使用上述协议与其它控制器串行通信。

该模块除具有一般DSP内嵌CAN控制器的所有功能外,与TMS320F2812系列DSP的CAN模块相比,它还主要具有如下一些增强特性:(1)增加了邮箱数量,并且所有邮箱都具有独立的接收屏蔽寄存器。

TMS320F2812有多达32个邮箱,其所占用的512字节RAM都可以配置为发送或接收邮箱,且都有一个可编程的接收屏蔽寄存器。

因而其数据传输更加方便灵活、信息量大大增加;(2)eCAN是一个32位的高级CAN控制器。

其控制寄存器的状态寄存器必须以32位方式访问,而接收屏蔽、时间标识寄存器、超时寄存器和邮箱所在的CAN范围则可以以8位、16位和32位方式访问;(3)时间标识。

eCAN模块应用一个全速运行的32位定时器(LNT)来获得接收或者发送一个信息(有效的CAN数据帧)的时间。

当一个接收信息被保存或被发送时,定时器的内容将写入到相应邮箱的时间标识寄存器(MOTS)里。

这样就可获得接收或发送一个信息的时间。

当邮箱成功发送或接收一个信息时,LNT寄存器被清除。

所以可以通过使用邮箱来实现网络的全局时间同步;(4)超时功能。

为了确定所有的信息都能在预定的时间里送出或接收,每个邮箱都有它自己的超时寄存器(MOTS)。

如果一个信息没有在超时寄存器设定的时间内完成发送或接收,其超时状态寄存器里将设置一个标志位,并据此判断是否超时。

以上这些增强特性使得TMS320F12812在进行CAN通信时,其数据传输更加方便灵活、数据量更大、功能更完备。

基于DSP的CANopen通讯协议的实现

基于DSP的CANopen通讯协议的实现

基于DSP的CANopen通讯协议的实现引言:控制器区域网络(Controller Area Network,CAN)是一种常用于实时应用的串行通信协议,它被广泛应用于汽车、工业控制和自动化领域。

CANopen是基于CAN总线的一种通信协议,它定义了在CAN总线上进行通信的规范和协议。

本文将介绍基于DSP(Digital Signal Processor,数字信号处理器)的CANopen通信协议的实现。

1.CAN总线介绍:CAN总线是一种串行通信协议,它可以实现高速和可靠的通信。

CAN总线由两根信号线组成,分别是CAN-High(CAN-H)和CAN-Low(CAN-L)。

CAN总线采用差分信号传输,可以抵抗较大的电磁干扰。

CAN总线上的设备可以通过标识符(ID)进行通信,实现数据的传输和接收。

2. CANopen协议介绍:CANopen是一种开放的通信协议,它基于CAN总线,定义了在CAN总线上进行通信的规范和协议。

CANopen协议提供了多种通信对象和通信服务,用于实现设备之间的数据传输和控制。

CANopen协议具有灵活、可扩展和可靠的特点,适用于各种实时控制应用。

3.DSP的应用:DSP是一种专用的微处理器,主要用于数字信号处理和实时控制。

DSP处理器具有高效的时钟控制和数据处理能力,适合实时应用。

在CANopen通信协议的实现中,DSP可以充当CANopen主节点或从节点,负责数据的传输和处理。

4. DSP实现CANopen通信协议的步骤:(1)硬件接口:首先,需要将DSP与CAN总线连接起来。

可以通过CAN收发器将CAN-H和CAN-L信号线连接到DSP的CAN接口。

同时,需要为DSP配置适当的时钟和中断参数,以便实现与CAN总线的同步和数据处理。

(2)CANopen协议栈:在DSP上实现CANopen通信协议需要使用CANopen协议栈。

CANopen协议栈是一种软件库,提供了实现CANopen协议所需的函数和服务。

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

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

计算机技术 化工自动化及仪表,2006,33(6):50~52 Contr ol and I nstru ments in Che m ical I ndustry 基于D SP的CAN总线控制系统的设计陈晓侠,陆 坦,王立明(大连交通大学,辽宁大连116028) 摘要: 以SHCAN2000控制系统现场智能测控组件的升级为背景,介绍以DSP为现场智能测控单元微处理器的新型智能测控组件对系统控制功能及通信功能的改善。

详细介绍T MS2812信号处理器的eC AN模块以及其与C AN总线之间的通信,并给出其通信部分硬件和软件的设计方法,采用OPC服务器为上、下位机的I/O驱动程序,满足了现场智能仪表的计算复杂性和系统通信的时实性。

关键词: DSP;eCAN;OPC服务器 中图分类号:TP3 文献标识码:B 文章编号:100023932(2006)06200502031 引 言本文是在原有的基于CAN总线技术的SHCAN2000型现场总线控制系统的基础上进行通信功能和现场智能单元控制功能的升级。

SHCAN2000上位机监控软件采用的是I ntellution公司的F I X I/O驱动程序开发工具开发的专用驱动程序,只适合于F I X监控组态软件和单一厂家开发的下位机控制芯片,如果更换下位机就必须为上位机F I X监控软件重新开发I/O驱动,如更换监控组态软件就必须为其重新开发针对监控软件和下位机芯片的I/O驱动,大大限制了系统的集成性和通用性,给开发人员增加了极大的困难。

SHCAN2000系列智能仪表硬件采用MCS251系列单片机,外围电路大,功耗多。

为此,本课题组开发了基于T MS2812DSP处理器为核心的新型智能测控组件,并采用了OPC服务器实现I/O驱动,弥补了SHCAN2000系统中的缺陷。

2 改进后系统(MMB)的体系结构MMB现场总线控制系统采用三层体系结构,即操作站—CAN总线网络—现场控制单元。

DSP交流伺服系统与CAN总线的通信设计

DSP交流伺服系统与CAN总线的通信设计

DSP交流伺服系统与CAN总线的通信设计
1 DSP 的CAN 控制器
TI 公司的低功耗、高速DSP 芯片TMS320LF2407A 具有高速运算能力
和高效控制能力。

其内嵌的CAN 控制器是一个完全的CAN 控制器,完全支持CAN2.0B 协议,它主要有以下特点:有6 个邮箱,其数据长度为0~8 B,其中接收邮箱有局域接收邮箱屏蔽寄存器,在发送出错或仲裁时丢失数据的情况下,有自动重发功能、可编程的位定时器和总线错误诊断功能。

CAN 控制器的内部结构图如图1 所示。

图1 CAN 控制器的内部结构图
工作过程如下:CAN 控制器在接收信息时,先将要接收信息标识符与相应接收邮箱的标识符进行比较,只有标识符相同的信息才能被接收;接收信息时,将数据存入邮箱,标识符存入相应的寄存器;接收完成后,中断标志位被置位。

CAN 控制器在发送信息时,先将要发送的数据写入邮箱,再设置发送请求位,发送完成后发送应答信号和中断标志位被置位,如果发送失败,发送邮箱将再
次发送。

2 系统结构
使用CAN 总线的交流伺服系统结构原理图,如图2 所示。

图2 CAN 总线的交流伺服系统结构原理图
上位机采用带有CAN 适配卡的通用计算机,上位机的主要功能是:通
过CAN 总线接口与DSP 进行通信,接收DSP 传来的数据进行处理并向节点发送控制指令。

节点负责数据采集、控制、执行。

上位机和节点之间通过CAN
网络实现数据交换。

CAN 卡采用的是研华的双端口隔离CAN 总线通信卡PCL 一841。

由于。

相关主题
  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个字节子程序 *************/
/************************************************************/
相关文档
最新文档