已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学院 毕 业 论 文车身CAN总线模块设计系 别:专 业 名 称:学 生 姓 名:学 号:指导教师姓名、职称:完成日期 200 年 5月 5 日II学院本科毕业论文(设计)开题报告选 题车身CAN总线模块设计院 系专 业学生姓名指导教师本选题的意义及国内外发展状况:目前汽车电子控制技术发展迅猛,汽车电子控制系统的集成和网络化已成为该项技术发展的必然趋势。其中的控制器局域网CAN总线技术因其技术成熟并具有一系列的优点,得到了广泛的应用。本文在系统地学习和掌握CAN总线协议及其通讯原理的基础上,进行了车身CAN总线模块设计。CAN(Controller Area Network)总线是重要的现场总线之一,它遵从OSI模型,主要工作在数据链路层和物理层。CAN总线是一种全数字,多主机的异步串行现场总线,以其高性能、高可靠性以及灵活的设计正日益受到人们的重视。他有着高效的报文过滤机制,错误检测机制,高速的远距离传输,以及便利的应用层接口等良好性能。CAN总线目前已经在汽车工业、航空工业、工业控制等领域中得到了广泛应用,并正向更多的领域发展。研究内容: 本文在系统地学习和掌握CAN总线协议及其通讯原理的基础上,进行了车身CAN总线模块设计。通过CAN总线来实现温度传感器数据的传输。研究方法、手段及步骤:本设计采用STC89S52作为微控制器,以Philips开发的SJA1000作为CAN控制器,选择TJA1050作为CAN总线驱动器。本系统设计了两个CAN总线控制器节点,一个用于数据发送,一个用于数据接收。其中一个节点采集温度传感器DS18B20数据,一方面通过数码管LED显示发送数值,另一方面经过收发器TJA1050发到CAN总线上;另一个节点通过收发器TJA1050从CAN总线上接收数据,通过数码管LED显示接收到的数值。参考文献: 1 现场总线技术及其应用M.北京:清华大学出版社.2002.阳宪惠.2 CAN总线原理和应用系统设计M.北京:北京航空航天大学出版社.1996.邬宽明.3 单片机语言应用程序设计M.北京:北京航空航天大学出版社.2003.马忠梅.4 CAN总线通信协议分析和实现J.计算机工程.2002.8(2):219-220.蒋建文,林勇5 基于SJA1000的CAN总线系统智能节点设计J.计算机自动测量与控制.2001.9(2):48-58.肖海荣,周风余.6 SJA1000独立的CAN控制器应用指南Z.周立功单片机发展公司7 CAN总线系统智能节点设计M.北京:北京航空航天大学出版社,2004. 邹继军,饶运涛.8 8051 单片机接口扩展技术与应用实例M.北京:人民邮电出版社.2005(1): 杨金岩.9 A cost-effective CAN MCU-solution.Embacher M.Electron Prod Des.1996,17(4):4247.车身CAN总线模块设计摘 要目前汽车电子控制技术发展迅猛,汽车电子控制系统的集成和网络化已成为该项技术发展的必然趋势。其中的控制器局域网CAN总线技术因其技术成熟并具有一系列的优点,得到了广泛的应用。本文在系统地学习和掌握CAN总线协议及其通讯原理的基础上,进行了车身CAN总线模块设计。CAN(Controller Area Network)总线是重要的现场总线之一,它遵从OSI模型,主要工作在数据链路层和物理层。CAN总线是一种全数字,多主机的异步串行现场总线,以其高性能、高可靠性以及灵活的设计正日益受到人们的重视。他有着高效的报文过滤机制,错误检测机制,高速的远距离传输,以及便利的应用层接口等良好性能。CAN总线目前已经在汽车工业、航空工业、工业控制等领域中得到了广泛应用,并正向更多的领域发展。CAN总线控制器是CAN总线通讯协议的实现,将各个控制节点连接到总线的重要环节。本设计采用STC89C52作为微控制器,以Philips开发的SJA1000作为CAN控制器,选择82C250作为CAN总线驱动器。本系统设计了两个CAN总线控制器节点,一个用于数据发送,一个用于数据接收。其中一个节点通过DS18B20温度传感器采集外界温度数据,一方面通过数码管LED显示采集到的温度数值,另一方面经过收发器82C250发到CAN总线上;另一个节点通过收发器82C250从CAN总线上接收数据,通过数码管LED显示接收到的温度数值。关键词:CAN总线 通信协议SJA1000 数据采集Body CAN Bus Module DesignAbstractAt present, automotive electronic control technology is developing rapidly, automotive electronic control systems integration and network has become the inevitable trend of technological development. CAN bus technology has been widely used because of its mature technology and a series of advantages. After a systematic study and master the CAN bus protocol and communication principle, this article is to design CAN bus modules.CAN (Controller Area Network) bus is one of the important Fieldbus, which comply with the OSI model and mainly work in the data link layer and physical layer. CAN bus is a all-digital, multi-host asynchronous serial Fieldbus, and getting more and more attention with its high-performance, high reliability, and flexible design. It has good performance, such as a highly efficient packet filtering mechanisms, error detection mechanism, high-speed long-distance transmission , convenient application layer interface, and so on. CAN bus has been widely used in the automobile industry, aviation industry, industrial control, and is developing in more and more areas. CAN bus controller is the realization of CAN bus communication protocol and an important part to connect various control nodes to the bus. The design uses STC89C52 as a microcontroller, SJA1000 developed by Philips as a CAN controller, and select 82C250 as a CAN bus driver. This system has two CAN bus controller node, one for data transmission, one for data reception. One node is to collect outside temperature data through DS18B20 temperature sensor, display temperature values collected through digital tube LED and send the data to CAN bus through transceiver 82C250.The other node is to receive the data from CAN bus through transceiver 82C250, and displays temperature value received through digital tube LED.Key Words:CAN bus Communication protocol SJA1000 Data Acquisition49目 录摘 要IAbstractII前 言11 CAN总线通信协议21.1 CAN总线通信协议简介21.2 基本概念21.3 数据传输41.3.1 数据帧格式41.3.2 帧类型41.3.3 关于帧格式的符合性41.3.4 发送器/接收器的定义41.3.5 报文校验51.3.6 编码规则51.3.7 错误处理51.3.8 故障界定61.3.9 位定时要求62 总体方案的确定72.1 车身CAN总线模块设计系统的优势72.2 方案思路介绍73 CAN节点模块设计与实现93.1主要元件93.1.1 STC89C52介绍93.1.2 SJA1000介绍103.1.2.1 SJA1000概述103.1.2.2 SJA1000内部结构104.1.2.3 SJA1000在系统中的位置123.1.2.4 PeliCAN下的寄存器123.1.3 82C250介绍133.1.3.1 82C250概述133.1.3.2 82C250内部结构143.1.3.3 82C250工作模式143.2 CAN节点硬件电路设计153.2.1 CAN控制器模块153.2.2 温度数据采集模块163.2.3 显示模块163.3 CAN节点软件设计173.3.1 CAN初始化程序设计183.3.2 发送数据程序设计183.3.3 接收数据程序设计194 车身CAN总线模块设计实验及数据分析204.1 两个CAN节点间的通信分析205 总结225.1 工作总结225.2 完善建议22附录 CAN节点硬件电路图23附录II 车身CAN总线模块设计程序24参考文献48致 谢49前 言随着汽车测试技术的发展和人们对汽车品质要求的提高,汽车上的各种创感器的数量呈现快速增长的趋势,传统的测试电子单元不具备网络通信能力,使得当这些电子单元的数量增加到一定程度的时候车上布线收到严重的挑战,所以随着汽车产业的不断发展,汽车现场总线在国内外正收到越来越多的关注。CAN总线(Controller Area Network控制器局域网络)是现场总线的一种。它是由德国BOSCH公司在1986年为解决现代汽车中众多控制与检测仪器之间的数据交换而开发设计的一种总线式串行通信网络。与一般通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,其特点可概括如下:CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上任一节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息,利用这一特点可方便地构成多机备份系统。CAN节点只需对报文的标识符滤波即可实现点对点,点对多点及全局广播方式发送和接收数据,其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134微秒内传输,可满足不同的实时要求。CAN采用非破坏性总线仲裁技术2,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况。CAN总线通信格式采用短帧格式,每帧字节数最多为8个字节,可满足一般工业领域中控制命令,工作状态及测试数据的要求,8个字节不会占用总线时间过长,保证了通信的实时性。CAN总线直接通信距离最大可达10Km(速率在5Kb/s以下),最高通信速率可达1Mb/s(此时距离最长为40m),节点数可达110个,通信介质可以是双绞线,同轴电缆或光导纤维。CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下,具备有自动关闭输出功能,使总线上其他节点的操作不受影响。1 CAN总线通信协议1.1 CAN总线通信协议简介CAN(Controller Area Network)是一种串行通讯协议,它能有效的支持分布式实时控制,并保证极高的安全性能。CAN总线最早由BOCSH公司提出,旨在减少汽车制造工业中各个期间之间信号传输所用到的信号线条数。CAN总线目前广泛的应用于控制领域。在汽车工业中,引擎控制单元,传感器单元车灯控制,车窗控制等等都是由CAN总线连接起来实现有效的控制。又比如再电梯控制系统中,各个楼层的显示,按键控制,梯箱中的按键,显示控制,以及主电机的控制,也可以由CAN总线实现实时控制。1.2 基本概念报文(Messages)如前文所述,CAN总线上的通讯以报文为单位,每个报文即为一帧数据。总线上的报文以不同的固定报文格式发送但长度受协议限制,详见第3节的报文传输。当总线空闲任何连接的单元都可以开始发送新的报文。优先权(Priorities)在总线访问期间,由报文的识别符(ID)定义了该报文的优先权图2.1报文优先级判别如图2.1所示,报文1和报文2的识别符前三位均为“0,1,0”,第四位开始出现不同,报文1为1,报文2为0,因为CAN总线上的“线与”原则,此时总线上的信号被报文2拉低为0,也就是说此时总线上其它设备(包括发送报文1的设备)得到的报文ID为0,可见此时报文1所发送的报文ID被报文2的ID所屏蔽,因此当总线上两个节点同时发送报文时,识别符较低的节点获得优先权,而识别符较高的节点在检测到此报文优先级较低时会停止发送报文,等待一定时间后重发(该功能由总线控制器实现)。远程数据请求(Remote Data Request)通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧,数据帧和相应的远程帧是由相同的识别符命名的。信息路由(Information Routing)在CAN总线协议中,系统里CAN的节点不使用任何关于系统配置的报文,比如节点地址。位速率(Bit rate)不同的节点中的时钟速率不尽相同,但是在一个给定的系统里,位速率是唯一并且是固定的,同时与总线接口时应采取固定的位速率。多主机(Multi-master)总线空闲时任何单元都可以开始传送报文,具有较高优先权的报文单元可以获得总线访问权。仲裁(Arbitration)只要总线空闲任何单元都可以开始发送报文。如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了识别符的逐位仲裁(见图2.3)可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时数据帧优先于远程帧。仲裁期间每一个发送器都对发送位的电平与被监控的总线电平进行比较,如果电平相同则这个单元可以继续发送,如果发送的是一隐性电平(逻辑1)而监视的是一显性电平见总线值那么单元就失去了仲裁必须退出发送状态。安全性(Safety)为了获得最安全的数据发送,CAN的每一个节点均采取了强有力的措施以便于错误检测错误标定及错误自检,错误检测。任何检测到错误的节点会标志出损坏的报文,此报文会失效并将自动地开始重新传送。如果不再出现错误的话,从检测到错误到下一报文的传送开始为止恢复时间最多为31个位的时间。故障界定(Fault Confinement)CAN节点能够把永久故障和短暂扰动区别开来,故障的节点会被关闭连接(Connections)CAN串行通讯链路是可以连接许多单元的.总线理论上可连接无数多的单元,但由于实际上受延迟时间以及总线线路上电气负载的影响,连接单元的数量是有限的。总线值(Bus values)总线有一个互补的逻辑值:显性或隐性。显性位和隐性位同时传送时总线的结果值为显性。逻辑0代表显性等级逻辑1代表隐性。应答(Acknowledgment)所有的接收器都会检查报文的连贯性。对于连贯的报文接收器应答,对于不连贯的报文接收器做出标志。1.3 数据传输1.3.1 数据帧格式CAN总线支持两种不同ID(IDENTIFIER)长度的帧格式:11位ID长度的标准帧格式(Standard Frames)以及29位帧长度的扩展帧格式(Extended Frames)。其中前者为早期协议所定义,而后者为更新版的协议中所扩展的帧格式,并且在该协议中也兼容了之前所定义的格式。1.3.2 帧类型CAN总线上所传输的数据信息共包括以下四种:数据帧(DATA FRAME):从传送点传递数据到接收点。远程帧(REMOTE FRAME):发送远程帧的节点要求其他节点发送一个具有和该远程帧相同的ID的数据帧。错误帧(ERROR FRAME):由监控到总线错误的节点发送。过载帧(OVERLOAD FRAME):用于在当前帧和前一帧之间产生一个附加的延时。数据帧和远程帧可以同时应用在标准帧和扩展帧中,帧与帧之间由帧间空(INTERFRAME SPACE)间隔开来。1.3.3 关于帧格式的符合性标准帧格式就相当于在CAN1.2规范中描述的数据帧或者远程帧,而扩展帧格式则是CAN2.0协议的一个新的规范。为了使控制器的设计相对简单,不要求扩展格式的仪器达到它的满扩展(比如在扩展格式里发送报文或接收来自于报文的数据),但是仪器必须无条件地支持标准格式。如果新的控制器至少具有以下属性,则该控制器将被认为是符合CAN规范的:-该控制器支持标准格式-该控制器可以接收扩展格式的报文,这需要扩展格式的帧数据不因其格式而被破坏,但是并不要求该控制器一定支持扩展格式的数据帧。1.3.4 发送器/接收器的定义发送器(Transmitter) 产生报文的节点被称为报文的发送器。此单元保持作为报文发送器直到总线出现空闲,或该单元失去仲裁(ARBITRATION)为止。接收器(Receiver) 如果有一单元不作为报文的发送器,并且总线也不空闲,则这一单元就被称之为报文的接收器。1.3.5 报文校验对于发送器和接收器,报文校验的时间有所不同。对于发送器(Transmitter)来说,如果直到帧的末尾位均没有错误,则此报文对于发送器有效,如果报文破损则报文会根据优先权自动重发。为了能够和其他报文竞争总线的控制权,重新传输必须在总线空闲时启动。而对于接收器(Receiver),如果直到最后的位,除了帧末尾位均没有错误,则报文对于接收器有效,帧末尾最后的位将不予考虑,即使是一个显性电平也不会引起格式错误。1.3.6 编码规则位流编码(Bit Stream Coding)帧的有效内容部分,诸如帧起始、仲裁场、控制场、数据场,以及CRC序列均通过位填充的方法编码。也即无论何时发送器只要检测到位流里有5个连续相同值的位(无论是显性还是隐性),便自动在位流里插入一个补充位。数据帧或远程帧(CRC界定符、应答场和帧结尾)的剩余位场形式均为固定格式,因此不计入填充范围,错误帧和过载帧的形式也固定,也不通过位填充的方法进行编码。1.3.7 错误处理错误检测CAN总线通讯协议一共定义了以下5种不同的错误类型,这5种错误不会相互排斥:位错误(Bit Error)填充错误(Stuff Error)CRC错误(CRC Error)形式错误(Form Error)应答错误(Acknowledgment Error)错误标定检测到错误条件的节点通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为主动错误标志,对于“错误被动”的节点,错误信息为被动错误标志。当节点检测到无论是位错误、填充错误、形式错误,还是应答错误时,这个节点会在下一位时发出错误标志信息。只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位,其他的错误条件除外。1.3.8 故障界定对于故障界定,节点的状态可能为以下三种之一:“错误主动”;”错误被动”;“总线关闭”“错误主动”的节点可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。“错误被动”的单元不允许发送主动错误标志,错误被动的单元参与总线通讯,在错误被检测到时只发出被动错误标志,而且发送以后,“错误被动”单元将在初始化下一个发送之前处于等待状态。“总线关闭”的单元不允许在总线上有任何影响(比如关闭输出驱动器)。1.3.9 位定时要求标称位速率:标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量标称位时间:标称位时间=1/标称位速率可以把标称位时间划分成了几个不重叠时间的片段,它们是:-同步段(SYNC_SEG)-传播时间段(PROP_SEG)-相位缓冲段1(PHASE_SEG1)-相位缓冲段2(PHASE_SEG2)图2.12位时间构成2 总体方案的确定2.1 车身CAN总线模块设计系统的优势 基于车身CAN总线模块设计是一种有效支持分布式控制或实时控制的串行通信网络,它具有以下优点:1. 符合CAN协议标准,方便在汽车上与其它部件的扩展。2. 总线式的通信可以很方便的和汽车仪表板进行通信。3. 系统设计简单,成本低,通信可靠性强。4. 低电磁辐射,抗干扰能力强。5.通信具有总线仲裁能力和检错能力,通信过程错误可控。6采用点对点或一点对多点以及全局广播方式传送和接收数据,节省线束。7.通信距离可以达到10Km,波特率可达1Mb/s,能很好的满足汽车现场安装得需要。8.分布式的布置有利于汽车自动控制的实现,为智能汽车的开发提供了支持。2.2 方案思路介绍 考虑到性价比问题,本系统设计了两个CAN控制器节点来实现收发通信。现就针对其中一个节点进行介绍。本节点主要由波特率设置、数据采集、CAN(收发)模块、数码管LED显示等组成。波特率设置本设计为了可以适应与多种电子产品相兼容及相互通信,专门设计了波特率可选择的功能。要实现两个节点以上的通信,首先波特率要一致,不然不导致通信失败。这也是本设计的一个初衷。数据采集数据采集主要是通过DS18B20温度传感器采集外界温度数据。CAN(收发)模块CAN(收发)模块主要由SJA1000和82C250两部分组成。通过单片机处理的数据(发送的数据)送到SJA1000发送缓冲寄存器后,经过82C250 CAN总线驱动器会送到CAN总线上面;另一个节点上的TJA1050通过检测CAN总线上的信号,讲接收到数据送到SJA1000的接收缓冲寄存器中,完成接收数据的功能,实现CAN总线的收发通信。数码管LED显示数码管LED是用于显示用与显示DS18B20温度传感器采集到的数据。车身CAN总线模块设计的系统框图如图3.1所示TJA1050SJA1000AT89S52地址波特率设置LED显示ADC0809/执行按钮接口CAN总线TJA1050SJA1000AT89S52地址波特率设置ADC0809/执行按钮接口LED显示CAN模块图3.1 车身CAN总线模块设计系统框图3 CAN节点模块设计与实现本次设计中,两个CAN节点均采用独立的CAN控制器SJA1000进行控制,并且均采用相同的电路结构。只是一节点加了DS18B20温度传感器的电路。这里单独对一个节点进行介绍。3.1主要元件本次设计中,主要用到的元件有单片机(STC89C52)+CAN控制器(SJA1000)+CAN收发器(82C250)。下面对各元件进行介绍。3.1.1 STC89C52介绍本实验中选用比较常见的STC89C52作为CAN节点的微控制器,STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP (In-system programmable)的可反复擦写10000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-_51指令系统及80C_51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。STC89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,512bytes的随机存取数据存储器(RAM ) ,32个外部双向输入/输出(I/O)口,5个中断优先级2层。中断嵌套中断,2个16位可编程定时计数器,2个全双上串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停上作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能自至外中断激活或硬件复位。STC89C52单片机主要功能特点如下:1. 兼容于51系列2. 8位CPU3. 片内512KB RAM4. 片内8KB FLASH ROM5. 32个可编程I/O口6. 3个16位定时/计数器7. 8个中断源8可编程串行I/O接口图4.1 STC89C52单片机功能框图3.1.2 SJA1000介绍3.1.2.1 SJA1000概述SJA1000是用于汽车和一般工业环境的独立CAN总线控制器,它具有完成CAN高性能通信协议所要求的全部必要特性。SJA1000具有下列主要特性:(1)管脚及电气特性与独立CAN总线控制器PCA82C200兼容;(2)软件与PCA82C200兼容(缺省为基本CAN模式);(3)扩展接收缓冲器(64字节FIFO);(4)支持CAN 2.0B协议;(5)同时支持11位和29位标识符;(6)位通讯速率为1Mb/s;(7)增强CAN模式(PeliCAN);(8)采用24MHz时钟频率;(9)支持多种微处理器接口;(10)可编程CAN输出驱动配置;(11)工作温度范围为40125。3.1.2.2 SJA1000内部结构如图4.2所示,SJA1000主要由接口管理逻辑IML、信息缓冲器(含发送缓冲器TXB和接收缓冲器RXFIFO)、位流处理器BSP、验收滤波器ACF、位时序处理逻辑BTL、错误管理逻辑EML、内部振荡器及复位电路等构成。图4.2 SJA1000内部结构(1)接口管理逻辑(IML)它解释来自微处理器的命令,控制CAN寄存器的地址,向CPU提供中断信息和状态信息。(2)发送缓冲器(TXB)它长为13字节,位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整报文。CPU把要发送的数据写入TXB,TXB中的数据由BSP处理后经位时序处理逻辑(BTL)输出到总线。(3)接收缓冲器(RXB,RXFIFO)它是CPU和接收滤波器之间的接口,用来存储从CAN总线上接收并通过滤波的报文。接收缓冲器RXB(13字节)是接收FIFO(RXFIFO,64字节)的窗口,供CPU访问。有了RXFIFO的支持,CPU可以在处理一个报文的同时继续接收其他到来的报文。(4)验收滤波器(ACF)它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断该报文是否可被接收。如果验收通过,此报文存入RXFIFO中。(5)位流处理器(BSP)它是一个在发送缓冲器、RXFIFO和CAN总线之间控制数据流的队列(序列)发生器。它还执行错误检测、仲裁、位填充和错误处理功能。(6)位时序逻辑(BTL)它监视串行的CAN总线和位时序。它是在一条报文开头,总线电平出现从隐性到显性时,将SJA1000同步于CAN总线上的位流(硬同步),并且在其后接收一条报文的传输过程中再同步(软同步)。BTL还提供了可编程的时间段来补偿传播延时、相位偏移与定义采样点和每一位的采样次数。(7)错误管理逻辑(EML)EML负责传送层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。IML接收来自CPU的命令,控制CAN寄存器的寻址并向控制提供中断信息及状态信息。CPU的控制经IML把要发送的数据写入TXB,TXB中的数据由BSP处理后经BTL输出到CAN BUS。BTL始终监视CAN BUS,当检测到有效的信息头“隐性电平控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可以缓存64字节的数据,该数据可被CPU读取。EML负责传递层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。4.1.2.3 SJA1000在系统中的位置CAN控制器/SJA1000在现场总线系统中起“承上启下”的作用。一方面,SJA1000和微控制器相连,接收微控制器发出的命令、与微控制器进行数据的发送/接收;另一方面,SJA1000和CAN收发器相连,传送或接收总线上的数据。SJA1000在系统中的位置如图4.3所示。图4.3 SJA1000在系统中的位置3.1.2.4 PeliCAN下的寄存器SJA1000既可工作在BasicCAN模式,执行CAN2.0A协议,又可工作在PeliCAN模式支持CAN2.0B协议。在不同的模式下,SJA1000寄存器从数量、地址分配到功能等方面都有所区别。由于本设计中使用的是PeliCAN模式,所以不再对BasicCAN模式进行赘述,表4.1是对PeliCAN模式下的多个寄存器的描述。SJA1000的内部寄存器对CPU来说是以外部寄存器形式编址的片内存储器,它们相对于CPU的地址由SJA1000与CPU的连接方法决定。SJA1000的工作模式又分两种:复位模式、操作模式。通常,在系统初始化时,SJA1000进入复位模式,对相关寄存器设置初值(如设定波特率、滤波器等),之后退出复位模式进入操作模式,SJA1000开始工作。除非再次使芯片复位,否则上次设定的值保持不变。表4.1 SJA1000在PeliCAN模式下的内部寄存器3.1.3 82C250介绍3.1.3.1 82C250概述82C250是一种通用CAN收发器,是CAN控制器与物理总线之间的接口,对总线提供差动发送能力、对CAN控制器提供差动接收能力。它的主要特征如下:(1) 完全符合ISO 11898 标准(2) 高速率(最高达1Mbit/s)(3) 电磁辐射(EME)极低(4) 电磁抗干扰(EMI) 性极高(5) 不上电的节点不会对总线造成扰动(6) TxD 引脚有防止箝位在显性总线电平的超时功能(7) 静音模式中提供了只听模式和“Babbling Idiot” 保护(8) 保护总线引脚防止汽车环境中的瞬态干扰(9) 输入级和3.3V 以及5V 的器件兼容(10) 输出驱动器受到温度保护(11) 防止电池对地的短路(12)至少可以连接110 个节点3.1.3.2 82C250内部结构 82C250内部结构如图4.4所示。图4.4 82C250内部结构3.1.3.3 82C250工作模式82C250 有两种工作模式都由引脚“S”来控制。(1)高速模式高速模式是普通的工作模式将引脚“S”连接到地可以进入该模式由于引脚“S”有内部下拉功能(见图4.4), 所以当它没有连接时,高速模式也是默认的工作模式。在这个模式中,总线输出信号有固定的斜率,并且以尽量快的速度切换。这种模式适合用于最大的位速率和/或最大的总线长度,而且此时它的收发器循环延迟最小。(2)静音模式在静音模式中,发送器是禁能的,所以它不管TxD 的输入信号。因此收发器运行在非发送状态中,它此时消耗的电源电流和在隐性状态时的一样。将引脚“S”接高电平就可以进入静音模式。3.2 CAN节点硬件电路设计车身CAN总线模块的硬件电路设计主要分为CAN控制器模块、温度数据采集模块、显示模块等。下面介绍一下各个模块的电路图。3.2.1 CAN控制器模块CAN控制器模块的单片机选用STC89C52、CAN控制器选用SJA1000、CAN收发器选用82C250,各芯片已在以上介绍。SJA1000是CAN通讯模块的核心元件,执行CAN总线的通讯任务;82C520的主要功能是增大通讯距离。CAN控制器模块的硬件电路原理图如图4.5所示。 SJA1000的AD0AD7连接到STC89C52的P0口,用于地址译码。CS连接到STC89C52的P2.0,CS引脚为低电平有效,P2.0为低时,SJA1000被选中。SJA1000的RD、WR、ALE分别与STC89C52的对应引脚相连。INT接STC89C52的INT1,STC89C52通过中断方式访问SJA1000。82C520的TXD、RXD分别与SJA1000的TX0、RX0相连,发送和接收经驱动后的信号;CANH、CANL接至总线传输介质,用于两个节点间的通信。图4.5 CAN控制器模块电路图3.2.2 温度数据采集模块温度数据主要采用DS18B20温度传感器采集空间的温度。DS18B20温DS18B20温度传感器与STC89C52的T1口连接。它的电路图如图4.6图4.6 DS18B20数据采集电路图3.2.3 显示模块数码管的段选位与STC89C52的P0口连接。它的电路图如图4.7所示。图4.7 显示模块电路图3.3 CAN节点软件设计车身CAN总线模块的软件设计主要包括CAN初始化程序、发送数据程序、接收数据程序等。它们的主要功能是:向CAN网络通报本控制器的基本状态,是否正常工作;判断CAN总线是否存在故障;接收CAN总线上其它节点发送的消息,并进行数据处理;向CAN总线发送本控制器当前的各种状态消息;下面就各个部分的实现分别加以阐述。3.3.1 CAN初始化程序设计CAN初始化程序是对SJAl000的模式寄存器(MOD)、时钟分频寄存器(CDR)、总线时序寄存器(BTR0、BTR1)、接收代码寄存器(ACR)、接收屏蔽寄存器(AMR)、输出控制寄存器OCR)等这些寄存器进行设置。在通电后,CAN控制器在复位引脚17获得一个复位脉冲(低电平有效)后进入复位模式,单片机检测到SJA1000进入复位模式后,便对SJAI000进行配置。配置完成后,取消复位模式,进入正常工作模式。只有SJAI000进入复位工作模式,才可以初化相应的寄存器。初始化程序流程图如图4.8所示。图4.8 初始化流程图3.3.2 发送数据程序设计将CAN模块初始化成功后,就可以用它来传送报文了节点向总线上发送报文的过程是:将待发送的数据按CAN格式组成一帧报文,写入CAN模块发送缓冲区,然后启动发送命令,将报文发送到总线上,在将报文写入到缓冲区之前应该作一些判断。图4.9给出了发送子程序的程序流程。 图4.9 发送程序流程图3.3.3 接收数据程序设计接收数据较之发送数据要复杂一些,因为在处理接收报文的过程中,要对如总线脱离、错误报警等情况作出处理。SJA1000对于报文的接收可采用两种方式,即中断接收方式和查询接收方式。这里采用中断接收方式,接收数据的程序流程图如图4.10所示。图4.10 接收程序流程图4 车身CAN总线模块设计实验及数据分析4.1 两个CAN节点间的通信分析 其中一个节点接上DS18B20温度传感器,另一个节点没接。两个CAN节点完成后,通过CAN总线将它们连接在一起。连接DS18B20温度传感器的节点作为发送节点,另一个作为接受节点。如图5.1所示(上面的为节点二,下面的为节点一,下同。)。图5.1 CAN节点连接图两节点上电后,节点一数码管显示的为DS18B20温度传感器采集到的温度,即要发送的数据。节点二为初始值。如图5.2所示。图5.2 两节点上电后当按下节点一的发送建(STC89C52的外部中断0)时,节点一显示的温度数据即发送到节点二,节点二的数码管显示接受到的温度数据。如图5.3所示。图5.3 两节点的通信5 总结5.1 工作总结本设计从选题的确定到最后设计的完成经过了漫长的过程,通过本次设计,从现场总线相关知识的学习到单片机的开发,都使本人的能力得到了锻炼,主要体现在下述几个方面:1. 车身CAN总线模块设计这一课题对我来说是一个比较新的知识,以前没有接触过,经过这个毕业设计之后,它开拓了我的视野,增强了我的实践操作能力,加强了我的分析处理能力,同时也学到了一些有用的测试总线的软件。2. 通过本次毕业设计让我更好的学习了关于单片机开发的知识和CAN总线方面的知识,让我的知识得到了扩展和补充。3. 通过本次设计,让我更好的体会到实践的重要性,使我进一步明白很多理论的知识只有在实践中才能得到升华和巩固的道理。5.2 完善建议该系统基本上能够满足设计的要求,也即符合CAN总线通讯协议,并具备一定的稳定性。当然,在验证中也发现了一些有待提高的方面:1. 总线通讯对晶振频率要求较高,当某一节点的时钟频率有一定偏差时,另外的节点将会产生错误情形,通讯无法进行。2. 寄存器安排可以考虑进一步完善,采用地址自加的方式被访问,从而可以进一步降低上位控制器的程序开销,方便系统应用。3. 增加CAN通信中错误和意外的处理部分,如:总线错误处理、仲裁丢失处理、数据溢出处理等。4. 将数码管LED显示改成液晶LCD显示,增加显示的字节数,使观察更加直观。将STC89C52单片机改成AVR、STM等系列的单片机,它们集成了CAN模块、AD采集模块等,节省成本,减少硬件电路的复杂度,方便调试与设计。附录 CAN节点硬件电路图附录II 车身CAN总线模块设计程序/&/描述: 节点一的程序/INT0按键程序+显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特殊教育培训中心建设项目可行性研究报告及总结分析
- 2025年国际护士证试题及答案
- 2025年数字内容创作孵化基地项目可行性研究报告及总结分析
- 2025年棉花质量认证合同
- 毕业设计中期报告5篇完美版
- 2023年电大在线选课学习发帖考试平台介绍及操作步骤详解
- 2025年绿色采购服务合同协议
- 2025年混合现实技术应用项目可行性研究报告及总结分析
- 2025年跨境电商平台拓展可行性研究报告及总结分析
- 2025年广告设计师媒介策略试卷(含答案)
- 银行保洁服务投标方案技术标
- MOOC 灰色系统理论-南京航空航天大学 中国大学慕课答案
- 2024-2029年中国冻干口崩片行业市场现状分析及竞争格局与投资发展研究报告
- 个人医保代办委托书
- 销售人员客户需求分析报告
- 消防安全评估投标方案技术标
- 驾照体检表完整版本
- 人美版4年级上册《美术》期末考试试题及答案
- 利润问题-2023-2024学年六年级数学上册典型例题解析苏教版
- 武夷山风景区的总体规划
- 卫生统计学智慧树知到答案章节测试2023年湖南中医药大学
评论
0/150
提交评论