多路接口與E1協(xié)議轉換器設計與實現
2 關鍵模塊設計
2.1 與CPU通信FPGA端硬件電路設計
當FPGA與CPU通信時,由于CPU總線特殊的時序關系,FPGA端須做相應的處理才能保證讀寫數據的穩(wěn)定性。圖3為MPC875讀數據總線時序圖。其中:本文引用地址:http://www.butianyuan.cn/article/191187.htm
當CPU讀取FPGA中數據時,先給出地址信號,然后使能片選、讀信號
,這時如果數據總線上有數據,CPU讀入數據。但MPC875總線頻率高達80 MHz,為了CPU能穩(wěn)定的讀取到數據,這里將片選信號與讀信號相“與”,然后擴寬3倍得到總線可用信號,在總線可用信號有效期間,數據總線上總有數據,這樣,可以保證CPU能穩(wěn)定的讀到數據。
當CPU寫入數據時,CPU先給出地址信號,然后給出片選及寫信號,在寫信號有效期間,CPU穩(wěn)定的給出數據。因此,在片選及寫信號有效時,鎖存數據總線上的數據即可。
2.2 CPLD硬件接口電路設計
CPLD主要完成V.35,RS 449,RS 232數據收發(fā);keyboard,LED控制;FIFO讀寫等功能。功能框圖如圖5所示。
CPU通過CPLD對接口芯片進行模式選擇。V.35,RS 449為同步平衡接口,常用接口速率為N×64 Kb/s(N=1~32)。時鐘、數據信號為兩線平衡傳輸,控制信號為不平衡傳輸。發(fā)送數據時,將與之對應的時鐘一并輸出。在接收數據時,用接口時鐘采樣數據。
RS 232為不平衡傳輸。幀格式固定為:1位開始位、8位數據位、結束位。結束位有三種:1位、1.5位、2位。開始位固定為“0”,停止位固定為“1”。通信雙方在開始通信前必須約定好串行傳輸的參數(傳輸速度、幀格式)。在發(fā)送端,首先通過分頻產生需要的串行波特率,然后按照幀格式以約定好的速率發(fā)送。在接收端,使用8倍于波特率的時鐘對接收到的信號進行過采樣,經過濾波后如果為低電平信號,即認為是開始位,然后按照約定好的速率接收數據。
在接收數據時,FIFO讀寫模塊將串行接收數據變成8位并行,同時,將與接收數據同步的時鐘8分頻,用此時鐘將8位并行數據寫入與該接口對應的FIFO;在發(fā)送數據時,將發(fā)送時鐘8分頻,用此時鐘從與該接口對應的FIFO讀取數據,同時將8位并行數據串行輸出。
keyboard為4×4掃描式矩陣鍵盤,具有16個鍵。由硬件程序自動掃描鍵盤,輸入數據觸發(fā)中斷,CPU讀取數據。LED輸出由CPU寫入相應的顯示寄存器,然后硬件程序將相關信號輸出點亮LED。
2.3 FPGA硬件電路設計
FPGA主要根據時隙的分配設置,在時鐘系統(tǒng)的管理控制下,完成E1的編解幀功能。功能框圖如圖6所示。
CPU根據設置向時隙分配寄存器寫入相應的數據。在發(fā)送數據時,E1編解幀模塊根據時隙分配設置,從相應的FIFO讀取數據,寫入該時隙。對于沒有使用的空時隙,按照空時隙處理辦法填入無效數據。發(fā)送時鐘為FPGA外接的2.048 MHz時鐘。由于XRT82D20為數據差分輸入,因此將編解幀模塊輸出的數據TPOS進行反向得到TNEG,平衡輸出。TCLK為發(fā)送時鐘。
在接收時,XRT82D20數據差分輸入RPOS,RNEG,將兩個信號相減得到輸入數據信號,RCLK為時鐘輸入。在輸入時鐘的控制下,E1編解幀模塊將數據解幀。同時,根據時隙分配設置,將各個時隙的數據送入不同的接口FIFO。
評論