基于uclinux的CAN总线嵌入式驱动编程

技术分类: 嵌入式系统  | 2008-03-31
来源:机电设备 | 作者:秦娟英 关军明 雷全锋

  5 CAN总线嵌入式系统硬件设计

  本设计选用Samsung公司的S3C4510B作为嵌入式系统的微处理器芯片,该处理器是16/32位RISC微处理控制器,内含由ARM公司设计的16/32位ARM7TDMI RISC处理器核,适用于价格及功耗敏感的场合.除内核外,该微处理器的片内外围功能模块包括:2个带缓冲描述符的HDLC通道;2个UART通道;2个GDMA通道;2个32位定时器及可编程I/O口.CAN控制器选用philips公司的SJA1000,该芯片与PCA82C200电气兼容,带64字节先进先出(FIFO)堆栈,兼容协议CAN2.0B,支持11位和29位识别码,位速率可达1Mbps,24MHZ时钟频率,芯片内含寄存器,可由用户配置CAN总线波特率,设置验收屏蔽标识码,可配置系统为PeliCAN 模式或BasicCAN模式,出错告警等.

  该系统采用82C250作为收发器,其硬件连线如图(1)所示.AD0~AD7与S3C4510B的p0~p7连线,/cs接p12,ALE接p13,/RD接p14,/wr接p15,/int接XINTREQ0.

 SJA1000硬件连线

图1 SJA1000硬件连线

  6 驱动软件设计

CAN总线初始化框图

图2 CAN总线初始化框图

  本设计中,CAN总线驱动程序是作为一个模块放在linux/deriver/char/文件夹里面,软件流程如图(2)所示,其设计详细介绍如下.

  模块首先对引用的库函数进行申明,并且定义:

程序

  主要有以下几个模块:

程序

  在该驱动程序中,定义结构变量can_fops为应用程序访问内核的接口:

程序

程序

  7 结束语

  本文介绍了CAN总线在嵌入式系统中的驱动编程,对CAN总线技术在嵌入式系统中的应用进行了探索.本设计已在通信用逆变电源远程监控系统中应用.

1】【2
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销