基于单片机的CAN_NODE的设计与实现

时间:2022-09-03 11:00:54

基于单片机的CAN_NODE的设计与实现

摘要:CAN_NODE实验板是一款功能强大的8位AVR单片机实验板,采用的是基于AVR RISC结构的8位低功耗CMOS微处理器ATmega128。由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达1 MIPS/MHz。板上提供了CAN总线通讯所需要的硬件,按键,LED,USB接口等常用的功能部件,为系统扩展而预留了扩展功能接口,提供了SPI接口和JTAG接口以方便下载和调试。

关键词:CAN_NODE实验板;AVR集成开发环境;mage128;通讯

中图分类号:TP338 文献标识码:B文章编号:1009-3044(2011)13-3148-03

Design and Implementation of CAN_NODE Based on Microprocessor

LIU Bin, WANG Jun-qing, MA Jing-bo

(Ocean University of China, Qingdao 266100, China)

Abstract: This paper describes the design ideas and software design processes of an embedded Web server technology, as well as the structure of the application file system, which translates the web page file into a compiled data structure. Finally, based on the hardware platform of a 32-bit ARM microcontroller LPC2210,and in the support of the opened source code ZLG/IP packages, this paper gives an example of the realization of an embedded Web server. CAN_NODE experiment board is a powerful 8-bit AVR MCU Board, which is based on the AVR RISC structure of low-power CMOS 8-bit microcontroller ATmega128. Because of its advanced instruction set and single-cycle instruction execution time, ATmega128 data throughput of up to 1 MIPS/MHz. CAN bus communication board provides the necessary hardware, buttons, LED, USB interface features commonly used. There are the necessary hardware of CAN bus communication, buttons, LED, USB interface features commonly used,which are provided on the board. It is reserved for system expansion and extension interfaces. And also it provides SPI interface and JTAG interface to facilitate the download and debug.

Key words: CAN_NODE Experiment Board; AVR integrated development environment; mage128; communication

1 概述

CAN 的高性能和可靠性已被认同,且已经在汽车计算机控制系统和嵌入式工业控制局域网中得到广泛应用,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。由于所具有的高可靠性和良好的错误检测能力,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。CAN_NODE有着广泛的应用背景,同时也为对CAN的学习和掌握提供了一个良好的平台。

2 CAN_NODE硬件结构

CAN_NODE包括电源部分电路、JTAG接口电路、蜂鸣器控制电路、按键电路及LED显示电路、CAN接口电路、USB接口电路、扩展接口电路、CAN控制器SJA1000、CAN收发器82C251等。82C251的主要作用是收发CAN总线上的信号,其中,一方面将总线信号转换为CAN控制器所需的信号;另一方面,将CAN控制器的输出信号转化为CAN总线信号。CAN_NODE实验板功能框图如图1所示,它包括为实现高性能串行网络通信所必须的所有硬件。它通过CAN协议的应用在局域网控制通信流。同时,它适应以下的条件要求:短报文的长度,能确保紧急报文的等待时间,总线访问优先权决定于报文标识符,错误处理能力强,配置灵活可允许局域网惊醒扩展等。

2.1 J1 电源的选择

为了使电源供电方式选择更加灵活,CAN NODE实验板支持9V配套稳压电源和USB电源两种电源供电,可以通过跳线接口J1对供电方式进行选择,跳线接口J1说明见(表1)。

2.2 J15 J14 J9 J8 JTAG接口和扩展接口选择

出于系统功能扩展考虑,Mega 128的PF4~PF7被JTAG接口和八路A/D中的四路所复用,当用于JTAG调试时,用四个跳线来实现选择详细信息参考JTAG接口说明,跳线接口说明见(表2),(表3),(表4),(表5)。

2.3 J11蜂鸣器控制和扩展接口选择

Mega 128的PE5口被蜂鸣器控制电路和扩展接口所复用,当用与蜂鸣器控制时,通过跳线J11来进行选择ALARM,不进行蜂鸣器控制时,改变跳线选择PE5用于扩展接口。J11跳线器说明见(表6)。

2.4 J13串口与ISP下载选择

为了节省Mega 128的资源,为扩展所预留,Mega 128的PE0口通过跳线器J13被串口和ISP下载线所复用,J13跳线器说明见(表7)。

2.5 J12ISP下载接口和数码管段选择

出于软件处理方便的角度考虑,Mega 128的PB1口被ISP下载和八段数码管的一段复用,并通过J12跳线器加以选择,J12跳线器说明见(表8)。

2.6 CN11JTAG接口

CN11是10PIN的 JTAG接口,当需要JTAG仿真调试时,将JTAG仿真器与CN11连接(注意连接方向),并设置相应的四个跳线接口J15, J14 ,J9 ,J8(详细内容请参考跳线图),则完成JTAG接口的硬件连接。当不进行JTAG仿真时,改变跳线,使PF4~PF7可以作为GPIO使用。CN11的引脚定义如(表9)所示。

2.7 J5CAN总线接口

J5是CAN总线通讯接口,当把CAN NODE实验板做为一个节点连接到总线上时,CAN总线(双绞线)与实验板上接口对应相接【(CAN高)接(CAN_H),(CAN低)接(CAN_L)】。其中J5引脚定义如(表10)所示。

2.8 J16ISP下载线接口

由于Mega 128具有ISP功能,J16是6 PIN的ISP下载线接口,把下载线与J16相接(注意连接方向),相应跳线接口J12跳线选择SCK(详细内容请参考跳线图),即可完成ISP下载的硬件连接。下载完成之后,跳线接口J12用跳线选择PB_1来控制八段数码管其中一段,其中J16引脚定义如(表11)所示。

2.9 器件的地址分配

CAN_NODE实验板器件的地址分配见(表12)。

2.10 CAN芯片的初始化

在建立CAN总线的通信之前要有初始化过程。CAN芯片SJA1000在上电后或者进行软件功能重置时要初始化工作寄存器。当系统上电后,处理器要首先运行自己的初始化过程,然后再进入SJA1000的连接建立过程(SJA1000的17引脚获得1个Reset低电平脉冲,进入Reset模式)。在初始化SJA1000的寄存器以前,主处理器应该检测Reset的mode/request标志,如果SJA1000已经是Reset模式,由于所有的寄存器只能在Reset模式下进行写操作,因此所有的寄存器都将获得相应的配置信息。在完成所有的初始化工作后,SJA1000就进入到工作模式,也就使CAN控制器的中断功能处于有效状态。

3 AVR集成开发环境

点击 WINDOWS 操作系统的【开始】->【程序】->【ImageCraft Development Tools】->【ICCV7 for AVR】启动 ImageCraft IDE for ICCAVR(PROFESSIONAL),或双击“ICCV7 for AVR.exe”快捷方式启动。

集成开发环境如图2所示。

4 点对点的通信

本设计实现CAN节点与CAN节点之间的简单通讯,将2块图3所示的CAN实验装置板作为CAN通信节点,通过各节点的CAN_H和CAN_L端口并联到双绞线上,然后在双绞线两端各接上一个120Ω左右的电阻R作为CAN总线的终端匹配电阻,使得两线构成一个闭环电路,搭建起多主式CAN总线系统结构。

图3 CAN组网图

5 与上位机通讯

系统以mage128为核心,控制USB与CAN之间的数据交换,是双向的数据传输,USB与CAN之间数据交换结构如图4所示。

上位PC机侧通信软件属性设置时,CommPort:设置并返回通信端口号,如mport=1表示指定使用COM1作为通信端口。Settings:设置并返回初始化参数,即波特率、奇偶校验、数据位和停止位。对于奇偶校验位,N表示不校验,E表示偶校验,O表示奇校验,M表示符号校验,S表示空格校验。如Mscomm1.Settings=“2400,N,8,1”表示所使用的通信端口以2400bps的速度传输,不作同位校验,8个数据位,1个停止位。PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口。Input:返回并删除接收缓冲区中的数据,在设计时无效,运行时为只读。InputLen:确定被Input属性一次从接收缓冲区读取的字符数。InputMode:设置并返回被Input属性读取的数据类型,其中ComInputModeText以文本的形式返回,而ComInputModeBinary以二进制形式返回。Output:向输出缓冲区中写入数据,在设计时无效,运行时为只读。

6 结束语

本设计对CAN模块软硬件实现方法进行了详细的描述。目前,在实际应用中,CAN的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中。本文作者的创新点在于提高了与上位机通讯的速率,高优先权报文低延迟时间,报文配置灵活性好,加强了错误处理能力,进一步提高了它的可靠性和错误检测能力,同时,也改善了由于电磁干扰,在CAN消极报错帧分节符中发生的格式错。

参考文献:

[1] 周立功.iCAN现场总线原理与应用[M].北京:北京航空航天大学,2007.

[2] 周立功.ARM与嵌入式系统基础编程[M].广州周立功单片机发展有限公司,2004.

[3] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,2002:240-257.

[4] 徐英华,李新春,等.基于ARM的CAN与以太网网关互联的设计[J].微计算机信息,2010,7-2:133-135.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:BlueJ在Java面向对象教学中的应用 下一篇:基于网络应用的数据库加密系统问题刍议