基于FPGA的VHDL语言设计控制器SJA1000的IP软核设计.docx
《基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VHDL 语言 设计 控制器 SJA1000 IP