劉悅
【摘要】 標準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]蘇明, 姚冬蘋. 專用異步串口通信電路的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.