基于C8051F040的CAN总线智能节点设计2_第1页
基于C8051F040的CAN总线智能节点设计2_第2页
基于C8051F040的CAN总线智能节点设计2_第3页
基于C8051F040的CAN总线智能节点设计2_第4页
基于C8051F040的CAN总线智能节点设计2_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 C8051F040 的的 CAN 总线智能节点设计总线智能节点设计 2007 03 31 嵌入式在线 收藏 打印 X 型火控系统型火控系统 根据实际需要采用了根据实际需要采用了 CAN 总线方式来实现其内部单体总线方式来实现其内部单体 间的通信 间的通信 CAN 总线是一种用于各种设备检测及控制的现场总线 它是一总线是一种用于各种设备检测及控制的现场总线 它是一 种多主总线 在高速网络和低成本的节点系统中应用都很广泛 种多主总线 在高速网络和低成本的节点系统中应用都很广泛 CAN 总线与一般的通信总线相比 它的数据通信具有突出的可靠性 实时性和灵活性 其特点如下 可以多主方式工作 CAN 节点只需对报文的标识符滤波即可实现点对点 一点对多点及全 局广播方式发送和接收数据 CAN 总线通信格式采用短帧格式 采用非破坏性总线仲裁技术 直接通信距离最大可达 10km 速率 5kb s 以下 最高通信速率可达 1 Mb s 此时距离最长为 40m 节点数可达 110 个 通信介质可以是双绞线 同轴电缆或光导纤维 CAN 总线采用 CRC 检验并可提供相应的错误处理功能 保证了数据 通信的可靠性 C8051F040 及其内部及其内部 CAN 控制器控制器 C8051F040 内部集成有 CAN 控制器 主要由 CAN 内核 消息 RAM 消息处理单元和控制寄存器组成 图 为 C8051F040 集成 CAN 的结构图 图 1 中 CAN 内核由 CAN 控制器和负责消息收发的内部寄存器组成 消息 RAM 用于存储消息目标和每个目标的仲裁掩码 并且每一个消息目标 都有它自己的识别掩码 所有的数据传输和接收滤波都是由 CAN 控制器完 成的 消息处理单元用于根据寄存器中的信息来控制 CAN 内核中移位寄存 器和消息 之间的数据传递 同时它还可用来管理中断的产生 图 1 C8051F040 集成 CAN 的结构图 CAN 内部寄存器中存储了所有 CAN 的控制和配置信息 其中包括控制 寄存器 状态寄存器 设置波特率的位定时寄存器 测试寄存器 错误计 数器和消息接口寄存器 通常 CAN 内核不能直接访问消息 RAM 而必须通 过接口寄存器 IF1 或 IF2 来访问 另外 CIP 51 的 SFR 并不能直接访问 CAN 内部寄存器的所有单元 其配置 CAN 消息目标 读取 CAN 状态以及获取接收数据 传递发送数据 都由 SFR 中的 个特殊寄存器来完成 其中 CAN0 CAN0TST 和 CA N0STA 个寄存器可直接获取或修改 CAN 控制器中对应的寄存器 而 CA N0DATH CAN0DATL CAN0ADR 个寄存器主要用来访问修改其它不 能直接访问 CAN 内部寄存器 其中 CAN0ADR 用来指出要访问寄存器的地 址 CAN0DATH CAN0DATL 这时就相当于要访问的 位寄存器的高 低字节的映射寄存器 而对它们的读写则相当于对所指向寄存器的读写 图 给出了 CIP 51 如何访问 CAN 中控制寄存器和每个消息的路径图 图 CIP 51 访问 CAN 中控制寄存器和每个消息的路径图 基于基于 C8051F040 的的 CAN 智能节点设计智能节点设计 由于 CAN 总线采用多主方式工作 所以 CAN 总线系统具有与 DCS 分 布式控制系统 不一样的拓扑结构 图 3 所示是某型火控系统的总线系统结 构 该系统结构最大的特点就是所有的节点都能以平等的地位挂接在总线上 CAN 总线智能节点之间能够相互进行通信 以完成数据交换 一个智能 节点通常至少包括三个部分 即负责节点任务控制的单片机 总线控制器及 总线收发器 由于 C8051F040 单片机为内部集成有 CAN 控制器 因此智 能节点主要由 C8051F040 和 CAN 收发器 TJA1050 组成 图 3 某型火控系统的 CAN 总线结构 图 4 是一个以 C8051F040 为核心的智能节点硬件框图 由于 C8051F0 40 集成的是 CAN 控制器 要使 CAN 总线得以运行 还需外加 CAN 总线收 发器 常用的 CAN 总线收发器有 Philips 公司的 PCA82C250 收发器 高速 TJA1050 收发器等 本系统采用了 TJA1050 高速 CAN 收发器来替代传统的 PCA82C250 收 发器 TJA1050 具有电磁辐射低 防短路 不上电时对总线无影响等特点 它的引脚 可以选择高速或静音两种模式 并可由 C8051F040 的 P4 0 控制 CAN 总线上两端节点 8 一般加上两个 60W 的电阻和 47nf 的电容对 信号吸收 以避免信号反射 为了进一步提高系统的抗干扰能力 在 CAN 控制器引脚 CANTX CANRX 和收发器 TJA1050 之间并不是直接相连 而 是通过由高速光耦 6N137 构成的隔离电路后再与 TJA1050 相连 这样就可 以很好的实现总线上各节点的电气隔离 这部分增加了节点的复杂性 但它 却提高了节点的稳定性和安全性 图 4 智能节点硬件框图 CAN 智能节点主要完成的任务是 将相关数据数传送给其它节点 同 时从总线上接收本节点所需要的数据 因此智能节点的 CAN 通信主要包括 系统初始化程序 发送程序 接收程序等 在本例中 系统软件采用结构化 程序设计方案 使其具有较好的模块性和可移植性 对于不同的系统功能或 不同的应用环境 可以方便地进行编程重组 系统初始化程序系统初始化程序 初始化程序主要完成对所有的报文对象进行初始化 一般将所有值置零 对 CAN 控制寄存器 CAN0CN 位定时寄存器 BITREG 进行设置 还要 对发送报文对象和接收报文对象分别进行初始化 其中 位定时寄存器的设 置较为复杂 这里我们使用外部晶振为 8MHz CAN 通信速率为 500k s 得到 BITREG 的初始值为 0 x2301 主程序中规定对象初始化 发送和接收 初始化 最后才启动 CAN 处理机制 对 BITREG 和 CAN0CN 初始化 下面 为 CAN 启动程序 void start CAN void SFPRAGE CAN0 PAGE 指向 CAN0 页面 CAN0CN 0 x41 将 CCE 和 Init 置 1 开始初始化 CAN0ADR BITREG 指向位定时寄存器 进行配置 CAN0DAT 0 x2301 位率为 500k s CAN0CN 0 x06 允许全局中断 IE 和 SIE 置位 CAN0CN 清楚 CCE 和 INIT 位 启动 CAN 状态机制 发送程序发送程序 CAN 报文发送是由 CAN 控制器自动完成的 用户只需根据接收到的远 程帧的识别符 将对应的数据转移到发送缓冲寄存器 然后将此报文对象的 编码写入命令请求寄存器启动发送即可 而发送由硬件来完成 这里 我们 使用定时更新发送报文对象中的数据 数据的发送有控制器自动完成 当其 收到一个远程帧时 就将具有相同识别符的数据帧发送出去 其发送程序结 构如下 void transmit message char MsgNum uchar i SFRPAGE CAN0 PAGE 指向 CAN0 页面 CAN0ADR IF1CMDMSK 向 IF1 命令 屏蔽寄存器写入命令 CAN0DAT 0 x0083 位率为 500k s CAN0ADR IF1ARB2 指向 IF1 仲裁 寄存器 2 CAN0DATH 0 x80 CAN0ADR IF1DATA1 指向数据 场的第一个字节 for i 0 i 4 i CAN0DATH can temp i 将 4 字节数据 写入发送缓冲器 CAN0ADR IF1CMDRQST CAN0DATL MsgNum 将报文对象编报文对象编 号写入 则数据发送到号写入 则数据发送到 对应的报文对象对应的报文对象 接收程序接收程序 CAN 报文的接收与发送一样 是由报文的接收与发送一样 是由 CAN 控制器自动完成的 接收程序控制器自动完成的 接收程序 只需从接收缓存器中读取接收的数据 再进行相应的处理即可 只需从接收缓存器中读取接收的数据 再进行相应的处理即可 其基本方法 与发送程序一致 只是接收程序采用中断方式 在此应用中 接收程序主要 接收上位机对智能节点的参数设置数据 只有当修改时才需要接收数据 所 以采用中断方式处理比较合适 接收程序结构如下 void receive data void SFRPAGE CAN0 PAGE 指向 CAN0 页面 CAN0ADR IF2CMDMSK 向 IF2 命令 屏蔽寄存器写命令 CAN0DATH 0 x00 位率为 500k s CAN0DATL 0 x3F CAN0ADR IF2CMDRQST 将报文对象 编号写入命令请求寄存 器 对应接收 CAN0DATL MsgNum 得到数据就从报 文 RAM 中移到数据 缓冲器中 CAN0ADR IF2DATA1 指向数据场的 第一个字节 for i 0 i 4 i CAN RX i CAN0DAT 读取 4 个字节数据 结语结语 在 CAN 总线的开发试验过程中 经过实际测试 我们设计的基于 C80 51F040 的 CAN 总线智能节点具有集成度高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论