基于PIC18F458的CAN总线接口设计.docx

上传人:安*** 文档编号:17786263 上传时间:2022-05-26 格式:DOCX 页数:7 大小:18.51KB
返回 下载 相关 举报
基于PIC18F458的CAN总线接口设计.docx_第1页
第1页 / 共7页
基于PIC18F458的CAN总线接口设计.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《基于PIC18F458的CAN总线接口设计.docx》由会员分享,可在线阅读,更多相关《基于PIC18F458的CAN总线接口设计.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于PIC18F458的CAN总线接口设计zhangting导语:can通讯的核心芯片是can控制器,can的通讯协议主要是由它完成的,它可以实现物理层和数据链路层的所有功能。1引言在ff、lonworks、profibus、can、hart等主流现场总线工业通讯技术之中,cancontrollerareanetwork,又称控制器局域网总线除了具备现场总线的开放式、互操纵性、数字化通讯等特点外,还具有以下特点:1以多主机方式工作;2can上的节点信息分不同的优先级,可知足不同的实时要求;3采用非破坏性总线仲裁技术,节省了总线冲突仲裁时间;4采用短帧构造,传输时间短,受干扰率降低,具有极好的检

2、错效果;5每帧信息都有crc校验及其它检错措施,数据出错率极低;6通讯介质可灵敏地选择;7can上的节点数高达110个;8有很高的可靠性和性能价格比等。can总线的这些特点使得其能同时知足经过控制和制造业自动化的需求,因此can总线的研究与应用已成为工业数据总线领域的热门。在总线系统中,传统的4-20ma的模拟输入信号被数字信号取代,设备状态、故障、参数等信息通过现场总线传送给上位机完成远程控制及远程参数化,具有can总线接口的各种仪器、仪表设备通过can适配卡可实现与上位机的can总线通讯。2硬件设计can通讯的核心芯片是can控制器,can的通讯协议主要是由它完成的,它可以实现物理层和数据

3、链路层的所有功能。can控制器有很多芯片构造,独立芯片的例如philips的sja1000,西门子的82c900等,还有和微处理器做在一起的嵌入型构造。本工程根据智能化、可靠性高、抗干扰才能强、本钱低等原那么,can控制器采用microchip公司的pic18f458单片机内嵌can控制器方案。pic18f458功能强大,1536k片内数据ram、3个16位定时/计数器、1个8位看门狗wdt定时器、8路模拟输入的片内adc。看门狗wdt定时器用来监视程序的运行状态,一旦cpu由于意外原因偏离正常程序之外,wdt将强行把cpu复位,使其返回正常程序。pic18f458can模块除遵循can总线的

4、协议,同时也有自己的特点,主要包括:1支持can协议can2.0a、can2.0b;2支持标准帧、扩展帧、远程帧、过载帧、错误帧等;32个接收缓冲器、3个发送缓冲器;46个接收过滤器;52个屏蔽过滤器。选用功能强大的pic18f458单片机,大大简化了电路设计,节省了本钱。can收发器即总线驱动器是can控制器与物理总线之间的接口,可以提供对总线的差动发送和承受功能,can总线驱动器种类有82c250/251、tja1040、tja1050等多种,适用于不同场合。philips公司的高速总线驱动器82c50,它采用双线差分驱动,抗干扰强。can总线驱动器与单片机接线如图1所示,为实现总线上节点

5、之间的电气隔离can驱动器通过高速光藕6n137与pic18f458进展相连。在can总线两端的can接头上接入120欧匹配电阻,以消除阻抗不连续时的反射现象,总线与地各自并联一个30pf的小电容,以防电磁辐射和抗高频干扰。留意在实际应用中,节点之间的电源也要隔离,+5v隔离后才能接vcc,否那么也会有干扰。align=center图182c250与pic18f458接线图/align3软件设计软件采用mplabide7.5开发平台及mcc18软件,为了有利于程序的移植和修改可将程序设计成能相对独立的子程序。can总线的各种协议已经被集成在pic18f458的can模块里面,只要对相应的存放器

6、进展操纵就可完成can系统通讯。pici8f458的can通讯程序主要包括can初始化、承受子程序、发送子程序等。can初始化主要对can进展配置,设置发送邮箱、接收邮箱标识符及初始化数据,设置波特率、can工作形式,初始化承受滤波器和承受屏蔽。承受使用中断方式,发送采用查询方式。在can总线上的所有节点必须有一样的波特率,设波特率fosc=4mhz,同步时间段sync_seg=1tq,传输时间段prop_seg=1tq,相位缓冲时间段1phase_seg1=3tq,相位缓冲时间段2phase_seg2=3tq,标称位时间=8tq,位率=0.125mhz。在can总线通讯中,can的初始化非常

7、重要。3.1can初始化子程序voidintcantrisb=trisb|0x08&0xfb;/设置rb2为输出,rb3为输入/cancon=0x80;/恳求配置/whilecanstat&0x80=0/配置方式/等待进入配置形式/brgcon1=0x01;/设置波特率/brgcon2=0x90;brgcon3=0x42;txb0con=0x03;/设置优先级/txb0sidl=can_biaosf_l&0xe0;/标准标识符/txb0sidh=can_biaosf_h;txb0dlc=0x08;/数据长度1字节/txb0d0=0x00;txb0d1=0x00;rxb0sidl=can_bia

8、osf_l&0xe0;/标准标识符/rxb0sidh=can_biaosf_h;rxb0con=0x20;/承受有效的标准标识符信息/rxb0dlc=0x08;/数据长度1字节/rxb0d0=0x00;/初始数据/rxb0d1=0x00;rxb0d2=0x00;rxf0sidh=can_biaosf_h;/初始化承受滤波器和承受屏蔽/rxf0sidl=can_biaosf_l;rxm0sidh=0xff;rxm0sidl=0xe0;cancon=0x40;/正常形式/whilecanstat&0x40!=0/检测配置完成/pir3=0x00;/初始化can中断/pie3=0x01;ipr3=0

9、x01;3.2接收中断子程序voidinterruphandlerhighifpir3bits.rxb0if=1/接收can中断/can_flag=1;/置接收中断标志/pir3bits.rxb0if=0;/清接收中断标志/rxb0conbits.rxful=0;/接收/3.3发送子程序voidfasongtxb0d0=clz;/clz为发送数值/txb0con=txb0con|0x08;/发送/写好这三局部程序,就很轻易写出通讯程序了。4完毕语本工程设计可用于各种电气设备形成can接口,也可在此根底上继续开发,参加设备的控制算法,对设备进展总线化智能化改造。利用pic18f458设计的can总线接口进展了dkj直行程电动执行机构的智能化改造,与上位机实现了can总线通讯,试验效果理想。0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁