《CAN总线与RS232SPI总线转换模块的设计》论文.docx
- 文档编号:23603679
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:48
- 大小:3.03MB
《CAN总线与RS232SPI总线转换模块的设计》论文.docx
《《CAN总线与RS232SPI总线转换模块的设计》论文.docx》由会员分享,可在线阅读,更多相关《《CAN总线与RS232SPI总线转换模块的设计》论文.docx(48页珍藏版)》请在冰豆网上搜索。
《CAN总线与RS232SPI总线转换模块的设计》论文
石河子大学
信息科学与技术学院毕业论文
课题名称:
CAN总线与RS-232、SPI总线转换模块的设计
学生姓名:
肖志昂
2007082078
孙庆中
2007082010
学院:
信息科学与技术学院
专业年级:
电子信息工程2007级
指导教师:
李栓明
讲师
完成日期:
二○一一年六月八日
CAN总线与RS-232、SPI总线转换模块的设计
[摘要]CAN总线因具有高可靠性、实时性等优点,而被广泛用于工业控制、建筑、医学等各个领域。
但RS-232、SPI总线在现在很多领域仍然占据较大的比重,许多的机器设备具有RS-232接口或SPI接口,要想实现具有RS-232总线接口或SPI接口的设备的数据在CAN总线上传输,需要转换模块把RS-232和SPI总线上的数据转换成CAN总线格式数据。
该模块是基于STC89C52型号单片机、独立CAN总线控制器SJA1000和CAN总线收发器PCA825C250设计的。
该模块能够实现CAN总线与RS-232、SPI总线的转换。
整个模块成本低并且稳定。
本文详细介绍了该模块的软硬件设计。
[关键词]CAN总线,RS-232,SPI,SJA1000
CAN-BusandRS-232,SPI-Bus
ConversionModule
Abstract:
CAN-busforhighperformance,highreliability,real-time,etc.,andiswidelyusedinindustrialcontrol,architecture,medicineandotherfields.However,RS-232,SPIbusarestillmanyareasnowaccountforalargeproportionofmachineryandequipmentwithmanyRS-232interfaceorSPIinterface,inordertoachieveaRS-232businterfaceorSPIinterface,CANbusinterfacedevicetowork,youneedtoconvertthemoduletoRS-232andSPIbusdataintoCANbuscommunication.ThemoduleisbasedontheSTC89C52RCSCMmodel,theindependentCANbuscontrollerSJA1000,CANbustransceiverdesigned825C250.ThemoduleenablesCANturnRS-232,SPIcanalsobeachievedRS-232,SPItoCANbusconversion.Theentiremodule,lowcost,andstability.Thispaperdescribesthemodule'shardwaredesignandsoftwaredesign.
Keyword:
CAN-bus,RS-232,SPI,SJA1000,PCA82C250
第一章引言
1.1课题的研究背景及意义
CAN总线在组网和通信功能上的优点以及它的高性价比,决定了它在许多领域都有广阔的应用前景和发展潜力。
大型仪器设备系统复杂,需要对多种信息进行采集、处理、控制、输出等操作。
如医疗器械CT断层扫描仪,为保证其工作可靠性,在数据通信上要求功能块间可随意进行数据交换,通信可以以广播方式进行,简单经济的硬件接口,通信线尽量少,抗干扰能力强,可靠性高并能自动进行故障识别和自动恢复。
但是,这些要求长时间未能得到很好的解决,直至CAN总线技术出现才提供了一个较好的解决方法。
CAN与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
由于其具有良好的性能及其独特的设计,CAN总线越来越受到人们的重视。
它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商都采用了CAN总线来实现汽车内部控制系统与各检测、执行机构间的数据通信。
同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。
CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。
由于CAN总线的优势越来越明显在工业控制等领域的应用也越来越广泛,但RS-232、SPI总线在现在很多领域仍然占据较大的比重,许多设备只具有RS-232接口或SPI接口,拥有CAN总线接口的设备还十分的少,为了能让具有RS-232、SPI接口的设备也能在CAN总线上工作以适应整个技术的发展,需要设计CAN总线与RS-232转换模块[1]。
1.2国内外发展状况
为促进CAN以及CAN协议的发展,1992在欧洲成立了CiA(CANinAutomation)。
在CiA的努力推广下,CAN技术在汽车电子控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面均得到了广泛的应用。
现已有400多家公司加入了CiA,CiA已成为全球应用CAN技术的权威。
根据国内外资料报道,CAN技术已应用于家用电器和智能楼宇以及小区建设中。
如安防系统、抄表系统、家电控制等。
它投资少,每个节点可以随机访问,通信速度完全满足要求,且在这类应用中数据交换量都很少。
适当的网关如CAN与TCP/IP协议的转换,可以使一个居室或一栋大楼的现场CAN信息转变为互联网的形式外传,或反过来通过这类网关把外部网传来的信息转换为CAN的形式,此即实现了所谓的远程控制。
随着CAN总线的普及应用,有必要设计CAN总线与RS-232、SPI总线的转换设备,而且这种技术也日趋成熟,已经完全实现商业化生产,在各个领域得到广泛的运用[1]。
1.3课题研究的主要内容
课题研究的主要内容有:
1)CAN总线的联网通信,通过系统的设计实现CAN节点的相互通信。
2)实现CAN总线数据与RS-232总线数据的相互转换。
3)实现CAN总线数据与SPI总线数据的相互转换。
第二章总线简介及分析
2.1CAN、SPI、RS-232总线简介
CAN、SPI、RS-232总线有着各自的特点,在不同的场合根据需求选择合适的总线通信是系统联网的前提条件。
因此,了解总线的结构特征是进行模块设计的首要任务,通过对总线的多方了解分析其各种通信参数,结合实际的需求分析确定系统总线方案的选型,并对比三种总线的通信特征,为实现总线转换做好前期的准备。
2.1.1CAN总线简介
CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。
为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。
此后,CAN通过ISO11898及ISO11519进行了标准化,现在欧洲已是汽车网络的标准协议。
CAN总线是一种串行数据通信协议,其最高波特率可达1MB/S,因此具有高的传输速率。
它是一种有效支持分布式控制或实时控制的串行通信网络,其对通信数据块进行编码,可以多主方式工作,可在各节点之间实现自由通信;采用非破坏性仲裁技术,有效避免了总线冲突;采用短帧结构,数据传输时间短,受干扰的概率低,重新发送的时间短。
较之目前许多基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
1)网络各节点之间的数据通信实时性强。
2)缩短了开发周期。
3)完成对通信数据的帧处理。
4)使网络内的节点个数在理论上不受限制。
5)可在各节点之间实现自由通信。
6)结构简单。
综合来看,CAN总线在通信组网方面具有极大的优势,可以减少组网过程中的工作量,大大的提高工作效率[2]。
2.1.2SPI总线简介
串行外围设备接口SPI(serialperipheralinterface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。
SPI用于CPU与各种外围器件进行全双工、同步串行通讯。
SPI可以同时发出和接收串行数据。
它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:
串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线
。
四种引脚的功能如下:
●SCK:
时钟信号,由主设备产生;
●MOSI:
主设备数据输出,从设备数据输入;
●MISO:
主设备数据输入,从设备数据输出;
●
:
从设备使能信号,由主设备控制。
当SPI工作时,移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
其典型系统框图如图2-1所示。
图2-1SPI系统框图
SPI主要特点有:
●可以同时发出和接收串行数据;
●可以当作主机或从机工作;
●提供频率可编程时钟;
●发送结束中断标志;
●写冲突保护;
●总线竞争保护等。
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。
时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。
如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。
SPI主模块和与之通信的外设音时钟相位和极性应该一致。
SPI总线接口时序如图2-2及2-3所示[3]。
图2-2CPHA=0时SPI总线数据传输时序
图2-3CPHA=1时SPI总线数据传输时序
2.1.3RS-232总线简介
RS-232C是一个已制定很久的标准,最初是为远程通信连接数据终端设备DTE(DataTerminalEquipment)与数据通信设备DCE(DataCommunicationEquipment)而制定的。
RS-232C接口最大传输速率为20Kbps,线缆最长为15米。
RS-232C接口通常被用于将电脑信号输入控制,当通信距离较近时,可不需要Modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。
在TXD和RXD上:
逻辑1(MARK)=-3V~-15V;
逻辑0(SPACE)=+3~+15V。
以上规定说明了RS-232C标准对逻辑电平的定义。
对于数据(信息码),逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;
EIARS-232C与TTL转换。
EIARS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。
因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIARS-232C与TTL电路之间进行电平和逻辑关系的变换。
实现这种变换的方法可用分立元件,也可用集成电路芯片。
目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。
MAX232芯片可完成TTL与EIA双向电平转换[2]。
2.2CAN总线特性分析
2.2.1CAN总线的特点及优势
在上一节中已经对CAN总线做了一个简要的介绍,CAN总线作为一种串行通信协议,有着其它总线协议所不具有的一些特征。
下面开始从技术参数方面分析CAN总线规范。
CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
使网络内的节点个数在理论上不受限制。
CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。
采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码由11位或29位二进制数组成,因此可以定义不同的数据块,这种按照数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。
CAN总线有如下基本特点:
●废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作;
●采用非破坏性仲裁技术,当两个节点同时向网络上传送数据,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突;
●采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短;
●每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用;
●节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响;
●可以点对点,一对多及广播集中方式传送和接收数据。
分析以上CAN总线的特点总结得到其主要优点有:
1)废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作。
这样的方式减小了数据通信过程中寻址的复杂度,可根据报文的ID决定接收或屏蔽该报文,同时这种工作方式下避免了象单片机多机通信情况下的只能有一个主机的缺陷,这样更有利于数据的传输管理。
2)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。
这些特点是串口通信不能相比拟的——串口通信受到传输距离的限制,而传输速度也是有限的,继而也就影响到了传输的实时性。
抗干扰能力以及经济上的考虑CAN总线也是一个不错的选择。
3)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。
货场的工作环境比较恶劣,尤其是噪声比较大,这在初期的调研中得到或验证,因此系统的设计必须考虑到噪声干扰的因素,而CAN总线的特性恰恰解决了这一问题,它能够适应这种高噪声的恶劣环境。
4)具有优先权和仲裁功能,多个控制模块通过CAN控制器挂到CAN-Bus上,形成多主机局部网络。
这一点和前面的第一点是有所联系的,在多主式的通信过程中处理好各个模块的数据传输优先级以及数据的仲裁是十分关键的一步,CAN总线提供了这么好的一个管理“平台”。
5)可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发。
这一特点保证了数据传输的可靠性以及突发错误的处理能力。
数据在传输的过程中可能存在着帧信息丢失之类的问题,这就需要一个很好的解决方案来保证数据传输的有效性,CAN总线的管理在数据的传输过程中可以做到很好的错误检测以及通过数据重发来保证有效性。
6)节点在错误严重的情况下具有自动退出总线的功能。
这样就保证了系统在出错的情况下运行而导致的系统损坏。
7)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
这种报文格式优化了帧信息的结构,不必象串口通信那样在报文中必须包含目的节点以及源节点的地址信息[2]。
2.2.2CAN总线协议
CAN总线协议主要描述设备之间的信息传递方式,从结构上可分成3个层次,分别对应OSI网络模型的最低两层数据链路层和物理层。
CAN总线协议层次结构由高到低如表2-1所示。
表2-1CAN总线协议层次结构
协议层
对应OSI模型
说明
LLC
数据链路层
逻辑链路控制子层,用于为链路中的数据传输提供上层控制手段。
MAC
媒体访问控制子层,用于控制帧结构、仲裁、错误界定等数据传输的具体实现。
物理层
物理层
物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输。
LLC层和MAC层也可以看作是CAN总线数据链路层的两个子层。
其中LLC层接收MAC层传递的报文,主要完成报文滤波、过载通知以及恢复管理等工作。
而MAC层则为数据报文的传输进行具体的控制,包括帧结构控制、总线仲裁、错误检测、出错界定、报文收发控制等工作。
物理层定义了信号如何实现传输,因此涉及到位时间、位编码、同步的解释,CAN总线协议并未对物理层部分进行具体的规定[4]。
2.2.3CAN总线报文帧格式
CAN总线报文的帧格式有两种,不同之处为标识符域的长度不同:
含有11位标识符的帧称之为标准帧,而含有29位标识符的帧为扩展帧。
2.2.4CAN总线报文传输结构
报文传输由以下4个不同的帧类型所表示。
1)数据帧:
数据帧携带数据从发送器至接收器。
数据帧由7个不同的位场组成:
帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。
数据场的长度可以为0。
数据帧(或远程帧)通过帧间空间与前述的各帧分开。
2)远程帧:
总线单元发出远程帧,请求发送具有同一识别符的数据帧。
远程帧由6个不同的位场组成:
帧起始、仲裁场、控制场、CRC场、应答场、帧末尾。
通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。
3)错误帧:
任何单元检测到总线错误就发出错误帧。
错误帧由两个不同的场组成。
第一个场用作为不同站提供的错误标志(ERRORFLAG)的叠加。
第二个场是错误界定符。
为了能正确地终止错误帧,“错误被动”的节点要求总线至少有长度为3个位时间的总线空闲(如果“错误被动”的接收器有本地错误的话)。
因此,总线的载荷不应为100%。
有两种形式的错误标志,主动错误标志(Activeerrorflag)和被动错误标志(Passiveerrorflag)。
4)过载帧:
过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
过载帧包括两个位场:
过载标志和过载界定符。
有两种过载条件都会导致过载标志的传送:
(1)接收器的内部条件(此接收器对于下一数据帧或远程帧需要有一延时);
(2)间歇场期间检测到一“显性”位。
由过载条件1而引发的过载帧只允许起始于所期望的间歇场的第一个位时间开始。
而由过载条件2引发的过载帧应起始于所检测到“显性”位之后的位。
2.2.5CAN总线错误处理
1)错误检测
有以下5种不同的错误类型(这5种错误不会相互排斥)。
(1)位错误(BitError)。
单元在发送位的同时也对总线进行监视。
如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误。
但是在仲裁场(ARBITRATIONFIELD)的填充位流期间或应答间隙(ACKSLOT)发送一“隐性”位的情况是例外的。
此时,当监视到一“显性”位时,不会发出位错误。
当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。
(2)填充错误(StruffError)。
如果在使用位填充法进行编码的信息中,出现了第6个连续相同的位电平时,将检测到一个填充错误。
(3)CRC错误(CRCError)。
CRC序列包括发送器的CRC计算结果。
接收器计算CRC的方法与发送器相同。
如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。
(4)形式错误(FormError)。
当一个固定形式的位场含有1个或多个非法位,则检测到一个形式错误。
(备注:
接收器的帧末尾最后一位期间的显性位不被当作帧错误)
(5)应答错误(AcknowledgmentError)。
只要在应答间隙(ACKSLOT)期间所监视的位不为“显性”,则发送器会检测到一个应答错误。
2)错误信号的发出
检测到错误条件的站通过发送错误标志指示错误。
对于“错误主动”的节点,错误信息为“主动错误标志”,对于“错误被动”的节点,错误信息为“被动错误标志”。
站检测到无论是位错误、填充错误、形式错误,还是应答错误,这个站会在下一位时发出错误标志信息。
只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)[5]。
第三章元器件选型及特性分析
3.1系统元器件选型分析
由于系统的总线已经确定,是针对总线的转换。
所以这里系统方案的选型则主要是元器件的选择,选择合适的元器件有利于系统设计的便利性以及稳定性。
3.1.1单片机选型
待选的单片机主要有三种:
STC89C52,STC12C5410AD以及AT89S52。
1)STC89C52
STC89C52是一款基于51内核的51系列单片机,其指令代码完全兼容传统的8051单片机,与工业标准的MCS-51指令集和输出管脚相兼容。
在使用的过程中采用ISP(在系统可编程),无需专用的编程器,可通过串口(P3.0、P3.1)直接下载用户程序,大大的方便了系统程序的调试。
另外STC89C52价格低廉,可多次重复擦写使用,具有很高的性价比。
2)STC12C5410AD
STC12C5410AD与STC89C52相比,其主要增加了SPI同步通信接口,可以更为方便的实现SPI通信,但是其只有20、28、32三种引脚封装,无读写时序控制引脚。
3)AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52在众多嵌入式控制应用系统中得到广泛应用。
但是AT89S52在使用的过程中需要使用的专用编程器下载用户程序,这一点会增加设计的工作量。
综合以上三种单片的特性,最终选择STC89C52作为系统的控制芯片,其外部扩展资源比较丰富,与AT89S52相比不需专用的编程器下载用户程序,大大的方便系统程序的调试,低廉的价格使其具有更高的性价比。
虽然其不具有SPI同步通信接口,但是可以通过软件模拟实现SPI协议的同步通信。
3.1.2CAN总线控制器芯片选型
CAN就是总线型结构的一种适合工业现场自动控制的计算机局域网络。
在网络的层次结构中,数据链路层和物理层是保证通信质量至关重要、不可或缺的部分,也是网络协议中最复杂的部分。
CAN控制器就是扮演这个角色,它是以一块可编程芯片上的逻辑电路的组合来实现这些功能,对外它提供了与微处理器的物理线路的接口。
通过对它的编程,MCU可以设置它的工作方式,控制它的工作状态,进行数据的发送和接收,把应用层建立在它的基础上。
目前,一些知名的半导体厂家都生产CAN控制器芯片。
其类型一种是独立的,一种是和微处理器做在一起的。
前者使用上比较灵活,它可以与多种类型的单片机的各类标准总线进行接口组合。
后者在许多特定情况下,使电路设计简化和紧凑,效率提高。
在本课题的系统设计中,针对单片机的选型,CAN总线控制器芯片选用独立的控制芯片。
SJA1000是一款我们比较熟悉的CAN总线控制器芯片,其在我国市面上容易购买,其具有高的性能,容易掌握,价格也比较便宜。
综合考虑,最终选择SJA1000作为CAN总线的控制器芯片[5]。
3.1.3CAN总线驱动器选型
CAN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN总线与RS232SPI总线转换模块的设计 CAN 总线 RS232SPI 转换 模块 设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)