首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式Win CE中CAN总线控制器的驱动设计与实现
来源:本站整理  作者:佚名  2009-05-22 10:51:32




2 流接口驱动程序工作机制
    相比于本机设备驱动程序,流接口驱动程序表现为一个动态链接库,由设备管理器统一加载、管理和卸载。与具有单独目的的内部设备驱动程序相比,所有的流接口驱动程序都是用同一组接口并调用同一个函数集——流接口函数。win CE的文件系统通过这些人口点函数与流接口驱动进行通信,从而达到应用程序访问驱动程序、操作硬件的目的。流接口驱动程序要实现的DLL接口见表1。

    在实际的开发中,上述接口名称中的XXX三个字母被具体设备的设备文件名所代替。流接口驱动程序通过编译后,生成DLL文件,即动态链接库文件。


3 CAN总线控制器sJAl000驱动程序设计
    CAN总线控制器SJAl000驱动采用流接口驱动程序模型,要实现的流接口函数分别为CAN_Init,CAN_Deinit,CAN_Open,CAN_Close,CAN_Read,CAN_write,CAN_IOControl等。应用程序使用CreatFile()函数以文件的方式打开CAN控制器驱动,以获取驱动文件的句柄,然后使用该句柄调用DeviceloControl(),ReadFile(),WriteFile()函数来CAN控制器的各种功能。
    由于篇幅有限,下面仅针对CAN_Init,CAN_Read和CAN_IntrThread函数的实现进行详细的设计。
3.1 CAN_Init函数的设计实现
    当用户开始使用CAN总线控制器时,设备管理器调用这个函数来初始化控制器设备SJAl000。这个函数是通过设备管理器提供的ActiveDeviceEx()函数来调用的。函数执行后,如果成功就返回设备的句柄。CAN_Init函数的流程如图2所示。


3.2 CAN_Read函数的设计实现
  根据CAN协议规范,报文的接收由CAN控制器SJAl000独立完成,收到的报文放在接收缓冲器。可以发送给主控制器的报文由状态寄存器的接收缓冲器状态标志“RBS'’和接收中断标志“RI”标出(如果使能)。主控制器会将这条信息发送到本地的报文存储器,然后释放接收缓冲器并对报文操作。发送过程能被SJAl000的中断请求或查询SJAl000的控制段状态标志来控制。cAN_Read函数操作成功则返回实际读取的字节数,否则返回值为-1。CAN_Read函数程序的流程图如图3所示。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:172,652.30000 毫秒