CN115941102A 审中 一种采用SPI连接MCU和FPGA的控制器间同步通信的方法
1.一种采用SPI连接MCU和FPGA的控制器间实现同步通信的方法,应用于通过光纤进行点对点互联的控制器之间,其中由同步信号驱动数据通信的控制器为主控制器,接收到主控制器信息后应答的为从控制器,其特征在于,参与光纤通信的控制器均为使用SPI连接的MCU和FPGA,两种控制器内部MCU和FPGA的SPI通信中MCU均作为主方,FPGA同时承担光纤通信任务和控制器扩展开关量刷新任务;
主控制器中,同步信号启动MCU通过SPI向FPGA发送光纤通信数据和开出信号,FPGA实现扩展开出并将光纤通信数据发送到其余控制器,同时FPGA将此前通过光纤端口接收的光纤通信数据以及开入信号传送给MCU;
从控制器中,MCU与FPGA通过SPI按照至少5倍同步频率进行短数据帧通信,对开关量定时刷新,并从接收自FPGA的短数据帧中查询光纤端口接收光纤通信的状态,当MCU检测到光纤端口已收到任一主控制器光纤通信数据后,第一个刷新周期通过设置在短数据帧中的控制字通知FPGA将启动光纤通信数据交互,将需要通过光纤网络发送的数据处理成光纤通信数据,第二个刷新周期MCU启动长数据帧通信并将光纤通信数据传送到FPGA,而FPGA在这个刷新周期将所有接收自其他控制器的光纤通信数据传送给MCU,并在接收完MCU发送的光纤通信数据后立即通过光纤网络送给其余所有控制器。
2.根据权利要求1所述的方法,其特征在于,每对主控器和从控制器之间均设置收、发两条光纤,每一条光纤设有各自独立的光纤端口,控制器通过不同的光纤端口与不同的控制器多路并联。
3.根据权利要求2所述的方法,其特征在于,主控器中,MCU与FPGA进行SPI通信的数据等长,且包括多个等长的端口收发数据和开关量数据,MCU发送给FPGA的数据的开关量数据为开出数据,FPGA发送给MCU的数据的开关量数据为开入数据,端口收发数据包括等字节长度的目标设备ID和自身设备ID数据,多个端口收发数据按照光纤端口序号排列拼接处理成光纤通信数据,开关量数据排列拼接在光纤通信数据的尾部。
4.根据权利要求2所述的方法,其特征在于,主控器中,同步信号启动MCU后的通信过程包括:
同步信号触发MCU中断,由MCU收集待发送的数据和扩展开出数据拼接后通过SPI传送到FPGA,由FPGA实现扩展开出,并将通信数据发送到其余控制器,FPGA通过SPI在接收MCU数据的同时,将扩展开入量数据和已经接收到的其他控制器数据按照各控制器所连接光纤端口序号拼接成一个长数据帧发送到MCU,随后FPGA通过光纤网络将MCU发送的数据传送给其余所有控制器。
5.根据权利要求3~4任一项所述的方法,其特征在于,从控制器中,MCU与FPGA进行SPI通信的数据等长,在短数据帧通信时,FPGA发送到MCU的短数据帧除了开入量外还包含各个光纤端口是否接收到光纤通信数据的状态,MCU输出到FPGA的短数据帧除了开出数据外还包括一个控制字;
需要通过各光纤端口发送的数据等长,在长数据帧通信时,MCU与FPGA进行SPI通信的数据包括多个等长的端口收发数据组成的光纤通信数据。
6.根据权利要求5所述的方法,其特征在于,控制器通过光纤发送的光纤通信数据长度一致,MCU接收到光纤通信数据后,按照数据长度将其分解为各个端口接收的数据,并检测端口与数据中的设备ID是否匹配,目标ID与自身ID是否匹配,不匹配则告警光纤连接错误。
现在,一起体验智慧芽的产品和服务
自动注册,无需人工审核,即可立即开始查询专利
立即注册
澳门正版图库

AI助手