新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的飞行模拟器通信接口设计是什么样的?

基于FPGA的飞行模拟器通信接口设计是什么样的?

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

本文引用地址:http://www.eepw.com.cn/article/201808/385785.htm

2.2 数据发送逻辑

数据发送逻辑需要FPGA通过模拟总线的方法对SJA1000进行控制,SJA1000的发送缓冲区的寄存器共有11个字节,其中前3个字节分别是帧信息字节和两个标识码,后8个字节是数据。发送时,用户需要将待发送的数据按特定的格式组合成一帧报文,送入SJA1000的发送缓冲区中,然后启动 SJA1000发送即可。需要注意的是,在向SJA1000发送缓存区送报文之前,必须先判断发送缓冲区是否锁定,如果锁定则等待;判断上次发送是否完成,如未完成则需等待发送完成。总线控制器写周期的时序图如图2所示。


2.3 数据接收逻辑

与数据发送逻辑类似,从接收缓冲区中读取一条报文也需要连续读取11个字节,数据接收逻辑除了正常的报文数据接收,还要实现其他情况的处理。对接收缓冲区的数据读取完毕后要释放CAN接收缓冲区。图3所示为总线控制器读周期的时序图。


在FPGA程序编写时,采用状态机完成逻辑的设计,分别包括初始化状态、空闲状态、查询状态、数据接收状态、数据发送状态。

3 结论

在系统设计过程中,采用ALTERA公司的型FPGA进行设计,在Quartus II环境中利用Verilog HDL编程产生SJA1000的片选信号、地址锁存信号以及读写信号等,这些信号共同驱动SJA1000完成数据的发送和接收。在采用FPGA实现对 SJA1000的逻辑控制过程中,采用Quartus II中的SignalTap II Logic Analyzer工具对FPGA各接口信号进行了测量,经检查各种逻辑均符合SJA1000的接口时序要求。

基于FPGA的通信接口设计主要由Verilog语言进行描述,易于修改和移植,同时由于FPGA的I/O丰富,还可以将模拟器中一些常用的开关量连接到FPGA上,这样就可以将多种功能集成在一个FPGA上,相较于采用单片机控制SJA1000实现通信,本设计方案可扩展性好,稳定性高,能降低成本、系统体积及功耗,在领域中具有广泛的应用前景。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭