ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:400KB ,
资源ID:4656340      下载积分:6 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4656340.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于CAN标准的CAN串转换通信技术研究样本.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于CAN标准的CAN串转换通信技术研究样本.doc

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 基于CAN2.0标准的CAN-串转换通信技术研究 于素梅 蔡祥宝 ( 南京邮电大学 电子科学与工程学院, 南京 210003) 摘 要: 现场总线是自动化领域的计算机网络, 已成为当今自动化领域技术发展的热点。CAN总线是现场总线的一种, 它与串口之间的通信, 是经过硬件电路的电平转换, 和软件设计的数据处理实现的。此方法实现了双CAN功能, 提高了通信的可靠性。 关键词: CAN总线; CAN设置; 双CAN; 串口RS232; 看门狗 1 引言 CAN (Controller Area Network

2、) 总线又称控制器局域网, 是Bosch公司在现代汽车技术中领先推出的一种多主机局部网。它是一种串行通信网络, 支持分布式实时控制, 最大传输速度可达1Mbit/s, 最大传输距离为10km。CAN规范已被 ISO 国际标准组织制订为国际标准, 即CAN标准, 现在最常见的是2.0标准, 分为2.0A和2.0B。其区别仅在通信数据位数, 前者是11位的标准帧, 后者是29位的扩展帧。CAN 协议建立在国际标准组织的开放系统互连参考模型基础上的, 主要工作在数据链路层和物理层, 用户可在其基础上开发适合系统实际需要的应用层通信协议。而串口 RS232 作为标准计算机串行接口, 与 CAN 网的结

3、构、 传输特性、 通信协议等都不相同, 因此导致不同设备间无法进行直接通信。因此实现二者之间的直接信息流交互成为问题的关键。 2 原理 这里采用嵌入式芯片 STM32F103 作为主控, CAN网和串口数据的转换是经过芯片相应管脚收发数据, 然后把转换后的数据发送出去的过程。此方法实现了双CAN的功能, 即经过继电器切换实现两个CAN切换使用, 相当于单刀双掷开关,这样增强了CAN的可靠性。 2.1 CAN网切换 经过芯片连接继电器的管脚拉高和拉低实现CAN网的切换, 默认为低, 是一路, 当软件程序中写高时就会拉高, 则继电器切换到另外一路, 实现双CAN 的功能。 2.2

4、CAN-串通信协议转换 CAN网设置是通串口发送的数据来实现的, 即芯片STM32F103根据上位机串口发来的数据, 把CAN属性设置成相应的值。这样就与上位机串口设置一致, 便于观察与记录。不但美观还节省测试者的大量时间。 串口RS232互连总线接口主要功能是接口模块与PC机通信。 通信方式: 信息以串行异步通信方式传送。 传输速率: 11.52kbit/s。 字节发送帧结构: 按发送顺序依次为1个起始位, 8个信息位, 1个停止位。 串口发送数据步骤: 先设置CAN, 设置完把设置值回发给串口, 串口接收到数据后表示CAN已设置完成, 能够进行数据通信, 然后再发送数据。当帧头

5、为FE时表示设置CAN , 为FF时表示进行数据通信。如串口发FE F0 F1 EF FE FE EF, 则设置CAN, 同时会把这组数据发给串口, 串口接收到这组数之后, 才能够进行CAN-串转换通信。设置CAN时串口发送数据为下表一所示: 此处 CAN 波特率可有十个选择( 如表A) , 因为要实现 CAN 的正常通讯, 通讯节点之间设置的波特率必须相同。因此用户能够根据自己的需要, 设置自己的波特率。 表 1 设置CAN的数据 帧头DATA0 DATA1 DATA2 DATA3 DATA4 0xFE 波特率设置 ( 见表A) 0xF1: CAN-1路 0xF0

6、 CAN-2路 0xFE: 单滤波 0xEF: 双滤波 0xFE: 只听模式 0xEF: 正常模式 DATA5 DATA6 DATA7 0xFE: 标准帧 0xEF: 扩展帧 0xFE: 远程帧 0xEF: 数据帧 用户自定义 A)波特率DATA1设置: 0xF0: 5k 0xF5: 125k 0xF1: 10k 0xF6: 250k 0xF2: 20k 0xF7: 500k 0xF3: 50k 0xF8: 800k 0xF4: 100k 0xF9: 1M 3 软硬件设计 3.1 硬件设

7、计 电原理图如下图1: G5 25MHZ C5 20pF C50 20pF + C53 10uF/16V C54 104 C55 104 C56 104 +3.3V 1 2 3 XS5 CON3 +3.3V D5_BOOT0 V51 LED R503 1K D5_PB6 1 2 3 XS50 CON3 VCC 1 GND 2 TXD 3 RXD 4 CANH 6 CANL 7 CANG 8 D51 CTM8251A +3.3V D5_BOOT1 D5_CANTX D5_CANRX +

8、5V + C58 10uF/16V C59 10n R1 0 CANH CANL C52 10n +3.3V + C51 10uF/16V V5 LED R51 1K D5_STM32F_TX D5_STM32F_RX +3.3V +3.3V 1 2 3 XS508 CON3 + C523 0.1u/16V + C525 0.1u/16V + C526 0.1u/16V + C524 0.1u/16V + C527 0.1U/16V D5_TXD232 D5_RXD232 C528 10n C1+

9、 2 C1- 4 C2+ 5 C2- 6 T1IN 11 R1OUT 9 EN 1 FON 12 FOFF 16 INVALID 10 R1IN 8 T1OUT 13 V- 7 V+ 3 VCC 15 GND 14 D52 MAX3221EAE +3.3V D5_RST GND 1 RESET 2 VCC 3 D54 MAX809R G51 32KHZ C530 12pF C529 12pF D5_OSC32_IN D5_OSC32_OUT 1 2 3 5 4 AND D55 S

10、N74AHC1G08DBV R594 10K +3.3V D5_RST_CPU D5_RST D5_RST_J +3.3V +3.3V +3.3V +3.3V +3.3V GND GND GND GND D5_CANTX D5_CANRX D5_RST_CPU D5_STM32F_TX D5_STM32F_RX D5_JTDI D5_JTDO D5_JTCK D5_JTMS D5_BOOT1 D5_BOOT0 D5_OSC32_IN D5_OSC32_OUT PE2/TRCECK 1 PE3/TRACED0 2 PE4/TRAC

11、ED1 3 PE5/TRACED2 4 PE6/TRACED3 5 VBAT 6 PC13-ANTI_TAMP 7 PC14-OSC32_IN 8 PC15-OSC32_OUT 9 VSS_5 10 VDD_5 11 OSC_IN 12 OSC_OUT 13 NRST 14 PC0/ADC_IN10 15 PC1/ADC_IN11 16 PC2/ADC_IN12 17 PC3/ADC_IN13 18 VSSA 19 VREF- 20 VREF+ 21 VDDA 22 PA0-WKUP 23 PA1 24 P

12、A2 25 PA3 26 VSS_4 27 VDD_4 28 PA4 29 PA5 30 PA6 31 PA7 32 PC4 33 PC5 34 PB0 35 PB1 36 PB2/BOOT1 37 PE7 38 PE8 39 PE9 40 PE10 41 PE11 42 PE12 43 PE13 44 PE14 45 PE15 46 PB10/USART3_TX 47 PB11/USART3_RX 48 VSS_1 49 VDD_1 50 PB12 51 PB13 52 PB14

13、 53 PB15 54 PD8 55 PD9 56 PD10 57 PD11 58 PD12 59 PD13 60 PD14 61 PD15 62 PC6 63 PC7 64 PC8 65 PC9 66 PA8 67 PA9/USART1_TX 68 PA10/USART1_RX 69 PA11/CANRX 70 PA12/CANTX 71 PA13/JTMS/SWDIO 72 NC 73 VSS_2 74 VDD_2 75 PA14/JTCK/SWCLK 76 PA15/JTDI 77 PC10

14、 78 PC11 79 PC12 80 PD0 81 PD1 82 PD2 83 PD3 84 PD4 85 PD5 86 PD6 87 PD7 88 PB3/JTDO 89 PB4/JNTRST 90 PB5 91 PB6 92 PB7 93 BOOT0 94 PB8 95 PB9 96 PE0 97 PE1 98 VSS_3 99 VDD_3 100 D5 STM32F103VBT6 +3.3v GND D5_JNTRST PA0 PA1 PA2 PA3 PA4 PA5 PA6

15、 PA7 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 read D5_JTMS D5_JTCK D5_JTDO D5_RST_J D5_JNTRST D5_JTDI D5_GND_J R5002 0R R5001 10K R5000 10K R599 10K R598 10K R597 10K GND +3.3V 1 2 3 4 5 6 7 8 XS53 CON8 R5003 0R D5_GND_J D5_PB6 1 2 3 XS509 CON3 CAN-GND C522

16、 10nF C521 1uF VREF+ VREF+ VREF- VREF- INIT1 INIT2 +3.3V GND write 1 2 XS1 CON2 R54 120R tp 1 X1 TP tp 1 X2 TP tp 1 X3 TP tp 1 X4 TP tp 1 X6 TP tp 1 X7 TP tp 1 X8 TP L1 8 1 K2A G6K-2F-5V V7 1N4148SMD V11 MMBT9013LT1 C42 47n R11 5.1K +5V 3

17、 2 4 K2B G6K-2F-5V 6 7 5 K2C G6K-2F-5V 1 2 3 XS510 CON3 PD1 +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路, 为

18、 s低时通。默认为低, 是XS509通, 当PD1管脚控制切换; 外部串口收发模块: D52部分; 电机模块: K2; 为了保证CAN网的可靠性, 并在错误出现时尽快定位错误设备, 找出错误原因, 规范规定了看门狗稳定性保证措施, 两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障; 当计数器达到给定的超时值时, 触发一个中断或产生系统复位, 以防止程序意外跑飞。这样为系统提供了更高的安全性、 时间的精确性和使用的灵活性。 3.2 软件设计 软件设计主要包括上位机和下位机的编写, 上位机用的VC++平台,下位机用

19、嵌入式IAR EWARM平台。 ( 1) 上位机 由于串口调试助手不具备通用性、 局限性太大, 很多时候不能满足设备的要求, 因而此处上位机采取新的方法, 重新编写界面, 不但更加美观, 同时对下位机CAN的设置也更加清晰明了, 让用户一目了然, 使用起来十分方便。 ( 2) 下位机 下位机中CAN节点通信主要包括: 串口初始化、 CAN初始化、 CAN报文转换为串数据和串数据转换为CAN报文四部分。下面就各部分作简要描述, 以便大家在实际应用中参考。 在进行通信时, 主控芯片 STM32F103 接收到 CAN 网的数据时, 先转换成串口数据, 然后再发出去给上位机串口, 串口的

20、数据在界面中显示出来。同理接收到串口发送的数据时, 先转换成 CAN 数据, 再发出去给 CAN 网, 能够用周立功的 CAN 卡进行监视。CAN 的转换能够为原样显示, 也能够转换其它进制, 如八、 十进制等, 此处 CAN 设置为原样转换。即 CAN 来的数据, 在串口上是原样显示, 串过来的数据在CAN上原样显示。这里帧 ID 也是原样传输的。 串初始化程序: USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART

21、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 #

22、define USART_FRAME_HEAD1 0xFF if((UsartRxBuffer[i].Data[0]) == USART_FRAME_HEAD) //设置CAN { //此处举例帧格式 if(UsartRxBuffer[i].Data[5] == 0xFE) {TxMessage.IDE = CAN_ID_STD;} //扩展帧 else if(UsartRxBuffer[i].Data[5] == 0xFE) { TxMessage.IDE = CAN_ID_EXT; } //标准帧 } CAN转换成串: if (RxMessage

23、IDE == CAN_ID_STD) //标准帧 UsartTxBuffer[i].Data[3] = (uint32_t)RxMessage.StdId & 0xFF; UsartTxBuffer[i].Data[2] = (uint32_t)(RxMessage.StdId >> 8) & 0x07; UsartTxBuffer[i].Data[1] = 0; UsartTxBuffer[i].Data[0] = 0; else {… } //扩展帧 for(j=0; jDataLength; j++) Usar

24、tTxBuffer[i].Data[(UsartTxBuffer[i].DataLength++)+4] = CAN_Data->Data[j]; 串转换成CAN: if ( (UsartRxBuffer[i].Data[0]) == USART_FRAME_HEAD1 ) j = Get_Free_CANTxBuffer(); for (k=5; k

25、 } CANTxBuffer[j].DataLength = UsartRxBuffer[i].DataLength; 软件流程如下图2所示: 图 2 软件流程图 此方法的流程图能够分三部分: 开始部分是初始化程序, 串口中断程序是对串口数据的处理转换部分, CAN中断程序是对CAN数据的处理转换部分。 4 结束语 数据通信在嵌入式系统的应用中占有重要地位, CAN与串口的互相通信也越来越重要, 这种转换方法功能明确、 结构简单、 具有很强的通用性和实用性, 特别对于CAN的特性设置和两路CAN的切换, 使得用户能够根据自己的需要随意更改。上位机界面也很美观

26、和实用。同时由于加入看门狗程序, 使得通信更加稳定、 可靠, 而且成本很低, 足以满足用户系统的各种要求。由于这一CAN通信技术具有模块化特点, 因此可适用于多种嵌入式系统中的数据通信. 参 考 文 献 [1]饶运涛.现场总线CAN原理与应用技术[M].北京: 北京航天航空出版社, .20~166. [2]王田苗.嵌入式系统设计与实例开发[M].北京:清华大学出版社, . [3]吴志伟,丁铂.USB-CAN-RS232总线转换电路设计与实现[J].国外电子元器件, (6):31-34. CAN- Serial Conversio

27、n Communication Based On The CAN2.0 Standard Yu Sumei Cai Xiang bao School of electrical science and engineering , Nanjing University of Posts & Telecommunications, Nanjing 210003 Abstract: The field bus is computer network in the field of automation, which has become the hotspot in the deve

28、lopment of automation technology. CAN bus is a kind of field bus, and communication conversion between CAN and serial is achieved by voltage conversion in hardware circuit and data conversion in software programming. Here we carry out double CAN function to ensure the high stability. Key words: CAN bus, CAN set, Double CAN, Serial RS232 , Watchdog 作者简介: 于素梅( 1987-) , 南京邮电大学电子与通信工程专业研究生, 研究方向为光网络通信与移动通信。通信地址: 南京市新模范马路66号, 电话: Email:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服