基于ADuC7026的CAN控制器数据采集设计方案
0赞由于在工控现场中,有着各种各样的干扰源以及不可预见的突发事件,因此要求整个系统都必须具有很高的抗干扰能力和纠错能力,同时还需要对从现场采集到的各种模拟与数字信号进行及时的传输,并且对上位机发出的命令与数据做到实时的响应。这就要求被选择的总线标准精确可靠、抗干扰性强、实时性高。而CAN控制器局域网是德Bosch公司为现代汽车电子应用率先推出的一种多主机局域网,具有设计灵活、传输距离远、实时性好、容错性高、开发简易和成本低廉等特点,在汽车制造、工业控制、医疗器械、建筑和环境控制等领域中已得到广泛应用,成为自动化领域最具有应用前景的现场总线之一。正因为无可比拟的优点,故而本课题选用CAN总线进行系统设计。
同时,在实际应用中我们发现, 许多现场采集的数据, 需要进行实时的处理。在某些处理数据大、实时性要求高的场合, 传统的基于低端8位处理器的节点, 很难满足要求。故本文提出了基于ARM嵌入式处理器ADuC7026的CAN控制器数据采集设计方案。嵌入式ARM微处理器具有低功耗、低成本、高性能等特点,以其独特的优势,被广泛应用于工业控制、数控机床、智能工具、工业机器人、服务机器人、车载电子设备以及军事装备等各个行业。本课题使用的ARM7微处理器为低功耗地32为RISC处理器,实时性好,处理数据能力强,能很好地满足现场数据采集的性能要求,大幅度提高。
系统要实现对工业现场参数进行采集,并利用CAN总线实现总线上各节点之间的数据通信以及总线节点与中心节点之间的数据通信。由于CAN总线采用多主方式工作,实际中最多可连接110个节点,本设计建立一个简单的网络,将1个独立总线节点以及1个中心节点的CAN-H、CAN-L分别连接到总线上,这样就构成一个数据采集和利用总线进行通信的网络。
根据系统设计任务,系统主要硬件分别选取如下:微控制器选择ADuC7026,CAN控制器选择SJA1000、CAN收发器选择82C250,光耦隔离部分选用6N137。本系统的硬件,是在满足系统任务需要,保证系统可靠运行的前提下,充分考虑器件通用性和性能价格比之后作出选择的。
系统节点结构设计图如图

主程序设计是整个程序的一条主线,上电复位后首先进入主程序,它负责整个数据采集系统的管理。主程序的任务是识别命令,解释命令并获得完成该命令的相应模块的入口,引导整个系统进入正常运行,并协调各部分软硬件有条不紊地工作。主程序包括微处理器的初始化、SJA1000初始化子程序及收发子程序调用,是“自顶向下”结构化设计的一个层次。主程序把各个分离部分连接起来,构成一个无限循环的圈,采集系统的所有功能在这一循环中周而复始地或有选择地执行,除非掉电或按复位(RESET)键,否则采集器运行不会跳出这一循环圈。
对于一般的32位ARM应用系统,在运行主程序前必须初始化运行环境,即为ARM芯片编写启动代码。该启动代码包括异常向量表、堆栈初始化、存储系统初始化和目标板初始化等。主程序只需通过调用驱动程序提供的接口来实现数据的接收和发送。
主程序流程图如图所示

