下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 版权归原版权人所有,请勿用于商业用途!usb-can转换接口设计摘要:提出一种使用usb接口实现can总线网络与计算机连接的方案,可以应用在使用上位机监控和can总线的场合。文中介绍主控制器pic18f258的can通讯模块特点,usb-can通讯接口工作的基本原理,讨论了can总线与usb之间的硬件接口电路。同时,分析了固件编程方法及主控制器程序的架构。介绍的基于labwindow/cvi 7.0和visa的usb驱动程序设计,这种设计方法快捷、方便,为上位机驱动程序的设计提供了一种新的解决思路。系统已经成功应用在虚拟车辆模拟测试系统中。1 硬件系统设计 系统硬件由3部分组成:usb通讯器
2、件,主控制器,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 引
3、脚与can 总线驱动器芯片pca82c250接口。接口电平电路如图2所示。 pdiusbd12是philips公司推出一款性价比很好的usb接口器件,该器件使用并行接口的方式与微控制器进行通讯,使用起来灵活方便,它同时还支持dma的传输方式。 图1中d+引脚信号电平通过器件softconnect命令内部上拉,从而向主机表示为一个全速设备。suspend是双向引脚,用以向微控制器指示器件是否挂起。当有usb总线事件发生时,int引脚向微控制器发出中断信号。pdiusbd12支持总线复用和非复用2种并行接口模式,以方便连接不同类型的微控制器。 在系统中pdiusbd12与pic18f258的硬件连
4、接采用了单地址/数据总线配置方案。主控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口
5、,可以通过此对其进行复位,工作时需将其置高。cs_n片选,低有效。d+、d-为usb的输出数据引脚,是和上位pc机的通讯线。硬件系统的工作电源由pc机通过usb提供。2 软件设计 软件设计包括微控制器的编程开发和计算机端usb驱动程序开发两部分。2.1 微控制器编程开发 主控制器通过固件程序与计算机进行数据交换。固件设计的目的是:使pdiusbd12在usb上达到最大的传输速率;增加系统的可扩展性和硬件无关性。固件要实现的内容:一是对集成的can控制器初始化,接收can总线送来的数据,收集can网络状态信息,并将主机的数据下发到can 网络;二是对pd1usbd12初始化,完成usb总线连接过
6、程,并组织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/ca
7、ntx/int2引脚与can总线接口。要配置canrx和cabtx为can接口,需要将主控制器的i/o口分别设置成输入和输出模式。在can配置模式下设置发送缓冲器0为扩展标志符模式,初始化接收过滤器和接收屏蔽器为接收所有can数据包。完成所有配置后,转入正常操作模式。2.1.3 主程序开发 为了提高固件的运行效率,主程序对系统进行初始化后开放中断,在中断服务程序中对事件进行分析和必要的处理,并设置相应的变量标志和数据缓冲区。主程序则循环查询变量标志,调用相应的子程序进行处理。这种程序结构使得主程序能够在前台处理各种数据传送任务,同时又可以通过中断在后台及时处理总线事件。当主控cpu处理前台任务
8、时usb的传输可在后台进行。这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。后台中断服务程序isr和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现。 主程序完成所有i/o配置及can初始化配置服务子程序,并等待usb与pc机建立连接。程序在建立好与上位pc机通讯后即等待数据交换;如果发生can接收事件,则将can数据包连同标识符一同通过端点2发送到pc机;如果发生usb接收事件,则将包数据分解为标识符和数据两部分,通过can发送服务子程序发送到总线。主循环流程如图3所示。 整个模块在硬件和软件的设计过程中贯彻了简洁、易维护、易升级的思想,在保证可靠性的前提下,尽量简
9、化设计,为了保证传输的实时性,只负责完成数据的转发工作,复杂的数据处理工作将通过上位机软件labwindows处理。2.2 上位机驱动程序的设计 系统的上位机软件的开发使用的是labwindows/cvi 7.0版本软件。labwindows/cvi是national instruments(美国国家仪器公司,简称ni公司)推出的32位的面向计算机测控领域的虚拟仪器软件开发平台,可以在多操作系统下运行。labwindows/cvi是一个基于标准c开放的开发环境,以工程文件为主体框架把c语言源代码文件、头文件、库文件、目标模块、用户界面文件、动态链接库和仪器驱动程序集成在一起,提供内置式函数库用
10、于完成数据采集、分析和显示任务,它还提供简单的拖放式用户界面编辑器以及自动代码生成工具。利用这些功能,您可以在将代码加入到某项目之前,先对其进行互动式的测试,用labwindows/cvi定义和建立用户界面,生成或运行activex组件及开发多线程应用。 所使用的usb设备没有现成的驱动程序,而编写驱动程序是一件很困难的事情。ni公司开发的labwindows/cvi 7.0版本新增visa的usb大大方便了usb驱动程序的开发。ni visa3.0包含有visa驱动程序生成向导可以为usb设备创建inf文件。另外,它内含丰富的数据采集、数据信号分析以及控制等子程序,用户利用创建和调用子程序的
11、方法编写程序,使创建的程序模块化,易于调试、理解和维护,而且程序编程简单、直观。 在系统中安装完ni_visa后,从开始菜单中打开程序national instrument visa visa driver developer wizard.可以使用这个向导为pxi/pci或usb设备创建inf文件,使用的usb设备只要在向导的第一个对话框中选中usb即可,以后按照向导的提示填入一些所使用的usb设备的信息,最终将会在所选择的路径下生成相应的inf文件。把此文件复制到c:windowsinf文件夹中并安装,然后就可以安装usb设备了。 usb设备启动后,在应用程序中添加visa的相关i/o接口
12、软件,就可以实现usb通讯了。主要函数介绍如下:函数viopendefaultrm得到sa资源管理器句柄;函数viopen打开usb设备句柄;函数visetattribute设置发送和接收端点属性;函数vigetattribute查看结果;函数viread和viwrite进行读写数据;函数viclose释放仪器和资源管理器句柄。 在帮助文件中和labwindows教材中可以查到上面这些函数的使用方法。上位机程序中,调用上面给出的这几个函数就能编写实现上位机与usb器件的通讯。为了实现usb通讯,在传输数据时,读/写数据格式都要与usb协议相兼容。3 结束语 基于pici8f258和pdiusbdi2的usb-can转换接口已经成功的应用在虚拟车辆模拟测试系统中,使用方便,运行可靠。基于labw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沪科版九年级数学上册期末复习考点 第23章 解直角三角形知识归纳与题型突破(12类题型清单)
- 2024-2030年中国型钢产业趋势预测及投资产量分析报告
- 2024-2030年中国地铁建设行业前景规划及投资经营模式分析报告
- 2024年智能软件使用与数据保密协议2篇
- 2024年特许经营合同(加盟)
- 梅河口康美职业技术学院《运动伤害事故处理与急救》2023-2024学年第一学期期末试卷
- 2024年“通办”第二批事项指导目录实施合同范本3篇
- 2024年二手手机买卖与市场推广合作协议3篇
- 满洲里俄语职业学院《云计算原理及应用》2023-2024学年第一学期期末试卷
- 影视动画资源库相关专业介绍
- 离散数学(下)智慧树知到课后章节答案2023年下桂林电子科技大学
- 咖啡因提取的综合性实验教学
- GONE理论视角下宜华生活财务舞弊案例分析
- 初中语文默写竞赛方案
- 2023电力建设工程监理月报范本
- 汽车空调检测与维修-说课课件
- 氨水浓度密度对照表
- 白雪歌送武判官归京公开课一等奖课件省课获奖课件
- 园林植物栽培与环境
- 小型双级液压举升器设计
- 9月支部委员会会议记录
评论
0/150
提交评论