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