MCU+FPGA架构的双路串行数据通信系统及方法技术方案

技术编号:22363932 阅读:64 留言:0更新日期:2019-10-23 04:38
本发明专利技术提供了一种基于MCU+FPGA架构的双路串行数据通信系统,包括MCU、FPGA、第一串行通信外设和第二串行通信外设;其中MCU与FPGA之间通过并行总线的形式进行数据通信,两者之间的信号包括时钟CLK、复位RESETn、片选信号CSn、读信号XRDn、写信号XWEn、7位地址总线ADDRESS[6:0]及16位数据总线DATA[15:0],FPGA与第一通信外设及第二通信外设之间通过串行总线的形式进行数据通讯。

A dual serial data communication system and method based on MCU + FPGA

【技术实现步骤摘要】
MCU+FPGA架构的双路串行数据通信系统及方法
本专利技术涉及一种电数据传输
,特别是一种基于MCU+FPGA架构的双路串行数据通信系统及方法。
技术介绍
FPGA(Field-ProgrammableGateArray,即现场可编程门阵列),内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分,具有设计周期最短、开发费用最低、风险最小等特点,在通信设备的高速接口电路设计、数字信号处理等领域得到了广泛的应用。在很多应用场合,FPGA都需要与MCU(MicroControllerUnit,微控制单元)进行组合设计与应用,MCU多用于系统流程控制与特定算法运行,FPGA可用于扩展支持外设,如串行外设。并行数据通讯具有传输效率高的特点,因此常应用于FPGA与MCU之间数据通信。在有些应用场合,需要MCU+FPGA这类的组合控制系统在不同应用场景下支持不同的串行外设,如果每次需要通过修改MCU和FPGA的软件程序来适配通信协议不同的外设,无疑会增大工作量且过程繁琐。
技术实现思路
本专利技术的目的在于提供一种基于MCU+FPGA架构的双路串行数据通信系统及方法。实现本专利技术目的的第一种技术方案为:一种基于MCU+FPGA架构的双路串行数据通信系统,包括MCU、FPGA、第一串行通信外设和第二串行通信外设;其中MCU与FPGA之间通过并行总线的形式进行数据通信,两者之间的信号包括时钟CLK、复位RESETn、片选信号CSn、读信号XRDn、写信号XWEn、7位地址总线ADDRESS[6:0]及16位数据总线DATA[15:0],FPGA与第一通信外设及第二通信外设之间通过串行总线的形式进行数据通讯。采用上述系统,在MCU一端,文件main.c在主函数main()变量初始化部分声明且定义变量Flag_firstIn用于指示是否为首次进入或调用函数GetDevice(),声明且定义指针变量Initial,该指针指向外设FPGA所在的地址空间,给定初始值为变量DeviceType,作用为初始化并选择当前有效的串行通信外设编号,定义函数GetDevice()实现MCU与FPGA之间的并行数据通讯。采用上述系统,每一串行通信外设前设置三态门且后端设置文件模块SerialCom;双路串行通信系统数据流与端口映射描述如下,其中device1为第一串行通信外设,Device2为第二串行通信外设:(1)device_type=1时数据总线DATA值通过三态门K1传递到信号device1_dataIn,信号device1_dataIn与模块Device1的端口device1_dataIn端口映射;模块Device1收到并判断端口device1_dataIn的值,将对应的指令数据存入信号tx1_buffer,并发送到端口sout1,端口sout1与文件模块SerialCom的信号sout1端口映射;模块SerialCom的信号sout1与端口sout端口映射,并通过端口sout将模块Device1指令数据发送到外设system;(2)device_type=1时,模块SerialCom的信号sin1与端口sin端口映射,并且信号sin1与模块Device1的端口sin1端口映射,SerialCom模块通过端口sin接收外设system的数据;模块Device1端口sin1将外设system的数据存入信号rx1_buffer,端口device1_dataOut与SerialCom模块的信号device1_dataOut进行端口映射;信号device1_dataOut通过三态门k1将外设system的数据传递到数据总线DATA;(3)device_type=2时,数据总线DATA值通过三态门K2传递到信号device2_dataIn,信号device2_dataIn与模块Device2的端口device2_dataIn端口映射;模块Device2收到并判断端口device2_dataIn的值,将对应的指令数据存入信号tx2_buffer,并发送到端口sout2,端口sout2与文件模块SerialCom的信号sout2端口映射;模块SerialCom的信号sout2与端口sout端口映射,并通过端口sout将模块Device2指令数据发送到外设system;(4)device_type=2时,模块SerialCom的信号sin2与端口sin端口映射,并且信号sin2与模块Device2的端口sin2端口映射,SerialCom模块通过端口sin接收外设system的数据;模块Device2端口sin2将外设system的数据存入信号rx2_buffer,端口device2_dataOut与SerialCom模块的信号device2_dataOut进行端口映射;信号device2_dataOut通过三态门k2将外设system的数据传递到数据总线DATA。实现本专利技术目的的第二种技术方案为:一种根据权利要求1所述系统的数据通信方法,第一串行通信外设通过进程Process11与进程Process12向外设发送指令,通过进程Process13与进程Process14接收外设数据;其中(1)进程Process11的执行流程为:A1,检测是否有时钟CLK上升沿事件,即rising_edge(CLK),如果是,则按顺序依次执行步骤B1、C1、D1;B1,判断device1_dataIn是否为1,如果是,则将指令数据cmd1赋予信号tx1_buffe,并将发送状态标志tx1_rdy置1,然后执行步骤D1;如果否,则按顺序依次执行步骤C1、D1;C1,判断device1_dataIn是否为2,如果是,则将指令数据cmd2赋予信号tx1_buffer,并将发送状态标志tx1_rdy置1,然后执行步骤D1;如果否,则执行步骤D1;D1,判断信号tx1_rdy是否为1,如果是,则将信号tx1_rdy置0;(2)进程Process12的执行流程为:A2,检测是否有时钟CLK上升沿事件,如果是,则执行步骤B2。B2,检测是否有信号tx1_rdy上升沿事件,如果是,则将信号tx1_buffer的数据发送到端口sout1;(3)进程Process13的执行流程为:A3,检测是否有时钟CLK上升沿事件,即rising_edge(CLK),如果是,则按顺序依次执行步骤B3、C3。B3,检测是否有数据帧接收起始信号start下降沿事件,如果是,则将端口sin1的数据接收到信号rx1_buffer,并将信号rx1_rdy置1,然后执行步骤(3);如果否,则执行步骤C3。C3判断信号rx1_rdy是否为1,如果是,则将信号rx1_rdy置0;(4)进程Process14的执行流程为:A4,检测是否有时钟CLK上升沿事件,如果是,则执行步骤B4;B4检测是否有信号rx1_rdy上升沿事件,如果是,则将信号rx1_buffer的数据发送到端口device1_dataOut;第二串行通信外设通过进程Process21与进程Process22向外设发送指本文档来自技高网...

【技术保护点】
1.一种基于MCU+FPGA架构的双路串行数据通信系统,其特征在于,包括MCU、FPGA、第一串行通信外设和第二串行通信外设;其中MCU与FPGA之间通过并行总线的形式进行数据通信,两者之间的信号包括时钟CLK、复位RESETn、片选信号CSn、读信号XRDn、写信号XWEn、7位地址总线ADDRESS[6:0]及16位数据总线DATA[15:0],FPGA与第一通信外设及第二通信外设之间通过串行总线的形式进行数据通讯。

【技术特征摘要】
1.一种基于MCU+FPGA架构的双路串行数据通信系统,其特征在于,包括MCU、FPGA、第一串行通信外设和第二串行通信外设;其中MCU与FPGA之间通过并行总线的形式进行数据通信,两者之间的信号包括时钟CLK、复位RESETn、片选信号CSn、读信号XRDn、写信号XWEn、7位地址总线ADDRESS[6:0]及16位数据总线DATA[15:0],FPGA与第一通信外设及第二通信外设之间通过串行总线的形式进行数据通讯。2.根据权利要求1所述的系统,其特征在于,在MCU一端,文件main.c在主函数main()变量初始化部分声明且定义变量Flag_firstIn用于指示是否为首次进入或调用函数GetDevice(),声明且定义指针变量Initial,该指针指向外设FPGA所在的地址空间,给定初始值为变量DeviceType,作用为初始化并选择当前有效的串行通信外设编号,定义函数GetDevice()实现MCU与FPGA之间的并行数据通讯。3.根据权利要求1所述的系统,其特征在于,每一串行通信外设前设置三态门且后端设置文件模块SerialCom;双路串行通信系统数据流与端口映射描述如下,其中device1为第一串行通信外设,Device2为第二串行通信外设:(1)device_type=1时数据总线DATA值通过三态门K1传递到信号device1_dataIn,信号device1_dataIn与模块Device1的端口device1_dataIn端口映射;模块Device1收到并判断端口device1_dataIn的值,将对应的指令数据存入信号tx1_buffer,并发送到端口sout1,端口sout1与文件模块SerialCom的信号sout1端口映射;模块SerialCom的信号sout1与端口sout端口映射,并通过端口sout将模块Device1指令数据发送到外设system;(2)device_type=1时,模块SerialCom的信号sin1与端口sin端口映射,并且信号sin1与模块Device1的端口sin1端口映射,SerialCom模块通过端口sin接收外设system的数据;模块Device1端口sin1将外设system的数据存入信号rx1_buffer,端口device1_dataOut与SerialCom模块的信号device1_dataOut进行端口映射;信号device1_dataOut通过三态门k1将外设system的数据传递到数据总线DATA;(3)device_type=2时,数据总线DATA值通过三态门K2传递到信号device2_dataIn,信号device2_dataIn与模块Device2的端口device2_dataIn端口映射;模块Device2收到并判断端口device2_dataIn的值,将对应的指令数据存入信号tx2_buffer,并发送到端口sout2,端口sout2与文件模块SerialCom的信号sout2端口映射;模块SerialCom的信号sout2与端口sout端口映射,并通过端口sout将模块Device2指令数据发送到外设system;(4)device_type=2时,模块SerialCom的信号sin2与端口sin端口映射,并且信号sin2与模块Device2的端口sin2端口映射,SerialCom模块通过端口sin接收外设system的数据;模块Device2端口sin2将外设system的数据存入信号rx2_buffer,端口device2_dataOut与SerialCom模块的信号device2_dataOut进行端口映射;信号device2_dataOut通过三态门k2将外设system的数据传递到数据总线DATA。4.一种根据权利要求1所述系统的数据通信方法,其特征在于,第...

【专利技术属性】
技术研发人员:刘超王常涛陈乐李萌萌刘佳文刘源赵志鹏欧国锋
申请(专利权)人:中国船舶重工集团公司第七一六研究所大连船舶重工集团钢结构制作有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1