當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]IEEE1394是最初由Apple公司提出的高速串行總線,1995年IEEE(電氣和電子工程師協(xié)會)將其認可為IEEE1394-1995規(guī)范[1]。但是在IEEE1394-1995中存在一些模糊定義[2],為了解決這

IEEE1394是最初由Apple公司提出的高速串行總線,1995年IEEE(電氣和電子工程師協(xié)會)將其認可為IEEE1394-1995規(guī)范[1]。但是在IEEE1394-1995中存在一些模糊定義[2],為了解決這些問題,又提出了IEEE1394a規(guī)范和IEEE1394b規(guī)范。1394作為一種成熟的總線,具有傳輸速率高(傳輸速率可達1.6 Gb/s,采用塑料光纖時可達3.2 Gb/s)、支持熱插熱拔、即插即用、拓撲方便等優(yōu)點。被廣泛應用于軍事和航空業(yè),更被美國航天局NASA確定為未來航天器的高速數(shù)據(jù)總線[9]。隨著1394技術的推廣和應用,將其應用到工業(yè)控制系統(tǒng)中更是一種趨勢,而國內對1394總線在工業(yè)系統(tǒng)中的應用研究還不深入。本文主要介紹1394總線在TFT-LCD檢測系統(tǒng)中的應用,通過實驗證明了方案的可行性。

1 1394通信模塊的硬件結構

1394通信模塊的主要功能為采集激光光斑的圖像數(shù)據(jù),負責圖像采集板和Z-軸控制器以及PC之間的通信。它包括1394芯片(LLC和PHY)、FPGAARM7和2片SRAM。

ARM7的主要功能是對1394芯片初始化,根據(jù)1394協(xié)議對經過FPGA轉發(fā)的1394指令進行解析,控制1394鏈路層(LLC)芯片的數(shù)據(jù)接收和發(fā)送,以及通過鏈路層芯片間接地控制物理層(PHY)芯片。幾乎所有的地址線、數(shù)據(jù)線和控制信號線都和FPGA相連,因此FPGA在整個1394通信模塊中起著非常重要的作用,其實現(xiàn)的主要功能包括:(1)通過1394LLC芯片的“主機接口”配置ROM、初始化寄存器、設置中斷、自標識和異步數(shù)據(jù)傳輸。(2)借助“DM端口”進行等時/異步數(shù)據(jù)的傳輸。(3)控制1394總線上數(shù)據(jù)的接收和存儲。為了方便檢測1394通信模塊對指令的具體執(zhí)行情況,在1394通信模塊上擴展了一個串口,通過它與PC連接,即可在PC上通過軟件實時監(jiān)控1394通信模塊的運行情況,也可以通過軟件發(fā)送指令控制1394通信模塊執(zhí)行相應的動作。

相機的圖像數(shù)據(jù)經過1394物理端口發(fā)送到1394總線上,經過1394鏈路層芯片和物理層芯片的處理,在ARM7和FPGA的控制下,通過乒乓操作的方式將其寫入擴展的SRAM中。為了驗證采集的圖像數(shù)據(jù)是否正確,在1394通信模塊上擴展了VGA接口。FPGA通過乒乓的方式讀取SRAM中的圖像數(shù)據(jù),再通過VGA接口將數(shù)據(jù)輸出到顯示器上直觀顯示。

1394通信模塊要與PC進行正常通信,必須先強制PC做為1394總線上的根節(jié)點。因此1394通信模塊在接入1394網絡后必須檢測PC是否為根節(jié)點,否則要一直進行強制復位,直至PC為根節(jié)點。在PC為根節(jié)點后,兩者之間就可以進行數(shù)據(jù)和指令的傳輸。另外,Z軸控制器可以通過1394總線接收來自PC或者1394通訊模塊的運動控制指令。

ARM7芯片選用NXP公司的增強型LPC2200系列的LPC2292。FPGA選用Altera公司的Cyclone系列的EP1C6Q240C8。SRAM選用ISSI公司的IS61LV51216,用于緩存采集的圖像數(shù)據(jù),在后期進行圖像處理或者顯示。1394芯片選用TI公司的TSB12LV32(LLC)和TSB41AB3(PHY),這兩款芯片兼容IEEE1394-1995和IEEE1394a-2000規(guī)范,并集成了3個支持400 MB/s傳輸速率的物理端口,TSB12LV32提供了8/16位可選擇的MCU接口,支持異步傳輸和等時傳輸。

2 1394通信模塊的軟件設計

1394通信模塊的軟件設計主要包括ARM7-LPC2292和FPGA-EP1C6Q240C8的軟件設計。根據(jù)功能的不同,ARM7的軟件設計可以細化為ARM7的初始化、對LLC芯片指令的解析、對FPGA的讀寫操作以及和PC的串口通信。FPGA的軟件設計可以分為對LLC芯片的讀寫操作、與ARM7的通信、控制VGA輸出以及對SRAM的操作。

2.1 1394的初始配置

系統(tǒng)要正常運行,上電后的初始化配置非常重要。初始配置的作用為:(1)正確初始化配置ROM的內容,這是PC識別1394通信模塊并正確安裝對應驅動的前提。(2)如果是與PC通信,將PC設置為根節(jié)點。(3)TSB12LV32相關寄存器的初始化。主要包括DM Control寄存器(設置DM口的狀態(tài)和一些參數(shù)),Interrupt(使能所有中斷),Isochronous Port(等時傳輸?shù)臓顟B(tài),設置每個物理端口的狀態(tài),等時數(shù)據(jù)包的事務標簽等)。

2.2 ARM7對TSB12LV32中斷的響應

確保ARM7對TSB12LV32芯片指令正確響應的重要因素就是準確檢測到TSB12LV32芯片的中斷信號,并能夠讀取CFR寄存器的中斷寄存器數(shù)值,根據(jù)具體的數(shù)值判斷具體發(fā)生了哪種中斷,清除掉中斷位后,再根據(jù)中斷類型決定要做出的反應。例如在檢測到TSB12LV32的中斷信號后,讀取偏移地址為0x0C的中斷寄存器數(shù)值,判斷出bit9為1,即Data Mover packet received,則表明從DM口接收到了一個數(shù)據(jù)包。ARM7只需要清除該中斷位即可。但是并不是所有的中斷只對其中斷位進行清除即可,而不需要做出其他響應。例如:bit18,F(xiàn)IFO acknowledge interrupt,表明先前從ATF傳輸?shù)臄?shù)據(jù)被1394接收節(jié)點成功接收,此時ARM7除了要清除中斷位,還需要讀取ACK代碼的數(shù)值來確認1394接收節(jié)點是否做出了正確的響應。

2.3 LLC芯片配置ROM的實現(xiàn)

配置ROM的格式有最小格式和正常格式兩種。執(zhí)行事務的1394串行總線節(jié)點都應該實現(xiàn)配置ROM,它為配置和診斷與設備相關的問題提供了必要信息。一些1394控制芯片(如TSB43AA82A)可以對讀取配置ROM的讀請求自動響應,編程人員只要把配置ROM放在預先設定的區(qū)域內即可。但是本方案中選取的LLC芯片不具備這種功能,因此需要人為地對主機發(fā)送的讀配置ROM請求做出正確的響應,以使配置ROM可以正確讀到主機中。

1394通信模塊需要充當總線管理器、循環(huán)控制器或者等時資源管理器,因此必須對其進行正常格式下的配置ROM。配置ROM的正常格式中主要配置項包含根目錄(Root Directory)和總線信息塊(Bus_Info_Block)。根目錄提供了用來識別驅動程序和診斷軟件的值,同時也提供了指向其他目錄和數(shù)據(jù)結構的可選指針,這些指針指向的地址和根目錄有相同的結構??偩€信息塊用來制定與總線相關的功能[2]。ARM7設置配置ROM的具體步驟如下:

(1)根據(jù)需要提供的信息填寫配置ROM表,并根據(jù)IEEE1394-1995協(xié)議中提到的CRC校驗算法計算校驗值。

(2)對異步讀請求數(shù)據(jù)包進行解析,分析到其為讀事務,并且讀的目標地址在配置ROM范圍之內,則將分析的目標地址的數(shù)據(jù)填寫到讀響應數(shù)據(jù)包中,對讀請求做出響應。

上位機正確地讀取到配置ROM的內容后就會提示發(fā)現(xiàn)新的硬件,識別出1394通信模塊后自動為其安裝相應的驅動程序。[!--empirenews.page--]

2.4 IEEE1394等時數(shù)據(jù)傳輸?shù)膶崿F(xiàn)

實現(xiàn)等時數(shù)據(jù)傳輸,需要先做以下準備工作:具有兩個或兩個以上的1394節(jié)點,至少有一個節(jié)點具有充當?shù)葧r資源管理器的資格,將要發(fā)送等時數(shù)據(jù)的節(jié)點DM口模式設置為傳輸模式(transmit mode),同時將接收等時數(shù)據(jù)的節(jié)點DM口模式設置為接收模式(receive mode)。等時數(shù)據(jù)傳輸分為自動插入包頭和手動插入包頭兩種;等時數(shù)據(jù)接收分為自動去除包頭和包尾以及包頭和包尾一起接收兩種情況。為了方便后期的數(shù)據(jù)處理,將等時數(shù)據(jù)發(fā)送節(jié)點的等時模式設置為自動插入包頭和包尾,而將等時數(shù)據(jù)接收節(jié)點的等時模式設置為自動去除包頭和包尾。

自動插入包頭的等時數(shù)據(jù)傳輸流程如下:

(1)接收到DMREADY一個周期的高脈沖信號。

(2)DMDONE置為低電平。

(3)DM口讀取自動存儲在38h地址的包頭信息,并向鏈路核請求將要發(fā)送的數(shù)據(jù)讀取到1394總線上。

(4)鏈路核獲得header0寄存器存儲的頭信息。

(5)DMPRE產生一個周期的高脈沖。

(6)DMRE為高電平時,開始獲取要發(fā)送的數(shù)據(jù)。

(7)鏈路核讀取到最后一個數(shù)據(jù)時,DM口開始檢查是否向控制寄存器所定義的通道發(fā)送了數(shù)據(jù)。如果已經向所有的通道發(fā)送完畢,則在經過一個小間隙后將DMDONE置為高電平,此時等時傳輸結束;否則DM口繼續(xù)插入頭信息,進行數(shù)據(jù)傳輸,直至向所有的通道發(fā)送完數(shù)據(jù)。

自動去除包頭和包尾的等時數(shù)據(jù)接收流程如下:

(1)包頭中的sysc位如果和等時接口寄存器(地址為0x18h)的ISYNCRCVN信息相同,DMPRE置高一個周期。

(2)在接收完包頭后,DMDONE置高一個周期。在后面有數(shù)據(jù)通過時DMRW置高。

(3)在接收完所有的數(shù)據(jù)后,DMRW置低,則DMD數(shù)據(jù)線不接收包尾。

3 通信測試

對1394通信模塊的通信實驗分為兩部分:對1394協(xié)議所規(guī)定的通信功能的測試;對采集到的數(shù)據(jù)正確性進行驗證。實驗步驟如下:

(1)將1394通信模塊和PC連接起來,模塊加電后,首先進行總線配置、樹標識和自標識。在整個網絡形成后,已經確定根節(jié)點,各個節(jié)點的地址也就確定了。在1394總線執(zhí)行上述動作時,同時通過擴展的串口輸出自標識數(shù)據(jù)包的內容,包括當前網絡中的節(jié)點數(shù)、當前節(jié)點為第幾個節(jié)點、是否為根節(jié)點、是否具有等時資源管理的功能。至此,1394通信模塊已和PC建立連接。

(2)通過PC讀取1394通信模塊的配置ROM,看其是否能進行正確響應。

(3)進行異步讀和異步寫的測試,分為對字節(jié)的異步讀寫和對數(shù)據(jù)塊的異步讀寫兩種。

(4)進行等時數(shù)據(jù)傳輸?shù)臏y試。看PC是否能接收到1394通信模塊發(fā)出的等時數(shù)據(jù)包。

(5)連接相機,通過等時傳輸將相機的圖像數(shù)據(jù)存入到1394通信模塊的SRAM中,并由VGA接口輸出到顯示器上顯示。

除了第(5)步,以上每一步的執(zhí)行都會在串口調試助手軟件上有結果輸出。例如:1394通信模塊在上電后收到自標識包并進行復位,并在調試界面上會輸出“SID RCVD 2 Y 0 BUS RST..”。其中“SID RCVD”表示節(jié)點收到自標識數(shù)據(jù)包,“2 Y 0”表示當前總線中存在兩個1394節(jié)點,當前節(jié)點為根節(jié)點,具有等時資源管理功能的節(jié)點是節(jié)點0。“BUS RST..”表示節(jié)點開始進行總線復位。當前節(jié)點發(fā)起讀取0x0400地址數(shù)據(jù)的異步讀請求,則在界面上會顯示“ACK00010,0x04049c44”。“ACD00010”表示另一個節(jié)點接收到了異步讀請求的命令,“0x04049c44”則為返回的0x0400地址存儲的數(shù)據(jù)。兩個1394節(jié)點要進行等時數(shù)據(jù)傳輸,假如數(shù)據(jù)發(fā)送方為節(jié)點0,數(shù)據(jù)接收方為節(jié)點1。按照以下步驟進行節(jié)點間等時數(shù)據(jù)傳輸?shù)臏y試:(1)先設置節(jié)點0的DM口模式為發(fā)送模式,節(jié)點1的DM口模式為接收模式。(2)節(jié)點0先讀取總線上的有效帶寬,上層界面接收到“0x00000f33”,它是用十六進制表示的當前總線的有效帶寬。節(jié)點0再向等時資源管理節(jié)點申請一定的帶寬,上層界面接受到“ACK 00010”,表示帶寬申請成功。(3)讀取總線上的有效通道并且申請通道。1394總線的有效通道數(shù)存在兩個寄存器上,申請時按照由低到高的順序。在申請通道前需先確認當前網絡中使用的通道數(shù),通信結束后再釋放該通道。發(fā)出讀取有效通道的指令后,上層界面接收到“0xffffffff”和“0xffffffff”,表示目前總線上所有通道均處于空閑狀態(tài)??梢陨暾埻ǖ?,申請后低位通道寄存器的值變?yōu)?ldquo;0xfffffffe”。經過前面三步已經建立了節(jié)點0和節(jié)點1進行等時通信所需要的帶寬和通道。(4)發(fā)送等時傳輸?shù)闹噶?,看?jié)點1是否接收到了指定量的等時數(shù)據(jù)包。通過中斷寄存器的bit9(Data Mover packet receive)進行判斷。

本文分析了基于FPGA+ARM的1394總線在TFT-LCD檢測系統(tǒng)中的應用,對于1394總線技術的推廣具有較強的借鑒意義。測試實驗表明,1394總線在進行等時通信時分配固定的帶寬,保證了圖像數(shù)據(jù)又快又準的傳輸,同時整個檢測系統(tǒng)的各個模塊通過1394總線連接起來,可以完全脫離PC單獨運行,采用異步傳輸進行控制指令的傳輸,既方便又穩(wěn)定。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉