本站小編為你精心準備了1394總線接口設計與實現參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:
IEEE1394總線是一種高性能的串行總線標準,與傳統總線相比,具有傳輸速率高、可靠性高、物理設計小、節點自動配置、支持等時和異步傳輸等特點,已成為軍用電子系統信息傳輸的主要方式之一。文章結合一個PCI轉1394總線通信系統應用實例,分析了1394總線接口硬件和軟件設計中的一些問題,從器件選擇、PCI總線配置、OHCI協議等問題上提出了解決方法。
關鍵詞:
1394總線;OHCI協議;DMA傳輸方式
本系統以MPC8280為核心處理器,通過PCI總線訪問TSB43AB23,實現1394總線通信。
一、PCI轉1394總線驗證板的設計
1.原理概述1394總線功能電路原理框圖如圖1所示。CPU對1394總線的訪問完全通過PCI端口操作TSB43AB23芯片來完成。
2.主要芯片TSB43AB23簡介TSB43AB23是TI公司的兼容OHCI技術規范的,集成IEEE-1394a鏈路控制器和物理層(PHY)的器件,具有業界最低功耗。TSB43AB23的PCI接口可直接連接本地PCI總線物理接口(2.2標準)。TSB43AB23的物理層時鐘僅需外接一個的24.576MHz晶振,也可以連接24.576MHz的時鐘信號。TSB43AB23內部的鎖相環將24.576MHz倍頻,產生393.216MHz的時鐘參考信號,分頻可得到內部所需的各種時鐘。用內部48.152MHz的時鐘信號同步鎖存接收數據包。發送數據時,數據的48.152Mhz同步時鐘由內部鎖相環提供。編碼完成的串行數據,傳送速率可為98.304Mb/s、196Mb/s或393.216Mb/s。數據差分信號在雙絞線B上傳送,控制差分信號在雙絞線A上傳送。數據接收時,關閉發送器,開啟接收器。接收到的信號,可以恢復為接收時鐘和串行數據,由內部鎖相環的48.152MHz的時鐘信號將接收到的串行數據同步鎖存。TPA和TPB線纜接口電路,通過差分比較器,對線纜的狀態進行檢測,檢測的結果可用于內部邏輯的仲裁。TPA通道通過檢測輸入電纜的共模電壓,可得出下一個數據包的傳輸速率。
二、設計要點
1.DMA控制器1394數據傳輸采用DMA方式,共支持7種不同的類型,每種類型的DMA都有保留的寄存器空間。異步發送DMA具有以下四種命令描述符:OUTPUT_MORE、OUTPUT_MORE_Immediate、OUTPUT_LAST和OUTPUT_LAST_Immediate。OUTPUT_MORE定義需傳輸的數據在主機內存空間中的地址,OUTPUT_LAST定義了下一個描述符的起始地址,OUTPUT_MORE_Immediate和OUTPUT_LAST_Immediate包含了1394數據包頭信息。一個描述符塊的組成有兩種形式:1個單獨的OUTPUT_LAST_Immediate或者由1個OUTPUT_MORE-Immediate、0-5個OUTPUT_MORE、1個OUTPUT_LAST組成。OHCI協議中定義了寄存器ContextControl、CommandPtr。CommandPtr寄存器的內容是一個指針,指向要發送的DMA的首個描述符塊。如圖2所示,descriptorAddress是首個描述符塊的起始地址的高28位,Z是描述符塊中的命令描述符的個數。ContextControl寄存器的定義如圖3所示。在run、active和dead位均為‘0’的情況下,可向CommandPtr寄存器中寫入關于描述符塊的正確數據。然后,將run位置為‘1’,主機控制器即開始處理CommandPtr寄存器中的描述符塊。主機在處理過程中,會自動將active位置為‘1’,并在處理結束后自動清零。wake為‘1’表示正在處理描述符,主機在獲得一個描述符之后自動將該位置0。所以可以通過active位知道主機是否處理完成。處理過程中一旦遇到錯誤,主機會將dead位置為‘1’。如果run被置為‘0’,dead也會自動清零。spd為數據包的傳輸速率。最終,處理完成后,無論正確與否,主機控制器都會在ContextControl寄存器的最末5位中填入包處理事件代碼。
2.1394數據接收和發送數據發送時,我們使用兩個描述符塊組成一個關聯,每一個描述符塊由一個OUTPUT_MORE_Immediate和一個OUTPUT_LAST組成。第一個描述符塊OUTPUT_LAST中下一個描述符塊地址指向第二個描述符塊,第二個描述符塊OUTPUT_LAST中下一個描述符塊地址指向第一個描述符塊,形成一個環形鏈表。初始化時,按照數據格式要求填寫兩個描述符塊,兩個描述符塊可以共用一個發送緩沖區,但不指定OUTPUT_LAST中下一個描述符塊的地址。第一次發送數據使用第一個描述符塊,填寫發送緩沖區數據和發送數據長度后,將ContextControl的RUN位置1,并將OUTPUT_LAST中下一個描述符塊地址指向第二個描述符塊,可以通過中斷寄存器判斷數據是否發送成功。第二次發送數據使用第二個描述符塊,填寫發送緩沖區數據和發送數據長度后,將ContextControl的WAKE位置1,并將OUTPUT_LAST中下一個描述符塊地址指向第一個描述符塊,同樣可以通過中斷寄存器判斷數據是否發送成功。除了第一次發送數據需要將RUN位置1外,以后的發送數據都只需要將WAKE置1,讓控制器處理新增的描述符塊。
數據接收時,也使用兩個描述符塊組成一個關聯,每個描述符塊只需一個INPUT_MORE。第一個描述符塊中下一個描述符塊地址指向第二個描述符塊,第二個描述符塊中下一個描述符快地址指向第一個描述符塊。初始化時按數據格式要求填寫兩個描述符塊,指定下一個描述符塊地址,每個描述符塊有獨立的數據接收存儲緩沖區。與發送不同的是,只有接收存儲緩沖區滿了以后,才會使用下一個描述符塊中的接收緩沖區,而且在初始化中ContextControl中RUN位置1后,就不需要對控制器進行任何配置了。需要注意的是數據接收存儲的位置不是從存儲區基址開始的,而是接著上次數據存儲的位置往后排,所以在接收中斷到來之后,數據的取出需要做相應的處理。
三、結語
1394總線具有諸多優點,已成為軍用電子系統信息傳輸的主要方式之一。目前,1394技術廣泛應用于視頻數據傳輸中。1394總線在大容量存儲器以及網絡互連等方面也有廣闊的應用前景。在我們的實際工作中,各個系統、功能模塊之間的需要交換和備份的數據量越來越大,因此對傳輸速率的要求也越來越高。所以,1394總線具有很強的實用性。
參考文獻:
[1]IEEE1394-1995,IEEEStandardforaHighPerformanceSerialBus[S].1994.
[2]張大樸.IEEE1394協議及接口設計[M].西安:西安電子科技大學出版社,2004.
[3]李世平.IEEE-1394(FireWire)系統原理與應用技術[M].西安:西安電子科技大學出版社,2004.
[4]李肇慶.IEEE1394接口技術[M].北京:國防工業出版社,2004.
作者:常晨晨 曹峰 張鋒 高穎 單位:蘇州長風航空電子有限公司