基于FPGACAN总线通信系统设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGACAN总线通信系统设计

基于FPGACAN总线通信系统设计   摘 要: 为了避免单片机的缺陷,同时满足工业上稳定,精确的数据通信需求,在此提出了基于FPGA的通信系统,通过控制CAN控制器SJA1000,从而实现CAN总线的数据通信的设计。介绍了该系统的硬件结构和设计原理,针对FPGA的控制流程和原理进行了分析和设计;实验结果显示,该CAN通信系统满足通信需求,较以往的单片机CAN通信系统具有更高性能和优越性。   关键词: FPGA; CAN总线通信; CAN控制器; 数据通信   中图分类号: TN958?34; TP391.4 文献标识码: A 文章编号: 1004?373X(2015)22?0059?03   0 引 言   CAN总线全称为控制器局域网是一个可以多个主机同时使用的异步串行总线,是在国际上被应用最广泛的现场总线之一;而且其同时也是惟一被ISO国际标准化组织批准的现场总线。由于其优良的性能及独特的设计,CAN总线已经被广泛地应用在控制系统中。通常CAN总线的数据通信系统采用的是MCU(STM32等单片机)+CAN控制器(SJA1000)+CAN收发器(CTM8251T)的方案,但是单片机有诸多缺点的;所以本平台提出的设计方案采用FPGA(主控芯片)+CAN控制器(SJA1000)+CAN收发器(CTM8251T)的通信方案。与原始的通信方案相比,由于FPGA运行速度快、运算能力强、管脚相比单片机要更加丰富、在设计和实现大规模系统上更加出众,同时FPGA内部在执行程序时是并行运行的、在处理复杂逻辑上更突出,并且运行时系统的稳定性高,后期的扩展更加方便,所以本设计选用FPGA作为总体的模块控制器。   1 系统硬件设计   整个系统的总体硬件结构设计图如图1所示。   其中在硬件的选取上,FPGA模块使用的是以EP3C25为主芯片的EP3C25Q240芯片,采用EPCS16作为内部的配置芯片。芯片的等效逻辑门数量庞大,大约为65万门级,I/O口更是达到了173个,同时拥有4个PLL。其不仅功能强大,而且对后期的功能扩展和开发提供了便利的条件。因为电源模块没有特别的要求,采用LM1117(3.3 V)和LM1117(5 V),前者是将5 V转换成3.3 V,后者是将12 V转换成5 V。这两款芯片负责给除FPGA以外所有硬件供电,而FPGA应用自己本身的5 V电源进行供电。因为FPGA的I/O需要连接3.3 V,而CAN控制器输出电压为5 V,如果直接相连会导致I/O口烧毁,对FPGA造成损坏。所以通过一个电平转换器将电压转换成3.3 V,电平转换器选用SN74ALVC164245,这款电平转换器具有三态输出16位2.5~3.3 V或3.3~5 V电平转换收发器,非常适用于本设计。   CAN控制器选用Philips公司的SJA1000,CAN收发器选用的是CTM8251。CTM8251这款芯片本身带有隔离,抗干扰能力强,所以不需要设计隔离电路。为了避免干扰,提高CAN收发器接受的数据更加准确、稳定,在CTM8251的CAN_H,CAN_L之间连接一个120 Ω的阻抗匹配电阻。在使用SJA1000时,将RX1管脚接地,启用它的旁路功能,这样可以减少数据传送延时,提高通信的长度。最后进行试验,实验表明硬件设计可以实现CAN总线的数据通信。   2 FPGA控制程序和逻辑原理   本设计的核心是保证FPGA与SJA1000之间的准确通信,为了保证FPGA与SJA1000之间能够准确无误的通信,在他们之间进行数据通信时,必须要按照SJA1000的时序逻辑进行通信。SJA1000的地址总线和地数据总线使用的是同一个总线而且是并行总线。在进行硬件连接、读/写操作时,采用的SJA1000工作模式为INTERL模式。该模式下的信号有[RD],[WR],ALE,[CS],ADD和DATA。[RD]为读信号,低电平有效;[WR]为写信号,低电平有效;ALE为地址锁存,下降沿有效;[CS]为片选,低电平有效;ADD是地址总线;DATA为数据总线。在编写FPGA的控制逻辑时,需要严格根按照SJA1000的读/写时序图。如图2为SJA1000读周期时的时序图,图3是其写周期时的时序图。   对SJA1000进行写操作时的状态图如图4所示。根据ALE,[RD],[WR]和[CS]的状态,进行状态机的转移。   在系统启动时,程序首先对SJA1000进行初始化,初始化完成后,进行查询,检测ALE管脚的状态,当ALE出现低电平时,地址总线被锁定,并将此时的地址总线上的数据传输到SJA1000,否则程序会保持在查询状态;地址数据传输后,进入等待的状态机中,在等待状态,地址已经被锁定,设置好片选信号,同时检测写操作[WR]的信号时钟状态,

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档