
衛星訪問控制器是MF-TDMA系統的控制核心,系統的正常運轉很大程度上依賴于控制器的設計。為了實現MF-TDMA系統對衛星訪問控制器提出的各項技術指標,進行合理的規劃和認真的分析,確定衛星訪問控制器實現所需要解決的關鍵技術。
衛星訪問控制器使用MPC8260的FCC和SCC實現HDLC協議和透傳協議。HDLC是幀中繼等協議的基礎,要實現幀中繼首先要實現HDLC。MPC8260芯片可通過內部部件直接實現HDLC。透傳是實現電視編解碼等信號傳輸的技術基礎。同時也是總體的一項技術要求。同樣地,MPC8260芯片可通過內部部件直接實現透傳。但是由于其控制比較復雜,實現透傳需要進行比較多的控制操作,故將此確定為一個關鍵技術,如圖1所示。
圖1
具體實現方法:
(1)硬件接口
透傳接口通過MPC8260的FCC來完成,在TDMA項目中使用三個FCC中的FCCl。通用FCC參數放在雙端口RAM中。
(2)內存使用情況
在透傳的接收部分,FCC的每個接收通道都有一個獨立的BD(Buffer Descriptors)表,每個接收BD都對應一塊內存,每個內存塊的大小是固定的(1700BYTE)。在HDLC的發送部分,FCC的每個發送通道也都有一個獨立的BD表,每個發送BD也對應一塊內存,當要發送的數據不需要拆分,每個內存塊的大小是固定的(1700BYTE)。
(3)初始化模塊
初始化模塊負責將MPC8260的FCC初始化為透傳控制器,并完成寄存器基本設置,如FCC模式寄存器的設置,收發BD表的設置,事件和屏蔽寄存器的設置,中斷表等等。
FCC透傳通道初始化過程:
(a)初始化片選2(CS2),提供同調制解調器的訪問、控制地址。
(b)初始化中斷,在此將中斷掛接,創建一個二進制信號量,初始化并啟動一個中斷處理任務。
(c)初始化FCC的收發BD表,印表位置定位于OXF0002000。將BD表的BUFFER指針指向SDRAM中開辟的BUFFER地址。
(d)初始化通用目的I/0管腳,因為通用目的I/O端口為一組多用途管腳,它們與通信能力有關,它們可以用于通用目的I/0或支持如:FCC、SCC、SMC等通信設備。它有4個端口A、B、C、和D,每一個管腳可以作為通用目的I/O管腳,所有管腳支持至少一個功能,在這里應根據自己的實際需要配置I/0管腳。
(e)初始化中斷控制器,設置相應的寄存器使之能響應CPM的中斷。
初始化FCC,在這里要初始化FCC的通用參數寄存器和特殊參數寄存器,使之能完成透傳的功能。
(4)發送的實現
當GFMR寄存器中的ENT位設置,透傳控制器進入發送允許狀態,在這個狀態控制器發送空閑位或標志,這決定于GFMR寄存器中RTSM域的內容。透傳控制器在發送緩存描述符中選取第一個緩存描述字,當發送緩存描述字準備好時,透傳控制器進入發送方式,在之間插入用戶定義的最少標志后開始發送。注意,一個可以包含多個緩存,這樣,控制器可以進入一個循環,發送Last位為0的緩存。然后關閉這個緩存,處理下一個緩存描述字,如果一個緩存描述字包含一個準備好位為1控制器發送這個緩存,后面下去。最終,控制器遇到一個緩存描述字Last位等于1的一個緩存,控制器進入關閉發送狀態。
如果CRC允許,控制器附加一個CRC域,修改緩存描述字,清除準備好位,設置事件寄存器中的發送緩存發送位,然后,控制器附上標志,重新進入發送允許狀態。
(5)接收的實現
接收模塊完成數據的接收,當它被接收事件觸發后(或輪詢),它檢查RxBDs中適當的BD(一般情況下是從當前BD檢查到BD空為止)如果該BD非空(E位為O)則表明該緩沖區已經有數據,此時將該緩沖區地址發給上層,同時將該BD置為空并將此內存地址寫入BD的address區,以備下次使用。然后處理下一個BD,直到BD為空。
當在GFMR寄存器中的ENR位允許時,透傳控制器進入接收允許狀態。如果相配,HADDRX和HMASK地址與進來地址相配,而且有一個空的緩存,控制器進入接收狀態,接收進來的數據存入緩存中。
當控制器受到第2個標志,它進入尾狀態,檢測CRC,將長度寫入計數域。設置最后“Last”位,清除“E”位,如果接收達到極限并且中斷位設置時,控制器可能會出現長度超過最大定義的值,這時,控制器進入太長狀態,它不接收任何多的數據,但繼續紀錄位元組的數量,當結尾標志出現,控制器進入尾狀態,完成所需步驟然后設置狀態和控制域中的LG位。
接收部分的流程相對比較簡單,它首先為每個接收BD分配一個指定的內存塊,當它檢查到有新的數據時,經過地址匹配的檢查后,將符合要求的內存塊地址通過信號量發送給上層,將其它不符和要求的塊釋放掉,并把它的地址放入BD Buffer。