基于FPGA的三線制同步串行通信控制器設計
摘 要: 為了簡化應用系統中的三線制同步串行通信擴展接口,減小系統體積,降低系統功耗,通過研究三線制同步串行通信的原理,利用FPGA,結合硬件描述語言VHDL,設計了三線制同步串行通信控制器功能框架結構,介紹了各組成模塊的功能及工作過程,并對該控制器IP核的接口信號進行了詳細描述與定義,最后在Xilinx ISE和ModelSim SE平臺下對該控制器IP核進行了綜合和功能仿真。
本文引用地址:http://www.104case.com/article/190012.htm同步串行通信在航天工程領域中有著廣泛的應用,其中,三線制同步串行通信以其連線少、操作方便、通信速度快等特點,被成功應用在與外圍串行設備的數據通信中。
目前大多數微控制器或微處理器都配置有同步串行通信接口,但含有三線制同步串行通信接口的微控制器或微處理器卻不多,因此在需要應用三線制進行通信的場合,就需要對系統進行三線制同步串行通信接口的擴展,利用FPGA[2]可以實現三線制同步串行通信。由于FPGA具有工作速度高、可配置性強、靈活性好等突出優點,可以滿足高速同步串行通信。根據三線制同步串行通信機制,通過采用Xilinx公司的FPGA器件[3]設計并實現了三線制同步串行通信控制器的IP軟核。該控制器具有高速、易調試、配置靈活等優點,有效利用了FPGA內部硬件資源,減小了系統體積,縮短了系統開發周期。
1 三線制同步串行通信機制介紹
在計算機領域內,有串行傳送和并行傳送兩種數據傳送方式。并行數據傳送中,數據在多條并行1 bit寬的傳輸線上同時由源端傳送到目的端,這種傳送方式也稱為比特并行或字節串行。串行數據傳送中,數據在單條1 bit寬的傳輸線上,逐位按順序分時傳送。
同步傳輸過程中,發送端和接收端必須使用共同的時鐘源才能保證它們之間的準確同步。同步傳輸時,在幀同步脈沖信號觸發下,串行數據信息以連續的形式發送,每個時鐘周期發送1 bit數據。因此,同步傳輸時數據成批連續發送,信息字符間不留任何空隙,它嚴格按照約定的速率發送和接收。為達到接收和發送的準確同步,通常在發送端利用編碼器把要發送的數據和發送時鐘組合在一起,通過傳輸線發送到接收端,在接收端再用解碼器從數據流中分離出接收時鐘。常用的編碼解碼器有曼徹斯*和NRZ-L碼。
三線制同步串行通信采用的碼型為NRZ-L碼,其時序邏輯關系如圖1所示。
圖1三線制同步串行通信邏輯關系圖
三線制同步信號包括:幀同步信號、時鐘信號和串行數據,通常采用中斷方式接收。串行數據接收或發送時,首先幀同步信號先觸發一個瞬時脈沖,之后保持低電平有效,數據在時鐘信號的上升沿保持穩定,并開始采樣,每個時鐘周期接收或者發送一位串行數據,直至數據接收或者發送完畢,系統再轉而處理其他相關操作。在數據發送或接收的整個過程中,幀同步信號一直處于低電平不變。
2 三線制同步串行通信控制器IP核設計
本設計最終目標是用硬件描述語言VHDL[4]構建一個三線制同步串行通信控制器,也就是建立一個基于FPGA實現的、可復用的IP核[5]。同時,可以將設計好的IP核保存,作為一個子模塊應用于其他需要此模塊的系統中,從而減輕大型設計的工作量,縮短開發周期。
評論