0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CAN控制器和USB接口芯片实现CAN-USB接口卡系统的软硬件设计

电子设计 来源:微计算机信息 作者:左小五 2020-07-06 07:59 次阅读

1. 引言

CAN以其优良的性能,广泛应用在嵌入式系统中,PC机有丰富的软件和强大的功能,在工业网络中,将PC机设计成CAN网络的一个节点,方便数据处理等。

CAN网络与PC机的连接可通过以下几种方式:1)CAN-RS232接口卡;2)CAN-PCI接口卡;3)CAN-USB接口卡。CAN-RS232接口卡速度太慢,且不支持热插拔;CAN-PCI接口卡虽然速度快,但不支持热插拔。而采用CAN-USB接口卡,不但速度快,而且支持热插拔,并且可以从系统中直接汲取电流而不需要外部供电

文中所设计的CAN-USB接口卡,均采用SJA1000和PIDUSBD12, SJA1000为并行总线接口,与现在许多无外部总线的MCU不适应,PIDUSBD12也为并行总线接口,且与MCU的软件接口编写复杂,本文中设计的CAN-USB接口卡,USB接口芯片选择南京沁恒电子有限公司生产的CH375,该芯片支持全速设备接口USB V1.1,该公司提供了完善的USB驱动程序;并且该芯片内部集成了USB 接口SIE、数据缓冲区、被动并行接口、串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等,这样,以CH375设计的USB设备,不需要详细了解USB 通讯协议,开发编程非常方便。CAN协议芯片选择MCP2510,该芯片采用SPI接口,连接方便,有3个发送缓冲区,2个接收缓冲区,宽工作电压,低功耗。

2. 系统硬件设计

设计CAN-USB接口卡,硬件方面需要USB接口芯片、CAN协议芯片和微处理器。系统的硬件框图见图1。

微处理器选择华邦公司的W78E516,该芯片与MCS-51系列单片机兼容,内部集成有64K的FLASH、看门狗、256字节辅助存储器,还支持在系统可编程(ISP)。

基于CAN控制器和USB接口芯片实现CAN-USB接口卡系统的软硬件设计

CH375与MCU的连接提供了并行接口和串行接口,本文采用了并行接口,W78E516与CH375的接口电路如图2所示。

由于CH375可输出复位信号,微处理器可利用此复位信号,从而不需要其它专门复位电路。设计中还必须注意,CH375的晶振频率必须为12MHz,笔者曾经接11.0592 MHz晶振时,系统不能正常工作,改为12MHz时,则可正常工作。

CAN协议芯片选择MCP2510,总线驱动器采用PCA82C250。设计如图3所示。如果要求CAN总线上各节点间电气隔离,可在MCP2510与PCA82C250之间加高速光隔离(如6N137)进行电气隔离。

3. 下位机程序设计

下位机程序的功能是,当接收到CAN报文,将此报文重新组成适合USB传输的数据包,并装载到USB的发送缓冲区,而当从USB接收到数据包,则将此数据包重新组成适合CAN传输的帧。

下位机程序设计采用Keil C进行设计,由于MCP2510是SPI接口,而W78E516没有SPI接口,故编写了专门操作SPI接口的程序。

设计中,CAN报文采用了标准11位ID,并且根据CAN帧格式,在单片机内存中,定义CAN报文发送缓冲区和接收缓冲区。

虽然CH375的端点每次最大可传输64字节,但为了设计方便,我们设计成每次只传输11个字节,用如下的结构体表示。

struct struct_USB

{

unsigned char USB_cmd;

unsigned char Dat[10];

};

USB_cmd中指示每次数据包的含义,以方便PC机与单片机传递信息。Dat[10]为将传输到CAN总线上的数据,或从CAN总线上接收到的数据。

图4 程序流程图

为防止通讯接收溢出,在设计中,为CAN和USB定义了比较大的数据缓冲区,启用了W78E516芯片上的256字节辅助存储器,Keil C编译时配置存储器模式为Compact模式,但在设计中需要注意的是:main()函数的语句中,必须先用赋值语句对寄存器CHPENR和CHPCON进行配置,启用W78E516芯片上的256字节辅助存储器,然后,才能执行函数调用语句,否则程序虽在编译时可通过,但运行时会出现错误。

4.上位机程序设计

上位机程序采用VB进行设计,由于沁恒公司为CH375提供了丰富的动态链接库(API函数),在程序设计时,只需声明和调用这些API函数,下面介绍编程注意事项。

在程序设计时,程序中调用CH375的第一个API函数应为CH375的设备开启函数,Declare Function CH375OpenDevice Lib “CH375DLL.DLL” (ByVal iIndex As Long) As Long,该函数的功能是打开CH375设备。关闭应用程序时,需调用设备关闭函数,Declare Sub CH375CloseDevice Lib “CH375DLL.DLL” (ByVal iIndex As Long),该函数的功能是关闭CH375设备。对于PC机向单片机发送数据和接收来自单片机的数据,只需调用相关的API函数即可。

编写完上位机程序,当CAN-USB接口卡通过USB连接线与PC机的USB接口相连之后,系统会检测到新硬件,此时,安装好驱动程序,就可以使用该设备。正常工作时,此卡中与CH375相连的LED亮。

5. 结论

采用CH375和MCP2510设计CAN-USB接口卡,给出了硬件电路图和软件流程图,相对于其它用SJA1000和PIDUSBD12设计的类似产品,本CAN-USB接口卡的硬件接口简洁,软件不需要编写USB固件程序,开发效率高,性能价格比高,在实际使用中,效果良好。另外,由于硬件上采用了独立的CAN控制器和USB接口芯片,软件采用C语言设计,所以移植到其它微处理器也比较方便。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    452

    文章

    50190

    浏览量

    420693
  • 控制器
    +关注

    关注

    112

    文章

    16092

    浏览量

    177027
  • usb
    usb
    +关注

    关注

    60

    文章

    7872

    浏览量

    263662
收藏 人收藏

    评论

    相关推荐

    基于ARM7的CAN-USB转换设计

    设计了一种CAN-USB转换实现CAN总线与上位机的实时通信,完成了对CAN总线通信的实时信息采集。
    发表于 10-09 15:39 1706次阅读
    基于ARM7的<b class='flag-5'>CAN-USB</b>转换<b class='flag-5'>器</b>设计

    USBCAN芯片

    求一种CANUSB芯片,不是网上买的USBCAN接口卡,只是自己想做一下
    发表于 12-11 09:38

    采用CH375和MCP2510设计CAN-USB接口卡

    ,宽工作电压,低功耗[4]。2. 系统硬件设计设计CAN-USB接口卡硬件方面需要USB
    发表于 05-05 09:29

    基于CAN总线的智能接口卡的设计

    CAN 总线作为一种优秀的现场总线已成为构建现代监测网络的重要通信平台之一,而作为各设备之间通信桥梁的接口卡,显得更为重要。本文介绍一种基于CAN 总线的智能接口卡的设计
    发表于 06-18 10:03 22次下载

    基于USB接口卡

    介绍了一种基于USB 总线接口卡系统,利用此上预留的几种常用接口,用户板可以非常方便的通过USB
    发表于 08-05 16:11 25次下载

    基于LPC2148和MCP2510的高速USB-CAN

    本文介绍了基于LPC2148和MCP2510的USB-CAN接口卡。LPC2148是基于ARM7TDMI-S核的微控制器,处理速度高,内置USB
    发表于 02-25 11:47 35次下载

    CAN/RS232接口卡的设计及实现方法

    CAN/RS232接口卡的设计及实现方法 控制器局域网(Controller Area Network,CAN)属于现场总线的范畴,其总线
    发表于 03-25 09:08 3611次阅读
    <b class='flag-5'>CAN</b>/RS232<b class='flag-5'>接口卡</b>的设计及<b class='flag-5'>实现</b>方法

    CAN计算机接口卡系列产品选型指南详细资料免费下载

    一般来说计算机本身不带CAN接口,所以直接使用计算机和CAN网络是不能互联的。但是很多商用或者工业应用计算机控制系统都离不开CAN-bus,
    发表于 11-05 17:36 6次下载
    <b class='flag-5'>CAN</b>计算机<b class='flag-5'>接口卡</b>系列产品选型指南详细资料免费下载

    基于CAN总线接口卡的软件设计

    硬件部分主要包括主控制器CAN总线控制器CAN总线收发以及与计算机的RS 232通信
    发表于 03-26 13:56 1586次阅读

    广成usb-can接口卡功能讲解(1)

    usb-can接口卡也叫USBCAN分析仪,是我们进行CAN总线数据检测的基础设备。很多的厂家都开放了有自己特色的USBCAN,我们广成科技也不例外。为了方便大家了解广成usb-can
    的头像 发表于 01-03 10:26 2710次阅读

    广成usb-can接口卡功能讲解(2)

    今天我们继续聊有关广成usb-can接口卡功能的一些事情,今天讲的是设备的数据保存功能,好的我们开始。
    的头像 发表于 01-03 10:31 1773次阅读

    广成usb-can接口卡功能讲解(3)

    今天我们继续介绍广成科技usb-can接口卡的功能,今天说的是显示功能以及清除数据功能。
    的头像 发表于 01-03 10:40 2004次阅读

    广成usb-can接口卡功能讲解(4)

    今天我们讲的是广成usb-can接口卡的滤波功能。其实除了usb-can接口卡以外,广成科技还有很多的CAN转换网关也集成了相关的功能。那么
    的头像 发表于 01-03 10:43 1716次阅读

    USBCAN 8E U高性能USBCAN接口卡用户手册

    电子发烧友网站提供《USBCAN 8E U高性能USBCAN接口卡用户手册.pdf》资料免费下载
    发表于 10-17 11:01 1次下载
    USBCAN 8E U高性能<b class='flag-5'>USB</b>转<b class='flag-5'>CAN</b><b class='flag-5'>接口卡</b>用户手册

    USBCAN I/II+智能USBCAN接口卡用户手册

    电子发烧友网站提供《USBCAN I/II+智能USBCAN接口卡用户手册.pdf》资料免费下载
    发表于 10-17 10:50 4次下载
    USBCAN I/II+智能<b class='flag-5'>USB</b>转<b class='flag-5'>CAN</b><b class='flag-5'>接口卡</b>用户手册