侵权投诉
订阅
纠错
加入自媒体

基于WinCE环境的CAN适配卡驱动程序的设计与实现

2011-01-12 15:19
小鱼时代
关注

  1.引言

  WinCE是一种为多种嵌入式系统和产品设计的紧凑、高效、可升级的操作系统,WinCE 采用标准模式,其最主要的特征:为有限的硬件资源提供了多线程、多任务和完全优先级的计算环境。

  WinCE操作系统支持两种类型的驱动程序:[1]本地驱动程序(Build-In),是把设备驱动程序作为独立任务实现,直接在顶层任务中实现硬件操作,完成特有专用的驱动程序;流接口驱动程序,WinCE的I/O系统将设备程序作为内核过程实现,这种方式便于实现I/O子系统的层次模型,便于文件系统一起把设备作为特殊文件处理,提供统一的管理、统一的界面和统一的使用方法,并把设备、文件及网络通信组织成为一致的更高层次的抽象,为用户提供统一的系统服务和用户接口。驱动程序封装了将这些命令转换为它所控制的设备上的适当操作所需的全部信息。流接口驱动程序有在启动时加载和动态加载两种方式。本文实现的在WinCE环境下流结构的PC/104-CAN驱动程序是在系统启动时加载的。

  2. CAN总线技术简介

  CAN总线是德国Bosch公司开发的一种串行数据通信协议,CAN总线属于总线式串行通讯网络,具有总线为多主方式工作且无需站地址节点信息、CAN网络上的节点信息分成不同的优先级、总线冲突仲裁时间低和总线的通信介质选择灵活等优点[2]。

  CAN适配卡的核心工作单元是它的控制器,控制器SJA1000的组织结构如图1所示。

  

  图1 SJA1000的内部结构方框图

  其中,接口管理逻辑(IML):[3]它接收来自微控制器的命令,控制CAN寄存器的寻址,并向微控制器提供中断和状态信息;发送缓存器:存贮发送到CAN网络上的完整信息;位流处理器(BSP):是一个控制发送缓存器和接收缓存器与CAN总线之间控制数据流的程序装置,同时具有执行错误检测、仲裁、总线填充和错误处理的能力;位定时逻辑(BTL)单元:主要监视串口的CAN总线,并处理与总线有关的位时序,使SJA1000同步于CAN总线上的位流;错误管理逻辑(EML):主要完成接收BSP的出错报告,并按照CAN协议完成错误界定, 从而使BSP和IML进行错误统计。

  CAN适配卡的硬件网络工作环境示意图如图2所示。

  

  图2 CAN适配卡应用系统的总体结构图

  图2 中,通用微机的操作系统是WinCE,上位通用微机通过PC/104总线与CAN接口适配卡相连,CAN接口适配卡与具有CAN接口的串行芯片通过CAN总线进行数据交换,所采用的协议是CAN协议。在CAN协议中,报文的表示、传送和控制主要由4种类型的帧来完成[4]:数据帧,携带数据信息,由发送器发送到接收器;远程帧,主要用于请求发送具有相同标识符的数据帧,是通过总线发送的;出错帧标识总线错误,由检测出总线错误的任何总线单元产生;超载帧主要为当前的和后续的数据帧提供附加延迟。

1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号