




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录绪论11 CAN总线技术规范及nRF240131.1 CAN的基本概念31.1.1 CAN协议的特点31.1.2 CAN节点的层结构41.1.3 ISO标准化的CAN协议41.2 CAN节点的分层结构51.3 报文传送及其帧结构61.3.1 帧格式与帧类型61.3.2 数据帧61.3.3 远程帧71.3.4 错误帧71.3.5 过载帧81.3.6 帧间空间81.4 错误类型91.5 无线收发芯片nRF240192 系统方案设计102.1系统总体框图设计102.2 CAN总线主控机节点设计102.3 CAN通信模块设计113 硬件设计123.1电源电路123.2 RS-232下载接口电路123.3 微处理器基本系统133.4 CAN通信接口电路133.4.1 CAN通信接口电路方案论证133.4.2 SJA1000 CAN控制器的介绍143.4.3 PCA82C250 CAN总线驱动器介绍153.4.4 CAN通信接口硬件电路163.5 无线收发模块173.5.1 nRF2401芯片结构及引脚说明173.5.2 nRF2401的工作模式183.5.3 nRF2401硬件电路设计194 系统软件总体设计204.1 系统软件总体结构204.2 CAN通信程序模块214.2.1 CAN网络通信规则及自定协议214.2.2 CAN节点的初始化224.2.3 发送报文与接收报文224.3 无线收发软件设计234.3.1 nRF2401初始化配置234.3.2 nRF2401无线收发通信协议234.3.3 nRF2401发送和接收数据245 系统调试与结果分析255.1 单元模块调试与故障分析255.1.1 显示模块电路255.1.2 CAN通信电路255.1.3 无线收发模块电路255.2 整机调试265.3 系统整体通信测试与结果分析265.3.1 CAN总线通信测试与结果分析265.3.2 无线收发系统测试与结果分析285.3.3 CAN总线与无线收发系统测试与结果分析28结论29参考文献30附件A 实物图31附件B CAN节点电路原理图31附件C 程序清单32致 谢40CAN总线与无线数据收发设计摘 要在当今的工业现场总线技术中,CAN总线技术凭借其实现数据通信的高可靠性、实时性和灵活性等优点,广泛运用于各个领域;无线数据通信网络的发展,使数据传输更加方便。本文提出了一种基于CAN总线与无线数据收发的系统,给出了系统的设计方案。系统采用STC89C52单片机作为主控制芯片,在CAN总线通信接口模块中,CAN总线控制器选用Philips公司的SJA1000,总线驱动器采用了PCA82C250接口芯片,CAN总线通信数据采用双绞线传输。无线数据收发系统选用射频芯片nRF2401。介绍了CAN总线及无线数据收发的性能及特点,提出了一种基于STC89C52的智能节点与无线数据收发相结合的系统, 给出了其软硬件设计方案,并对CAN接口中断处理、无线数据传输以及CAN通用应用层协议的开发等关键技术问题进行了重点研究,同时对设计中的难点及实现过程中应注意的问题进行了比较详细的介绍。经系统测试,该系统使用方便、工作可靠性较高,达到了设计要求,具有一定的参考和应用价值。【关键词】 CAN总线 智能节点 无线数据收发 nRF2401 STC89C52 The Design Of CAN Bus and Wireless Data TransceiverAbstractIn the now industry field bus technology, the CAN bus technology relies on its merit of redundant reliability. timeliness and Nimble realization and so on in the data communication aspect, widely utilizes to each domain. With the development of wireless data communication network, data transfer becomes more convenient. This paper, which are based on CAN bus and wireless data transceiver system, gives the system design. System uses STC89C52 microcontroller as the main control chip, in the CAN bus communication interface module, CAN bus controller selected Philips Corporation SJA1000, bus driver using PCA82C250 interface chip, CAN bus communication data transmission using twisted pair. Wireless Data Transceiver System selected the RF chip nRF2401. This article describes the CAN bus and wireless data transceiver performance and features.It is proposed based on STC89C52 intelligent nodes and a combination of wireless data transceiver system, and gives its software and hardware design.On the CAN interface, interrupt handling, wireless data transmission as well as general-purpose CAN application layer protocol development and other key technical problems have been conducted focused research. The same time, difficulties in the design and implementation of the process should pay attention to other questions of a more detailed description .After system testing, the system is easy to use, and with high operational reliability. It meets the design requirements, with some reference and application value. 【KEYWORD】 CAN-bus Smart node Wireless Data TransceivernRF2401 STC89C5242绪论随着计算机科学的发展和以其为核心的4C技术(计算机技术、自动控制技术、通讯技术、CRT显示技术)越来越深入的应用到工业生产的各个环节,并引起了自动化系统结构的优化和变革,逐步形成了以网络集成自动化为基础的控制系统1。现场总线就是顺应这一趋势发展起来的。随着现场总线技术的不断发展和世界很多大公司连续的技术投入,而现场总线控制系统(field control system,FCS)在数据交换的实时性、准确性等方面取得了突破性的进展。CAN(Controller Area Network)控制器局域网是一种串行数据通信协议,属于工业现场总线的范畴2。具体来讲,CAN总线是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,它的直接通信距离最大可达10 km,最高通信速率可达1Mb/s;CAN总线接口实现CAN总线协议的物理层和数据链路层功能,可完成对数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等多项工作;采用CRC检验提供错误处理功能,保证了数据传输的可靠性;CAN总线网络上的节点信息可分成不同的优先级,满足不同的实时要求;另外CAN总线通信采用短帧格式,每帧数据字节数最多为8个,可满足工业领域控制命令和状态数据的要求3。同时,8个数据字节的短帧也不会占用总线时间过长,从而保证了通信的实时性;CAN总线在仲裁技术方面采用优先级判别法,大大节省了总线冲突处理的时间,即使网络负载很重也不会出现数据堵塞。与一般的通信总线相比,CAN 总线的数据通信具有更突出的可靠性、实时性和灵活性。正因为CAN总线在工业应用方面具有的众多优点,使得它越来越受到工业界的重视,并被公认为最有发展前途的4 种现场总线之一。最早运用于汽车工业,随着CAN总线技术的不断发展,其运用领域也得到不断的扩展,如今,在机器人、数控机床、自动化仪表、航空工业等领域,都能看到CAN的影子。近年来随着射频技术、集成电路、无线通信技术的迅速发展,使得短距离射频通信技术成为一种热门技术,并已广泛应用于实际中4。而对于无线方案适用于布线繁杂或者不允许布线的场合,目前在遥控遥测、门禁系统、无线抄表、小区传呼、工业数据采集、无线遥控系统、无线鼠标键盘等应用领域,都采用了无线方式进行远距离数据传输。目前,蓝牙技术和Zigbee技术已经较为成熟的应用在无线数据传输领域,形成了相应的标准5。然而,这些芯片相对昂贵,同时在应用中,802.15解决方案需要做很多设计和测试工作来确保与标准的兼容性,如果目标应用是点到点的专用链路,如无线鼠标到键盘,这个代价就显得毫无必要。挪威Nordic公司推出的工作于2.4GHzISM频段的nRF2401射频芯片。与蓝牙和Zigbee相比,nRF2401射频芯片没有复杂的通信协议,它完全对用户透明,同种产品之间可以自由通信。更重要的是,nRF2401射频芯片比蓝牙和Zigbee所用芯片更便宜。本设计采用单片机STC89C52控制CAN节点,实现CAN智能节点之间的局域网通信,同时通过无线数字传输芯片nRF2401,进行数据双向远程传输与控制,两端采用半双工方式通信。实现了CAN节点向任一节点任一时间发送或接收数据,同进远程服务端可向CAN总线中任一节点读取或发送数据,实现工业远程控制。该系统在数据通信方面具有突出的可靠性、实时性和灵活性,同时具有成本低,软件设计简单等优点。可广泛用于工业自动化生产中,如在机器人、数控机床、自动化仪表、航空工业,汽车控制,无线控制,远程智能化管理等领域。1 CAN总线技术规范及nRF2401早在20世纪80年代初,Bosch公司的工程人员就在探讨现有的串行总线系统运用于轿车的可能性,因为还没一个网络协议能完全满足洗车工程的要求。1983年德国BOSCH公司开始研究新一代的汽车总线,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。1991年由Bosch公司制订并发布了CAN技术规范(Version2.0),CAN2.0技术规范包含A和B两部分。1993年国际标准(ISO11898)正式出版。1995年国际标准(ISO11519)进行了扩展,从而能够支持29位CAN标识符。CAN2.0A支持标准的11 位标识符。而CAN2.0B同时支持标准的11位标识符和扩展的29位标识符6。CAN2.0规范的目的是为了在任何两个基于CAN-bus的仪器之间建立兼容性,定义了传输层,并定义了CAN协议在周围各层当中所发挥的作用。1.1 CAN的基本概念CAN是Controller Area Network的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。 CAN具有的属性:1)报文的优先权;2)保证延迟时间;3)设置灵活;4)时间同步的多点接收;5)系统内数据的一致性(System Wide Data Consistency);6)多主机(对等);7)错误检测和错误标定;8)只要总线处于空闲,就自动将破坏的报文重新传输;9)将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭CAN错误的节点。1.1.1 CAN协议的特点1)通信方式灵活,可以多主方式工作, 网络上任意一个节点均可以在任意时刻主动向网络上的其他节点发送信息,不分主从。2)CAN节点只需对报文的标识符滤波即可实现点对点、点对多点及全局广播方式发送和接收数据, 其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134us内传输,可以满足不同的实时要求。3)CAN总线通信格式采用短帧格式,每帧字节数最多为8个字节,可满足一般工业领域中控制命令、工作状态及测试数据的要求,同时,8个字节不会占用总线时间过长,保证了通信的实时性。4)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息出现冲突时,优先级低的节点会主动退出数据发送,而优先级高的节点可不受影响地继续传输数据,大大节省了总线冲突仲裁时间,在网络重载的情况下也不会出现网络瘫痪。5)直接通信距离最大可达10Km (速率在5Kb/s以下),最高通信速率可达1 Mb/s (此时距离最长为40m);节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。6)CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下具有自动关闭输出功能,使总线上其他节点的操作不受影响。1.1.2 CAN节点的层结构CAN协议如表1-1所示涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。 表1-1 ISO/OSI 基本参照模型1.1.3 ISO标准化的CAN协议CAN协议经ISO标准化后ISO11898标准和ISO11519-2标准两种。ISO11898 和ISO11519-2标准对于数据链路层的定义相同,但物理层不同。(1)ISO11898是通信速度为125kbps-1Mbps的CAN高速通信标准。目前,ISO11898追加新规约后,成为ISO11898-1新标准。(2) ISO11519 是通信速度为125kbps以下的CAN低速通信标准。ISO11519-2是ISO11519-1追加新规约后的版本。CAN协议和ISO11898及ISO11519-2标准的范围见表1-2。表1-2 CAN协议和ISO11898及ISO11519-2标准的范围1.2 CAN节点的分层结构为了使设计透明和执行灵活,遵循OSI参考模型,CAN分为数据链路层(包括逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)和物理层,而在CAN 2.0 A中,逻辑链路控制子层(LLC)部分和媒体访问控制子层(MAC)的服务和功能被描述为“目标层”和“传送层”。CAN的分层结构和功能如图1-1所示。(1)物理层定义信号是如何实际地传输的因此涉及到位定时、位编码/解码、同步的解释。本技术规范没有定义物理层的驱动器/接收器特性,以使允许根据它们的应用,对发送媒体和信号电平进行优化。(2)数据链路层,含以下两个子层:1、介质访问控制子层MAC(Medium Access Control)是CAN协议的核心。它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。MAC子层负责报文分帧、仲裁、应答、错误检测和标定。MAC子层也受一个名为“帮障界定的管理实体监管。此故障界定为自检机制,以便把永久故障和智短时扰支区别开来。2、逻辑链路控制子层LLC(Logical Link Control)涉及报文滤波、过载通知、以及恢复管理。图1-1 CAN的分层结构和功能1.3 报文传送及其帧结构1.3.1 帧格式与帧类型帧格式有2种不同的帧格式,不财之处为标识符的长度不同:含有11位标识符的帧称之为标准帧,而含有29位标识帧的为扩展帧。报文传输有以下4个不同的帧类型:- 数据帧: 数据帧携带数据从发送器至接收器。- 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。- 错误帧:任何单元检测到总线错误就发出错误帧。- 过载帧:过载帧用以相邻数据帧或远程帧之间提供附加的延时。数据帧(或远程帧)通过帧间空间与前述的各帧分开。1.3.2 数据帧数据帧由7个不同的位域组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域、帧结尾。数据域的长度可以为0。报文的数据帧的结构如图1-2所示。图1-2 报文的数据帧结构图1.3.3 远程帧通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。远程帧由6个不同的位域组成:帧起始、仲裁域、控制域、CRC域、应答域、帧末尾。与数据帧相反,远程帧的RTR位是“隐性”的。它没有数据域,数据长度代码的数值是不受制约的(可以标注为容许范围里0到8的任何数值)。此数值是相应于数据帧的数据长度代码。远程帧组成如图1-8。图1-8 远程帧结构1.3.4 错误帧错误帧由两个不同的域组成。第一个域用作为不同站提供的错误标志的叠加。第二个域是错误界定符。帧组成如图1-9所示。图1-9 错误帧结构为了能正确地终止错误帧,一“错误被动”的节点要求总线至少有长度为3 个位时间的总线空闲(如果“错误被动”的接收器有本地错误的话)因此,总线的载荷不应为100%。有两种形式的错误标志,主动错误标志和被动错误标志。主动错误标志由6个连续的“显性”位组成。被动错误标志由6个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。检测到错误条件的“错误主动”的站通过发送主动错误标志,以指示错误。错误标志的形式破坏了从帧起始到CRC界定符的位填充规则,或者破坏了应答域或帧末尾域的固定形式。所有其他的站由此检测到错误条件并与此同时开始发送错误标志。因此,“显性”位(此“显性”位可以在总线上监视)的序列导致一个结果,这个结果就是把各个单独站发送的不同的错误标志叠加在一起。这个顺序的总长度最小为6个,最大为12个位。检测到错误条件的“错误被动”的站试图通过发送被动错误标志,以指示错误。错误被动的站等待6个相同极性的连续位(这6个位处于被动错误标志的开始)。当这6个相同的位被检测到时,被动错误标志的发送就完成了。错误界定符包括8个隐性的位。错误标志传送了以后,每一站就发送隐性的位并一直监视总线直到检测出一个隐性的位为止。然后就开始发送7位以上的隐性位。1.3.5 过载帧过载帧包括两个位域:过载标志和过载界定符。组成如图1-10所示:图1-10 过载帧的结构有两种过载条件都会导致过载标志的传送:1. 接收器的内部条件(此接收器对于下一数据帧或远程帧需要有一延时)。2. 间歇域期间检测到一“显性”位。由过载条件1 而引发的过载帧只允许起始于所期望的间歇域的第一个位时间开始。而由过载条件2引发的过载帧应起始于所检测到“显性”位之后的位。1.3.6 帧间空间数据帧或远程帧与其前面帧的隔离是通过帧间空间实现的,无论其前面的帧为何类型(数据帧、远程帧、错误帧、过载帧)。所不同的是,过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。帧间空间包括间歇域、总线空闲的位域。如果“错误被动”的站已作为前一报文的发送器时,则其帧空间除了间歇、总线空闲外,还包括称作挂起传送的位域。对于不是“错误被动”的站,或者此站已作为前一报文的接收器。非“错误被动”帧间空间结构和“错误被动”帧间空间结构如图1-11、图1-12所示。图1-11 非“错误被动”帧间空间结构图1-12 “错误被动”帧间空间结构1.4 错误类型1、位错误:站单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误。但是在仲裁域的填充位流期间或ACK间隙发送一“隐性”位的情况是例外的。此时,当监视到一“显性”位时,不会发出位错误。当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。2、填充错误:如果在使用位填充法进行编码的信息中,出现了第6 个连续相同的位电平时,将检测到一个填充错误。3、CRC错误:CRC序列包括发送器的CRC计算结果。接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。4、形式错误:当一个固定形式的位域含有1个或多个非法位,则检测到一个形式错误。5、应答错误:只要在ACK 间隙(ACK SLOT)期间所监视的位不为“显性”,则发送器会检测到一个应答错误。1.5 无线收发芯片nRF2401nRF2401芯片工作于2.4GHz全球开放ISM频段125个频道,满足多点通信和跳频通信需要,工作速率01 Mb/s ,最大发射功率0dBm,外围元件极少,内置硬件CRC(循环冗余校验) 和点对多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器。输出功率、传输速率和频道选择可通过三线串行接口编程配置。nRF2401芯片最突出的特点是有两种通信模式:Direct Mode (直接模式)和Shock-Bur st TM Mode(突发模式)。直接模式的使用与其它传统射频收发器的工作一样,需要通过软件在发送端添加校验码和地址码,在接收端判断是否为本机地址并检查数据是否传输正确。突发模式使用芯片内部的先入先出堆栈区,数据可从低速微控制器送入,高速(1Mb/s) 发射出去,地址和校验码硬件自动添加和去除,这种模式的优点是:(1) 可使用低速微控制器控制芯片工作;(2) 减小功耗;(3) 射频信号高速发射,抗干扰性强;(4) 减小整个系统的平均电流。该芯片具有接收灵敏度高、外围电路少、发射功率低、传输速率高、低功耗等优点。nRF2401适用于多种无线通信的场合,如无线鼠标、遥控开锁、遥控玩具等。2 系统方案设计2.1系统总体框图设计根据设计任务要求,系统由一个主控机和若干个CAN节点执行器组成,它们都挂接在双绞线上,组成一个CAN总线通信局部通信网络,CAN总线通信网络中的主控机安装无线数据收发器nRF2401,与另一个控制中心组成无线通信网络,整个系统的关键任务是实现CAN总线内部局域网通信以及无线通信网络的通信。其系统总体结构框图发图2-1所示。图2-1 系统总体框图2.2 CAN总线主控机节点设计CAN总线主控机系统由单片机最小系统、CAN总线通信接口、实时显示、人机接口模块和串口通信下载模块及无线通信模块组成。CAN总线通信接口通过双绞线收发数据,实现和执行器的连通。结构框图如图2-2所示:本主控机负责与无线通信网络进行数据传输,同时也是CAN总线网络中的一个节点,在整个系统中起着主导作用,无线通信模块采用2.4G的nRF2401通信芯片,而CAN总线通信模块,刚采用SJA1000和PCA82C250,通过单片机控制,实现与其他节点通信。2.3 CAN通信模块设计CAN通信模块是本次设计中的核心技术,它负责系统中主控机和执行器之间的数据通信。单个CAN总线节点由单片机、CAN总线控制器和高速光电耦合器及总线驱动器组成,可编程控制,所以称之为智能节点,结构如图3所示,设计中CAN通信模块采用了独立式的CAN控制器,数据通过对控制器编程写入控制器芯片的发送缓冲区里发送出去,目的节点则负责把数据接收到数据接收缓冲区里,再通过CAN总线接口和单片机之间的数据总线,传递给单片机进行处理。设计方案如图2-3所示。图2-2:CAN总线主控机节点框图图2-3 CAN通信模块(单节点)结构与CAN总线系统结构图3 硬件设计3.1电源电路电源是整个系统的能量来源,它直接关系到系统能否运行。在本系统中需要用到5V和3.3V的电源,因此电路中需选用稳压芯片LM7805和AMS1117 3.3V稳压芯片;其LM7805最大输出电流为1.5A,能够满足系统的要求,电路如图3-1所示。图3-1 电源电路3.2 RS-232下载接口电路RS-232通信接口电路原理图如图3-2所示:由于PC机的通信口为RS-232电平标准,而单片机则是TTL电平,所以要实现单片机与PC机串行通信,就需采用MAX232将TTL电平转换为RS-232电平。RS-232标准的传输速率只能达到20kb/s,最大传输距离15m。但这里基本能满足本次设计要求。该接口电路,方便设计中的程序调试,电路简单实用。图3-2 RS-232下载接口电路3.3 微处理器基本系统微处理控制系统采用了STC公司生产的89C52单片机,CAN控制器的片选为P2.7,CAN控制器的中断输出接在单片机的外部中断INT1。复位电路和晶振电路是89C52工作所需的最简单外围电路。同时该基本系统还包含了显示模块和独立按键模块,通过按键模块能向CAN网络中任一节点发送或读取数据,电路设计简单,其中显示电路选用LCD1602,显示直观、外圈电路简单。微处理器基本系统电路原理图如图3-3所示:图3-3 微处理器基本系统3.4 CAN通信接口电路3.4.1 CAN通信接口电路方案论证方案一:集成芯片解决方案集成CAN总线接口的单片机很多,有TI公司出品的DSP芯片TMS320C2000系列,Motorola公司生产的68HC05X4等,常用的是Philips公司生产的P8xC591集成芯片。P8xC591不但集成了CAN控制器,还集成了其它相关功能,如A/D转换、脉宽调制输出PMW0、看门狗等。这无疑大大简化了应用系统的硬件设计,系统可靠性也有很大提高,但同时也存在应用灵活性不够等问题,而且它需要专用的开发工具,也给系统开发带来不便。方案二:独立式控制器解决方案本方案中,采用89C52微处理器作为系统的控制核心,再扩展CAN通信接口,其中CAN通信控制器采用Philips公司生产SJA1000,它与单片机直接接口,电路简单;CAN总线驱动器采用PCA82C250,本方案具有编程灵活,通信协议可扩展等特点。经比较,考虑到方案二在设计时更灵活方便,可以采用通用的开发工具,性价比很高,而且89C52扩展其它接口也更加自由,技术也很成熟,所以采用第二种方案3.4.2 SJA1000 CAN控制器的介绍SJA1000是一种独立的CAN总线控制器。PHILIPS半导体公司将它作为PCA82C200CAN控制器(Basic CAN)的替代产品。SJA1000在原来的BasicCAN工作模式上又增加了一种新的工作模式(Peli CAN),这种模式支持具有很多新特性的CAN2.0B协议7。可以通过时分频器中的CAN方式位来选择工作模式,本设计采用的是PeliCAN模式。1、BasicCAN 和PeliCAN 方式的区别在PeliCAN方式下,SJA1000有一个重新设计的含很多新功能的寄存器组,SJA1000包含PCA82C200中的所有位,同时增加了一些新的功能位。2、SJA1000的基本特性* 具有64字节长度的接收队列;* 符合CAN2.0A和CAN2.0B协议;* 16个收发信息缓冲器,支持11位或29位标识符,支持多级信息缓冲器结构;* 读/写访问错误计数器,可编程的错误限制报警,最近一次的误码寄存器;* 每一个CAN总线错误的错误中断;* 由功能位定义的仲裁丢失中断;* 一次性发送(当错误或仲裁丢失时不重发);* 只听模式(CAN总线监听,无应答,无错误标志);* 支持热插拔(无干扰软件驱动位速检测);* 硬件禁止CLKOUT输出;* 支持数据帧和远程帧的发送和接收;* 支持满位比较、满位屏蔽和位屏蔽验收三种验收标识选择方式;* 两个验收标识寄存器支持标准帧或扩展帧格式;* 波特率从10Kbps1Mbps可编程。3、SJA1000 引脚介绍图4-4是SJA1000引脚图,各引脚功能如下:11脚(MODE):模式选择输入(1:Intel 模式;0:=Motorola模式)。13、14脚(TX0、TX1):为输出驱动器0、输出驱动器1到物理总线的输出端。19、20脚(RX0、RX1):从物理CAN总线输入到SJA1000的输入比较器的输入端。 16脚(INT):中断输出,用于中断微控制器。INT在内部中断寄存器各位都置位时, 图4-4 SJA1000 引脚图低电平有效。INT是开漏输出。 7脚(CLKOUT):时钟信号输出端,SJA1000产生的时钟输出信号提供给微控制器,时钟信号来源于内部振荡器且通过编程驱动,时钟控制寄存器的时钟关闭位可禁止该引脚。2、1,28-23脚(AD7AD0):数据/地址复用总线;3脚(ALE/AS):Intel模式/Motorola模式的地址锁存信号端;5脚(RD)/E)、6脚(WR):读写控制信号端;4脚(CS):片选信号输入端,低电平有效;9、10脚(XTAL1、XTAL2):振荡器输入、输出端。外部信号从XTAL2 输入到振荡器放大电路, XTAL2 是振荡器放大电路的输出,使用外部振荡信号时左开路输出;22、18、12脚(VDD1、VDD2、VDD3):5V电压端;8、2、15脚(VSS1、VSS2、VSS3):与上述电压端相对的接地端。3.4.3 PCA82C250 CAN总线驱动器介绍PCA82C250是CAN协议控制器和物理总线的接口,它可以提供总线的差动发送能力和接收能力,具有高速性(最高可达1 Mbps),具有抗瞬间干扰保护总线的能力,具有降低射频干扰的斜率控制,最多可挂110个节点8。1、82C250的基本特性如下: 与ISO11898标准完全兼容; 高速率(最高可达1Mbps); 采用斜率控制,降低射频干扰; 过热保护; 总线与电源及地之间的短路保护; 低电流待机模式; 具有抗汽车环境下的瞬间干扰,保护总线能力; 未上电节点不会干扰总线;2、芯片管脚说明:芯片引脚如图3-5所示:1、4脚(TXD、RXD) 发送、接收数据输入端;5脚(Vref)参考电压输出端;6脚(CANL)低电平CAN 电压输入/输出;7脚(CANH)高电平CAN 电压输入/输出;8脚(Rs) 斜率电阻输入端; 图3-5 PCA82C250引脚图通过在地和PCA82C250的8脚(Rs)之间接不同阻值的电阻,PCA82C250可选择三种不同的工作方式:高速、斜率控制和待机,如表3-1 所列。表3-1 RS 选择的三种工作方式在高速工作方式下,发送器输出晶体管简单地以尽可能快的速度启闭。在这种方式下,不采取任何措施限制上升和下降斜率。建议使用屏蔽电缆以避免射频干扰问题。通过将引脚8接地,可选择高速方式。对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降斜率。上升和下降斜率可通过由引脚8 至地连接的电阻进行控制。斜率正比于引脚8上的电流输出。电阻大小可根据总线通信速度适当调整,一般在16140K之间,本电路电阻值为47K。若引脚8加有高电平,则电路进入低电流待机方式。在这种方式下,发送器被关掉,而接收器转至低电流。由于在待机方式下,接收器是慢速的,因此,第一个报文将被丢失。3.4.4 CAN通信接口硬件电路硬件电路设计图如图3-6 所示图3-6 CAN通信接口硬件电路接线方式:STC89C52SJA1000内部已经有地址锁存功能,所以它的地址/数据端可以和单片机的P0口直接相连。控制信号线WR、RD、ALE直接和89C52的对应口线连接。因为AT89C52是高电平复位,而SJA1000是低电平复位,所以采用单片机的一个引脚直接产生复位信号提供给SJA1000,保证了CAN控制器复位的可靠性,同时可随时复位。SJA1000的CS信号由89C52的P2.7提供,在访问SJA1000时,只要P2.7脚输出低电平,高位地址为7FH。同时,INT接89C52的INT1,接收数据即采用中断方式。为提高可靠性,89C52和SJA1000都各自拥有自己独立的晶振电路。SJA1000 的TX0和RX0与PCA82C250的TXD和RXD连,82C250的CANH和CANL引脚各自通过一个5的电阻与CAN总线相连,起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外,在两根CAN总线输入端和地之间分别接一个防雷击二极管,当两输入端与地之间出现瞬间干扰时,通过防雷击管的放电可以起到一定的保护作用。SJA1000的20引脚RX1在不使用时可接地,配合时钟分频寄存器中的CDR.6(CBP)的置位可使总线长度大大增加9。需要注意的是在CAN 总线两端接有一个120的电阻,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。但实际上只需保证CAN网络中“CAN_H”和“CAN_L”之间的跨接电阻为60即可。3.5 无线收发模块3.5.1 nRF2401芯片结构及引脚说明nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK 滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便9。nRF2401的功能模块如图3-7所示,其引脚功能如表3-2所示。图3-7 nRF2401功能模块图表3-2 nRF2401引脚功能表3.5.2 nRF2401的工作模式nRF2401有工作模式有四种:收发模式、配置模式、空闲模式和关机模式。nRF2401工作模式由PWR_UP、CE、TX_EN 和CS 三个引脚决定,详见表3-3所示。表3-3 nRF2401的工作模式 其中收发模式分为Direct Mode和ShockBur st。前者在片内对信号不加任何处理,与其他射频收发器相同。后者使用片内FIFO堆栈,数据从MCU低速送入,但高速发射,而且与射频协议相关的所有高速信号处理都在片内进行。例如,nRF2401在ShockBur st收发模式下自动处理字头和CRC校验码,在接收时自动把包头和CRC校验码移去;在发送数据时自动加上字头和CRC校验码。本文采用ShockBur st TM收发模式,该模式系统具有编程简单,稳定性高等特点。ShockBur st TM的配置字使nRF2401能够处理射频协议,在配置完成后,在nRF2401工作过程中,只需改变其最低一个字节中的内容,以实现接收模式和发送模式之间切换。3.5.3 nRF2401硬件电路设计硬件电路连接实现单片机与nRF2401芯片的接口连接。发送端与接收端硬件连接几乎一样,具有通用性,可以实现半双工通信。单片机使用的是STC89C52 ,成本低,控制简单,容易扩展。硬件电路如图3-8所示。图3-8 nRF2401硬件电路需要注意的是,nRF2401的供电电压范围为1.93.6V ,但引脚可直接收单片机5V的I/O口相联,但为了使nRF2401更好的工作,最好进行分压处理。4 系统软件总体设计4.1 系统软件总体结构 根据设计要求,系统实现功能及软件总体设计如图4-1所示;图4-1 系统软件总体设计框图系统包含两大部分,无线服务终端和CAN总线通信系统,无线服务终端由RNF2401和STC89C52组成,可以向CAN总线通信网络中的任一节点发送和读取数据,CAN总线通信系统,由3个节点组成,一个节点上接无线收发器RNF2401负责与无线终端系统通信,另外2个节点由图所示的单片机CAN总线收发系统构成。其中无线服务终端和CAN通信系统的总体软件设计流程图分别如图4-2、图4-3所示。图4-2 无线服务终端软件设计流程图4-3 CAN总线主机软件设计流程4.2 CAN通信程序模块4.2.1 CAN网络通信规则及自定协议CAN总线为多主工作方式,网络上任一节点均可在任意时刻主动向网络上其他节点发送信息而不分主从,通信方式灵活10。为禁止总线冲突,CAN总线采用非破坏性总线仲裁技术,根据需要将各个节点设定为不同的优先级,并以标识符ID标定,其值越小,优先级越高。总线的节点之间可以进行实时相互通信,当1个节点需要接收另1个节点的数据时,只需把其代码寄存器的内容设置成和另1节点的标识符一致即可。如果对于标识符和其代码寄存器的内容设置不一致,则节点所发的数据不予理会。发送报文和接收报文部分实现CAN总线节点之间通信,在总线基本规范的基础上,需要根据应用制订本系统的通信协议。报文格式采用的是扩展帧格式,数据区最多为8字节,所以程序中定义了13个发送缓冲变量单元TX_buffer13和13个接收缓冲变量单元RX_buffer13,对应着控制器SJA1000里的发送和接收缓冲区。结合各个缓冲区的规定:制订了自己的通信协议。主控机与执行器的通信数据(即报文设置)格式如下:TX_buffer0: 帧信息 决定采用帧格式和数据长度定义;TX_buffer14:分别为标识码1、2、3、4,作为节点的标识地址;TX_buffer5:本节点地址;TX_buffer6:1代表请求对方发送数据,0表示向对方发送数据;TX_buffer7、TX_buffer8:发送数据低位、高位;TX_buffer9: 0:反馈数据,1:本节点数据;TX_buffer10:无线中断数据请求标志位1表示有,还有两位数据没用。4.2.2 CAN节点的初始化CAN总线系统的初始化主要是设置CAN的通信参数,需要初始化的CAN控制寄存器有:模式寄存器、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。值得注意的是:这些寄存器只能在CAN控制器处于复位状态下才可写访问。SJA1000初始化流程图如图4-4所示。如图4-4 SJA1000初始化流程图4.2.3 发送报文与接收报文发送报文的过程是:发送报文程序把数据存储区中待发送的数据取出,加上标识符等信息,组成信息帧,等发送缓冲区清空后,则将信息帧发送到CAN控制器的发送缓冲区。在接收到主机的发送请求后,发送程序启动发送命令,数据信息则发送出去。信息从CAN控制器发送到总线是由CAN控制器自动完成的。报文发送程序流程图见图4-5。相反,接收报文的过程是:信息从CAN总线传到CAN控制器的接收缓冲区,其过程也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取信息,并将其存储在数据存储区RX_bufferi中。需要提到的是,接收方式采用了中断接收。报文接收程序流程图见图4-6。图4-5 报文发送程序流程图 图4-6 报文接收程序流程图4.3 无线收发软件设计4.3.1 nRF2401初始化配置nRF2401的初始化包括对射频模块的收发模式、收发信道频率、传输的数据速率、地址、CRC校验、芯片发射功率、晶振频率进行配置。在此设计中,使用通道1(Channel1)在ShockBurstTM模式下进行数据传输,数据速率250kbps,收发信道频率2402MHz,晶振频率16MHz,芯片发射功率0dBm,配置字格式见表4-1。发送端配置字数据为0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x83,0x4f,0x64。4.3.2 nRF2401无线收发通信协议无线系统要实现与CAN网络的通信,必须根据应用制订本系统的通信协议。根据实际要求制订了自己的通信协议,每个字节定义如下: send_data0:要发送(或反馈)数据的CAN节点地址;send_data1:1 代表向节点发送数据,0代表取节点数据;send_data2:发送(或接收)数据低位;send_data3:发送(或接收)数据高位;send_data4:该字节未用。表4-1 nRF2401配置字4.3.3 nRF2401发送和接收数据在发送端,首先使其进入发送工作模式(CE=1),首先配置接收端地址和有效数据,然后启动发送(CE=0),发送端等待数据发送完成。当发送完成后模块进入接收状态,接收接收端的应答数据。如果接收到数据则显示相关数据及进行相应处理,发送端程序流程图如图4-7所示。在接收端,在主循环里一直判断DR1是否为1,为1则表示接收到数据,根据通信协议,进行相应处理。接收端程序流程图如图4-8所示。图4-7 报文发送程序流程图 图4-8 报文接收程序流程图 5 系统调试与结果分析系统电路模块及编程芯片很多,结合这一特点,调试采用硬件调试和软件调试结合起来进行。在确定了整体方案后,开始制作硬件单元电路,调试时把整个系统分解成各个小调试,然后根据需要各部分结合起来调试,最后才进行整体调试。这样结构清晰,也比较容易发现问题所在,节约了大量调试时间,提高了调试效率。单元电路调试主要分为显示按键电路模块调试、CAN通信模块电路调试及无线收发模块调试。5.1 单元模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省成都市崇庆中学2024-2025学年初三5月阶段性检测试题语文试题含解析
- 内蒙古化工职业学院《生物工程专业综合实验》2023-2024学年第二学期期末试卷
- 浙江宇翔职业技术学院《机器人技术实践创新》2023-2024学年第二学期期末试卷
- 湛江市年模拟数学试题(二)
- 轮胎仓库消防安全培训
- 2025电子商务运营技术外包服务合同(乙方提供)
- 2025大连市家具销售合同范本
- 2025租赁合同-汽车租赁合同
- 2025标准租赁合同范本全新版
- 2025年广州市房屋租赁合同书范本
- 2024年商铺租赁终止合同标准范文(二篇)
- 骨科查体-骨科体格检查-四肢(精制医学)
- CT设备维保项目实施方案
- 约克冷水机组年度维护保养方案
- 医院年度文化建设工作方案范文
- 吊装式风机安装作业指导书
- 物资拆装搬运服务方案
- 高一数学分层训练AB卷(人教A版2019必修第二册)第九章统计(知识通关详解)【单元测试卷】(原卷版+解析)
- 培养自我认知能力-心理健康教案
- 第九届全国大学生测井技能大赛备赛试题库-上(单选题)
- 建筑制图与识图教学课件:第八章 结构施工图
评论
0/150
提交评论