新闻中心

EEPW首页>手机与无线通信>设计应用> 基于SJA1000 IP核的CAN总线通信系统

基于SJA1000 IP核的CAN总线通信系统

作者: 时间:2012-08-21 来源:网络 收藏

摘要:分析了控制器的工作原理,以为模型,提出SOPC技术的控制器的设计方案,并完成核的设计;完成了在Altcra的Cyclone III型FPGA芯片上集成微处理器核、核、数据RAM、程序ROM为一体的完整的设计。实验结果验证了SJA1000核设计方案的合理性。
关键词:CAN总线;SOPC;IP核;FPGA

引言
CAN(Controller Area Network)是拧制器局域网的简称,是20世纪80年代初由德国BOSCH公司提出来的一种串行数据协议,主要用于解决当时由于汽车功能越来越多而导致汽车内部信号连接线增多的问题。随后CAN总线迅速发展,并于1993年被列入ISO国际标准,形成了IOS 11898标准。至今,CAN总线已经被公认为几种最有前途的现场总线之一,其应用范围也从当初的汽车行业扩展到了机械工业、交通工具、医疗设备、建筑、环境控制等诸多领域中。
伴随着CAN总线的高速发展,用户对其也提出了更高的要求。这无疑给CAN总线带来发展机遇的同时也带来了巨大的挑战。在这种新形势下,CAN总线原有的设计方案和技术就显得有些力不从心。
可编程片上(System On a Programmable Chip,SOPC)是一种新型的软硬件协同设计的开发技术,是电路系统发展的一个重要方向。它在集成度、设计灵活性以及可移植性等方面上的优越性无疑可以给CAN总线系统设计带来新的动力,使其能够快速地适应新形势下的挑战。

1 CAN总线控制器的工作原理
SJA1000芯片是Philips公司的一款独立CAN总线控制器,主要用于移动目标和一般工业环境中的CAN总线系统上。相埘于它的前一款PCA 82C200,SJA1000主要的改进是在原有Basic CAN模式的基础上增加了另一种工作模式(PeliCAN)——这种模式能够支持拥有很多新特性的CAN 2.0B协议。出于兼容性的考虑,这两种工作模式在SJA1000上都能够实现,通过配置时钟分频器寄存器,就可以在两种工作模式之间转换。但是应特别注意的是芯片在复位后的默认模式为BasicCAN。

2 SJA1000的设计
2.1 SJA1000的功能
SJA1000是一款独立的CAN总线控制器,在CAN总线网络中的功能与作用和一般的CAN总线控制器相同,都是用来实现CAN总线协议的模块。SJA1000在CAN总线系统中的位置如图1所示。

本文引用地址://m.amcfsurvey.com/article/154098.htm


在图中共描绘了2个节点:一个标准参考模型节点和一个包含了SJA1000设备的节点。通过这样的对比可以更加清楚地理解SJA1000的功能与作用。
2.2 SJA1000的结构
按照SJA1000用户使用手册中的叙述,其内部结构如图2所示。

e.JPG


下面对这7个功能模块的程序设计做一个大概的说明。
(1)寄存器控制程序
寄存器控制程序用丁完成SJA1000中所有有关寄存器操作。设计寄存器组子模块包括模式寄存器、命令寄存器、状态寄存器、中断寄存器、中断使能寄存器、总线定时寄存器、仲裁丢失捕获寄存器、错误代码捕获寄存器、错误报警限制寄存器、接收错误计数器、发送错误计数器、验收代码寄存器、验收屏蔽寄存器、接收信息计数器、接收缓冲器起始地址寄存器、时钟分频寄存器和接收/发送缓冲器,方便微控制器对CAN Module内部各个功能模块的控制。
(2)位时序逻辑程序
位时序逻辑程序主要负责监视串行CAN总线,并处理与总线相关的位时序问题。在消息发送的开始处,当位时序逻辑检测到总线上由隐性位到显性位的跳变时,其内部逻辑同步到位流,称之为硬同步。在接收消息的过程中,检测到隐性位到显性位的跳变时便会重同步到位流,称之为软同步。位时序逻辑根据总线定时寄存器和总线定时寄存器的值来决定每个位周期的采样点的位置,以补偿传输延迟和相位漂移所造成的误差。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭