陳雪坤,扈宏杰
(北京航空航天大學(xué) 自動化科學(xué)與電氣工程學(xué)院,北京100191)
轉(zhuǎn)臺(包括仿真轉(zhuǎn)臺、測試轉(zhuǎn)臺及程控轉(zhuǎn)臺),是航空航天及兵器系統(tǒng)中的型號研制及生產(chǎn)標(biāo)檢過程的關(guān)鍵設(shè)備,除其系統(tǒng)精度要求高以外,其可靠性也是極其重要的指標(biāo)。 基于工控機的轉(zhuǎn)臺控制系統(tǒng)中,早期采用ISA(industry standard architecture,工業(yè)標(biāo)準體系結(jié)構(gòu))總線,后為提高速度采用PCI(peripheral component interconnect, 外設(shè)部件互連標(biāo)準)總線與外設(shè)接口,而板卡連接“金手指”易受潮濕、振動等復(fù)雜環(huán)境影響[1-2],引發(fā)連接故障,致使整個轉(zhuǎn)臺系統(tǒng)的可靠性下降。 針對以上問題,可采用CPCI 總線(compact PCI,緊湊型PCI)的方法,拋棄金手指互連方式,可靠性得到保證[3-4],但是成本較高,適合于型號設(shè)備。另一種解決方法是采用PC104總線接口,物理連接采用插針形式,可靠性很高,且適合實驗室設(shè)備環(huán)境。
PC104+總線兼容PCI 協(xié)議,既可滿足系統(tǒng)的實時性,又可保證系統(tǒng)可靠性[5-6]。 故在此,轉(zhuǎn)臺控制系統(tǒng)采用了基于PC104+總線的嵌入式計算機作為的主控計算機,設(shè)計了PCI 協(xié)議的信號處理卡,基于DSP(digital signal processor,數(shù)字信號處理器)和FPGA(field programmable gate array,現(xiàn)場可編程門陣列)核心元件,實現(xiàn)了成碼盤信號采集、數(shù)字輸入輸出信號處理、控制結(jié)果輸出、集串口遠程通訊等功能于一體。
轉(zhuǎn)臺控制系統(tǒng)總體結(jié)構(gòu)如圖1 所示。
圖1 轉(zhuǎn)臺系統(tǒng)結(jié)構(gòu)Fig.1 Turntable system overall structure
主控計算機采用PC104+嵌入式計算機, 搭載Windows XP 系統(tǒng), 通過VC++編寫人機交互界面,完成界面管理、參數(shù)配置、指令等功能。 具體功能如圖2 所示。
圖2 人機界面功能Fig.2 Function of human-machine interface
轉(zhuǎn)臺直接控制級為RTX 實時子系統(tǒng),構(gòu)成3 個獨立的伺服控制回路,實現(xiàn)控制算法。 信號處理卡主要由CH365 橋路芯片,DSP、PFGA 主控芯片、雙口RAM、D/A 轉(zhuǎn)換、運放等外圍電路組成,主要完成D/A 輸出、碼盤信號采集、與遠程計算機及主控計算機的通信的功能。DSP 和CH365 負責(zé)與主控計算機的通訊,F(xiàn)PGA 負責(zé)與遠程計算機的串口通信和碼盤數(shù)據(jù)采集和處理。
PC104+總線兼容PCI 協(xié)議,PCI 總線分別32 位和64 位,最大傳輸率可達264 MB/s。 其獨立于CPU總線,故能夠支持多種處理器,但是相較于ISA 等總線,PCI 總線協(xié)議復(fù)雜, 使用FPGA 設(shè)計比較困難。 在此轉(zhuǎn)臺系統(tǒng)采用專門的PCI 接口芯片CH365進行接口設(shè)計。
CH365 是PCI 總線的通用橋路芯片,其應(yīng)用如圖3 所示,能夠?qū)崿F(xiàn)32 位PCI 總線接口,將其轉(zhuǎn)換為8 位數(shù)據(jù)并行接口, 帶有16 為地址線, 可直接DSP、FPGA 等主控芯片。 由于轉(zhuǎn)臺系統(tǒng)通信數(shù)據(jù)量較大,故使用雙口RAM 進行緩沖。
圖3 PCI 接口Fig.3 PCI interface
PCI 接口芯片CH365 的PCI 總線端與嵌入式計算機通過插針連接, 本地總線端與雙端口SRAM連接,雙口SRAM 另一總線端與DSP 總線連接。 通過接口芯片,可以直接通過計算機的端口操作對雙端口SRAM 中的數(shù)據(jù)進行讀寫。 通過對雙端口SRAM 指定地址的寫入產(chǎn)生的外部中斷,對DSP 進行控制。
FPGA 根據(jù)碼盤協(xié)議要求發(fā)送時鐘信號,經(jīng)電平轉(zhuǎn)換,差動轉(zhuǎn)換后輸出,同樣碼盤信號經(jīng)過差動轉(zhuǎn)換,電平轉(zhuǎn)換后進入FPGA。 FPGA 電路如圖4所示。
圖4 FPGA 電路Fig.4 FPGA circuit
信號處理器軟件按照功能可分為以下幾部分:①串口通信 采用RS422 協(xié)議實現(xiàn)與測發(fā)控的通信;②PCI 通訊 將串口接收的測發(fā)控信息與碼盤卡接收的碼盤信息通過PCI 總線協(xié)議實現(xiàn)與計算機的通訊;③SPI 輸出 將計算機的控制指令通過SPI 串口輸出,經(jīng)D/A 以及放大后送至驅(qū)動器;④信號采集 主要利用FPGA 器件實現(xiàn)對外圍器件的邏輯控制,讀取碼盤數(shù)據(jù)信號。
以FPGA 為核心的數(shù)據(jù)采集模塊如圖5 所示。該系統(tǒng)選用Intel 公司Altera 系列芯片,有較高的波特率,能夠?qū)崟r讀取三路碼盤信息,同時生成內(nèi)部硬件邏輯模塊雙口RAM,將采集到的碼盤信息存于雙口RAM 等待DSP 讀取。
圖5 以FPGA 為核心的數(shù)據(jù)采集模塊Fig.5 FPGA-based data acquisition module
數(shù)據(jù)采集模塊的主要工作內(nèi)容如下:
1)碼盤數(shù)據(jù)的采集。 編碼器協(xié)議為BISS 協(xié)議,BISS 是一種同步串行通訊協(xié)議,時序如圖6 所示。
圖6 BISS 碼盤時序圖Fig.6 BISS encoder timing diagram
根據(jù)協(xié)議要求,F(xiàn)PGA 向編碼器輸入時鐘信號,編碼器即按該時鐘信號進行數(shù)據(jù)傳輸,F(xiàn)PGA 按該時鐘信號按位接收,去掉幀頭幀尾,經(jīng)過校驗后存入內(nèi)部RAM 的指定地址,等待DSP 訪問。部分程序如下:
assign ma =(scl_r || flag2);
ma 為FPGA 輸出時鐘信號;scl_r 為內(nèi)部分頻出的合適波特率;flag2 為控制開關(guān)。
此為接收模塊,F(xiàn)PGA 按照編碼器發(fā)送的波特率按位接收數(shù)據(jù)。
通過校驗的數(shù)據(jù)賦給16 位數(shù)組ram1 和ram2等待存入雙口RAM。
通過對寫信號置高, 并將數(shù)據(jù)賦給數(shù)據(jù)總線,地址賦給地址總線, 將采集的碼盤數(shù)據(jù)存入雙口RAM 指定區(qū)域。
2)與DSP 之間的通訊。 FPGA 生成DRAM 邏輯模塊,與DSP 的16 位數(shù)據(jù)總線、外部尋址片選信號線、讀信號線、寫信號線以及地址總線相連。 DSP 通過訪問FPGA 內(nèi)部DRAM 讀取碼盤數(shù)據(jù)。
3)FPGA 讀取雙口RAM 中上位機的控制指令,通過SPI 輸出, 經(jīng)D/A 轉(zhuǎn)換并放大后送至驅(qū)動器,完成對電機的控制。
為使上位機能夠?qū)CI 設(shè)備操作,需要有相應(yīng)的驅(qū)動程序,進行地址映射。PCI 設(shè)備查找流程如圖7 所示。
主要步驟如下:
步驟1遍歷PCI 插槽,尋找信號處理卡。主要程序如下:
圖7 PCI 設(shè)備查找流程Fig.7 PCI device discovery flow chart
由于計算機的多級總線結(jié)構(gòu), 遍歷PCI 設(shè)備時,首先從PCI Bus0 開始,然后在PCI Bus0 總線上遍歷掛接在其上的所有PCI 設(shè)備。另外,單個PCI設(shè)備可能還有多個功能, 因此還需要遍歷其功能號,找到PCI 設(shè)備后,獲得其設(shè)備信息PciData,對比其設(shè)備號,廠商號是否與目標(biāo)設(shè)備一致。
信息一致則進行內(nèi)存映射,否則繼續(xù)查找PCI 設(shè)備。
步驟2調(diào)用CH365Map()函數(shù),對板卡進行內(nèi)存映射和端口映射,得到基地址BaseAddr365,之后可以通過(PUCHAR)((int)基地址+偏移量)直接對本地總線進行讀寫。 主要程序如下:
其中,RtTranslateBusAddress()函數(shù)作用為,將PCI 設(shè)備地址變?yōu)镃PU 可直接訪問的物理地址,RtMapMemory()函數(shù)則把該物理地址映射到虛擬地址。
計算機通過CH365 橋路芯片對雙口RAM 進行讀寫, 另一端信號處理板主控芯片DSP 對雙口RAM 進行讀寫,實現(xiàn)數(shù)據(jù)交換。 雙口RAM 允許兩端CPU 同時對不同存儲單位進行讀寫,但是不允許同時對同一單位進行一讀一寫。 在此采用郵箱中斷的方式,中斷機制如圖8 所示。
圖8 中斷機制Fig.8 Interrupt mechanism
圖中, 上位機通過CH365 向雙口RAM 最高位寫入數(shù)據(jù)觸發(fā)DSP 側(cè)中斷,DSP 在外部中斷中判斷中斷信息, 執(zhí)行讀取碼盤數(shù)據(jù)并寫入雙口RAM 或讀取雙口RAM 中指令信息。 在DSP 讀取數(shù)據(jù)后該中斷清除,以此郵箱中斷的方式完成上位機與DSP的通訊。 DSP 程序設(shè)計流程如圖9 所示。
圖9 DSP 軟件流程Fig.9 DSP software flow chart
所設(shè)計的信號處理卡包括信號采集、信號處理、遠程通訊、PCI 接口和DA 輸出等模塊;已成功運用于轉(zhuǎn)臺系統(tǒng),取得較好效果,良好的集成度及豐富的功能減少了轉(zhuǎn)臺系統(tǒng)的外設(shè)數(shù)量,提高了系統(tǒng)可靠性。