CAN网络通讯实验板课程设计.docx
- 文档编号:2443077
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:31
- 大小:721.93KB
CAN网络通讯实验板课程设计.docx
《CAN网络通讯实验板课程设计.docx》由会员分享,可在线阅读,更多相关《CAN网络通讯实验板课程设计.docx(31页珍藏版)》请在冰点文库上搜索。
CAN网络通讯实验板课程设计
CAN网络通讯实验板课程设计
目录
1前言..................................................................................................................1
2系统设计..........................................................................................................2
·2.1硬件设计......................................................................................................2
··2.1.1硬件方案比较........................................................................................2
··2.1.2硬件方案论证........................................................................................3
··2.1.3硬件方案选择........................................................................................4
·2.2硬件设计.......................................................................................................4
··2.1软件设计方案...........................................................................................7
3系统硬件设计...................................................................................................8
·3.1CAN总线介绍...........................................................................................8
·3.2从站CAN总线接口电路...........................................................................8
·3.3硬件模块说明..............................................................................................9
·3.4CAN电路接线..........................................................................................10
·3.5CAN总线控制器SJA1000.......................................................................10
·3.6CAN控制器接口PCA82C250.................................................................10
4系统软件设计.................................................................................................11
·4.1程序流程图.................................................................................................11
··4.1.1主程序流程图.......................................................................................11
··4.1.2初始化子程序流程图...........................................................................11
··4.1.3发送数据子程序流程图.....................................................................12
··4.1.4接收数据子程序流程图.....................................................................13
·4.2软件实现过程............................................................................................13
·4.2核心源程序.................................................................................................15
5系统调试.........................................................................................................21
·5.1PC机与下位机的通讯调试......................................................................21
·5.2CAN总线调试..........................................................................................21
·5.3单片机最小系统电路的调试....................................................................21
·5.4综合调试....................................................................................................22
·5.5最终实现效果............................................................................................22
·5.6测试仪器...................................................................................................22
6结果分析及心得体会.....................................................................................23
·6.1结果分析....................................................................................................23
·6.2心得体会....................................................................................................23
··6.2.2CAN总线的其他应用.......................................................................23
7参考文献........................................................................................................25
附录:
系统设计原理图......................................................................................26
1前言
现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。
它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN(ControllerAreaNetwork)属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。
与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。
本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。
系统主要由四部分所构成:
PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。
微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。
CAN总线节点的软件设计主要包括三大部分:
CAN节点初始化、报文发送和报文接收。
本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。
2系统设计
要实现一个系统的某些功能往往不只一种方法和途径,我们可以通过不同的方法实现相同的功能,因此我们需要从各个角度进行综合考虑,如各个方案的可行性、实用性、稳定性、实现的难度等。
从而选择较好的一种方案进行设计。
下面对本设计的各个模块进行方案对比,以选择较为合理的设计方案。
2.1硬件设计
2.1.1硬件方案比较
方案一:
本方案是基于三星公司的ARM微处理器S3C2440与PHILIPS公司的CAN控制器SJA1000的嵌入式控制系统,在本系统中,S3C2440直接与SJA10000相连接,由S3C2440控制CAN收发器。
S3C2440是高速的微处理器,其最高的工作频率可以达到533MHz,且内部资源十分丰富,十分适合嵌入式便携式产品的应用和开发,该方案的框架图如图2.1所示。
但由于S3C2440的硬件电路连接十分复杂,对于绘制PCB板有很大的难度,且加工工艺要求比较高,一般是六层板加工工艺,对于单个加工来说加工成本非常高,且使用起来也比80C51要复杂很多,对于本设计来说很浪费资源和成本。
SJA1000的设计是基于早期的8051单片机的应用,对于从站控制器可以直接与单片机的总线相连接,但不能直接与s3c2440连接,因为s3c2440的地址总线和数据总线完全是分开的,所以还需要模拟出类似80C51单片机的外部存储器时序才能使用,这样接口连接也不能够直接对应。
SJA1000一般是5V电压供电,而s3c2440一般为3.3V供电,其接口电压最高只能达到3.3V,所以电平也不兼容,要用特殊的转接电路才能实现连接。
这样在硬件和软件都增加了很大的难度,因此很难实现功能。
方案二:
本方案通过PC机进行上位机控制,80C51与PC机串行通信,设置SJA1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。
接收数据是通过中断进行的,CAN总线传输过来的数据经CAN接口芯片PCA82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读取,读取的数据上传送给PC机。
试验表明,CAN总线的结构简洁、数据传输稳定可靠、抗干扰能力强、传输速率可达1Mbit/s同时能有128个从站系统,能满足现场的实时性要求。
其系统的结构框图如图2.2所示。
这种方案的好处在于硬件结构相对简单,SJA1000的设计是基于早期的8051单片机的应用,其接口完全与80C51的外部总线接口兼容,电平也完全兼容,都为5V供电。
上位机界面可以通过常见的编程软件,其主要的编写平台有Microsoft公司的VisualBasic与VisualC++,Borland公司的Delphi,Sybase公司的PowerBuilder等,上位机控制界面通过串口传输数据到主站的控制器,主控器再通过CAN网络与各个从站控制器相连接,实现相互间通讯,交换相应的数据,这样便可以采集到远处的实用信息。
操作简单,界面设计更加容易。
2.1.2硬件方案论证
方案一:
由图2.1可以看出,该方案采用嵌入式系统,S3C2440为32位的高速微处理器,其内部和外部资源丰富,能够很好地支持多种操作系统,如:
WinCE,uCosⅡ,linux等,通过操作系统能够很方便地对系统进行管理和操作,给我们的程序编写带来了很大的方便,本方案采用的是linux2.6.25操作系统,该系统最大优点在于可移植性很强,支持多种不同平台的MCU,对S3C2440有很好的支持,其源代码开源。
系统用嵌入式QT(EmbeddedQT)做界面设计,界面更加友好,可通过触摸屏、鼠标和键盘对系统进行操作,但由于S3C2440的硬件电路连接十分复杂,对于绘制PCB板有很大的难度,且加工工艺要求比较高,一般是六层板加工工艺,对于单个加工来说加工成本非常高,且使用起来也比80C51要复杂很多,对于本设计来说很浪费资源和成本。
SJA1000的设计是基于早期的8051单片机的应用,对于从站控制器可以直接与单片机的总线相连接,但不能直接与s3c2440连接,因为s3c2440的地址总线和数据总线完全是分开的,所以还需要模拟出类似80C51单片机的外部存储器时序才能使用,这样接口连接也不能够直接对应。
SJA1000一般是5V电压供电,而s3c2440一般为3.3V供电,其接口电压最高只能达到3.3V,所以电平也不兼容,要用特殊的转接电路才能实现连接,硬件和软件都增加了很大的难度,因此很难实现功能。
方案二:
由图2.2可以看出,这种方案的硬件实现较为容易,结构也比较简单,整个系统的控制方式为PC机作为人机交互的接口,硬件结构相对简单,SJA1000的设计是基于早期的8051单片机的应用,其接口完全与80C51的外部总线接口兼容,电平也完全兼容,都为5V供电。
上位机界面可以通过常见的编程软件,界面设计容易,且操作简便。
2.1.3硬件方案选择
通过以上两种方案的论证比较,结合本题,选择方案二。
方案二通过PC机进行上位机控制,80C51与PC机串行通信,设置SJA1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。
接收数据是通过中断进行的,CAN总线传输过来的数据经CAN接口芯片PCA82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读取,读取的数据上传送给PC机。
试验表明,CAN总线的结构简洁、数据传输稳定可靠、抗干扰能力强、传输速率可达1Mbit/s同时能有128个从站系统,能满足现场的实时性要求。
2.2硬件设计
1.芯片介绍
SJA1000:
SJA1000是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN它是PHILIPS半导体PCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。
其特性如下:
·和PCA82C200独立CAN控制器引脚兼容
·和PCA82C200独立CAN控制器电气兼容
·PCA82C200模式即默认的BasicCAN模式
·扩展的接收缓冲器64字节先进先出FIFO
·和CAN2.0B协议兼容PCA82C200兼容模式中的
·同时支持11位和29位识别码
·位速率可达1Mbits/s
·PeliCAN模式扩展功能
--可读/写访问的错误计数器
--可编程的错误报警限制
--最近一次错误代码寄存器
--对每一个CAN总线错误的中断
--具体控制位控制的仲裁丢失中断
--单次发送无重发
--只听模式无确认无活动的出错标志
--支持热插拔软件位速率检测
--验收滤波器扩展4字节代码4字节屏蔽
--自身信息接收自接收请求
·24MHz时钟频率
·对不同微处理器的接口
·可编程的CAN输出驱动器配置
·增强的温度适应-40~+125℃
6N137:
高速光隔,最高速度10Mb/s,用于保护CAN控制器。
PCA82C250:
CAN总线收发器,是CAN控制器与CAN总线的接口器件,对CAN总线差分式发送。
2.CAN控制器与CPU接口设计
对于CPU来说,CAN控制器是确保双方独立工作的存贮器映象外围设备。
CAN控制器与外部CPU的接口是通过控制器接口逻辑(CIL)实现的,80C51的CPU通过将地址总线(AB)和数据总线(DB)连接到CIL上来完成与CAN控制器之间的信息交换,不需要专门的控制总线(CB),CPU与PCA82C250之间的状态、控制和命令信号的交换在CAN控制器中完成。
SJA1000与单片机的接口电路如图2.3所示。
3.CAN控制器工作电路的连接
为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0并不是直接与PCA82C250的TXD和RXD相连,而是通过高速光隔6N137后与PCA82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离。
若PCA82C250处于CAN总线的网络终端,总线接口部分需加一个120欧姆的匹配电阻。
CAN控制器工作电路如下图所示:
2.1软件设计方案
CAN总线节点的软件设计主要包括三大部分:
CAN节点初始化、报文发送和报文接收。
熟悉这三部分程序的设计就能编写出利用CAN总线进行通信的一般应用程序。
当然要将CAN总线应用于通信任务比较复杂的系统中,还需详细了解有关CAN总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN总线通信距离和节点数的计算等方面的内容。
SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。
在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。
发送子程序负责节点报文的发送。
发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000发送即可。
接收子程序负责节点报文的接收以及其它情况处理。
接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理。
SJA1000报文的接收主要有两种方式:
中断接收方式和查询接收方式,两种接收方式编程的思路基本相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。
3系统硬件设计
3.1CAN总线介绍
CAN全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一。
最初CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。
比如发动机管理、系统变速箱控制器、仪表装备中,均嵌入CAN控制装置。
一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。
实际应用中,节点数目受网络硬件的电气特性所限制。
例如当使用PhilipsPCA82C250作为CAN收发器时,同一网络中允许挂接110个节点。
CAN可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易,另外硬件的错误检定特性也增强了CAN的抗电磁干扰能力。
CAN是一种多主方式的串行通讯总线。
基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。
当信号传输距离达到10Km时,CAN仍可提供高达50Kbit/s的数据传输速率。
由于CAN总线具有很高的实时性能,因此CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
3.2从站CAN总线接口电路
目前广泛流行的CAN总线器件有两大类:
一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8SC582及16位微控制器87C196CA/CB等。
我们选用PHILIPS公司的SJA1000CAN控制器以及82C250总线收发器,见图1。
主要是考虑到SJA1000支持CAN2.0A/B规约。
而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。
PHILIPS公司的SJA1000是符合CAN2.0B协议的总线控制器,它是应用于汽车和一般工业环境的独立CAN总线控制器。
由于硬件和软件的兼容它将会替代PCA82C200,它与PCA82C200相比具有更先进的特征因此特别适合于轿车内的电子模块传感器制动器的连接和通用工业应用中特别是系统优化系统诊断和系统维护时特别重要。
SJA1000具有完成CAN通信协议所要求的全部特性。
经过简单总线连接的SJA1000可完成CAN总线的物理层和数据链路层的所有功能。
其硬件与软件设计可兼容基本CAN模式(BasicCAN)和新增加的增强CAN模式(PeliCAN)CAN2.0B协议。
CAN总线的硬件连接图如图3.2所示
3.3硬件模块说明
CAN总线模块由一个CAN总线控制器SJA1000和一个CAN收发器PCA82C250组成,它们共同构成一个CAN节点。
模块的电源由接口挂箱上的接口插座提供。
模块上的RESET、INT、TX0、RX0插孔分别对应于SJA1000芯片上的相应引脚。
模块上带有上电复位电路,也可通过RESET插孔进行手动复位,只需在RESET上加上负脉冲。
模块上提供两个RJ45接口和一组“CANH、CANL”插孔接口,这三组接口是完全一致的。
对于近距离CAN模块之间的通讯,可将各模块的“CANH、CANL”插孔用导线连接;对于远距离CAN模块之间的通讯,则可用双绞线连接各RJ45接口。
每个CAN模块上都有一组终端电阻接口,即“A、B”插孔。
当总线上只有两个CAN节点时,终端电阻可不接。
如总线上的CAN节点数为3个或3个以上时,必须有一个而且只能有一个CAN模块接上终端电阻。
具体接法为:
将A插孔和CANL插孔、B插孔和CANH插孔分别用导线连接。
3.4CAN电路接线
两个CAN模块分别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 网络通讯 实验 课程设计