戈和偉
摘 要:從硬件與軟件方面介紹了基于PXI技術的1553B總線通訊模塊的設計,并對PXI總線接口設計、驅(qū)動程序的開發(fā)、SDRAM存儲器的控制和1553B總線通信協(xié)議實現(xiàn)等關鍵技術進行了詳細的闡述,為航空領域測控系統(tǒng)開發(fā)PXI總線模塊與搭建PXI測控平臺提供了技術參考。
關鍵詞:PXI技術;驅(qū)動程序;SDRAM存儲器;1553B總線
中圖分類號:TP316 ? ? ? ? 文獻標識碼: ? ? ? ? ? ? 文章編號:2095-1302(2014)12-00-03
0 ?引 ?言
1553B軍用總線標準,在軍事裝備,特別是飛機系統(tǒng),得到了廣泛的應用。為了測試帶有1553B總線接口的電子設備與系統(tǒng),通常需要在測試系統(tǒng)配備1553B接口模塊。PXI總線是一種體積小、數(shù)據(jù)傳輸速度高的儀器總線,在航空航天等測控領域得到了廣泛的應用。PXI-1553B模塊可用于PXI總線測試系統(tǒng)與1553B設備的通訊,完成對帶有1553B接口設備的測試,因此設計PXI-1553B模塊具有重要的應用意義。
1 ?基于PXI技術的1553B總線通訊模塊性能指標
32 b,33 MHz PXI總線接口,標準PXI 3U尺寸(160mm×100 mm);
符合1553B規(guī)范,總線傳輸速率1 Mbps;
單通道、多功能、雙冗余通道數(shù)據(jù)發(fā)送和接收;
通道包括1個BC (總線控制器),0~31個RT (遠程終端),1個MT(總線監(jiān)視器);
軟件可設置幀間隔時間、消息間隔時間、消息的數(shù)量、RT狀態(tài)字響應時間和應答超時時間;
提供Windows XP操作系統(tǒng)程序支持,包括驅(qū)動和動態(tài)鏈接庫等。
2 ?基于PXI技術的1553B總線通訊模塊原理框圖
基于PXI技術的1553B總線通訊模塊結構組成如圖1所示,主要包括隔離變壓器、收發(fā)器、FPGA可編程邏輯控制器、PXI總線控制器、SDRAM存儲器、時鐘電路等。隔離變壓器與收發(fā)器為接口電路;FPGA可編程邏輯控制器用來實現(xiàn)1553B接口通信,包括信號發(fā)送與接收的編解碼及串并轉換、總線協(xié)議與消息處理和傳輸邏輯控制與時鐘控制等模塊;PXI總線控制器完成PXI總線與本地總線之間的轉換;SDRAM存儲器用來存儲和緩沖命令和信息(數(shù)據(jù));時鐘用來提供FPGA和PXI總線控制器所需的時鐘[1]。
圖1 ?基于PXI總線的1553B通訊模塊框圖
3 ?基于PXI技術的1553B總線通訊的實現(xiàn)
3.1 ?PXI總線通信的實現(xiàn)
應用芯片PCI9054實現(xiàn)PXI總線接口,選擇PCI9054本地總線工作在C模式下,PCI9054芯片通過片內(nèi)邏輯控制,將PXI的地址線和數(shù)據(jù)線分開,從而為本地總線的各種操作提供良好的工作時序。
系統(tǒng)上電復位后,PCI9054讀取其外部存儲器的數(shù)據(jù)對寄存器進行配置,完成PCI9O54的初始化。PXI的初始化數(shù)據(jù)由E2PROM來加載。E2PROM的配置采用在線燒錄的方式,運行PLXMON軟件,可以識別到PXI總線通訊模塊的設備號為9054,設備標志號為10B5,類碼為AA。PCI9054的Local端寄存器包括Local端地址空間范圍寄存器(LASORR、LAS1RR、EROMRR)與Local端地址空間基地址寄存器(LAS0BA、LASlBA、EROMBA);PXI地址空間基地址寄存器(PCIBAR2、PCIBAR3、PCIERBAR)。Local端的這三個地址空間若要被PXI總線訪問,則首先需完成PXI空間到Local空間的地址映射。其次,當系統(tǒng)上電時,系統(tǒng)對PXI基地址寄存器寫入全1,然后回讀,返回設備申請的映射資源的類型和大小[2]。
在C模式下,采用從操作模式向通訊模塊發(fā)送控制命令,是由PXI總線上的主設備訪問本地總線的操作,PCI9O54通過一個16字長PXI從模式讀FIFO和一個32字長PXI從模式寫FIFO,來實現(xiàn)從PXI總線到本地總線的突發(fā)存儲器映射訪問和IO映射訪問。
3.2 ?驅(qū)動程序的開發(fā)
驅(qū)動程序用WinDriver軟件開發(fā),運行Driverwizard程序,創(chuàng)建新的驅(qū)動程序,進入設備選擇界面,選定PCI9054 PCIAccelerator,創(chuàng)建PXI設備安裝文件.INF(Device information File),其提供了全面描述設備硬件參數(shù)和相應驅(qū)動文件的信息,操作系統(tǒng)通過INF文件就可以找到設備的驅(qū)動程序[3]。
進入PXI通訊模塊的資源對話框,可以查看并修改PXI通訊模塊的存儲器空間、IO空間、寄存器等內(nèi)容,并可以監(jiān)聽中斷,在Visual C++開發(fā)環(huán)境中生成驅(qū)動程序框架代碼,包括M1553_diag.dsw、M1553_diag.dsp兩個工程文件與M1553_lib.c、M1553_lib.h、M1553_diag.c三個文件,M1553_lib.c是設備的應用程序級API函數(shù)文件,定義了訪問所有PXI設備資源(包括存儲器讀寫、IO讀寫、寄存器操作、中斷處理等)所需的庫函數(shù),可以直接調(diào)用這些標準API函數(shù)實現(xiàn)對硬件的操作和訪問,M1553_lib.h文件是上述庫函數(shù)所需的頭文件,M1553_diag.c是基于控制臺的設備診斷程序,在程序中使用了文件M1553_lib.c中的庫函數(shù),對設備進行實際操作。根據(jù)應用情況對上述三個文件代碼進行修改,編寫具體的功能代碼,建立用戶模式的驅(qū)動程序,主要包含設備的初始化、設備的讀寫操作與設備的關閉[4,5]。
3.3 ?SDRAM存儲器的控制
SDRAM作為緩存芯片,選用單周期讀寫的MT48LC16M16A,數(shù)據(jù)位寬16位,塊地址選擇線為BA0和BA1,用來尋址4個塊的地址空間。每塊內(nèi)部又是一個存儲陣列,分為8 192行和512列,行地址線和列地址線進行復用,行地址線為A0~A12,列地址線為A0~A8。由于特殊的存儲結構,SDRAM操作指令比較多,SDRAM的操作是通過RAS,CAS及WE給出的總線命令來控制的[6]。
SDRAM在上電后須對其進行初始化操作配置SDRAM的工作模式,之后SDRAM進入正常工作狀態(tài),等待控制器對其進行讀、寫和刷新等操作。SDRAM行列地址采用復用方式,在每次讀寫操作時,行列地址要鎖存,由ACTIVE命令激活要讀寫的BANK,并鎖存行地址,然后在讀寫指令有效時鎖存列地址。為了保證信息完整,必須按要求定期發(fā)出刷新命令,保證在規(guī)定的時間內(nèi)對每一個單元都進行刷新。刷新命令一次只對一行進行充電,需要每隔7.812 5μs (64ms/8192)執(zhí)行一次刷新命令。
3.4 ?1553B總線通信的實現(xiàn)
1553B總線協(xié)議的處理與邏輯控制功能框圖如圖2所示,主要包括命令字、狀態(tài)字以及方式命令譯碼,進行RT地址比較,子地址比較,進行命令字、狀態(tài)字和方式命令譯碼,進行錯誤檢測及發(fā)送中斷信號等,并要為其余模塊發(fā)送相應控制量,實現(xiàn)對總線接口的控制,包括命令字/狀態(tài)字譯碼及數(shù)據(jù)控制,存儲管理單元控制,檢錯控制,命令字發(fā)送及狀態(tài)字設置,發(fā)送器控制與時鐘產(chǎn)生等幾部分。
圖2 ?1553B總線協(xié)議的處理與邏輯控制功能框圖
(1)命令字/狀態(tài)字譯碼及命令字發(fā)送控制模塊是在BC工作方式下發(fā)送命令字,且在BC/RT/MT三種工作模式下對命令字或狀態(tài)字進行譯碼,產(chǎn)生相應的控制信號實現(xiàn)對其它模塊的控制,如對數(shù)據(jù)控制部分,存儲管理控制部分,檢錯控制部分,狀態(tài)字設置部分,以及發(fā)送器控制部分等,這是模塊的核心部分[7]。
(2)存儲管理單元包括消息隊列數(shù)據(jù)結構的設計、存儲空間的規(guī)劃(包括總線控制器BC,多個遠程終端RT,總線監(jiān)視器MT)和讀寫控制邏輯(控制過程)設計三方面,對SDRAM進行存儲資源分配并對讀寫控制邏輯進行處理,以滿足各工作方式下多消息傳輸?shù)倪B續(xù)性要求[8]。
(3)檢錯控制模塊用于檢測消息傳輸過程中發(fā)生的錯誤,包括字計數(shù)檢測及 RT響應超時檢測,并根據(jù)其它模塊檢測到的RT地址錯誤、奇偶校驗錯誤和位計數(shù)錯誤等產(chǎn)生中斷信號。
(4)狀態(tài)字設置模塊實現(xiàn)RT工作方式下返回狀態(tài)字的設置,并對狀態(tài)字和當 前命令字和上一命令字進行存儲,以備方式命令的消息方式的實現(xiàn)。
(5)發(fā)送器控制模塊針對不同的工作方式選擇需要發(fā)送的信息。
(6)時鐘產(chǎn)生對外部輸入時鐘進行處理產(chǎn)生不同頻率的時鐘,實質(zhì)上是一個計數(shù)器,對外部輸入時鐘進行分頻處理。
1553B總線協(xié)議的處理與邏輯控制要完成BC、多個RT與MT各自功能的實現(xiàn),并要對BC、RT和MT進行協(xié)調(diào)處理與綜合管理,執(zhí)行控制流圖見圖3。
圖3 ?1553B總線協(xié)議的處理執(zhí)行控制流圖
4 ?結 ?語
基于PXI技術的1553B總線通訊模塊的成功開發(fā),掌握了PXI總線通訊的核心技術與實現(xiàn)方法,解決了PXI總線接口設計、SDRAM存儲器的控制和1553B總線通信協(xié)議實現(xiàn)等關鍵技術,為航空領域測控系統(tǒng)開發(fā)和搭建PXI測控平臺提供了技術借鑒,在簡化產(chǎn)品設計的同時節(jié)約了成本。
參考文獻
[1]李雪蓮,陳軼萌.基于PCI總線子系統(tǒng)的1553B終端系統(tǒng)的設計和實現(xiàn)[J].中國水運,2009,9(12):85-87.
[2]吳運生,卞春江,王春梅.航天地面測試中1553B-PCI接口轉換技術實現(xiàn)[J].微計算機信息,2010,26(2):122-124.
[3]馮莉, 葉超.利用WinDriver開發(fā)PCI設備驅(qū)動程序[J].自動化技術與應用,2007,26(11):119-121.
[4]張增輝,沈激,陳子瑜,等.基于WinDriver工具的PCI卡驅(qū)動程序開發(fā)[J].核電子學與探測技術,2006,26(3):367-369.
[5]張浩,游林儒,陳靖源,等.用WinDriver開發(fā)PCI設備驅(qū)動程序[J].微計算機應用,2006,27(5):621-624.
[6]顧驤,周東,田忠.用于1553總線控制器的存儲管理單元設計[J].電子科技大學學報,2003,32(3):317-320.
[7]牛茜,靳鴻.基于FPGA的1553B總線編、解碼器設計[J].計量與測試技術,2010,37(9):53-56.
[8]劉銳,趙加鳳,付平.基于FPGA的PXI-1553B模塊設計[J].電子測量技術,2009,32(11):99-101.
3.3 ?SDRAM存儲器的控制
SDRAM作為緩存芯片,選用單周期讀寫的MT48LC16M16A,數(shù)據(jù)位寬16位,塊地址選擇線為BA0和BA1,用來尋址4個塊的地址空間。每塊內(nèi)部又是一個存儲陣列,分為8 192行和512列,行地址線和列地址線進行復用,行地址線為A0~A12,列地址線為A0~A8。由于特殊的存儲結構,SDRAM操作指令比較多,SDRAM的操作是通過RAS,CAS及WE給出的總線命令來控制的[6]。
SDRAM在上電后須對其進行初始化操作配置SDRAM的工作模式,之后SDRAM進入正常工作狀態(tài),等待控制器對其進行讀、寫和刷新等操作。SDRAM行列地址采用復用方式,在每次讀寫操作時,行列地址要鎖存,由ACTIVE命令激活要讀寫的BANK,并鎖存行地址,然后在讀寫指令有效時鎖存列地址。為了保證信息完整,必須按要求定期發(fā)出刷新命令,保證在規(guī)定的時間內(nèi)對每一個單元都進行刷新。刷新命令一次只對一行進行充電,需要每隔7.812 5μs (64ms/8192)執(zhí)行一次刷新命令。
3.4 ?1553B總線通信的實現(xiàn)
1553B總線協(xié)議的處理與邏輯控制功能框圖如圖2所示,主要包括命令字、狀態(tài)字以及方式命令譯碼,進行RT地址比較,子地址比較,進行命令字、狀態(tài)字和方式命令譯碼,進行錯誤檢測及發(fā)送中斷信號等,并要為其余模塊發(fā)送相應控制量,實現(xiàn)對總線接口的控制,包括命令字/狀態(tài)字譯碼及數(shù)據(jù)控制,存儲管理單元控制,檢錯控制,命令字發(fā)送及狀態(tài)字設置,發(fā)送器控制與時鐘產(chǎn)生等幾部分。
圖2 ?1553B總線協(xié)議的處理與邏輯控制功能框圖
(1)命令字/狀態(tài)字譯碼及命令字發(fā)送控制模塊是在BC工作方式下發(fā)送命令字,且在BC/RT/MT三種工作模式下對命令字或狀態(tài)字進行譯碼,產(chǎn)生相應的控制信號實現(xiàn)對其它模塊的控制,如對數(shù)據(jù)控制部分,存儲管理控制部分,檢錯控制部分,狀態(tài)字設置部分,以及發(fā)送器控制部分等,這是模塊的核心部分[7]。
(2)存儲管理單元包括消息隊列數(shù)據(jù)結構的設計、存儲空間的規(guī)劃(包括總線控制器BC,多個遠程終端RT,總線監(jiān)視器MT)和讀寫控制邏輯(控制過程)設計三方面,對SDRAM進行存儲資源分配并對讀寫控制邏輯進行處理,以滿足各工作方式下多消息傳輸?shù)倪B續(xù)性要求[8]。
(3)檢錯控制模塊用于檢測消息傳輸過程中發(fā)生的錯誤,包括字計數(shù)檢測及 RT響應超時檢測,并根據(jù)其它模塊檢測到的RT地址錯誤、奇偶校驗錯誤和位計數(shù)錯誤等產(chǎn)生中斷信號。
(4)狀態(tài)字設置模塊實現(xiàn)RT工作方式下返回狀態(tài)字的設置,并對狀態(tài)字和當 前命令字和上一命令字進行存儲,以備方式命令的消息方式的實現(xiàn)。
(5)發(fā)送器控制模塊針對不同的工作方式選擇需要發(fā)送的信息。
(6)時鐘產(chǎn)生對外部輸入時鐘進行處理產(chǎn)生不同頻率的時鐘,實質(zhì)上是一個計數(shù)器,對外部輸入時鐘進行分頻處理。
1553B總線協(xié)議的處理與邏輯控制要完成BC、多個RT與MT各自功能的實現(xiàn),并要對BC、RT和MT進行協(xié)調(diào)處理與綜合管理,執(zhí)行控制流圖見圖3。
圖3 ?1553B總線協(xié)議的處理執(zhí)行控制流圖
4 ?結 ?語
基于PXI技術的1553B總線通訊模塊的成功開發(fā),掌握了PXI總線通訊的核心技術與實現(xiàn)方法,解決了PXI總線接口設計、SDRAM存儲器的控制和1553B總線通信協(xié)議實現(xiàn)等關鍵技術,為航空領域測控系統(tǒng)開發(fā)和搭建PXI測控平臺提供了技術借鑒,在簡化產(chǎn)品設計的同時節(jié)約了成本。
參考文獻
[1]李雪蓮,陳軼萌.基于PCI總線子系統(tǒng)的1553B終端系統(tǒng)的設計和實現(xiàn)[J].中國水運,2009,9(12):85-87.
[2]吳運生,卞春江,王春梅.航天地面測試中1553B-PCI接口轉換技術實現(xiàn)[J].微計算機信息,2010,26(2):122-124.
[3]馮莉, 葉超.利用WinDriver開發(fā)PCI設備驅(qū)動程序[J].自動化技術與應用,2007,26(11):119-121.
[4]張增輝,沈激,陳子瑜,等.基于WinDriver工具的PCI卡驅(qū)動程序開發(fā)[J].核電子學與探測技術,2006,26(3):367-369.
[5]張浩,游林儒,陳靖源,等.用WinDriver開發(fā)PCI設備驅(qū)動程序[J].微計算機應用,2006,27(5):621-624.
[6]顧驤,周東,田忠.用于1553總線控制器的存儲管理單元設計[J].電子科技大學學報,2003,32(3):317-320.
[7]牛茜,靳鴻.基于FPGA的1553B總線編、解碼器設計[J].計量與測試技術,2010,37(9):53-56.
[8]劉銳,趙加鳳,付平.基于FPGA的PXI-1553B模塊設計[J].電子測量技術,2009,32(11):99-101.
3.3 ?SDRAM存儲器的控制
SDRAM作為緩存芯片,選用單周期讀寫的MT48LC16M16A,數(shù)據(jù)位寬16位,塊地址選擇線為BA0和BA1,用來尋址4個塊的地址空間。每塊內(nèi)部又是一個存儲陣列,分為8 192行和512列,行地址線和列地址線進行復用,行地址線為A0~A12,列地址線為A0~A8。由于特殊的存儲結構,SDRAM操作指令比較多,SDRAM的操作是通過RAS,CAS及WE給出的總線命令來控制的[6]。
SDRAM在上電后須對其進行初始化操作配置SDRAM的工作模式,之后SDRAM進入正常工作狀態(tài),等待控制器對其進行讀、寫和刷新等操作。SDRAM行列地址采用復用方式,在每次讀寫操作時,行列地址要鎖存,由ACTIVE命令激活要讀寫的BANK,并鎖存行地址,然后在讀寫指令有效時鎖存列地址。為了保證信息完整,必須按要求定期發(fā)出刷新命令,保證在規(guī)定的時間內(nèi)對每一個單元都進行刷新。刷新命令一次只對一行進行充電,需要每隔7.812 5μs (64ms/8192)執(zhí)行一次刷新命令。
3.4 ?1553B總線通信的實現(xiàn)
1553B總線協(xié)議的處理與邏輯控制功能框圖如圖2所示,主要包括命令字、狀態(tài)字以及方式命令譯碼,進行RT地址比較,子地址比較,進行命令字、狀態(tài)字和方式命令譯碼,進行錯誤檢測及發(fā)送中斷信號等,并要為其余模塊發(fā)送相應控制量,實現(xiàn)對總線接口的控制,包括命令字/狀態(tài)字譯碼及數(shù)據(jù)控制,存儲管理單元控制,檢錯控制,命令字發(fā)送及狀態(tài)字設置,發(fā)送器控制與時鐘產(chǎn)生等幾部分。
圖2 ?1553B總線協(xié)議的處理與邏輯控制功能框圖
(1)命令字/狀態(tài)字譯碼及命令字發(fā)送控制模塊是在BC工作方式下發(fā)送命令字,且在BC/RT/MT三種工作模式下對命令字或狀態(tài)字進行譯碼,產(chǎn)生相應的控制信號實現(xiàn)對其它模塊的控制,如對數(shù)據(jù)控制部分,存儲管理控制部分,檢錯控制部分,狀態(tài)字設置部分,以及發(fā)送器控制部分等,這是模塊的核心部分[7]。
(2)存儲管理單元包括消息隊列數(shù)據(jù)結構的設計、存儲空間的規(guī)劃(包括總線控制器BC,多個遠程終端RT,總線監(jiān)視器MT)和讀寫控制邏輯(控制過程)設計三方面,對SDRAM進行存儲資源分配并對讀寫控制邏輯進行處理,以滿足各工作方式下多消息傳輸?shù)倪B續(xù)性要求[8]。
(3)檢錯控制模塊用于檢測消息傳輸過程中發(fā)生的錯誤,包括字計數(shù)檢測及 RT響應超時檢測,并根據(jù)其它模塊檢測到的RT地址錯誤、奇偶校驗錯誤和位計數(shù)錯誤等產(chǎn)生中斷信號。
(4)狀態(tài)字設置模塊實現(xiàn)RT工作方式下返回狀態(tài)字的設置,并對狀態(tài)字和當 前命令字和上一命令字進行存儲,以備方式命令的消息方式的實現(xiàn)。
(5)發(fā)送器控制模塊針對不同的工作方式選擇需要發(fā)送的信息。
(6)時鐘產(chǎn)生對外部輸入時鐘進行處理產(chǎn)生不同頻率的時鐘,實質(zhì)上是一個計數(shù)器,對外部輸入時鐘進行分頻處理。
1553B總線協(xié)議的處理與邏輯控制要完成BC、多個RT與MT各自功能的實現(xiàn),并要對BC、RT和MT進行協(xié)調(diào)處理與綜合管理,執(zhí)行控制流圖見圖3。
圖3 ?1553B總線協(xié)議的處理執(zhí)行控制流圖
4 ?結 ?語
基于PXI技術的1553B總線通訊模塊的成功開發(fā),掌握了PXI總線通訊的核心技術與實現(xiàn)方法,解決了PXI總線接口設計、SDRAM存儲器的控制和1553B總線通信協(xié)議實現(xiàn)等關鍵技術,為航空領域測控系統(tǒng)開發(fā)和搭建PXI測控平臺提供了技術借鑒,在簡化產(chǎn)品設計的同時節(jié)約了成本。
參考文獻
[1]李雪蓮,陳軼萌.基于PCI總線子系統(tǒng)的1553B終端系統(tǒng)的設計和實現(xiàn)[J].中國水運,2009,9(12):85-87.
[2]吳運生,卞春江,王春梅.航天地面測試中1553B-PCI接口轉換技術實現(xiàn)[J].微計算機信息,2010,26(2):122-124.
[3]馮莉, 葉超.利用WinDriver開發(fā)PCI設備驅(qū)動程序[J].自動化技術與應用,2007,26(11):119-121.
[4]張增輝,沈激,陳子瑜,等.基于WinDriver工具的PCI卡驅(qū)動程序開發(fā)[J].核電子學與探測技術,2006,26(3):367-369.
[5]張浩,游林儒,陳靖源,等.用WinDriver開發(fā)PCI設備驅(qū)動程序[J].微計算機應用,2006,27(5):621-624.
[6]顧驤,周東,田忠.用于1553總線控制器的存儲管理單元設計[J].電子科技大學學報,2003,32(3):317-320.
[7]牛茜,靳鴻.基于FPGA的1553B總線編、解碼器設計[J].計量與測試技術,2010,37(9):53-56.
[8]劉銳,趙加鳳,付平.基于FPGA的PXI-1553B模塊設計[J].電子測量技術,2009,32(11):99-101.