基于GT2440和Linux的CAN总线驱动开发设计
2012-03-15
1.引言
由于CAN总线的高性能和可靠性,所以被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。而目前多数嵌入式处理器都不带CAN总线控制器,本文基于深圳恒天智信科技公司的GT2440开发板和MSG-3CM型CAN总线模块开发板,在linux操作系统环境下,详细介绍了开发CAN总线设备驱动程序的方法与过程。
2.硬件部分
2.1 GT2440嵌入式开发系统
GT2440是一款具有极高性价比的嵌入式开发系统,CPU处理器采用Samsung S3C2440A,主频400MHz;板载64M SDRAM、256M Nand Flash、2 M Nor Flash;板载5线异步串行口(UART0)、10M以太网RJ-45接口、USB HOST接口、USB Slave B型接口和一个SD卡存储接口;集成了4线电阻式触摸屏接口和JTAG接口等。
2.2 S3C2440A处理器
S3C2440A是由三星公司推出的16/32位RISC微处理器,最高主频可达533MHz,处理器内部集成SDRAM控制器、LCD控制器、4通道DMA、3通道UART、I2C总线接口、I2S音频编解码器接口、SD接口、2路SPI接口、8通道10位A/D控制器和camera接口等。
2.3 CAN总线模块
CAN通信电路主要由CAN控制器和CAN收发器组成,本文采用的是MSG-3CM型CAN总线模块开发板,其原理图如图1所示。图中13~16引脚连着CPU,其余的除了INT和中断相关之外,都连着TJA1050收发器。
MSG-3CM型CAN总线模块开发板的控制芯片是MICROCHIP公司的MCP2515[1],MCP2515是Microchip Technology Inc.(美国微芯科技有限公司)生产的一款控制局域网络(CAN)协议的控制器,完全支持CAN总线V2.0A/B技术规范;能够发送和接收标准和扩展报文。它还同时具备验收过滤以及报文管理功能;该器件包含三个发送缓冲器和两个接收缓冲器。其与GT2440开发板的通讯是通过行业标准串行外设接口(SPI)来实现的,其数据传输速率高达5Mb/s。
TJA1050作为CAN总线收发器芯片,提供了CAN控制器与物理总线之间的接口,有对CAN总线的差动发送和接受功能[2]。……
