基于CAN2.0标准的CAN-串转换通信技术研究.doc_第1页
基于CAN2.0标准的CAN-串转换通信技术研究.doc_第2页
基于CAN2.0标准的CAN-串转换通信技术研究.doc_第3页
基于CAN2.0标准的CAN-串转换通信技术研究.doc_第4页
基于CAN2.0标准的CAN-串转换通信技术研究.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于CAN2.0标准的CAN-串转换通信技术研究于素梅 蔡祥宝(南京邮电大学 电子科学与工程学院,南京 210003)摘 要:现场总线是自动化领域的计算机网络,已成为当今自动化领域技术发展的热点。CAN总线是现场总线的一种,它与串口之间的通信,是通过硬件电路的电平转换,和软件设计的数据处理实现的。此方法实现了双CAN功能,提高了通信的可靠性。关键词:CAN总线;CAN设置;双CAN;串口RS232;看门狗 1 引言CAN (Controller Area Network) 总线又称控制器局域网,是Bosch公司在现代汽车技术中领先推出的一种多主机局部网。它是一种串行通信网络,支持分布式实时控制,最大传输速度可达1Mbit/s,最大传输距离为10km。CAN规范已被 ISO 国际标准组织制订为国际标准,即CAN标准,现在最常用的是2.0标准,分为2.0A和2.0B。其区别仅在通信数据位数,前者是11位的标准帧,后者是29位的扩展帧。CAN 协议建立在国际标准组织的开放系统互连参考模型基础上的,主要工作在数据链路层和物理层,用户可在其基础上开发适合系统实际需要的应用层通信协议。而串口 RS232 作为标准计算机串行接口,与 CAN 网的结构、传输特性、通信协议等都不相同,所以导致不同设备间无法进行直接通信。因此实现二者之间的直接信息流交互成为问题的关键。2 原理这里采用嵌入式芯片 STM32F103 作为主控,CAN网和串口数据的转换是通过芯片相应管脚收发数据,然后把转换后的数据发送出去的过程。此方法实现了双CAN的功能,即通过继电器切换实现两个CAN切换使用,相当于单刀双掷开关,这样增强了CAN的可靠性。2.1 CAN网切换通过芯片连接继电器的管脚拉高和拉低实现CAN网的切换,默认为低,是一路,当软件程序中写高时就会拉高,则继电器切换到另外一路,实现双CAN 的功能。2.2 CAN-串通信协议转换CAN网设置是通串口发送的数据来实现的,即芯片STM32F103根据上位机串口发来的数据,把CAN属性设置成相应的值。这样就与上位机串口设置一致,便于观察与记录。不仅美观还节省测试者的大量时间。串口RS232互连总线接口主要功能是接口模块与PC机通信。通信方式:信息以串行异步通信方式传送。传输速率:11.52kbit/s。字节发送帧结构:按发送顺序依次为1个起始位,8个信息位,1个停止位。串口发送数据步骤:先设置CAN,设置完把设置值回发给串口,串口接收到数据后表示CAN已设置完成,可以进行数据通信,然后再发送数据。当帧头为FE时表示设置CAN ,为FF时表示进行数据通信。如串口发FE F0 F1 EF FE FE EF,则设置CAN,同时会把这组数据发给串口,串口接收到这组数之后,才可以进行CAN-串转换通信。设置CAN时串口发送数据为下表一所示:此处 CAN 波特率可有十个选择(如表A),因为要实现 CAN 的正常通讯,通讯节点之间设置的波特率必须相同。所以用户可以根据自己的需要,设置自己的波特率。表 1 设置CAN的数据帧头DATA0DATA1DATA2DATA3DATA40xFE波特率设置(见表A)0xF1:CAN-1路0xF0:CAN-2路0xFE:单滤波0xEF:双滤波0xFE:只听模式0xEF:正常模式DATA5DATA6DATA70xFE:标准帧0xEF:扩展帧0xFE:远程帧0xEF:数据帧用户自定义A)波特率DATA1设置: 0xF0:5k 0xF5:125k0xF1:10k 0xF6:250k0xF2:20k 0xF7:500k0xF3:50k 0xF8:800k0xF4:100k 0xF9:1M3 软硬件设计3.1 硬件设计电原理图如下图1:G525MHZC520pFC5020pF+C5310uF/16VC54104C55104C56104+3.3V123XS5CON3+3.3VD5_BOOT0V51LEDR5031KD5_PB6123XS50CON3VCC1GND2TXD3RXD4CANH6CANL7CANG8D51CTM8251A+3.3VD5_BOOT1D5_CANTXD5_CANRX+5V+C5810uF/16VC5910nR10CANHCANLC5210n+3.3V+C5110uF/16VV5LEDR511KD5_STM32F_TXD5_STM32F_RX+3.3V+3.3V123XS508CON3+C5230.1u/16V+C5250.1u/16V+C5260.1u/16V+C5240.1u/16V+C5270.1U/16VD5_TXD232D5_RXD232C52810nC1+2C1-4C2+5C2-6T1IN11R1OUT9EN1FON12FOFF16INVALID10R1IN8T1OUT13V-7V+3VCC15GND14D52MAX3221EAE+3.3VD5_RSTGND1RESET2VCC3D54MAX809RG5132KHZC53012pFC52912pFD5_OSC32_IND5_OSC32_OUT12354ANDD55SN74AHC1G08DBVR59410K+3.3VD5_RST_CPUD5_RSTD5_RST_J+3.3V+3.3V+3.3V+3.3V+3.3VGNDGNDGNDGNDD5_CANTXD5_CANRXD5_RST_CPUD5_STM32F_TXD5_STM32F_RXD5_JTDID5_JTDOD5_JTCKD5_JTMSD5_BOOT1D5_BOOT0D5_OSC32_IND5_OSC32_OUTPE2/TRCECK1PE3/TRACED02PE4/TRACED13PE5/TRACED24PE6/TRACED35VBAT6PC13-ANTI_TAMP7PC14-OSC32_IN8PC15-OSC32_OUT9VSS_510VDD_511OSC_IN12OSC_OUT13NRST14PC0/ADC_IN1015PC1/ADC_IN1116PC2/ADC_IN1217PC3/ADC_IN1318VSSA19VREF-20VREF+21VDDA22PA0-WKUP23PA124PA225PA326VSS_427VDD_428PA429PA530PA631PA732PC433PC534PB035PB136PB2/BOOT137PE738PE839PE940PE1041PE1142PE1243PE1344PE1445PE1546PB10/USART3_TX47PB11/USART3_RX48VSS_149VDD_150PB1251PB1352PB1453PB1554PD855PD956PD1057PD1158PD1259PD1360PD1461PD1562PC663PC764PC865PC966PA867PA9/USART1_TX68PA10/USART1_RX69PA11/CANRX70PA12/CANTX71PA13/JTMS/SWDIO72NC73VSS_274VDD_275PA14/JTCK/SWCLK76PA15/JTDI77PC1078PC1179PC1280PD081PD182PD283PD384PD485PD586PD687PD788PB3/JTDO89PB4/JNTRST90PB591PB692PB793BOOT094PB895PB996PE097PE198VSS_399VDD_3100D5STM32F103VBT6+3.3vGNDD5_JNTRSTPA0PA1PA2PA3PA4PA5PA6PA7PD0PD1PD2PD3PD4PD5PD6PD7readD5_JTMSD5_JTCKD5_JTDOD5_RST_JD5_JNTRSTD5_JTDID5_GND_JR50020RR500110KR500010KR59910KR59810KR59710KGND+3.3V12345678XS53CON8R50030RD5_GND_JD5_PB6123XS509CON3CAN-GNDC52210nFC5211uFVREF+VREF+VREF-VREF-INIT1INIT2+3.3VGNDwrite12XS1CON2R54120Rtp1X1TPtp1X2TPtp1X3TPtp1X4TPtp1X6TPtp1X7TPtp1X8TPL181K2AG6K-2F-5VV71N4148SMDV11MMBT9013LT1C4247nR115.1K+5V324K2BG6K-2F-5V675K2CG6K-2F-5V123XS510CON3PD1+3.3V图 1 电原理图内部晶振:32KHZ;外部晶振:8MHZ;管脚配置:PA12为CAN_TX,PA11为CAN_RX, PA10为USART_RX,PA11为USART_TX;复位电路模块:D54部分,MAX809R作为复位电路芯片;双CAN模块:D51部分,XS509和XS510是两路CAN,XS510是CAN-1路,为高时通,XS509是CAN-2路,为 s低时通。默认为低,是XS509通,当PD1管脚控制切换;外部串口收发模块:D52部分;电机模块:K2;为了保证CAN网的可靠性,并在错误出现时尽快定位错误设备,找出错误原因,规范规定了看门狗稳定性保证措施,两个看门狗设备(独看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断或产生系统复位,以防止程序意外跑飞。这样为系统提供高的安全性、时间的精确性和使用的灵活性。3.2 软件设计软件设计主要包括上位机和下位机的编写,上位机用的VC+平台,下位机用嵌入式IAR EWARM平台。(1)上位机由于串口调试助手不具备通用性、局限性太大,很多时候不能满足设备的要求, 因而此处上位机采取新的方法,重新编写界面,不仅更加美观,同时对下位机CAN的设置也更加清晰明了,让用户一目了然,使用起来十分方便。(2)下位机下位机中CAN节点通信主要包括:串口初始化、CAN初始化、CAN报文转换为串数据和串数据转换为CAN报文四部分。下面就各部分作简要描述,以便大家在实际应用中参考。在进行通信时,主控芯片 STM32F103 接收到 CAN 网的数据时,先转换成串口数据,然后再发出去给上位机串口,串口的数据在界面中显示出来。同理接收到串口发送的数据时,先转换成 CAN 数据,再发出去给 CAN 网,可以用周立功的 CAN 卡进行监视。CAN 的转换可以为原样显示,也可以转换其他进制,如八、十进制等,此处 CAN 设置为原样转换。即 CAN 来的数据,在串口上是原样显示,串过来的数据在CAN上原样显示。这里帧 ID 也是原样传输的。串初始化程序:USART_InitStructure.USART_BaudRate = 115200;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;CAN初始化设置:#define USART_FRAME_HEAD 0xFE#define USART_FRAME_HEAD1 0xFFif(UsartRxBufferi.Data0) = USART_FRAME_HEAD) /设置CAN /此处举例帧格式if(UsartRxBufferi.Data5 = 0xFE) TxMessage.IDE = CAN_ID_STD; /扩展帧 else if(UsartRxBufferi.Data5 = 0xFE) TxMessage.IDE = CAN_ID_EXT; /标准帧 CAN转换成串:if (RxMessage.IDE = CAN_ID_STD) /标准帧 UsartTxBufferi.Data3 = (uint32_t)RxMessage.StdId & 0xFF; UsartTxBufferi.Data2 = (uint32_t)(RxMessage.StdId 8) & 0x07; UsartTxBufferi.Data1 = 0; UsartTxBufferi.Data0 = 0;else /扩展帧for(j=0; jDataLength; j+) UsartTxBufferi.Data(UsartTxBufferi.DataLength+)+4 = CAN_Data-Dataj;串转换成CAN:if ( (UsartRxBufferi.Data0) = USART_FRAME_HEAD1 ) j = Get_Free_CANTxBuffer(); for (k=5; kUsartRxBufferi.DataLength; k+) CANTxBufferj.Datak-5 = UsartRxBufferi.Datak; CANTxBufferj.DataLength = UsartRxBufferi.DataLength;软件流程如下图2所示:图 2 软件流程图 此方法的流程图可以分三部分:开始部分是初始化程序,串口中断程序是对串口数据的处理转换部分,CAN中断程序是对CAN数据的处理转换部分。4 结束语数据通信在嵌入式系统的应用中占有重要地位,CAN与串口的互相通信也越来越重要,这种转换方法功能明确、结构简单、具有很强的通用性和实用性,尤其对于CAN的特性设置和两路CAN的切换,使得用户可以根据自己的需要随意更改。上位机界面也很美观和实用。同时由于加入看门狗程序,使得通信更加稳定、可靠,而且成本很低,足以满足用户系统的各种要求。由于这一CAN通信技术具有模块化特点,因此可适用于多种嵌入式系统中的数据通信.参 考 文 献1饶运涛.现场总线CAN原理与应用技术M.北京:北京航天航空出版社,2003.20166.2王田苗.嵌入式系统设计与实例开发M.北京:清华大学出版社,2002 .3吴志伟,丁铂.USB-CAN-RS232总线转换电路设计与实现J.国外电子元器件,2006(6):31-34.CAN- Serial Conversion Communication Based On The CAN2.0 Standard Yu Sumei Cai Xiang b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论