首页 CAN总线设计

CAN总线设计

举报
开通vip

CAN总线设计 微机应用课程设计报告 题  目:基于单片机的16*16点阵系统设计 专    业:                        班    级:                            姓    名:                                              学    号:                             地    点:                            时    间:                      ...

CAN总线设计
微机应用课程设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 题  目:基于单片机的16*16点阵系统设计 专    业:                        班    级:                            姓    名:                                              学    号:                             地    点:                            时    间:                            指导老师:                          摘  要 现场总线是自动化领域的计算机网络,是当今自动化领域技术发展的热点之一。它以总线为纽带,将现场设备连接起来成为一个能够相互交换信息的控制网络,是一种双向串行多节点数字通信的系统。CAN总线也是现场总线的一种,它最初被应用于汽车的控制系统中,由于其卓越的性能,CAN总线的应用范围已不再局限于汽车工业中,而被广泛的用到自动控制、楼宇自动化、医疗设备等各个领域。 本文主要介绍一种基于CAN总线的控制系统,通过对这一系统的制作 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 CAN总线的简单应用,文章主要是对本控制系统的三个硬件模块进行介绍及模块中相关芯片的应用,同时本文也对软件的编写进行了说明。 关键字:现场总线; CAN总线; 单片机; 控制系统  目    录 1 绪 论    1 1.1  CAN总线的简单介绍    1 1.2  CAN总线的优势    1 1.2.1  网络各节点之间的数据通信实时性强    2 1.2.2 缩短了开发周期    2 1.2.3  已形成国际标准的现场总线    2 1.2.4  最有前途的现场总线之一    2 2 硬件电路设计    3 2.1单片机模块    3 2.1.1  STC89C52主要特性如下:    4 2.1.2  STC89C52RC单片机的工作模式    5 2.2  CAN总线控制器模块    6 2.2.1 SJA1000简介    6 2.2.2 PCA82C250简介    9 2.3 通信模块和外围接口    11 2.3.1 通信模块    11 2.3.2 外围接口    12 3 CAN总线控制系统软件设计    13 3.1 初始化程序    13 3.2 数据的接收和发送功能    15 3.2.1 发送数据    15 3.2.2 接收数据    17 4 总结    19 参考文献    20 附录一    21 1 绪 论 CAN总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通讯网络,CAN总线的应用范围遍及从高速网络到低本钱的多线路网络,在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps,同时,它可以廉价地应用于交通运载工具电气系统中,例如,灯光聚束电气窗口等等以代替所需要的硬件连接。CAN总线采用双绞线串行通讯方式,检错能力强,可在高噪声干扰环境中工作,CAN总线具有优先和仲裁功能,多个控制模块通过CAN控制器挂到CAN-BUS上,形成多主机局部网络,其可靠性和实时性远高于普通的通讯技术。 本文所论述的CAN总线控制系统是一个类似单片机最小开发系统一样的开发板,其主要分为三个部分:单片机模块,CAN总线控制模块,外围接口和通信模块。单片机模块主要是用单片机来控制整个系统,CAN总线控制模块主要是利用CAN总线控制器来实现和外围CAN总线的通信和交换信息,而外围接口和通信模块主要功能是为单片机下载程序和连接外围功能模块,主要是连接一些其他功能模块来实现相关的功能,接口分为输入接口和输出接口,这样可使一个系统构成闭环控制系统,从而可有效的实现所需要的控制功能,完成以后可应用于各种领域,实现各种控制功能,例如说路灯控制,汽车上的一些通信,电机控制等。 1.1 CAN总线的简单介绍 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。  CAN(controller area network)最初是由德国Bosch公司在80年代初期,为了解决汽车中众多的控制与测量设备之间的数据交换而开发的一种串行数据通信总线,属于现场总线的范畴,1993年成为国际标注(ISO11898:道路车辆的高速控制器局域岗数字交换系统标准)。CAN总线是一种有效支持分布式控制系统或实时控制的串行通信网络,是一个多主总线,总线上的各节点都有权随时向其他节点发送信息,总线冲突时通过总线仲裁方式决定占用总线的节点,实现在电磁干扰环境下,远距离实时数据的可靠传输。              1.2 CAN总线的优势 CAN是一种有效支持分布式控制或实时控制的串行通信网络。和目前许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 1.2.1 网络各节点之间的数据通信实时性强 首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性,而利用RS-485只能构成主从结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。 1.2.2 缩短了开发周期 CAN总线通过CAN接收器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象,而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现显现在网络中,因个别节点出现问题,使得总线出于“锁死”状态,而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些都是仅有电气协议的RS-485所无法比拟的。 1.2.3 已形成国际标准的现场总线 另外,于其他现场总线相比较,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线,这些也是目前CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。 1.2.4 最有前途的现场总线之一 CAN即控制器局域网络,属于工业现场总线的范畴,于一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ、PORSCHE、ROLLS-ROYCE等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信,同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、过程控制、机械工业、农用机械、数控机床、医疗器械及传感器等领域发展,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一,其典型的应用协议有:SAEJ1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。 2  硬件电路设计 此控制系统主要有三个主要的模块组成,第一步分为单片机模块,第二部分为CAN总线控制器模块,第三部分为通信和外围接口,其主要分为输出和输入接口,使系统构成一个闭环系统,从而实现所需要的控制功能。 系统功能结构图如图1示 图1 系统结构示意图 2.1 单片机模块 图2为系统单片机模块的电路图 图2 单片机模块电路图 本系统单片机选择的是STC89C52,是双列直插式40引脚,其芯片引脚图如图2-4。 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 图3 STC89C52的芯片引脚图 2.1.1 STC89C52主要特性如下: 1. 增强型 8051 单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。 2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。 3. 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。 4. 用户应用程序空间为8K字节 。 5. 片上集成512字节RAM。 6. 通用I/O口(32个)复位后为,P1/P2/P3/P4是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上 拉电阻。 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。 8.具有EEPROM功能。 9.具有看门狗功能。 10.共3个16位定时器/计数器,即定时器T0、T1、T2。 11.外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。 12.通用异步串行口(UART),还可用定时器软件实现多个UART。 13.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)。 14. PDIP封装。 2.1.2 STC89C52RC单片机的工作模式 掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。 空闲模式:典型功耗2mA典型功耗。 正常工作模式:典型功耗4mA~7mA典型功耗。 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。 STC89C52RC引脚功能说明:VCC(40引脚):电源电压;VSS(20引脚):接地。 P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。 P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。 P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O 端口。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流。 P3 端口(P3.0~P3.7,10~17 引脚) :P3 是一个带内部上拉电阻的 8 位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。 RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。 ALE/ROG(30引脚)地址锁存控制信号:(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(ROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。 外部程序存储器选通信号(SEN)是外部程序存储器选SEN(29引脚):当 AT89C51RC从外部程序存储器执行外部代码时,SEN在每个机器周期被激活两次,而访问外部数据存储器时,SEN将不被激活。A/VPP(31引脚)访问外部程序存储器控制信号:为使能从0000H到FFFFH的外部程序存储器读取指令,A必须接 GND。注意加密方式1时,A将内部锁定位RESET。为了执行内部程序指令,A应该接VCC。在 Flash编程期间,A也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。 2.2 CAN总线控制器模块 CAN总线控制部分的电路图如下所示: 图4 CAN总线部分电路图 2.2.1 SJA1000简介 本系统选择的CAN控制芯片是SJA1000,它是Philips半导体公司PCA82C200 CAN 控制(BasicCAN)的替代产品,而且它增加了一种新的操作模式——PeliCAN,这种模式支持具有很多新特性的CAN 2.0B协议。其引脚图及内部功能块图分别如图5和图6。管脚定义见表1。 图5 SJA1000芯片引脚图 图6 SJA1000芯片内部引脚图 表1管脚定义 符号 引脚 说明 AD7-AD0 2,1,28-23 多路地址、数据总线 ALE/AS 3 ALE输入信号(Intel模式)AS输入信号(Motorola模式) /CS 4 片选输入,低电平允许访问SJA1000 (/RD)/E 5 微控制器的/RD信号(Intel模式)或E使能信号(Motorola模式) /WR 6 微控制器的/WR信号(Intel模式)或/RD(/WR)信号(Motorola模式) CLKOUT 7 SJA1000产生的提供给微控制器的时钟输出信号,时钟信号来源与内部振荡器且通过编程驱动;时钟控制器寄存器的时钟关闭位可禁止该引脚 Vss1 8 接地 XTAL1 9 输入到振荡器放大电路;外部振荡信号由此输入 XTAL2 10 振荡放大电路输出;使用外部振荡信号左开路输出 MODE 11 模式选择输入 1=Intel模式 0=Motorola模式 VDD3 12 输出驱动的5V电压源 TX0 13 从CAN输出驱动器0输出到物理线路上 TX1 14 从CAN输出驱动器1输出到物理线路上 Vss3 15 输出驱动器接地 /INT 16 中断输出,用于中断微控制器:/INT在内部中断寄存器各位都被置位时低电平有效;/INT是开漏输出,且与系统中的其他/INT是线或的;此引脚上的低电平可以把IC从睡眠模式中激活 /RST 17 复位输入,用于复位CAN接口(地低电平有效);把/RST引脚通过电容 连到Vss,通过电阻连到VDD可自动上电复位 VDD2 18 输入比较器的5V电压源 RX0 RX1 19,20 从物理的CAN总线输入到SJA1000的输入到SJA1000的输入比较器;支配(控制)电平将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高,就读支配(控制)电平,反之读弱势电平;如果时钟分频寄存器的CBP位被置位,就旁路CAN输入比较器以减少内部延时;这种情况下只有RX0是激活的,弱势电平被认为是高而支配电平被认为是低 Vss2 21 输入比较器的接地端 VDD1 22 逻辑电路的5V电压源       SJA1000控制器中的各个控制块的功能主要有: 1.接口管理逻辑(IML) 接口管理逻辑解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器提供中断信息和状态信息。 2.发送缓冲器(TXB) 发送缓冲器是CPU和位流处理器BSP之间的接口,能够存储发送到CAN网络上的完整信息,缓冲器长13个字节,由CPU写入BSP读出。 3.接收缓冲器(RXB,RXFIFO) 解释缓冲器是验收滤波器和CPU之间的接口,用来存储从CAN总线上接收到的信息,接收缓冲器(RXB13个字节)作为接收FIFO(RXFIFO长64字节)的一个窗口可被CPU访问,CPU在此FIFO的支持下可以再处理信息的时候接收其他信息。 4.验收滤波器(ACF) 验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息,在纯粹的接收测试中所有的信息都保存在RXFIFO。 5.位流处理器(BSP) 位流处理器是一个在发送缓冲器(RXFIFO)和CAN总线之间控制数据的程序装置,它还在CAN总线上执行错误检测仲裁填充和错误处理。 6.位时序逻辑(BTL) 位时序逻辑监视串口的CAN总线和处理与总线有关的位时序,它在信息开头“弱势-支配”的总线传输同步CAN总线位流(硬同步),接收信息时再次同步下一次传送(软同步)。BTL还提供可编程的时间段来补偿传播延迟时间、相位转换和定义采样点和一位时间内的采样次数。 7.错误管理逻辑(EML) EML负责传送模块的错误管制。它接收BSP的出错报告通知BSP和IML进行错误统计。 2.2.2 PCA82C250简介 PCA82C50是CAN协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达1Mbps)应用而设计。该器件对总线提供差动发送能力,对CAN控制器提供差动接收能力,完全符合“ISO11898”标准。 2.2.2.1 PCA82C250的特性 ● 完全符合“ISO11898”标准 ● 高速率(最高达1Mbps) ● 具有抗汽车环境中的瞬间干扰,保护总线能力 ● 斜率控制,降低射频干扰(RFI) ● 差分接收器,抗宽范围的共模干扰,抗电磁干扰(EMI) ● 热保护 ● 防止电池和地之间的发送短路 ● 低电流待机模式 ● 未上电的节点对总线无影响 ● 可连接110个节点 PCA82C50的内部结构方框图如图7示。 图7 PCA82C50内部结构图 PCA82C250的封装形式及引脚配置如图8示,封装形式为DIP8,表中列出了其各引脚的功能。 表2 PAC82C250引脚功能 符号 管脚 功能描述 TXD 1 发送数据输入 GND 2 地 VCC 3 电源电压 RXD 4 接收数据输出 Vref 5 参考电压输出 CANL 6 低电平CAN电压输入/输出 CANH 7 高电平CAN电压输入/输出 Rs 8 斜率电阻输入       图8 PCA82C250芯片引脚 PCA82C250的主要功能有:首先,82C250驱动电路内部具有限流电路,可以防止输出级对电源、地或负载短路,虽然在这种故障条件出现时功耗增加,但不致使输出级破坏。其次,82C250采用双线差动驱动,有助于抑制恶劣环境下的瞬变干扰。引脚Rs可用于选择三种不同的工作方式:高速、斜率控制和待机。在高速工作方式下,发送器输出晶体管以尽可能快的速度启闭。在这种方式下,不采用任何措施限制上升和下降斜率,此时,建议使用屏蔽电缆以避免射频干扰问题。通过将引脚8接地可选择高速方式,对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降斜率,上升和下降斜率可通过由引脚8至地连接的电阻进行控制,斜率正比于引脚8上的电流输出,若脚8接高电平,则电路进入低电平待机方式,在这种方式下,发送器被关闭,而接收器转至低电流,若检测到显性位,RXD将转至低电平,位控制器应通过引脚8将发送器变为正常方式作为对此条件作出的反应,由于在待机方式下,接收器是慢速的,因此第一个报文将被丢失。 对于CAN控制器及带有CAN总线接口的器件,82C250并不是必须使用的器件,因为多数CAN控制器均具有配置灵魂的收发器件,并允许总线故障,只是驱动能力只允许20-30个节点连接在一条总线上,而82C250支持多达110个节点,并能以1Mbps的速率工作于恶劣电气环境下,利用82C250还可方便地在CAN控制器与收发之间建立光电隔离,以实现总线上各个节点之间的电气隔离。 CAN节点的硬件电路设计主要是CAN总线通信控制器与微处理器之间的接口电路,以及CAN总线收发器与物流总线之间的接口电路设计。CAN通信控制器是接口电路的核心,它主要完成CAN总线的通信协议,而CAN总线收发器的功能则是增大通信距离,保护系统不受干扰。 2.2.2.2 CAN总线设计需要注意的几点 1.物理总线两端的终端电阻RT要匹配,否则CAN总线数据通信的抗干扰性及可靠性会大大的降低; 2. PCA82C250为CAN总线通信控制器与物理总线之间的接口,它可以提供向总线的差动发送能力和CAN控制器的差动接收能力,TXD和RXD引脚分别发送经过驱动后的发送和接收信号,引脚8(RS)可以选择2种不同的工作方式:当与地相连,则系统将处于高速工作方式,在这种方式下,为避免干扰,最好使用屏蔽电缆作为总线,而在低波特率且总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于RS的阻值,而RS的取值一般在1KΩ~140KΩ较为理想,在这种方式下可以采用双绞线作为总线的物理介质。本系统采用的就是这种方式,RS采用的是47KΩ的电阻。 3. SJA1000的TX1脚悬空,RX1引脚的电平必须维持在约0.5VCC以上,否则不能形成CAN协议要求的电平逻辑。 4.把STC89C52的X2引脚接SJA1000的外部振荡输入引脚XTAL1,这样就解决时钟同步的问题。将SJA1000的/INT与STC89C52的INT0相连,这样STC89C52和SJA1000就通过中断方式来进行通信。 在实际的应用中,CAN总线大都用在如汽车和工业现场控制等的环境中,环境对电路的影响很大,所以为减少这些干扰,在设计CAN总线的节点时,通常在电路中使用高速光藕,如6N137等,使SJA1000的TX0与RX0不直接与82C520的TXD和RXD相连,而是通过高速光耦与82C520相连,这样就能很好地实现总线上各CAN节点间的电气隔离。同时还必须指出的是,光耦部分所采用的两个电源VCC和VDD必须完全隔离,否则光耦就失去了意义,即无法达到隔离的目的。 2.3 通信模块和外围接口 2.3.1 通信模块 系统通信模块主要是采用串行通信,所用的芯片是MAX232,图2-9系统通信模块的电路图 图9通信模块电路图 MAX232芯片是美信公司专门RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。它一共有16个引脚,主要分为三个部分:第一部分是电荷泵电路。有1、2、3、4、5、6脚和4个电容构成,功能是产生+12V和-12V两个电源,提供RS-232串口电平的需要;第二部分是数据转换通道,由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头,DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出;第三部分是供电,15脚(GND)、16脚(VCC)。 2.3.2 外围接口 整个系统要实现各种功能就必须要和外围的各种传感器、控制器连接,而要实现这个功能就需要系统上的这个外围接口单元,图10统的外围接口单元: 图10 外围接口单元 图2-11中的JX为系统的输出接口,连接系统外的传感器,主要是用来输出数据,而KZ是输入接口,当连接好外围的设备时,就可以构成一个闭环系统,从而来实现所希望控制的东西。就拿路灯控制来说,当光照很弱时,通过一个传感器把这个信号有KZ传到单片机内,由单片机原先写好的软件来分析,从而产生一个输出信号有JX传到路灯上的控制器中使路灯亮或灭,从而实现路灯控制的功能。 3  CAN总线控制系统软件设计 CAN节点的初始化程序的主要任务是对总线通信控制器SJA1000进行合适的配置,以满足系统的运行要求。SJA1000有两种工作模式:Basic-CAN 和Peli-CAN,SJA1000 上电后首先进入的是Basic-CAN模式,而Peli-CAN支持CAN-2.0B规范。 3.1 初始化程序 对SJA1000的初始化程序的流程图如下图所示,SJA1000的初始化主要是对时钟分频器、中断使能寄存器、验收代码寄存器和接收屏蔽寄存器、总线定时器输出控制器等进行配置,它关系着能否成功进行通信的问题,如果配置不当的话,很可能CAN总线不能正常运行。 图11初始化流程图 初始化程序如下: void SJA1000_init(void) { CS=0;  //片选SJA1000 EA=0;  //关闭中断 while ((ModeCountReg&RM_RR_Bit)==ClrByte) { ModeControlReg-0x01; } ClockDivideReg=0xc8; InterruptEnReg-0x03; AcceptCode0Reg=##; AccepCode1Reg=##; AccepCode2Reg=##; AccepCode3Reg=##; AcceptMask0Reg=##; AcceptMask1Reg=##; AccepyMask2Reg=##; AcceptMask3Reg=##; BusTiming0Reg=##; BusTiming1Reg=##; OutControlReg=##; RxBufstartAdr=0; do(modeControlReg=0x08) while((ModeControlReg&0x01)!=0x00); EA=1; } 各个寄存器的值则可以根据实际需要作合理的配置,需要指出的是,CAN总线上节点的波特率设置都必须相同,否则将引起通信失败。系统节点通信波特率是由总线定时寄存器0、总线定时寄存器1和系统的晶振频率所决定的,其计算方法如下:总线定时寄存器0决定了波特率预设值(BRP)和同步跳转宽度(SJW)值,它各个位的功能如下表所示: 表3 SJA1000总线定时寄存器各位的功能 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0                 总线定时寄存器1则定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目,总线定时寄存器1各位的功能如下表所示 表4 SJA1000总线定时寄存器各位的功能 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT SAM TESG2.2 TESG2.1 TESG2.0 TESG1.3 TESG1.2 TESG1.1 TESG1.0                 CAN总线比特率的确定方法见附录一。 3.2 数据的接收和发送功能 完成对CAN节点的初始化后,便可通过CAN的通信控制器SJA1000向物理总线发送和接收数据。这一过程微处理器和总线通信控制器SJA1000之间的通讯是通过中断方式来实现的,也就是说,当SJA1000把前面写入缓冲区的数据发送完以后,亦会通过中断方式告知CPU数据已经发送完,发送缓冲器已空,可以写入其他的数据,CPU就是通过中断服务程序对SJA1000的中断请求作出相应的响应的。 3.2.1 发送数据 本文中CAN总线节点所采用的通信控制器是SJA1000,因此有必要对SJA1000发送和接收报文的格式作一些介绍。SJA1000的发送缓冲器的帧格式如图所示: 表5 标准帧格式                  表6 扩展帧格式 16 TX帧信息 17 TX识别码1 18 TX识别码2 19 TX识别码3 20 TX识别码4 21 TX数据字节1 22 TX数据字节2 23 TX数据字节3 24 TX数据字节4 25 TX数据字节5 26 TX数据字节6 27 TX数据字节7 28 TX数据字节8     16 TX帧信息 17 TX识别码1 18 TX识别码2 19 TX数据字节1 20 TX数据字节2 21 TX数据字节3 22 TX数据字节4 23 TX数据字节5 24 TX数据字节6 25 TX数据字节7 26 TX数据字节8 27 未使用 28 未使用     由此可见,发送缓冲器被分成描述符区和数据区,描述符区的第一个字节是帧信息字节,它说明了帧格式(标准帧或扩展帧)、远程或数据帧和数据长度。本设计中帧格式采用的是扩展帧格式(EFF),因为SJA1000的工作模式我们采用的是PeliCAN工作模式,扩展帧与标准帧的主要区别是,扩展帧使用4个字节作为数据的识别码,而标准帧则只用2个字节。扩展帧对应的发送缓冲器中的描述符区的位的配置如下表所示,描述符的值越小,则该帧的优先级越高。 表7 TX帧信息(EFF) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 FF RTR X X DLC.3 DLC.2 DLC.1 DLC.0                 表8 TX识别码1(EFF) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21                 表9 TX识别码2(EFF) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13                 表10 TX识别码3(EFF) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 ID.12 ID.11 ID.10 ID.9 ID.8 ID.7 ID.6 ID.5                 表11 TX识别码4(EFF) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 ID.4 ID.4 ID.3 ID.2 ID.1 ID.0 X X                 在发送帧的帧信息中,帧格式(FF)和远程帧发送请求位(RTR)的值如下表所示,而DLC则代表了数据字节的长度,其范围为0-8 表12 帧格式请求位值定义 发送数据时用户只需将要发送的数据按照CAN控制器SJA1000所规定的格式组合成一帧报文,送入控制器的发送缓冲区,然后启动SJA1000发送就可以实现,但在将报文发送到缓冲区之前,应作一些判断,下图给出了发送子程序的程序流程: 图12 程序流程图 发送子程序: void SJA1000_SendMessage(unsigned char *Msg_ptr,int length) { int i; while(statusreg&0x01); while((StatusReg&0x08)==0x00); if((statusreg&0x04)==0x00); else { for(i=0;i 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,并在此基础上研究了CAN总线节点的软、硬件的实现方法,并提出了CAN节点在实现过程中值得注意的地方,由此,我们建立了一个CAN总线的半物理的控制系统,利用CAN总线节点作为控制器对上位机仿真的被控对象进行控制,并且实现了上位机对CAN总线节点的运行状况的监控,对微处理器上适用的各种控制算法在CAN总线应用中的控制效果进行评测,由于CAN总线技术内容多样,且又因本人水平有限,在建立这样一个半物理的仿真平台的过程中,还存在着许多要改进完善的地方。 CAN总线具有数据精简、可靠性高、实时性强等优点,利用CAN现场总线提高了加工精度和速度,显示了CAN总线在机械制造领域的优势,在本系统的基础上,只要对接口电路作相应的修改就可以应用于其他加工系统中,相信随着人们对CAN总线研究的不断深入,其在自动加工领域将会得到更广泛的应用。 参考文献 [1]温国谊,温谊波.基于ATMEGA16语音录放系统的设计与实现[J].微型机与应用,2011(01):16-18,22. [2]唐宏文.基于AT89C51的语音录放系统[J].硅谷,2011(09):178. [3]雷刚.单片机语音处理技术应用[J].信息与电脑,2011(07):173-174. [4]郭凤雨,龚成龙,张磊.基于51单片机的语音提示饮水杯的设计[J].电子设计工程,2011(16):178-181. [5]史明泉.基于DSP的语音录放系统的设计[J].无线电工程,2011(12):53-55. [6]王彦茹,胡体玲.基于单片机的语音记录仪[J].电子设计工程,2011(24):190-192. [7]燕卫.基于IDE硬盘的超长时间语音录放系统[J].软件导刊,2011(12):156-157. [8]肖佳勇,胡诚,李绍武,王秋菊.分离式语音礼品盒录放系统的设计[J].中国科技信息,2012(04):78-79. [9]戴国强,郭高荣,侯霞.基于ISDl700系列语音录放电路的实现[J].福建电脑,2012(02):146-147. [10]祝秋文,柳智.基于ISD1730的汽车语音提示系统设计[J].汽车实用技术,2012(04):53-55. [11]赵智超,吴铁峰.高保真语音录放系统的设计[J].科教文汇,2012(06):100-101. [12]梁宇寰.基于单片机的语音控制系统设计[J].科技与企业,2012(13):107. 附录一  系统电路结构图:
本文档为【CAN总线设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_477730
暂无简介~
格式:doc
大小:132KB
软件:Word
页数:32
分类:互联网
上传时间:2019-06-11
浏览量:11