您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术VxWorks下PC/104-CAN驱动程序设计 正文
VxWorks下PC/104-CAN驱动程序设计

VxWorks下PC/104-CAN驱动程序设计

点击数:7300 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   嵌入式系统-技术

CAN卡开中断和进入操作模式

Return((int)pCan_Dev); /*注意必须返回设备描述结构指针*/

}

int CanRead(int CAN_DEV_ID,UBYTE * buf,int nBytes){

等待信号量(该信号量由中断处理例程释放)

从接收缓冲区读取数据

释放接收缓冲

返回接收数据数量

}

int CanWrite(int CAN_DEV_ID,UBYTE* buf,int nbyte){

查询发送缓冲是否可用

向发送缓冲区写数据

命令发送

查询发送完成标志

返回发送数据数量

}

void interrupt_handle_routin(int arg){

处理中断事件

发送(释放)信号量

}

限于篇幅,其它函数略。

图3 I/O系统整体结构

5 CAN驱动调试

硬件驱动的调试是件十分麻烦的事,经验十分重要。这里简要介绍几个帮助调试的函数。

①可以调用iosDrvShow()、iosDevShow()及iosFdShow()查看相关内容,判断并将驱动及设备中入相应列表。

②使用logMsg()现实相关内容,以定位错误。

初期调试,示波器和信号灯是非常有用的,可以确定硬件的工作状况,从而有助于发现程序中的错误。

6 小结

笔者采用两种方式完成了CAN卡驱动。相对于第一种(笔者亦完成),第二种方式——VxWorks的I/O系统将设备程序作为内核过程实现,大大减少了系统的开销,实时性和可靠性有了很大的提高,并且为用户提供了统一的接口,使用十分方便。

开发驱动程序,辅助工具是非常有用的。Windows下的开发工具就比较多,而在VxWorks下开发驱动的工具相对较少。Windriver是一款不错的开发工具,可以开发VxWorks下的驱动程序(也可以开发其它操作系统下的驱动程序)。正确、熟练地使用这些辅助工具,会使开发工作事半功倍。



上一页  [1] [2] 


本文关键字:程序设计  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术