DSP与CAN总线的测速和远程传送一体化.doc_第1页
DSP与CAN总线的测速和远程传送一体化.doc_第2页
DSP与CAN总线的测速和远程传送一体化.doc_第3页
DSP与CAN总线的测速和远程传送一体化.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP与CAN总线的测速和远程传送一体化速度测量是控制工程的基本问题之一。在许多情况下,测速信号需要远距离传送。实现这个问题的一个主要方法是使用SoC(片上系统)芯片。它所带的丰富外设 改变了关于硬件和软件的观念。搭建硬件系统变为对硬件结构的理解掌握,软件的编程也从算法编制为主变为部件设置为主,具有简捷、完整的特点,体现了芯片的 技术优势。SoC类的TMS320LF2407DSP芯片在测速和远程传送应用中的简捷一体化设计也体现了这一点。1 相关系统结构 TMS320LF2407所带有的事件管理器和CAN控制器模块为测速和远程传送提供了便利。 TMS320LF2407有2个事件管理器EVA和EVB,各有3个捕获单元。对应6个捕获输入引脚CAPX(对EVA,X=1,2,3;对EVB,X= 4,5,6)。6个捕获输入引脚分别与QEPl/IOPA3、QEP2/IOPA4、IOPA5、QEP3/IOPE37、QEP4/IOPFO和 IOPFl 共用。当捕获输入引脚CAPX上检测到所选的跳变时,所选的GP定时器的计数值被捕获并存入到一个2级深的FIFO堆栈中。 TMS320LF2407的CAN控制器模块包括有邮箱和相应的控制/状态寄存器。共有6个邮箱:2个接收邮箱(MBOX0、1),2个发送邮箱 (MBOX4、5),2个可配置为接收或发送邮箱(MBOX2、3)。TM$320LF2407的CAN控制器模块完全支持CAN2.0B协议。通常情况下,测速传感器系统输出的是数字测速脉冲信号。因此,可把这个加到TMS320LF2407DSP芯片捕获引脚上。利用TMS320LF2407芯片的捕获单元测量输入脉冲的周期,再由内置的CAN总线控制器单元发出CAN周期信号,实现测速和远程传送一体化。2 系统配置2.1 捕获单元及相应定时器的配置 TM$320LF2407捕获单元的工作原理是:以输入脉冲上升沿、下降沿或上升沿下降沿为界,由相应的定时器计数来度量周期,计数值被捕获送入相应的一 个2级深的捕获堆栈FIF0中。因此,涉及到捕获和定时器两部分的配置操作。需要配置的捕获操作有:在I/O口复用控制寄存器MCRx(x=A、B或c) 中把相应引脚配置为捕获输入;在捕获控制寄存器CAPCONA/B中选择(使能)捕获单元、选择(使能)相应的定时器和边沿选择(上升沿、下降沿或上升沿 下降沿);在中断标志寄存器EVA/BIFRX和中断屏蔽寄存器EVA/BIMRX中设置中断控制情况。需要配置定时器的操作有:对单个通用定时器 TXCNT清零;在全局通用定时器控制寄存器GPTCONA/B中设置相应定时器的操作及计数方向;在单个通用定时器周期控制寄存器TXPR中设置比较周 期;在单个通用定时器控制寄存器TXCON中设置计数操作模式。 周期控制寄存器TXPR中设置的比较周期应大于输入脉冲信号的周期。在不知道输入脉冲信号周期的情况下,应设置为最大值。当度量周期超过最大捕获时间时,用定时器溢出的方法再加软件计数解决。2.2 捕获周期的取出和传送 存放于捕获堆栈FIFO的捕获周期的取出有中断和查询两种方法。捕获单元所在的事件管理器的中断延时时间为20个CPu周期(典型),或25个CPU周期(最小保护),或8个cPU周期(单个中断),或l6个CPU周期(不考虑存储器空间)。在具体设计中,中断延时时间被设为某一定值。在通常中断处理程序很短的情况下,中断时间主要由中断延时时间决定。为了系统的扩展,即使是单个外设,也还是以采用中断方法为宜,而不是查询方法。2.3 CAN控制器模块和位定时器配置 CAN控制器模块的配置包括初始化邮箱、位定时器设置和数据收发。有关内容参见文献1。这里介绍一下位定时器的设置。位 定时器的设置决定总线传输信号的波特率,是CAN控制器模块的核心配置问题。TMS320LF2407有两个位控制寄存器BCRl和BCR2。它们必须在 CAN控制器处于复位模式下(即CCR=1)才能被配置。位控制寄存器BCR2包括波特率预分频位BRP7-0,用来确定CAN控制器的时间片TQ, 作为位控制的基准时间。位控制寄存器BCR2包括同步跳转宽度选择位SJW1-0、采样次数选择位SAM7、包含传播延时时间段(PROG SEG)和相位延时时间段1(PHASE SEGl)的时间段1 TSEGl3-0、决定相位延时时间段2(PHASE SEG2)的时间段2 TSEG22-0。这样波特率为3 设计实例 本例的基本设置是选定捕获单元4(CAP4)对输入脉冲宽度进行捕获,事件管理器EVB的通用定时器3对脉冲进行计数。捕获计数值从FIFO堆栈取出送到 临时寄存器CAP4TEMP,以便于扩展。再从CAP4TEMP送到3号邮箱经CANTX/IOPC6和CANRX/IOPC7发送,如图1所示。 3.1 捕获单元为中断方式而CAN控制器为查询方式 首先进行系统初始化,包括关中断、清标志位、系统时钟20MHz使能包含有捕获单元的第4级中断INT4,再进行捕获单元初始化和CAN控制器初始化。有 关内容前已叙述。由于捕获单元处于中断方式,从捕获堆栈FIFO的取捕获周期值的操作在捕获单元的中断处理程序中进行;而CAN控制器处于查询方式,要在 主程序中循环检查捕获标志。确认捕获后,从暂存寄存器CAP4TEMP中取出捕获周期值送到邮箱3。值得一提的是,由于捕获周期值为1 6位数据,故需要传送的数据是2字节。因此发送控制器MSGCTRL3的DL=2。这种情况的程序流程如图2所示。 3.2捕获单元中断处理包括CAN控制器的信息发送 如前所述,当CAN控制器处于查询方式时,CAN控制器的操作程序很复杂,又位于主程序,不利于主程序的扩展和外设的增加;因此可以把CAN控制器信息发 送设置于捕获单元中断处理中,使主程序变得十分简单。在这种情况下,捕获单元中断处理程序同时包括捕获周期取出和CAN信息发送。由于减少了判断和循环, CAN信息发送变得简单。捕获单元中断处理程序如下:CAP4_ISRLDP #DP EVBLACL CAP4FIFO ;取捕获堆栈值LDP DP_USERSACL CAP4TEMP ;捕获值送入临时寄存器LDP #DP EVBSPLK #0,T3CNT ;清T3计数值,使其重新计数LDP #DP_CANSPLK #0000H,MDER ;邮箱不使能SPLK #0100H,MCR ;CDR=I,数据改变请求LDP #5LACL CAP4TEMP ;取捕获值LDP #DP_CAN2SACL MBX3A ;把捕获值移入到邮箱3LDP #DP_CANSPLK #0880H,MCR ;DBO=1,CDR=0,ABO=1,STM=0SPLK #08H,MDER ;MD3=0,ME3=1,邮箱3发送使能LDP #DP CANSPLK #0020H,TCR ;邮箱3发送请求W_TA3 LDP #DP_CANBIT TCR,2 ;邮箱3发送应答TA3(位13)=1BCND W_TA3, NTC ;等待发送应答LDP #DP_CAN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论