通信协议转换在可编程逻辑器件中的实现

时间:2022-08-07 05:53:52

通信协议转换在可编程逻辑器件中的实现

【摘要】 标准RS232接口常用于单片机或微处理机配合PC上位机进行串口通信,SPI总线可以使处理器与外部设备以串行方式通信。本文介绍了RS232接口与SPI串行通信接口在可编程逻辑器件中实现通信协议转换,实现PC端对设备(SPI接口)的调试与控制使用。

【关键字】 协议转换 FPGA 串口通信 SPI总线

一、 前言

SPI总线广泛应用于Flash存储器、ADC/DAC器件、数字信号处理机、实时时钟。它在器件仅占用4根引脚控制数据的传输,线路简单,节省布局空间。由于PC没有SPI接口,PC无法实现对这类器件的直接通信,在某种程度上,增加调试的难度。因此,本文利用可编程逻辑器件(FPGA)设计通信协议转换逻辑,实现RS232与SPI的协议转换,间接完成PC对器件的数据传输。

二、设计思路

SPI作为一种同步串行接口技术,实现处理器与器件的全双工高速通信。而RS232则是一种异步串口通信接口,因此使用PC的RS232接口无法直接对具有SPI总线接口的器件进行操作。因此,设计中选用FPGA作为完成通信协议转换的桥梁。FPGA逻辑设计灵活,可设计RS232接口电路完成对PC端串口数据的接收。解析串口协议后,获取操作器件的有用信息,通过SPI接口将数据传输至器件本身,最终实现PC对FPGA器件的控制。当然,协议转换的过程是可逆的,器件信息也可通过SPI回传至FPGA,供PC读取使用。

设计中电路较为简单,使用MAX3232完成RS232电平到TTL电平转化,便于FPGA与PC上位机正常通信使用。电路结构框图如图2-1所示:

三、协议转换流程

协议转换过程分为FPGA与PC的异步串口通信,FPGA与器件的SPI同步串行通信。

在PC与FPGA通信中,FPGA检测PC端发送信号标志,即自身RXD信号拉低,串口通信起始位开始,此时FPGA开始进行数据接收。PC对器件的控制指令依次发送至FPGA用作解析,在PC发送数据量较大的情况下,为避免数据在通信中出错,便于对器件的灵活控制,可对PC端数据帧打包修饰,方便FPGA解析控制器件的可靠指令。FPGA的TXD引脚可向PC端返回器件的可用信息。

在FPGA解析串口数据后,可执行对器件的驱动操作。FPGA将PC对器件的控制指令,在SDI,CS,SCLK引脚的配合下发送至目标器件。SPI通信中,CS信号始终拉低,系统共用SCLK时钟脉,在上升沿模式下,数据SDI在SCLK上升沿输入至器件,在SCLK下升沿由FPGA改变数据SDI的值。当器件需要返回FPGA内部信息时,数据在CS,SCLK的协同下,由SDO发送至FPGA。

FPGA操作流程图如图3-1所示:

四、 总结

使用可编程逻辑器件FPGA作为通信协议转换芯片,设计灵活,拓展性强,可用于RS232转SPI总线、I2C总线、CAN总线等的协议转换。本文中利用FPGA可实现RS232与SPI的协议转换,间接完成PC上位机对某些具有SPI总线接口器件的直观控制。PC通过发送简单的串口指令至FPGA解析,由FPGA通过SPI接口实现对器件的配置操作,解决了以往收、发端,因通信协议不匹配,导致无法进行数据交互的弊端,具有较高的使用价值。

参 考 文 献

[1]李忠桥, 游小杰, 郑琼林. 单片机SPI通信中数据流的同步问题研究[J]. 单片机与嵌入式系统应用, 2007(1):11-13.

[2]K明, 姚冬苹. 专用异步串口通信电路的FPGA实现[J]. 物联网技术, 2011(3):65-67.

[3]张海林, 杨勇. 自动化系统中的串行通信协议的设计[J]. 计算机工程与应用, 2003, 39(31):159-160.

[4]丁超, 范征宇. 通信协议转换在嵌入式控制器上的实现[J]. 自动化仪表, 2007, 28(9):35-37.

[5]桑伟, 王少荣. 基于ARM的通信协议转换器的设计[J]. 电工技术, 2007(4):44-46.

[6]王谦, 张洪涛, 张栋冰,等. 基于嵌入式控制器的通信协议转换[J]. 湖北工业大学学报, 2005, 20(6):11-14.

上一篇:基于移动基站的室内定位技术研究 下一篇:基于多级混沌调制保密的通信系统研究