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