教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

基于VxWorks的SPI接口芯片MCP2510的驱动程序设计

来源:网络收集 时间:2026-03-03
导读: 本文结合具体的网关设备KT700介绍了基于VxWorks 的SPI接口芯片MCP2510的驱动程序设计,并给出了部分驱动程序的核心代码。本设备驱动程序编写的思路严格按照VxWorks 下设备驱动程序的要求, 对其它基于VxWorks 的设备驱动有很强的参考意义。 基于VxWorks的SPI接

本文结合具体的网关设备KT700介绍了基于VxWorks 的SPI接口芯片MCP2510的驱动程序设计,并给出了部分驱动程序的核心代码。本设备驱动程序编写的思路严格按照VxWorks 下设备驱动程序的要求, 对其它基于VxWorks 的设备驱动有很强的参考意义。

基于VxWorks的SPI接口芯片MCP2510的驱动程序

设计

谷新尧,梁作生

中国矿业大学信息与电气工程学院,徐州(221008)

E-mail:

摘 要:本文结合具体的网关设备KT700介绍了基于VxWorks 的SPI接口芯片MCP2510的驱动程序设计,并给出了部分驱动程序的核心代码。本设备驱动程序编写的思路严格按照VxWorks 下设备驱动程序的要求, 对其它基于VxWorks 的设备驱动有很强的参考意义。 关键词:VxWorks;SPI;网关 CAN

1. 前言

目前, 嵌入式系统的开发已经离不开操作系统的支持, 而开发基于嵌入式操作系统的底层硬件驱动程序是研发中必不可少的工作之一。VxWorks 是美国WindRiver公司推出的一个层次化分明的嵌入式实时操作系统(RTOS),每层各负其责,层与层之间又紧密相连。我们要编写的驱动程序属于底层的范畴,而用户的应用程序则属于上层,它们中间还分有很多层次,而这些中间层无需开发,由VxWorks 进行维护和管理。这样, 操作系统把各层有机地连接在一起,使代码紧凑而高效。

2. VxWorks的I/O系统与设备驱动

编写带有SPI接口的MCP2510芯片完成的CAN设备驱动程序之前, 应该明确VxWorks 的I/ O 系统和设备驱动结构。图1即VxWorks I/ O 系统层次结构。图中最底层就是我们要编写的MCP2510芯片的驱动程序。它作为I/O系统和硬件设备之间的连接层的作用就是屏蔽硬件操作,为I/O系统提供服务。VxWorks 的I/ O 系统向上提供了7个统一的I/ O 接口,供应用程序调用。向下通过ttyDrv和TyLib提供与各种字符设备驱动程序的接口。I/ O 系统把应用程序跟驱动程序有机地连接起来。最顶层的应用程序通过统一的I/O接口对底层的硬件进行操作。与UNIX 类似,VxWorks所有的I/ O 设备都被当作文件来存取。

图1 I/ O 系统与CAN设备驱动层次结构图

Figure 1 Structure of I/O Systerm and CAN Device Dervier

3. SPI接口驱动程序设计

本文提及的SPI接口驱动程序是针对具体的网关项目KT700的CAN通信的实现而设计

本文结合具体的网关设备KT700介绍了基于VxWorks 的SPI接口芯片MCP2510的驱动程序设计,并给出了部分驱动程序的核心代码。本设备驱动程序编写的思路严格按照VxWorks 下设备驱动程序的要求, 对其它基于VxWorks 的设备驱动有很强的参考意义。

的。包括对PPC系列单片机MPC850 SPI接口的初始化配置,以及MPC850通过SPI接口对MCP2510内部寄存器的配置。网关KT700通过SPI接口对MCP2510内部寄存器的配置,使该控制器能够正常工作,再配以CAN收发器PCA82C250完成网关KT700的CAN数据的收发。因此我们必须首先了解SPI接口驱动程序的软硬件环境,MCP2510芯片的工作原理,寄存器的配置,以及VxWorks嵌入式操作系统是如何通过统一的接口完成CAN数据的收发的。

3.1 SPI接口驱动程序的软硬件环境

(1)硬件环境

网关KT700以飞思卡尔公司生产的微处理器MPC850为核心,其对外的通信接口主要包括一个网络接口、四个UART口和一个CAN接口。网络接口由CPU的SCC模块驱动,四个UART口中的两个为CPU的SMC模块直接驱动,另两个则是采用美国德州仪器公司生产的tl16c2550芯片以总线的方式加以扩展,CAN接口采用SPI的界面实现MCP2510控制器与CPU的通信[1]。CAN接口部分原理如图2所示:

图2 CAN通信原理图

Figure 2 Figure of CAN Communication

(2)软件环境

在网关KT700中,我们采用了美国Wind River公司推出的VxWorks嵌入式实时操作系统。与其他嵌入式系统开发类似,VxWorks也采用了主机-目标机模式。主机即我们的电脑,目标机即网关KT700,VxWorks板级支持包可以很好的支持PPC系列的单片机,只要我们找到合适的板级支持包(BSP),并做一定的修改,就可以使用了。这样我们在编写SPI接口驱动的时候就不用多考虑CPU相关部分的代码。在开发调试过程中,主机与目标机通过网络进行通信,主机运行VxWorks的开发软件Tornado2.0.2,目标机运行VxWorks5.5。

3.2 MCP2510芯片简介

常见的CAN控制器是Philips公司生产的独立CAN总线控制器SJA1000, SJA1000的电源供应是+5V,而控制器将与MPU直接进行数据传输, 因为我们的MPU的电源供应是

3.3V,两者之间的电压是不同的,不能进行数据直接传输。所以选择了MCP2510 CAN控制器。

Microchip Technology Inc.(美国微芯科技有限公司)生产的MCP2510是一款局域网络(CAN)协议控制器,完全支持CAN总线V2.0A和V2.0B技术规范[2]。该器件能够发送和接收标准和扩展报文。它还同时具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,减少了微处理器(MPU)的管理负担。它可以通过标准的SPI接口与MCU或MPU通信。

本文结合具体的网关设备KT700介绍了基于VxWorks 的SPI接口芯片MCP2510的驱动程序设计,并给出了部分驱动程序的核心代码。本设备驱动程序编写的思路严格按照VxWorks 下设备驱动程序的要求, 对其它基于VxWorks 的设备驱动有很强的参考意义。

3.3驱动程序设计

3.3.1 初始化部分

系统在上电后,一般要在sysHwInit()函数中对各设备进行初始化,然后载入各设备驱动。对于CAN设备来说,初始化部分要做的工作有两方面,一是要对CPU的寄存器进行设置,使CPU的SPI接口能够正常工作,通过SPI接口对MCP2510芯片进行配置,使之能够正常工作。MCP2510的寄存器设置包括对位定时寄存器,验收屏蔽寄存器,验收滤波寄存器,接受缓冲控制寄存器,中断使能寄存器的设置。二是对中断服务程序的挂接。

对CPU寄存器的设置可以按照MPC850数据手册上对SPI接口的配置步骤进行配置。主要包括对参数RAM中的SPI接口的起始地址相对于IMMR的偏移量的设置,SPI接口的配置,以及发送和接受BD的配置。

SPI接口配置成功后,按照MCP2510数据手册上提供的时序,通过SpiWrite(u_char *addr, int alen)函数对MCP2510芯片的寄存器进行配置。首先应该对MCP2510芯片进行复位设置,然后把该芯片设置成在配置工作模式下。然后对位定时寄存器,验收屏蔽寄存器,验收滤波寄存器,接受缓冲控制寄存器,最后配置芯片在正常工作模式下。

对中断服务程序的挂接,主要在BSP 目录中的spi. c中的canHwInit2()函数中完成: intConnect (IV_SPI, (VOIDFUNCPTR)canInt, (int) &ppc860spiChan)。intConnect ( ) 的作用

在这里,SPI接口的中断服务程序是canInt ()函数 ,是将中断服务程序与中断向量关联起来[3]。

通过intConnect ( )函数 ,可以将canInt ()函数和它对应的中断向量IV_SPI关联起来。通过传递到ISR 的参数(int) &ppc860spiChan ,可以确定是SPI接口进行CAN数据传输时产生的中断。其中的IV_SPI是中断号,在ppc860Intr. h 文件中定义,而通过INUM_ TO_IVEC() 将中断号映射到中断向量表中的指定位置。

3.3.2 发送与接受

在编写SPI接口收发程序之前,必须明确收发数据的流程。上文提过,我们接收数据采用中断方式。当数据进入MCP2510的接受收缓冲器中,会根据触发级别产生中断信号。CPU 根据中断向量找到相应的中断服务程序。在中断服务程序中,我们要做的工 …… 此处隐藏:6315字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于VxWorks的SPI接口芯片MCP2510的驱动程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1335655.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)