李司
【摘要】 為滿足基于TDD同步調度機制的移動自組網設計方案中網絡層路由算法與MAC層調度協議處理需求,構建了基于S3C6410 ARM處理器與TMS320C6416 DSP處理器的多核構架的移動自組網節點路由與調度處理單元,并給出了基于HPI接口的多處理器層間數據交互硬件設計方案與軟件設計架構。實現結果證明HPI接口可靠、穩定,滿足自組網節點層間高速數據傳輸要求。
【關鍵詞】 移動自組網 ARM DSP HPI
一、引言
移動自組網是由一組帶有無線收發裝置的節點組成的一個臨時性多跳自治網絡,網絡中的每一個節點同時具有普通網絡節點和路由器的雙重功能。該網絡無需任何基礎設施,可隨時隨地快速靈活部署,且具有極強的抗毀特性,在軍事作戰和民用應急通信領域都具有廣闊的應用前景,是目前網絡構建方案研究中的熱點問題。
移動自組網節點設備作為該網絡構建的基礎,其特殊的體系結構是自組網系統具有無中心、自組織、抗毀性強等特性的關鍵。目前自組網節點設備實現技術的研究中有兩類主流實現方案:1)基于CSMA/CA的競爭方案,該方案多采用嵌入式處理器加802.11協議標準的制式芯片實現,其中ARM處理器實現自組網路由協議處理,制式芯片實現物理層及MAC層功能。該方案實現簡單,但由采用基于競爭的MAC層協議,因此網絡吞吐量無法得到保障。2)基于TDD的同步調度方案,該方案采用同步調度機制,大大減少碰撞發生,從而保障了網絡的吞吐量。但該方案尚未有相關制式芯片可以使用,因此需要采用軟件無線電方案自主研發。本文中移動自組網節點基于TDD同步調度方案實現,采用ARM+DSP+FPGA的多處理器協同結構,其中ARM實現節點業務接入與網絡路由協議處理,DSP實現同步式MAC層協議處理,FPGA實現寬帶無線收發基帶處理。在上述多處理器協同方案設計中,處理器間數據交互方案是系統設計的關鍵問題之一。本文將重點介紹ARM與DSP間基于HPI接口的數據交互方案設計。
二、移動自組網節點整體結構
移動自組網節點硬件結構如圖1所示。節點設備包括路由與調度單元以及無線收發單元兩部分,其中路由與調度單元承載自組網節點的網絡協議與同步MAC層處理算法,無線收發單元在MAC層協議調度下實現基于TDD的物理層無線收發處理。
在路由與調度單元硬件設計中,ARM處理器選用SAMSUNG公司的S3C6410。該芯片是一款低功耗、高性能的適用于移動便攜設備的通用嵌入式處理器,基于64/32位的RISC(Reduced Instruction Set Computer)構架。它采用ARM1176JZF-S內核,最高工作頻率可達667MHz,具有強大的外設管理功能,適合于自組網節點路由算法、業務接入處理以及人機交互操作管理。
DSP處理器選用TI公司的TMS320C6416。該處理器是TI公司C6000系列中的一款高性能定點DSP器件。在最高1GHz主時鐘下,其處理能力達到8000 MIPS,其強大的處理能力可滿足MAC層的分布式網同步算法以及實時資源調度的處理需要。同時它具有豐富的外部設備接口,可實現與不同外部處理器間的數據交互。
在路由與調度功能單元的雙處理器設計結構中,ARM作為主處理器,需要實時與DSP進行上下行業務數據以及信令數據交互。本方案選擇HPI作為處理器間通信接口。該接口硬件復雜度低,無需添加外置邏輯電路。且該接口基于DMA方式完成數據傳輸,占用DSP處理資源較少,不會影響DSP中其它高優先級的實時處理工作。
三、節點中HPI接口硬件設計
HPI(Host Port Interface)是TMS302C6416中的一個并行數據端口。ARM通過該端口可作為主處理器直接訪問DSP內部的存儲空間以及存儲器映射的外設,并且可通過DMA/
表1 HPI接口引腳信號及其功能
信號名稱 類型 信號數 主機連接 信號功能
HD[15:0] I/O 16 數據總線 數據輸入輸出
THCNTL[1-0] I 2 地址線 HPI寄存器訪問控制
THHWIL I 1 地址線 半字識別輸入
THR/W I 1 讀/寫選通 讀寫選擇
THCS I 1 片選控制線 數據選通輸入
THDS2 I 1 寫選通 數據選通輸入
THDS1 I 1 讀選通 數據選通輸入
THRDY O 1 異步準備信號 當前HPI訪問的準備狀態
THINT O 1 主機中斷輸入 向主機發出的中斷信號
EDMA控制器來訪問存儲空間。在具體數據交互的操作中,ARM通過對HPIC(HPI控制寄存器)、HPIA(HPI地址寄存器)以及HPID(HPI數據寄存器)寄存器的讀寫操作來實現HPI數據接口通信。此外HPI數據總線寬度可通過外部配置引腳設置為HPI16(16bit總線)與HPI32(32bit總線)兩種模式。
ARM(S3C6410)與DSP(TMS320C6416)硬件連接如圖2所示。根據層間數據吞吐要求設置HPI總線為HPI16模式,并將HPI接口的HD[15:0]總線連接到ARM的數據總線。在層間數據交互操作中,ARM作為主機,DSP看作是ARM的一個外部設備。HPI接口信號的功能定義如表1所示。
ARM 通過ADDR2與ADDR1地址線控制THCNTL1/0信號,聯合選擇要訪問的HPI寄存器。此外通過地址線ADDR3控制THHWIL信號,用于識別在HPI16模式下傳輸的是第一個半字還是第二個半字。
在TMS320C6416芯片內部,對于HPI讀寫數據總線選通處理,采用了特殊的設計結構。如圖3所示,在DSP內部對HPI接口的THCS、THDS1、THDS2三個輸入信號進行組合邏輯運算,生成數據閘門信號,控制讀寫數據總線選通。該設計增加了主機處理器與DSP間硬件連接的靈活性,從而使HPI接口可以很好的匹配不同處理器的數據接口。本設計根據S3C6410接口時序特性,采用CSn5、OEn、WEn分別與THCS、THDS1、THDS2連接。
四、節點中HPI接口軟件設計
ARM主處理器基于嵌入式Linux操作系統,其在完成網絡層路由算法處理的同時實現業務數據的吞吐與協議封裝,而后再通過HPI接口將上下行業務數據以及系統信令數據與DSP進行交互。在HPI接口的數據交互處理中,ARM將該操作視為對一種外部設備的讀寫處理,軟件設計分為驅動程序設計與應用程序設計兩個層次實現。
4.1驅動程序設計
在HPI接口軟件設計中,驅動程序是ARM與DSP通信實現的關鍵。ARM在嵌入式Linux下,通過對HPI設備驅動文件的打開、關閉、讀、寫等操作來完成對HPI的設備操作。與應用程序不同,驅動程序與硬件相關,且工作在內核空間,可對中斷、存儲空間等底層資源進行操作和調配,直接影響硬件效率和系統穩定性。此外,設計中HPI驅動程序不但要實現ARM與DSP的雙向傳輸通道,而且要在保證穩定性和應用層效率的條件下,盡量提高傳輸速率。
驅動程序的總體結構如圖4所示,可分為應用層接口、內核線程、數據結構、通信協議和硬件實體操作五部分。
4.1.1應用層接口
為保證應用程序的可移植性,驅動程序需采用標準化文件接口,包括open、close、write、read、以及ioctl。
open和close實現接口的打開和關閉以及資源的申請和釋放,為了保證應用層的效率,write和read采用阻塞的讀寫方式,通過wait_queue機制,使應用程序在無法得到驅動資源的情況下進入休眠狀態,提高系統整體運行效率。
4.1.2內核線程
為保證高數據率的總線傳輸,讀與寫的操作不能順序化,必須采用應用層接口函數操作和底層硬件操作異步進行方式。通過write_thread和read_thread兩個內核線程實現應用層操作的異步化。以寫過程為例,應用程序調用write后,驅動程序并不直接進行硬件總線操作,而是迅速將數據寫入驅動緩存,驅動程序在CPU空閑時從緩存內取出數據,進行總線讀寫,從而大大提高了傳輸效率。內核線程與應用層線程區別較大,不能完全依靠系統調度,根據操作流程需要,通過軟件設計干預系統調度。
4.1.3數據結構
考慮到后級吞吐能力,驅動程序設計中還要考慮速率匹配問題。本設計中實現了深度可變的FIFO數據結構,方便對各種大小的數據單元進行緩存,根據系統需求進行數據速率匹配,從而保證不會使后級發生溢出,同時兼顧系統的低延時要求。
4.1.4通信協議
在通信協議設計方面,驅動程序通過設計可用標志、數據大小、數據存儲區指針等內存關鍵字段,實現ARM與DSP間的總線上層通信協議。此外,通過標志位的互斥,保證了DSP內存臨界區的數據安全。
4.1.5硬件操作實體
在硬件層面上,ARM主處理器與DSP間的數據交互是通過對控制寄存器HPIC、地址寄存器HPIA以及數據寄存器HPID的讀寫操作實現的。驅動程序實現的底層硬件通信就是對上述寄存器的操作。驅動設計中需要注意:ARM外部設備I/O 端口的物理地址只有被映射到內存地址空間才能被訪問,即所謂內存映射。因此,需要將HPI接口的物理地址映射到內核空間,這樣每個寄存器就具有了相應內存地址,通過對相應地址單元的讀寫即可完成對相應寄存器的操作。
4.2應用程序設計
應用程序工作流程如圖5所示。在下行業務數據處理過程中,ARM由網口接收數據,進行協議封裝后,調用HPI接口驅動程序發送給DSP。上行業務處理流程與上述過程相反不再贅述。應用程序由網口UDP接收、發送以及HPI接口接收、發送四個內核進程實現移動自組網上下行業務的傳輸。
五、結束語
本文在移動自組網節點實現技術研究的基礎上,給出了適用于TDD同步調度機制自組網系統的多處理器節點設計架構,并重點介紹了節點設備中TMS320C6416 DSP和S3C6410 ARM處理器間,基于HPI接口的層間數據傳輸軟硬件設計方案。經過實際測試表明,設計中HPI接口可以滿足層間高速數據交互處理要求。本方案中HPI接口硬件設計簡單靈活、性能穩定可靠,且具有通用性,可適用于其它實時高速數據傳輸應用。
參 考 文 獻
[1]張程,移動自組網關鍵技術研究[D],重慶大學,2010.
[2]徐偉 陸珉,探底雷達顯控單元中的HPI應用技術研究[J],現代電子技術,2013,3,5期:10-12.
[3]孫德瑋. 基于HPI接口實現DSP和ARM間的通信[J],微處理機. 2009,6,3期:61-63.
[4] TEXAS INSTRUMENTS. TMS320C6000 DSP Host Port Interface(HPI) Reference Guide. 2008.
[5] SAMSUNG. S3C6410X RISC Microprocessor USERS MANUAL. 2008.