- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
USB-CAN转换接口设计
USB-CAN转换接口设计摘要:提出一种使用USB接口实现CAN总线网络与计算机连接的方案,可以应用在使用上位机监控和CAN总线的场合。文中介绍主控制器PIC18F258的CAN通讯模块特点,USB-CAN通讯接口工作的基本原理,讨论了CAN总线与USB之间的硬件接口电路。同时,分析了固件编程方法及主控制器程序的架构。介绍的基于Labwindow/CVI 7.0和VISA的USB驱动程序设计,这种设计方法快捷、方便,为上位机驱动程序的设计提供了一种新的解决思路。系统已经成功应用在虚拟车辆模拟测试系统中。
1 硬件系统设计??? 系统硬件由3部分组成:USB通讯器件,主控制器,CAN电平转换器件。USB通讯硬件采用Philips公司的符合USB1.1规范的器件PDIUSBD12,主控制器使用的是Macmchip公司的PIC18F258,CAN电平转换器件使用的是PCA82C250。系统硬件结构如图1和图2所示:????? 主控CPU-PIC18F258支持在线仿真的调试方式,内部集成了一个CAN 通讯控制器,可以简化系统的硬件结构,提高系统的可靠性。此CAN 模块支持CAN2.0A和CAN2.0B协议,可编程的位速率可达1Mbps,支持标准数据帧、扩展数据帧、远程帧、出错帧、过载帧、空闲帧等类型。CAN模块使用RB3/CANRX和RB2/CANTX/IN32 引脚与CAN 总线驱动器芯片PCA82C250接口。接口电平电路如图2所示。??? PDIUSBD12是Philips公司推出一款性价比很好的USB接口器件,该器件使用并行接口的方式与微控制器进行通讯,使用起来灵活方便,它同时还支持DMA的传输方式。??? 图1中D+引脚信号电平通过器件SoftConnect命令内部上拉,从而向主机表示为一个全速设备。SUSPEND是双向引脚,用以向微控制器指示器件是否挂起。当有USB总线事件发生时,INT引脚向微控制器发出中断信号。PDIUSBD12支持总线复用和非复用2种并行接口模式,以方便连接不同类型的微控制器。??? 在系统中PDIUSBD12与PIC18F258的硬件连接采用了单地址/数据总线配置方案。主控CPU的PORTC连接D12的双向数据13,通过对RD_N(读选通,低有效)和WR_N(写选通,低有效)控制实现对PDIUSBD12的读写 PDIUSBD12的地址位A0连接主控制器的RA0,A0=0时选择命令,A0=1时选择数据。INT_N是USB中断请求脚,发出USB中断请求;GL_N是GOODLINK指示灯,在调试过程中非常有用,在通信时会不停闪烁,如果一直亮或者一直暗,表示USB接口有问题,如果D12挂起,则LED关闭。CLKOUT是D12的时钟输出,可以通过固件编程改变其频率,在调试固件时,可作为参考。RESET_N复位引脚接主控CPU的RA1口,可以通过此对其进行复位,工作时需将其置高。CS_N片选,低有效。D+、D-为USB的输出数据引脚,是和上位PC机的通讯线。硬件系统的工作电源由PC机通过USB提供。
2 软件设计??? 软件设计包括微控制器的编程开发和计算机端USB驱动程序开发两部分。2.1 微控制器编程开发??? 主控制器通过固件程序与计算机进行数据交换。固件设计的目的是:使PDIUSBD12在USB上达到最大的传输速率;增加系统的可扩展性和硬件无关性。固件要实现的内容:一是对集成的CAN控制器初始化,接收CAN总线送来的数据,收集CAN网络状态信息,并将主机的数据下发到CAN 网络;二是对PD1USBD12初始化,完成USB总线连接过程,并组织CAN网络和主机之间的数据传送。设计中采用MPLAB集成开发环境,使用c语言和汇编语言混合编程来完成程序。2.1.1 PDIUSBDI2 端点设置??? D12的端点采用模式0(非同步模式),由于端点0即主端点被固定用于控制输入输出,不能用作通用的输出传输端点,端点1的最大信息包为16Bytes,采用了端点2作为主数据端点,它的最大信息包为64Bytes.2.1.2 CAN通讯协议设定??? 为了使设计具有更好的兼容及可升级性,采用了CAN2.0B扩展帧模式。在CAN模块的3个接收和发送缓冲器中只使用了发送缓存器0和接收缓冲器0。通讯波特率为250 Kbit.使用RB3/CANRX和RB2/CANTX/INT2引脚与CAN总线接口。要配置CANRX和CABTX为CAN接口,需要将主控制器的I/O口分别设置成输入和输出模式。在CAN配置模式下设置发送缓冲器0为扩展标志符模式,初始化接收过滤器和接收屏蔽器为接收所有CAN数据包。完成所有配置后,转入正常操作模式。2.1.3 主程序开发??? 为了提高固件的运行效率,主程序对系统进行初
文档评论(0)