首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM的橡塑机械双层网络设计 (2)

基于ARM的橡塑机械双层网络设计 (2)

3.1 系统软件设计  本设计采用外部中断EINT3连接MCP2510的总中断,配置控制器始终处于唤醒模式,发送器处于正常模式,并使能接收、发送、错误中断,以中断方式处理CAN总线数据收发。具体流程如图3所示。


  对中断的处理主要包括以下三种模式:
  (1)发送处理。在满足下述两种条件时会启动发送处理:其一发送中断响应中,如果当前有发送任务,通过发送缓冲区记录标志确定空的发生缓冲区并向其中填发送帧,然后启动发送;其二在接收中断响应中,在接收处理完后如果有发送任务且有发送缓冲区空闲,同样会处理发送任务。采用两种发送处理方式可充分利用MCP2510的多个发送、接收缓冲区,以提高通信效率。
  (2)接收处理。首先需根据ICOD的值来确定当前准备好数据的接收缓冲区。接收帧处理过程中首先读取帧的ID值,确定当前帧的数据是哪个节点发送来的,并据此把帧中数据字段的数据存放在相应的位置。
  (3)错误处理。由于引起错误处理的原因很多,在产生错误中断之后,需访问错误标志寄存器确定具体错误类型,并据此做相应的处理。
  最后在所有的处理中都需更新发送缓冲区使用记录,以便于发送和接收中断响应中据此判断发送缓冲区的使用情况,从而确定当前是否可以做发送处理。


  3.2 应用软件设计
  3.2.1 CAN服务器端设计
  CAN服务器端需要完成两大部分的工作。一是和底层控制器交互,二是处理并存储好相应的数据,以提供给人机界面和WEB服务器使用。
  CAN总线默认的调度方式为CAMA/CD协议,该协议原理比较简单,技术上易实现,网络中各节点处于平等地位,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降,即会永远优先发送优先级高的节点而阻塞优先级低的节点,因此考虑到对该协议进行改进。为了自定义协议,因此我们的CAN数据采用了扩展帧。
  针对橡塑机械需要的通信数据类型设计了如下的通信协议。主要具备以下几点特点:
  (1)下位机根据仲裁段优先级来确定该段数据的优先级;
  (2)优先级的分配由服务器端进行,读取初始化配置文件(包括节点编号和优先级码两个部分)+页面设定;
  (3)优先级根据传输数据的截止时间决定(DM)。要求的时间越短,其优先级越高。
  (4)通信数据的命令格式如图4所示,其中所有字节均为ASCII字符。
继承事业,薪火相传
返回列表