新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP和PCI總線的通信數據采集系統

        基于DSP和PCI總線的通信數據采集系統

        作者: 時間:2009-02-26 來源:網絡 收藏

        隨著移動突飛猛進的發展,移動的數據業務量急劇上升,監控大容量的移動數據業務成了電信運營商刻不容緩的需求。而移動數據的傳輸一般都是E1鏈路。因此從E1鏈路上采集通信數據成了移動數據業務監控最基礎的一部分。

        本文引用地址:http://www.104case.com/article/152630.htm

          能夠高速地處理數據并具有強大的數據吞吐能力,在領域獲得了廣泛的應用。而也因為極高的數據傳輸速率、與處理器無關、能支持多個外設等獨特性能,逐漸成為領域微機的主流。本文中的采集就是運用TI公司的TMS320C5410高速定點和PLX公司的9052 接口芯片來搭建的。

        1 功能概述

          根據實際應用的需要,的主要功能有:

          (1)可以同時采集處理一條E1鏈路上所有32個時隙的數據;

          (2)對數據進行鏈路層協議解包后,重新打包成特定的格式,交給上層系統(PC機)保存或進一步處理。對鏈路數據狀態和采集的統計信息進行監測,定時生成報表,交給上層系統實時顯示;

          (3)系統應具有盡量大的軟件升級功能和靈活性,便于系統提高性能或者應用于其他通信業務數據的采集。

          本系統的設計難點主要是如何實現與PCI9052之間高效率的數據通信。如果PCI9052和芯片共用一條總線,勢必會造成數據讀寫上的沖突,影響工作效率,因此在系統中PCI9052通過上專門的高速主機通信接口(host port interface,以下簡稱HPI口)和DSP進行通信。但是HPI口總線是一個非常特殊的總線,它采用訪問寄存器的方式來進行DSP內部數據的讀寫,把HPI口單純映射到PCI的I/O空間或者存儲器空間,有不可避免的缺點。本文提出了一種雙映射方法,成功地解決了這一問題,實現了DSP與PCI9052之間方便、高速的數據通信。

        2 系統的硬件設計

          整個硬件系統主要由DSP、接口芯片和鏈路數據采集芯片組成。

        本系統采用TI公司的TMS320C5410(以下簡稱C5410)DSP,該芯片的特點有[1][2]:

          ?處理能力可達到100MIPS;

          ?采用多總線技術,一條指令可以同時訪問數據和程序空間,具有高度并行性;

          ?具有改進型的8位HPI接口,主機通過HPI口可以訪問DSP系統的任何一個存儲器單元,而且外部訪問和DSP內部操作相互獨立,互不干擾;

          ?軟件可編程的等待狀態發生器,可以靈活地用不同速度的器件組建系統。

          PCI接口芯片采用PLX公司的PCI9052,它是一款面向低端應用的高性能、工作在目標模式下的PCI接口芯片。PCI9052的本地總線寬度可以通過編程配置成8位、16位和32位,字節順序也可編程選擇,它提供了4個本地地址片選和5個本地地址空間[3]。這些特征為用戶搭建PCI板卡帶來了極大的方便和靈活性。

          數據采集芯片采用了PMC公司的PMC4351。它可以同時采集三個時隙上的數據,可以通過編程選擇采集或輸出T1、E1數據,支持HDLC協議,可以進行去除CRC標志、復幀標志等預處理,為每個時隙提供128字節的發送FIFO和接收FIFO,有很完善的處理器接口。為了能夠同時采集一整條E1鏈路上的數據,本系統采用了11片PMC4351組成鏈路數據接口單元。各個芯片之間的接口利用CPLD來完成,它的可編程性為各個組成部分之間的控制和通信提供了相當大的靈活性,也省去了大量外部電路,保證了硬件的方便調試和穩定工作。

          具體的硬件框圖如圖1所示。

        3 DSP的HPI 接口與PCI9052的連接

        C5410上的增強型8位HPI口為上層系統提供了一個靈活訪問DSP內部存儲器的并行數據口。上層系統可以通過HPI口自由地讀寫DSP內部存儲器中的任何一個單元。并且C5410為HPI口提供了專門的中斷線,這樣兩個系統可以通過中斷進行控制信息交互。HPI為上層系統的訪問提供了四個端口,通過這四個端口上層系統可以讀寫HPI的地址寄存器(HPIA)和控制寄存器(HPIC);通過另外兩個端口HPIDC和HPIDS來分別連續和單個讀寫C5410存儲器中的數據。這四個端口由HCNTL0和HCNTL1來尋址,它們的地址分配如表1所示[2]。

          本系統采取雙映射方式來完成C5410與PCI9052的連接。第一個映射是將HPI口的四個寄存器分別映射到PCI空間的四個16位I/O口上。上層系統可以通過訪問I/O端口的方式來訪問這四個寄存器,而依照HPI口的工作流程就可以間接地訪問C5410內部存儲器。這四個寄存器和PCI9052本地I/O空間的對應關系如下:

          HPIC――100H

          HPIDC――104H

          HPIA――108H

          HPIDS――10CH

          在這種映射方式下,上層系統可以通過PCI的I/O訪問方式直接訪問HPI口的四個寄存器,操作很直觀。但是由于I/O訪問無法進行突發傳輸,大大限制了數據傳輸速度。

          第二種映射方式是將HPIDC寄存器映射成PCI空間的一個長度為2000H的8位存儲器塊。上層系統對該地址空間內任一單元的讀寫操作都會被映射成對HPIDC的讀寫訪問,因此從該空間內讀取一個長度為2000H的存儲器塊就會被映射成對HPIDC的2000H次讀取操作,效果等效于從DSP內部存儲器中讀取連續1000H個16位字。寫入的情況也類似。由上述可以看出,實際上這種模式形成了一個PCI存儲器空間和DSP內部存儲器空間之間一一對應的直接映射。

          在這種模式下,數據在上可以突發傳輸,所以大大提高了數據讀寫速度。但是如果把四個寄存器都映射為這個模式,接口邏輯會變得非常復雜。

          上述兩種模式都有局限性,因此本系統同時采用了兩種映射模式。利用I/O映射來訪問控制、地址寄存器和單個數據口,而用存儲器映射來訪問連續數據口。

          在這種配置方法下,PCI9052和HPI口之間的硬件連接,主要利用PCI9052的讀寫控制信號ADS#、LBE[3..0]#、LW/R#、LRDY#和部分地址信號LA[3..2]進行簡單的時序和邏輯轉換后來生成HPI口的讀寫控制信號HBIL、HDS1#、HCNTL0/1、HR/W#。由于HPI口的訪問時鐘是C5410的外部頻率CLKOUT的5分頻,所以PCI9052的本地時鐘采用CLKOUT/5。

          所有控制信號的接口邏輯和時序轉換都是由CPLD來完成,具體的連接方式如圖2所示。

        4 系統的軟件設計

          數據的采集與預處理需要在C5410數據存儲器中開辟三種存儲塊:一種是DATA BUFFER,它與PMC4351中各個時隙的FIFO一一對應,用于緩存每個時隙上采集到的消息數據;第二種是DATA POOL(大小為1000H字),這是一個消息數據池,消息數據在DATA BUFFER中存滿一整條消息后,就進行一些相應的預處理,加上一些TS包頭后,形成一個新的消息包,存入到DATA POOL中;另外還要再開辟一個大小為1000H字的存儲塊HPI RAM,用于上層系統通過HPI來訪問,這樣就將DSP的數據采集部分與上層系統的通信部分相互隔離開來,互不干擾。在DATA POOL中存滿數據后,就進行打包,形成一個大的數據包,交給HPI RAM,通過PCI 總線交給上層系統,進行進一步處理。整體的數據流圖如圖3所示。

        由于DSP芯片的中斷引腳數目有限,而且中斷工作方式容易造成各個時隙數據采集不均勻的情況,本系統采用了輪詢的工作方式。

          軟件的具體流程如圖4所示。

        本文提出的雙映射配置方法和DSP軟件工作策略,成功地將C5410 DSP和相互連接,接口具有邏輯簡單、操作方便、效率高等優點。在C5410的CLOCKOUT配置成64MHz的前提下,兩者之間數據傳輸速率理論峰值可達12.8Mbps,實際系統實現的平均速率達到了10Mbps。由于本系統采用的鏈路采集芯片的微處理器接口最高速率為2Mbps,限制了同時采集時隙的數目,從而限制了本系統的整體采集性能。因此采用更加高性能的采集芯片,可以充分發揮HPI口與PCI9052之間的高速數據連接,同時系統也可以升級到同時采集10條E1鏈路。

          本文實現的數據采集系統工作良好,并已經在電信部門得到采用。本系統具有應用領域廣、可升級能力強、使用方便等特點。該系統目前已經不僅僅用于采集移動通信數據,也開始應用于采集V5、七號信令等協議的數據,滿足了系統功能設計的要求。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 哈巴河县| 依安县| 石泉县| 阿勒泰市| 湖州市| 昌黎县| 年辖:市辖区| 桦川县| 巴塘县| 二连浩特市| 化德县| 濮阳县| 双桥区| 锦屏县| 恭城| 日照市| 临颍县| 吉水县| 赣州市| 社旗县| 资源县| 重庆市| 泸定县| 彭泽县| 常山县| 泰兴市| 桦川县| 大丰市| 新绛县| 三穗县| 九江市| 东城区| 宜宾市| 颍上县| 鲁甸县| 望都县| 仙桃市| 东乡族自治县| 龙山县| 西乡县| 灵寿县|