基于uclinux 的CAN總線嵌入式驅動編程
5 CAN總線的嵌入式系統(tǒng)硬件設計
本設計選用Samsung公司的S3C4510B作為嵌入式系統(tǒng)的微處理器芯片,該處理器是16/32位RISC微處理控制器,內含由ARM公司設計的16/32位ARM7TDMI RISC處理器核,適用于價格及功耗敏感的場合.除內核外,該微處理器的片內外圍功能模塊包括:2個帶緩沖描述符的HDLC通道;2個UART通道;2個GDMA通道;2個32位定時器及可編程I/O口.CAN控制器選用philips公司的SJA1000,該芯片與PCA82C200電氣兼容,帶64字節(jié)先進先出(FIFO)堆棧,兼容協(xié)議CAN2.0B,支持11位和29位識別碼,位速率可達1Mbps,24MHZ時鐘頻率,芯片內含寄存器,可由用戶配置CAN總線波特率,設置驗收屏蔽標識碼,可配置系統(tǒng)為PeliCAN 模式或BasicCAN模式,出錯告警等.
該系統(tǒng)采用82C250作為收發(fā)器,其硬件連線如圖(1)所示.AD0~AD7與S3C4510B的p0~p7連線,/cs接p12,ALE接p13,/RD接p14,/wr接p15,/int接XINTREQ0.
圖1 SJA1000硬件連線
6 驅動軟件設計
圖2 CAN總線初始化框圖
本設計中,CAN總線驅動程序是作為一個模塊放在linux/deriver/char/文件夾里面,軟件流程如圖(2)所示,其設計詳細介紹如下.
評論