基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx

上传人:lao****ou 文档编号:841698 上传时间:2024-06-17 格式:DOCX 页数:6 大小:82.68KB
下载 相关 举报
基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx_第1页
第1页 / 共6页
基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx_第2页
第2页 / 共6页
基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx_第3页
第3页 / 共6页
基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx_第4页
第4页 / 共6页
基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx(6页珍藏版)》请在第一文库网上搜索。

1、基于FPGA的VHD1语言设计控制器SJA1000的IP软核设计分析了CAN控制器SJA1ooO的特点及CAN协议通信格式。设计了控制器SJA1OOO的IP软核,能为应用提供一个性能优良的、易于移植的控制器SJA1000,实现了对步进电机的控制。控制局域网(CAN)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。与一般的通信总线相比,CAN总线的数据通信可靠性、实时性和灵活性好,应用领域非常广泛,通常基于ARM或51单片机,实现与CAN控制器的通信联络。与GA/SoPC技术是实现嵌入式系统的最高形式,基于IP软核的设计与应用也必将成为替代硬核的一种发展趋势。凭借QUar

2、tUSI1和NiosII工具,基于FPGA的VHD1(或VeriIog)语言设计的IP核能够提供灵活性和性能更好的控制器。图1为一个基于FPGA的控制器的CAN总线节点。其中PCA82C251是CAN总线接收器,SJA1OOO是CAN总线通信控制器,PMM8713是驱动步进电机的脉冲分配器,FPGA模块在节点模型中对SJAIooO进行控制,并将接收到的帧信息进行处理,发送给脉冲分配器,以驱动步进电机。Can1canh图1INVUPMM87137基于FPGA控制器的模块图DrDrcfXXmTRHNVUABCD在设计中采用自顶向下的设计方法。通过分析SJ1000常用的控制芯片51单片机的功能,将其

3、分为主要的4个模块:初始化模块、位查询模块、数据处理模块和缓冲区释放模块。对SJA1000完成控制功能的过程用状态图描述如图2所示,这也是系统的主状态机。4个状态对应上述的4个功能模块,首先在ini11a1_st-ate完成对SJA1OOO的初始化,在由init_end值号给出初始化完成标志后,进入查询状态,即queerRBS状态,由位看询模块完成此时对SJA1OO0的状态查询。如果查询到SJA1OOo缓冲区有帧信息,将qRBSend置“1”,进入下一个状态frame_cope,即帧处理状态,此时由数据处理模块完成对缓冲区的数据读取,并作处理。在读取完一帧数据后,需要释放缓冲区,为下一帧信息的

4、接收做准备。此时状态转入了re1ease-buffr,对应功能模块中的缓冲区释放模块,此状态结束后又转入位查询状态,为下一帧信息接收做准备。rtnif1ferend=O图2系统主状态转换图初始化模块主要在系统上电或重启后,先对SJA1OOO进行初始化;位查询模块是在初始化完成后,对SJ1000状态直在蛰的接收缓冲区标志位不断进行查询,如果在缓冲区收到一帧信息后,则转入数据处理模块,否则继续进行查询;数据处理模块则是在查询到接收缓冲区有数据后,读入帧数据,并对帧数据进行处理;缓冲区释放模块是在一帧信息处理完毕后,释放缓冲区空间。除了上述4个功能模块之外,还需要读写模块、双端口模块、模块接口控制逻

5、辑等。1、读写模块由SJA1000的数据手册可知,SJA1000提供的微处嵋接口信号有地址数据复用总线刈0AD7、地址锁存信号A1E、片选信号、读写使能信号和、以及复位信号。SJA1000的数据信号和地址信号是时分复用的,而FPGA中不存在地址的概念,对于FPGA来说,输出的只有数据。因此设计的关键就是把S-JA1OOO中的寄存器地址当成数据写入到SJA1000中,配合地址锁存信号A1E和写允许信号完成对SJAIOOO特定寄存器的命令字写入。读写使能信号是、以及复位信号。设计的关键就是把SJA1000中的寄存器地址当成数据写入到SJA1000中,配合地址锁存信号A1E和写允许信号完成对SJA1

6、000特定寄存器的命令字写入。与写操作相似,只需严格按照时序,将A1E、引脚的电平互相配合置高或置低,即可完成读操作。读写周期时序图如图3和图4所示。AD7ADdXA7A0(D7D0XA1EJ(pinA1IAS)RD/(pinRD/E)rd的值即可,标志信号w_ok表示一次读/写完成。在SJA1OOO的读写过程中,对各个信号的持续时间有着严格的要求。以读操作为例,信号的有效持续时间必须最大为50ns,因此在设计中,信号保持低电平的时间可以比这个时间长。2、接口控制逻辑模块接口控制逻辑是本系统的核心模块,它与4个功能模块、读写模块相连接,由一个状态机组成,即系统的主状态机。在状态机的不同状态中,

7、控制读写状态机与对应的功能模块相连接,3个模块互相配合完成一项功能。Quartus1I生成的模块图如6所示。modu1ectriwr_cboosc_fhgStartfitfgdataoutinfer7.0)addr_out_in1er(7.0Jw_ok_oirt_ini1iaJinh-stadataJm1qUeryf7.0r_of_out_qucryqRBS_startdataouticopc17.0jfokoutfcopcfcopcstartrbuf1rstartwokoutrbuerrete1kw_ok_inrokindaaininfer(7.Odatain_initia17.O)addi

8、initia7.Oinitcndaddrin_qucry(7.0qRBS_cnddata_in_inferw_ok_inJok_in是读写模块的信号接o需要注意的是,本系统中使用了主从状态机,即状态机的嵌套。在主状态进入初始化状态机后,立即给出一个enab1e信号,启动从状态机,并设置一个从状态机的完成信号finish(高电平有效),且初始值为低,然后在主状态机不停的检测finish信号,如果finish为高,则进入下一个状态,查询状态。而在从状态机中,则不停地检测enab1e信号,如果为高,则开始工作,当完成从状态机后,将finish信号置高。如此就完成了主从状态机的互动。接口控制逻辑模块中

9、的start,end信号即为系统主从状态机互动信号。3、初始化模块初始化模块的功能是完成SJA1oOo的初始化。CAN2.OB规范允许SJA1Ooo工作在两种模式,即BasicCAN模式和Pe1iCAN模式,上电默认为BasicCAN模式。在两种模式下都需要对SJAIOOO的模式寄存器CR、验收码寄存器纹入验收屏蔽寄存器AMR、总线定时寄存器BTR0、BTR1和输出控制寄存器OCR写入控制命令。在本设计中,借用ROM的思想,将需要读写的寄存器地址和数据统一编码,固化存储起来,对SJA1OOO进行读写时,只需要按照一定的顺序读出数据和地址,输出到即可。4、位查询模块位查询模块主要功能是在SJ10

10、00转入工作模式后能够读取存在接受缓冲区RXF1FO的帧信息,在本设计中读取帧信息采用了查询方式,即不停地查询SJA1ooo状态寄存器SR的RBS位,如果查询到RBS位为“1”,即表明接收缓冲区满,RXFIFO中有可用信息,此时将转入数据处理模块,由数据处理模块进行数据读入,并进行处理。在查询过程中,对SJAIoOO的状态寄存器进行了读操作。5、数据处理模块数据处理模块功能是从SJA1oOO的缓冲区读入数据,并作处理。在读入数据时,只需将输出的地址定位到SJA1000接收缓冲区的数据场依次将数据从缓冲区读入即可。在CAN总线的通信中,发送的为帧信息,其数据帧结构如图7所示。图7标准帧结构图在对

11、数据进行处理时,前16位为ID,有用的数据是在帧中的数据场(DataFie1d)中,因此只需略过前16位,对后面最多8个字节的数据进行处理,分配到步进电机的引脚上即可。6、缓冲区释放模块与双端口模块在缓冲区的数据被读入后,需要对缓冲区的数据清零,为后续的数据读入做准备。本质上仍是对SJA1OOO的命令寄存器(CMR)写操作。在状态寄存器与接收缓冲区相关的位为RRB,置1即可释放缓冲区,这样就会导致接收缓冲区内的另一条信息立即有效,从而进入下一帧数据的数据查询、处理过程。在本设计中,输出的数据引脚为双向引脚,设计成三态输出,这是因为双向端口在完成输入功能时,必须使端口处于高阻态,否则外部数据不能正确读入。其设计关键在于,实体部分必须对端口属性进行申明,端口属性必须为inout类型,在构造体对输出信号进行有条件的高阻控制。结语CAN总线接口控制器由VHD1语言描述,易于修改和移植,可以将几个软核集成到一个FPGA范柱上去,具有地左机所没有的优势,在汽车领域具有良好的应用前景。责任gt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服