首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MCU2FPGA 8080通信协议设计

MCU2FPGA 8080通信协议设计

MCU2FPGA 8080通信协议设计        很多人问我单片机和FPGA怎么通信,我告诉他,FPGA是万能的,你想怎么通信就怎么通信,或者你模拟UART,SPI,I2C,自己看着办。呵呵。。。。。。
        一般MCU和FPGA通信,一般就是配置参数,或者传递数据,有些人将FPGA设计成SRAM时钟,有些人用串口来传输数据,但是除了通信,还得配置数据啊。。。。想起LCD的初始化,那个时序,就可以用来配置寄存器,又可以用来初始化,如下图,若能拿过来用,那不爽死。
       
        这便是Intel 8080接口的通信协议!
        既然FPGA是万能的,那还是设计一个吧,反正项目中也要用到。
        以后你们再问我,我就可以说:“简单的说就是看彬哥的博客”!O(∩_∩)O哈哈~
        1. 协议介绍       
        参照了ILI9325 LCD控制芯片的8080接口通信协议,如上图所示,由于MCU与FPGA通信,设置为单向通信,因此省略了RD,Bingo版本的8080接口童鞋写入如下所示:
        a) 写命令(单一或者连续写入)
       
        b) 写数据(单一或者连续写入)
       
        2. RTL设计        代码其实很简单,就是捕获cs,rs,we,data等接口的时序,边沿检测,在verilog中设计状态机,来实现数据的读写,太简单的不累赘了,直接上代码。。。

+ 查看代码




       
       
        3. Testbench测试代码设计+ 查看代码




       
        4. 单片机代码设计        这个,哎。。。。对于单片机玩家而言,那岂不是太简单了。。。。在此bingo就不班门弄斧了,悄悄附上代码,俺单片机不太行,忘斧正
+ 查看代码




        5. 结论总结        经过测试,目前Bingo版本的8080接口通信协议非常的稳定,目前已经完成MCU对FPGA的LCD参数配置以及数据传输等操作,惊喜才开始,美好不只是那么一瞬间!!!看图看真相:
       
        很重要的一点
        (1)数据的同步
        (2)边沿的检测
        (3)寄存器的更新需要uodate_flag,否则,更新的时候会有冲突,这个非常重要,否则会导致数据的错乱,读写不准确。
继承事业,薪火相传
返回列表