can总线和无线数据收发Word格式文档下载.docx
- 文档编号:22421999
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:59
- 大小:1.02MB
can总线和无线数据收发Word格式文档下载.docx
《can总线和无线数据收发Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《can总线和无线数据收发Word格式文档下载.docx(59页珍藏版)》请在冰豆网上搜索。
3.4.1CAN通信接口电路方案论证13
3.4.2SJA1000CAN控制器的介绍14
3.4.3PCA82C250CAN总线驱动器介绍15
3.4.4CAN通信接口硬件电路16
3.5无线收发模块17
3.5.1nRF2401芯片结构及引脚说明17
3.5.2nRF2401的工作模式18
3.5.3nRF2401硬件电路设计19
4系统软件总体设计20
4.1系统软件总体结构20
4.2CAN通信程序模块21
4.2.1CAN网络通信规则及自定协议21
4.2.2CAN节点的初始化22
4.2.3发送报文与接收报文22
4.3无线收发软件设计23
4.3.1nRF2401初始化配置23
4.3.2nRF2401无线收发通信协议23
4.3.3nRF2401发送和接收数据24
5系统调试与结果分析25
5.1单元模块调试与故障分析25
5.1.1显示模块电路25
5.1.2CAN通信电路25
5.1.3无线收发模块电路25
5.2整机调试26
5.3系统整体通信测试与结果分析26
5.3.1CAN总线通信测试与结果分析26
5.3.2无线收发系统测试与结果分析28
5.3.3CAN总线与无线收发系统测试与结果分析28
结论29
参考文献30
附件A实物图31
附件BCAN节点电路原理图31
附件C程序清单32
致谢40
CAN总线与无线数据收发设计
摘要
在当今的工业现场总线技术中,CAN总线技术凭借其实现数据通信的高可靠性、实时性和灵活性等优点,广泛运用于各个领域;
无线数据通信网络的发展,使数据传输更加方便。
本文提出了一种基于CAN总线与无线数据收发的系统,给出了系统的设计方案。
系统采用STC89C52单片机作为主控制芯片,在CAN总线通信接口模块中,CAN总线控制器选用Philips公司的SJA1000,总线驱动器采用了PCA82C250接口芯片,CAN总线通信数据采用双绞线传输。
无线数据收发系统选用射频芯片nRF2401。
介绍了CAN总线及无线数据收发的性能及特点,提出了一种基于STC89C52的智能节点与无线数据收发相结合的系统,给出了其软硬件设计方案,并对CAN接口中断处理、无线数据传输以及CAN通用应用层协议的开发等关键技术问题进行了重点研究,同时对设计中的难点及实现过程中应注意的问题进行了比较详细的介绍。
经系统测试,该系统使用方便、工作可靠性较高,达到了设计要求,具有一定的参考和应用价值。
【关键词】CAN总线智能节点无线数据收发nRF2401STC89C52
TheDesignOfCANBusandWirelessDataTransceiver
Abstract
Inthenowindustryfieldbustechnology,theCANbustechnologyreliesonitsmeritofredundantreliability.timelinessandNimblerealizationandsooninthedatacommunicationaspect,widelyutilizestoeachdomain.Withthedevelopmentofwirelessdatacommunicationnetwork,datatransferbecomesmoreconvenient.Thispaper,whicharebasedonCANbusandwirelessdatatransceiversystem,givesthesystemdesign.
SystemusesSTC89C52microcontrollerasthemaincontrolchip,intheCANbuscommunicationinterfacemodule,CANbuscontrollerselectedPhilipsCorporationSJA1000,busdriverusingPCA82C250interfacechip,CANbuscommunicationdatatransmissionusingtwistedpair.WirelessDataTransceiverSystemselectedtheRFchipnRF2401.ThisarticledescribestheCANbusandwirelessdatatransceiverperformanceandfeatures.ItisproposedbasedonSTC89C52intelligentnodesandacombinationofwirelessdatatransceiversystem,andgivesitssoftwareandhardwaredesign.OntheCANinterface,interrupthandling,wirelessdatatransmissionaswellasgeneral-purposeCANapplicationlayerprotocoldevelopmentandotherkeytechnicalproblemshavebeenconductedfocusedresearch.Thesametime,difficultiesinthedesignandimplementationoftheprocessshouldpayattentiontootherquestionsofamoredetaileddescription.Aftersystemtesting,thesystemiseasytouse,andwithhighoperationalreliability.Itmeetsthedesignrequirements,withsomereferenceandapplicationvalue.
【KEYWORD】CAN-busSmartnodeWirelessDataTransceiver
nRF2401STC89C52
绪论
随着计算机科学的发展和以其为核心的4C技术(计算机技术、自动控制技术、通讯技术、CRT显示技术)越来越深入的应用到工业生产的各个环节,并引起了自动化系统结构的优化和变革,逐步形成了以网络集成自动化为基础的控制系统[1]。
现场总线就是顺应这一趋势发展起来的。
随着现场总线技术的不断发展和世界很多大公司连续的技术投入,而现场总线控制系统(fieldcontrolsystem
FCS)在数据交换的实时性、准确性等方面取得了突破性的进展。
CAN(ControllerAreaNetwork)控制器局域网是一种串行数据通信协议,属于工业现场总线的范畴[2]。
具体来讲,CAN总线是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,它的直接通信距离最大可达10km,最高通信速率可达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总线中任一节点读取或发送数据,实现工业远程控制。
该系统在数据通信方面具有突出的可靠性、实时性和灵活性,同时具有成本低,软件设计简单等优点。
可广泛用于工业自动化生产中,如在机器人、数控机床、自动化仪表、航空工业,汽车控制,无线控制,远程智能化管理等领域。
1CAN总线技术规范及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.1CAN的基本概念
CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。
CAN具有的属性:
1)报文的优先权;
2)保证延迟时间;
3)设置灵活;
4)时间同步的多点接收;
5)系统内数据的一致性(SystemWideDataConsistency);
6)多主机(对等);
7)错误检测和错误标定;
8)只要总线处于空闲,就自动将破坏的报文重新传输;
9)将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭CAN错误的节点。
1.1.1CAN协议的特点
1)通信方式灵活,可以多主方式工作,网络上任意一个节点均可以在任意时刻主动向网络上的其他节点发送信息,不分主从。
2)CAN节点只需对报文的标识符滤波即可实现点对点、点对多点及全局广播方式发送和接收数据,其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134us内传输,可以满足不同的实时要求。
3)CAN总线通信格式采用短帧格式,每帧字节数最多为8个字节,可满足一般工业领域中控制命令、工作状态及测试数据的要求,同时,8个字节不会占用总线时间过长,保证了通信的实时性。
4)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息出现冲突时,优先级低的节点会主动退出数据发送,而优先级高的节点可不受影响地继续传输数据,大大节省了总线冲突仲裁时间,在网络重载的情况下也不会出现网络瘫痪。
5)直接通信距离最大可达10Km(速率在5Kb/s以下),最高通信速率可达1Mb/s(此时距离最长为40m);
节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。
6)CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下具有自动关闭输出功能,使总线上其他节点的操作不受影响。
1.1.2CAN节点的层结构
CAN协议如表1-1所示涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。
表1-1ISO/OSI基本参照模型
1.1.3ISO标准化的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-2CAN协议和ISO11898及ISO11519-2标准的范围
1.2CAN节点的分层结构
为了使设计透明和执行灵活,遵循OSI参考模型,CAN分为数据链路层(包括逻辑链路控制子层(LLC)和媒体访问控制子层(MAC))和物理层,而在CAN2.0A中,逻辑链路控制子层(LLC)部分和媒体访问控制子层(MAC)的服务和功能被描述为“目标层”和“传送层”。
CAN的分层结构和功能如图1-1所示。
(1)物理层定义信号是如何实际地传输的因此涉及到位定时、位编码/解码、同步的解释。
本技术规范没有定义物理层的驱动器/接收器特性,以使允许根据它们的应用,对发送媒体和信号电平进行优化。
(2)数据链路层,含以下两个子层:
1、介质访问控制子层MAC(MediumAccessControl)是CAN协议的核心。
它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。
MAC子层负责报文分帧、仲裁、应答、错误检测和标定。
MAC子层也受一个名为“帮障界定的管理实体监管。
此故障界定为自检机制,以便把永久故障和智短时扰支区别开来。
2、逻辑链路控制子层LLC(LogicalLinkControl)涉及报文滤波、过载通知、以及恢复管理。
图1-1CAN的分层结构和功能
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间隙(ACKSLOT)期间所监视的位不为“显性”,
则发送器会检测到一个应答错误。
1.5无线收发芯片nRF2401
nRF2401芯片工作于2.4GHz全球开放ISM频段125个频道,满足多点通信和跳频通信需要,工作速率0~1Mb/s,最大发射功率0dBm,外围元件极少,内置硬件CRC(循环冗余校验)和点对多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器。
输出功率、传输速率和频道选择可通过三线串行接口编程配置。
nRF2401芯片最突出的特点是有两种通信模式:
DirectMode(直接模式)和Shock-
BurstTMMode(突发模式)。
直接模式的使用与其它传统射频收发器的工作一样,需要通过软件在发送端添加校验码和地址码,在接收端判断是否为本机地址并检查数据是否传输正确。
突发模式使用芯片内部的先入先出堆栈区,数据可从低速微控制器送入,高速(1Mb/s)发射出去,地址和校验码硬件自动添加和去除,这种模式的优点是:
(1)可使用低速微控制器控制芯片工作;
(2)减小功耗;
(3)射频信号高速发射,抗干扰性强;
(4)减小整个系统的平均电流。
该芯片具有接收灵敏度高、外围电路少、发射功率低、传输速率高、低功耗等优点。
nRF2401适用于多种无线通信的场合,如无线鼠标、遥控开锁、遥控玩具等。
2系统方案设计
2.1系统总体框图设计
根据设计任务要求,系统由一个主控机和若干个CAN节点执行器组成,它们都挂接在双绞线上,组成一个CAN总线通信局部通信网络,CAN总线通信网络中的主控机安装无线数据收发器nRF2401,与另一个控制中心组成无线通信网络,整个系统的关键任务是实现CAN总线内部局域网通信以及无线通信网络的通信。
其系统总体结构框图发图2-1所示。
图2-1系统总体框图
2.2CAN总线主控机节点设计
CAN总线主控机系统由单片机最小系统、CAN总线通信接口、实时显示、人机接口模块和串口通信下载模块及无线通信模块组成。
CAN总线通信接口通过双绞线收发数据,实现和执行器的连通。
结构框图如图2-2所示:
本主控机负责与无线通信网络进行数据传输,同时也是CAN总线网络中的一个节点,在整个系统中起着主导作用,无线通信模块采用2.4G的nRF2401通信芯片,而CAN总线通信模块,刚采用SJA1000和PCA82C250,通过单片机控制,实现与其他节点通信。
2.3CAN通信模块设计
CAN通信模块是本次设计中的核心技术,它负责系统中主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- can 总线 无线数据 收发