新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于TMS320F2812和USB100的CAN-USB总线通信系统设计

基于TMS320F2812和USB100的CAN-USB总线通信系统设计

作者: 时间:2011-03-31 来源:网络 收藏

2.2 eCAN模块应用
由于采用片上增强型控制器eCAN,所以CAN模块硬件电路极为简单,只需将F2812的RX和TX引脚经过电平转换器件连接至CAN收发器PCA82C250的TXD和RXD引脚,并以F2812作为CAN的微处理器,进行实时数据收发。其硬件分为2层:第一层,CAN与F2812接口层;第二层,F2812与外围器件的信息处理。CAN收发器采用低廉的PCA82C250,的扩展性强,至少可连接110个节点,其引脚8(Rs)用于选择工作模式,高速工作时上接一个斜率电阻,根据速度可适当调整,一般在16~140 Kb/s之间。

3 系统软件
3.1 DSP程序
本系统中,微处理器主要完成2个功能:一是对eCAN控制器进行初始化;二是完成上位机USB接口和下位机CAN接口的数据。USB接口通过查询的TXE和RXF引脚的状态来完成上位机与微处理器F2812的数据交换,CAN接口的通信主要包括eCAN模块的消息发送和接收。
F2812上电复位后,必须对软件进行初始化,其中最重要的是对eCAN模块初始化。消息发送时,需要初始化发送邮箱,包括向寄存器CANME使能相应邮箱、设置CANMD方向、通过MBOXn.MSGID(n=O~31)设置发送邮箱的ID等操作,初始化后向消息数据寄存器ECanaMboxes.Mboxn.MDR写入上位机USB接口发送的数据,然后设置EcanaRegs.CANTRS.bit.TRSn为1请求发送消息,等待传输响应位TA=1,表示消息成功发送,并产生发送中断,本系统通过发送中断子程序统计发送消息个数。消息接收时,同样需要初始化相应的接收邮箱,完成初始化后,当下位机通过CAN接口发送数据时,如果eCAN模块的接收邮箱的ID与下位机消息的ID匹配,并成功接收,则相应的接收消息挂起寄存器(CANRMP)的相应位被置1;若CPU开放了eCAN接收中断,则同时也产生接收消息中断,在接收中断子程序,可以将相应的消息数据寄存器的内容发给模块的写地址,同时需要查询的TXE端是否允许向USB端口发送数据。
上位机通过USB接口发送数据,下位机通过CAN接口接收数据基本步骤为:
(1)F2812初始化通用IO口以及eCAN控制器;
(2)F2812检测USB模块是否有来自上位机的数据;
(3)若有,将数据读入配置好的eCAN发送邮箱;
(4)启动配置好的eCAN发送邮箱;
(5)当邮箱发送消息给下位机成功后,会进入eCAN发送中断程序;
(6)清除相应标志后退出中断程序,继续等待上位机发送数据。
上位机通过USB接口接收数据,下位机通过CAN接口发送数据基本步骤为:
(1)F2812初始化通用IO口以及eCAN控制器;
(2)当下位机通过CAN接口发送数据时,根据邮箱标识符,已配置好的eCAN接收邮箱收到下位机数据,同时进入eCAN接收中断子程序;
(3)F2812检测USB模块内部缓冲区是否允许向上位机发送数据,若禁止,则等待;
(4)若允许向上位机发送数据,则将数据写入上位机;
(5)清除相应标志后退出中断程序,继续等待下位机发送数据。图2为系统软件流程图。

本文引用地址:https://www.eepw.com.cn/article/156493.htm

2.JPG



评论


相关推荐

技术专区

关闭