基本单片机的CAN实验系统设计(CAN教学案例设计)邵健2014秋季学期目录摘要......................................................... 错误!未定义书签。
前言......................................................... 错误!未定义书签。
1 总体设计方案 (3)1.1设计任务 (3)1.2总体CAN网络设计框图 (4)1.3 CAN节点结构 (4)2 系统的硬件设计 (5)2.1 电源模块设计 (6)2.2 单片机最小系统 (7)2.3 MAX232组成的单片机和PC机通信电路 (8)2.4 看门狗电路设计 (9)2.5 键盘输入电路模块 (10)2.6 显示电路模块 (11)2.7 扩展ROM功能模块 (12)2.8 CAN通信模块 (12)3 系统的软件设计 (15)3.1 CAN控制器初始化函数CANINI (15)3.2 CAN接收函数CANREC (16)3.3 CAN发送函数TDATA (16)3.4 主程序流程图 (17)3.5 总程序清单........................................... 错误!未定义书签。
4 总结....................................................... 错误!未定义书签。
4.1 结束语............................................... 错误!未定义书签。
基于单片机的CAN实验系统设计CAN(Controller Area Network)总线作为现场总线的一个分支,以其独特的设计思想、优良的性能和极高的可靠性越来越受到工业界的青睐。
CAN从最初的汽车行业发展为现在工业中必不可少的现场总线之一。
比如发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入了CAN控制装置。
控制局域网CAN为串行通信协议,能有效地支持具有很高安全等级的分布实时控制。
CAN的应用范围很广,从高速的网络到低价位多路配线都可使用CAN。
在汽车的电子行业里,使用CAN连接发动机控制单元、传感器、防滑系统等,其传输速度可达1Mbps。
同时,可以将CAN安装在卡车本体的电子控制系统里,诸如车灯组、电气窗等,用以代替接线配线装置。
单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域。
目前单片机上集成了控制及信号处理等所需要的几乎所有的模块,以其低功耗,端口可灵活配置,支持JTAG端口可在线调试等特点将广泛应用在工业控制、通信及可便携电子产品中。
本实验适合学习单片机相关知识,也适合学习CAN总线。
在系统设计中综合运用了本科期所学的各类知识,如低频电子线路、模拟电字电路、数字电子电路、单片机、计算机网络、Protel、程序的编写、电路的仿真调试、原理图的绘制和布线等专业知识。
1 总体设计方案1.1设计任务本设计主要以STC89C52单片机为核心元件,再用SJA1000作为CAN的控制器和82C250作为CAN的收发器,从而组成CAN最小系统,完成CAN报文的发送和接收。
设计中还要求输入和输出功能,在此设计中输入设备由两个开关和一个八位拨码开关组成,两个按钮开关主要是用来控制CAN报文的发送和接收,八位拨码开关主要是完成CAN节点ID的输入,输出设备由一个7段LED数码管组成其功能是显示已发送CAN报文的个数。
设计任务包括以下方面:1、基于单片机的CAN实验系统的硬件电路设计;2、基于单片机的CAN实验系统通信功能及部分实验项目的软件设计;1.2总体CAN 网络设计框图本设计中CAN 总线网络基本构成如下图 1.2所示:图 1.2 CAN 网络基本结构※传输线●CAN 总线网络中的传输线可以是普通明线、双绞线、同轴电缆和光纤,本设计中为了方便简单才用普通明线。
※终端电阻●高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。
※各部分作用说明●PC 机是用来与CPU 通信,可以完成对CPU 程序的烧写和数据的传输●CPU 是用来对CAN 控制器的初始化和CAN 通信过程的控制以及显示等功能●CAN 控制器是整个CAN 网络的核心器件,主要用来完成CAN 协议的解析、CAN 报文的形成等一细系列复杂的工作。
●CAN 收发器是将CAN 报文转成差动电平发送到CAN 总线上和从CAN 总线上接收CAN 报文传给CAN 控制器。
1.3 CAN 节点结构120Ω CAN 节点1 CAN 节点2CPU PC CAN 控制器 CAN 收发器 CAN 控制器CAN 收发器 CPU PC120Ω本设计中CAN系统节点的基本结构如图 1.3所示:图 1.3 CAN节点基本结构※总体说明●本设计主要由以下部分机构成:微控制器89S51、CAN总线通信接口部分、CAN节点ID及按键输入部分、PC机通信部分、数码显示部分、EEPROM存储器等。
●CAN总线通信接口部分采用的CAN通信控制器为SJA1000,CAN总线驱动器为82C250。
为了使电路尽量简单,电路中没有采用光耦进行电气隔离。
SJA1000的AD0~AD7连接到89S51单片机的P0中,CS连接到89S51的P2.1,P2.1为0的CPU片外存储器地址可选中SJA1000,CPU通过这些地址对SJA1000执行相应的读/写操作。
SJA1000的RD、WR。
ALE分别与89S51的对应引脚相连,INT接89S51的INT0,89S51也可通过中断方式访问SJA1000。
●CAN节点ID输入电路部分由一片74LS244、一个8×1K的排阻我一个8位拨动开关构成。
74LS244的驱动输出也与89S51的P0口相连,其2G引脚与89S51的P2.0脚相连。
CPU 通过P0口可读入用户设定的CAN节点ID值,在实验系统中另设计了两个按键K1和K2,分别接在89S51的P1.6和P1.7上。
K1键启动点到点通信,按设定ID向指定节点发送一帧报文,K2键发送一帧广播报文,每个接收该报文均应返还该报文。
●实验系统数码显示部分由一片74LS164和一个,数码管所构成,可用于显示通信次数(或其它内容)。
24C08是容量为1KB的EEPROM芯片,可用于存储系统的初始化参数或用户自定义数据。
DS1232提供系统所需的高低电平复位信号。
2 系统的硬件设计2.1 电源模块设计本设技中的电源由220V 交流电供给,经过降压、整流、滤波、稳压、滤波得到稳定的+5V 电源。
总电路如图 2.1所示:图2.1 电源模块电路※供电●整个电路由220V 、50Hz 市电供电,方便、价廉。
※降压●220V 、50Hz 交流电通过10:1的变压器达到降压的效果。
●图中电压表测量的是电压的有效值,V 15622202===最大值有效值。
●通过10:1降压后理论上应得到峰值为22V 的交流电压,实际中只得到峰值为 V 1623.10=⨯的电压,这是由于变压器自身的阻抗所导致的。
※滤波●C1为稳压器输入侧的滤波电容,其作用是将整流桥输出的直流脉动电压转换成纹波较小的直流电压。
C1滤波电容在工作中由充电和放电两部分组成。
为了取得比较好的滤波效果,要求电容的放电时间常数大于充电周期(3~5)倍。
对于桥式整流电路,电容的充电周期为交流电的半周期,放电时间常数为RLC ,因此C1滤波电容值可以采用以下方法估算 C>(3~5)T/2RL 得到C1≈3300uF 。
●C2、C3作用是减少纹波、消振、抑制高频脉冲干扰,可采用0.1~0.47uF 的陶瓷电容。
●C4为稳压器输出侧滤波电容,起到减少纹波的作用,根据经验,一般电容值选取47~470uF 。
※稳压●7805为三端固定式稳压器,输出电压为+5V●稳压器的输入电压V 有一定的范围,V 可由下式确定:Vmin ≤V ≤VmaxVmin为稳压器的最小输入电压,Vmax为稳压器最大输入电压。
7805和Vmax分别为7.2V和35V。
※过流保护和电源指示●FU1为熔断器,防止系统电流过大烧坏电路●D1为发光二极管,起指示电源作用●R1为限流电阻,保护LED不被烧坏2.2 单片机最小系统整个系统的控制核心部分由一片AT89S51单片机组成,其最小系统如图 2.2所示:图 2.2 单片机最小系统※单片机的选择●AT89S51为 ATMEL所生产的可电气烧录清洗的8051相容单芯片,其内部程序代码容量为4KBD的FLASH,市场上容易买到。
●AT89S51主要功能列举如下:■为一般控制应用的 8 位单芯片■晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)■内部程式存储器(ROM)为 4KB■内部数据存储器(RAM)为 128B■外部程序存储器可扩充至 64KB■外部数据存储器可扩充至 64KB■32 条双向输入输出线,且每条均可以单独做 I/O 的控制■5 个中断向量源■2 组独立的 16 位定时器■1 个全多工串行通信端口■8751 及 8752 单芯片具有数据保密的功能■单芯片提供位逻辑运算指令※复位电路●单片机最小系统中采用上电自动复位和手动复位相接合。
上电后由于电容的充电作用使单片机RSET引脚不会立即变成高电平,刚开始处于低电平状态完成复位工作,电容充电完成后RSET回到高电平,单片机正常工段。
或者人工手动按下复位开关也可完成复位工作。
※时钟电路●单片机的时钟由外部晶振提供,晶振可提供非常稳定的保证单片机的正常工段。
●晶振周期之所以选用11.0592Hz是因为最小晶振频率=波特率×384×2SMOD这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。
※电源电路●单片机的电源由前面的稳压电路提供,电压为+5V。
※二极管作用●在单片机短暂下电又上电时,可以让复位电容迅速放电,然后让单片机复位。
如果没有这个二极管,电容不能迅速放电,再上电时不能保证单片机正确复位。
2.3 MAX232组成的单片机和PC机通信电路MAX232组成的单片机和PC机串口通信电路如图2.3 所示图2.3 PC通信接口●如图2.3所示的串口通信电路,其中D3、D4两个二极管可以用来简单的指示此时是否有通信正在进行。
串口通信的数据传输过程如下:MAX232的11脚T1IN接单片机TXD端P3.1,TTL电平从单片机的TXD端发出,经过MAX232转换为RS-232电平后从MAX232的14脚T1OUT发出,再连接到系统板上的串口座的第2脚RXD,至此计算机端接收到数据。