开篇:润墨网以专业的文秘视角,为您筛选了一篇通信协议转换在可编程逻辑器件中的实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
【摘要】 标准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.