论文研究-基于VxWorks的定时器卡驱动程序设计 .pdf

所需积分/C币:6 2019-08-15 10:54:37 147KB .PDF

基于VxWorks的定时器卡驱动程序设计,杨光,师卫,嵌入式设备产品越来越广泛,对嵌入式设备驱动的开发也就越来越重要。VxWorks以其高性能和高实时性成为嵌入式操作领域一大热点,本��
国科技论文在线 http:/www.paper.edu.cn 在找到板卡的前提下采用以下代码获取中断号 pciConfigIn Byte(BusNo, DeviceNo, FuncNo, PCI CFG DEV INT LINE, irqno /* iraN即为获取的中断号* 中断连接 在ⅹ86体系的CPU中,中断连接时要把中断号加上0x20的偏移量。 pcilntConnect((VoidFUNCPTR (INUM To IVEC(irqNo+0x 20)). (FUNCPTR)(Routine), (int)(num); syslntEnablePIC( iraN);/*打开系统中断* 中断断开 在X86体系的CPU屮,中断断开时时也要把屮断号加上0x20偏移量。 pcilntDisconnect((VOidFUNCPTR (INUM TO IVEC(irqNo+Ox20)),(FUNCPTRroutine sysInt DisablePIc(iqNo);体*关掉系统中断* (3)初始化MITE NIPCI-6602中的 MITE PCI接口实现了板卡内部数据、地址和PCI总线的通信,因此初 始化MTE之后就可实现PC-6602设备组件与PCI总线的通信。 初始化MITE Wie32( Baseado+0xC4,( Baseaddr1&0 XFFFFFFOOL)|0x8C):/伴 Base(0为板卡基 地址0, BaseAddrl为板卡的基地址1* Write 32( BaseAddrO+ OxF4, 0x0) 22脉冲宽度调制及有限点数脉冲的实现 脉冲产牛的数据流如图2所示: Output eneration Output 图2脉冲产生的数据流 Fig 2 Pulse Generation Data Flow (1)脉冲宽度调制(PWM)的实现 由图2可知,通过合理设置PC-6602的寄存器屮的 Gi Load A Register和 Gi load B Register的值便可实现仟意占空比及频率的脉冲,由此便可实现脉冲宽度调制(PWM) (2)利用中断方式产生有限点数的脉 PC6602在没置 Gi Interrupt Enable为使能后,每次在高低电半翻转时会触发一次中断 由此在PWM的基础上用中断方式便可以实现有限点数的脉冲。 国科技论文在线 http:/www.paper.edu.cn 利用获取的中断号和操作系统提供的 pcilntConnecti函数将中断服务程序和中断向量连 接起来,然后打开中断,使能够响应中断。检査 Gi Status Register奇存器的地址及相应位米 判断是那个通道来的屮断,执行相应通道的服务程序代码。在每次调用屮断后操作寄存器 Interrupt Acknowledge Register将屮断清掉。 中断服务程序代码要尽可能简练,使其能尽快返冋,不能造成系统阻塞而影响系统性能。 在中断服务程序中,不能调用可能引起调用阻準的函数,如试图获取一个信号量、 malloc()、 fre∽O,不能调用任何创建和删除函数,也不能通过 VX Works驱动执行IO操作等,若需打印 可以使用 logMsg而不能使用pint 中断服务程序代似 void interrupt routine( (int num)/*num为要输出的脉冲个数* int Timer status read16 (BaseAddrl, 0x106, (UinT16 )&Timer Status); 体*判断是否为此通道产生的中断* f(Timer Status 0x8000) count++. writelntAcknowledged( Baseaddr1l,3);/清中断* if(count num) write6( g addr1,0x190,0x0008):/将此通道的定时计数器关掉* count=0 3结论 本文结合NIPC1-6602定时器卡分析了在Ⅴ X Works嵌入式实时操作系统下开发PCI设备 驱动程序的框架和方法,并实现了脉冲宽度凋制和有限点数脉冲输出的功能。经试验表明, 脉冲宽度调制可以实现10MHz以上的脉冲发送,在1OMHz下具有很高的精度,而对于有限 点数的脉冲在频率超过50KHz的情况下脉冲输出的个数可以实现零误差操作。 参考文献]( References) l」周启平,张杨,吴琼Ⅴ x Works开发指南与 Tornado仗用手册M」北京:牛国电力出版社,2004 [2]孔祥营,张保山,俞烈彬 Vx Works驱动及分布式编程M]北京:中国电力出版社,2007 [3]美国国家仪器公司N660x寄存器手朋[OL]htp: digital ni. colm/manual. nsf 「41卞红雨,曹明明,桑恩方 Vx Works下PCI总线设备驱动栏序设计[声学与电子工程,205年,5期,42 [5]周启平,张杨 VX Works下设备驱动程序及BSP开发指南[M北京:中国电力出版社,2004. [6]孔祥营,柏枓枝嵌入式实时操作系统 Vx Works及其开发环境 Tornado[M北京:中国电力出版社,2002. 4

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源