顏亞靈,王洛國,閻 瑞,武 明
(陸軍防化學院,北京 102205)
角度位置檢測[1-3]一直是航天、航空、火炮、雷達、機器人伺服控制等精密控制領域中最為關鍵的一環。目前,在角度位置檢測方面主要有無位置傳感器檢測技術[4-6]、“嵌入式”位置檢測技術、外置位置傳感器檢測技術。無位置傳感器檢測技術和“嵌入式”位置檢測技術[7-9]由于其應用范圍小和實現方法上受到限制還停留在理論與實踐階段,應用較少。外置位置傳感器檢測技術作為主要的角度位置檢測技術主要包括霍爾型位置傳感器[10-11]、光電式編碼器[12]、旋轉變壓器[13]3種傳感器檢測技術。相比霍爾位置傳感器和光電編碼器,旋轉變壓器由于其結構簡單、精度高、可靠性強,耐高溫、抗振動、防塵、耐油污、耐腐蝕、抗電磁干擾性強、壽命長、能夠應用在各種惡劣的環境中等優點[14-17],因而廣泛應用于可靠性要求高且工況惡劣的高低、方向伺服系統角位置及角速度檢測中[18-20]進行位置檢測。
雙通道旋轉變壓器[21]是一個由單極繞組旋轉變壓器(簡稱粗機)和一個多極繞組的旋轉變壓器(簡稱精機)組合而成,它能夠準確的檢測出角度位置信號。在研究雙通道旋轉變壓器進行角度位置檢測時,普遍的做法[22]是將雙通道旋轉變壓器粗機、精機分別進行角度轉換后,使用雙速處理器進行糾錯,然后使用二進制數進行粗精結合,得到角度位置。本文提出一種基于RD26(解算數字轉換器)的軸角數字轉換電路,能夠對雙通道旋轉變壓器直接進行解算,不需要再進行糾錯和粗精整合處理,結構簡單、集成度高、使用方便。
RD26,是由杰瑞電子生產的雙通道旋轉變壓器解碼芯片,采用兩路獨立的轉換通道,每通道分辨率為16位,采用自然并行二進制數碼,頻率50 Hz~10 kHz,雙使能,兼容TTL/CMOS電平,最高轉換精度±(2角分+1LSB),+5 V單電源供電,具有內部自檢信號BIT輸出。能滿足被測信號最高輸入幅值不低于AC36 V、最高采集頻率不低于400 Hz、分辨率(14位)、最高工作溫度(-55~125 ℃)的指標要求,采用混合集成電路和微電路制造工藝,具有體積小、功耗低,精度高,使用方便的特點。
RD26解碼過程如圖1所示。由于粗機和精機解碼算法基本一致,下面以粗機為例進行介紹,微型變壓器將粗機的兩路信號[23](US1-S3=kEsinωtsinθ、US2-S4=kEsinωtcosθ)解調后,經乘法器與估計值相乘,放大后作差,得到估計值與真實值的誤差,通過控制φ的值來觀測誤差sin(θ-φ)。
假定可逆計數器當前字狀態為φ,將US1-S3、US2-S4分別與估計轉子位置的cosφ、sinφ相乘可得:
(1)
這些信號經誤差放大器相減,得到估計值與真實值的誤差ε:
ε=kEsinωtsinθcosφ-kEsinωtcosθsinφ=
kEsinωt(sinθcosφ-cosθsinφ)=
kEsinωtsin(θ-φ)
(2)
當θ-φ=0時,得到轉子的位置得到角位置:
θ=φ
(3)
硬件上以模塊化設計為思想,基于微型處理器系統而進行研發。
總體分為處理模塊、采集模塊、顯示模塊和電源模塊四大模塊。
2.1.1 處理模塊
處理模塊是整個設備的核心,它的工作頻率、運行速度對位置檢測設備最終的狀態曲線的繪制、角度位置的計算會造成很大影響。因此,選擇合適的控制處理器對提高設備性能、保證設備可靠運行非常重要。目前主流的控制處理器主要有以DSP、MCU、FPGA、ARM為核心的四類嵌入式微處理器系統。
DSP具有很強的數字處理能力,抗干擾能力強,可靠性高,便于大規模集成,但是對串行指令受到限制,對采樣速率要求不能太高,超過幾MHz就很受限,功率消耗較大。MCU體積小、結構簡單、功耗低、成本低、具有多種I/O接口,但是其存儲量小,不能實現復雜控制,在數據處理能力上比不上DSP和FPGA。FPGA內有大量的觸發器、門陣列和豐富的I/O引腳,集成度高,功能強大,可做復雜的邏輯運算,處理速度快,執行效率高,能夠以電路的方式對信號進行同步采集,但是不能同時處理多個事件,掉電后原有的配置會丟失。ARM具有高性能,低功耗,環境適應能力強的特點,對界面及應用程序進行控制能力強是其最突出的優勢,相比MCU,ARM的功能更強,使用范圍更廣,但是ARM運算能力較弱,在連接中不提供并行交換。
根據檢測設備功能要求,選擇核心處理器時盡量考慮高性能,低功耗,環境適應能力強的處理器,通過上述對4種處理器分析,選取ARM作為嵌入式微處理器系統,作為設備CPU使用。但是,在進行軸角轉換過程中需要進行并行傳輸,而ARM不提供所需的并行接口,且數據同步采集及處理能力上FPGA具有其優勢,所以選擇FPGA作為第二處理器。即整個設備采用ARM+FPGA雙處理器的形式,可滿足檢測設備所需的各種性能要求。其中,ARM作為控制器,對整個系統進行控制。主要用來與FPGA和顯示器進行通信;對各種操作指令進行控制;對FPGA處理后的數據進行讀取并反饋至顯示器上;FPGA作為處理器,對數據進行處理。主要用來對信號進行配置、同步與控制;對數據進行比較、分析、運算與處理,對A/D轉換后的數據進行處理;對解碼算法進行編程與設計;對軸角轉換后的數據處理處理。
2.1.2 采集模塊
采集模塊主要包括信號采集、信號調理、A/D轉換三部分內容。用來對高低、方向伺服系統輸出的位置信號進行同步采集、濾波、放大與處理,將處理后的模擬量信號轉換為數字量信號。
2.1.3 電源模塊
電源模塊主要提供檢測設備所需的各種電源,用來對硬件的其它各模塊進行供電,以保證檢測設備的正常運行。
2.1.4 顯示模塊
顯示模塊主要用來提供人機操作所需的界面和設備的所需的各種接口。采用LCD觸摸顯示屏,用來提供應用軟件所需的界面,進行良好的人機互動。為方便用戶使用,設計各種備用接口完成軟件的升級、更新與擴展。
位置解碼設備主要設計成由RD26、ARM+FPGA雙處理器、顯示屏以及電源組成。系統基本結構如圖2所示。

圖2 系統基本結構框圖
雙通道旋轉變壓器輸出的信號,經過分壓網絡將36 V模擬信號進行分壓處理,進入RD26轉換成數字信號,經并行接口將角度位置信號傳輸至FPGA進行處理;ARM通過LAN傳讀取FPGA處理好的數據,將輸出角度位置顯示至LCD,LCD顯示屏上顯示當前角度值及偏差,完成各種狀態信息的描繪,便于人機互動。
整個設備采用ARM+FPGA雙處理器的形式。
2.3.1 FPGA的選型
FPGA選用Artix-7系統XC7A100TFGG484ABX2101芯片,內存接口1 066 MB/s;工作電壓1.15~1.25 V;最大工作頻率260 MHz;I/O端口數量338,所有的I/O都支持雙倍數據速率(DDR),每個I/O都能執行串行到并行或者并行到串行的轉換;高速SPI和BPI(并行NOR)配置;內含多種配置位,速率6.6~28.05 GB/s ;內含36 kB雙端口塊RAM;具有強大的時針管理器;具有低功耗性能(929 GMAC/s),可進行重復編程。
2.3.2 ARM的選型
ARM選用RK3399pro主板芯片,該芯片采用六核處理器,主頻1.8 GHz,體積小、處理速度快;EMMC標配16 G,輸入電壓5 V,最大功率小于8 W,具有高性能、低功耗、低成本的優點;該板尋址方式簡單,執行效率高,可用來運行界面及應用程序。該板支持5大操作系統(Android9.0、Linux+QT5.9、Ubuntu16.04、Debian9、Fedora28),便于人機互動;核心板接口豐富,支持4路獨立USB接口;4路SPI接口,2路MIPI DSI可支持雙路,也可拆分二單路;支持1路GMAC PHY以太網接口,用來與FPGA進行數據通信;支持1路HDMI輸出(1 080 P,60 fps)接口用來連接LCD顯示屏。
2.3.3 FPGA與ARM的連接設計
由于FPGA內部沒有CPU控制單元,無法處理由控制器產生的中斷,所以FPGA一側不能利用現成的控制器構成串行接口,即FPGA不能與ARM直接相連,必須將FPGA的PHY引腳與千兆網絡變壓器相連后接入百兆以太網接口然后通過網線連接至ARM的以太網接口。同理,各子電路也不能直接與FPGA相連,因此需在進入FPGA側接入一個小電阻,用來對兩部分子電路進行隔離。FPGA與ARM的連接設計如圖3所示。FPGA外圍硬件電路設計如圖4所示。

圖3 FPGA與ARM硬件電路設計

圖4 FPGA外圍硬件電路設計圖
采集模塊使用RD26芯片,RD26使用方便,只需要將角度位置信號接入RD26,然后與FPGA對應的引腳相連即可。RD26電路連接如圖5所示。

圖5 RD26電路連接圖
電源電路是保障整個解碼設備能量供應的基礎,可靠、穩定的供電性能設計非常重要。為保證無供電情況下運行,解碼設備采用VDD_12V鋰電池電源帶供電充電器,通過非隔離、非同步整流型降壓DCDC電源轉換電路將其轉換出12 V、5 V、1.0 V、REF+4.096四種不同的電源對不同的部件進行供電。電源電路設計如圖6所示。

圖6 電源電路設計框圖
2.5.1 5 V/1 V供電電路設計
輸入12 V電壓經過電源轉換芯片SGM6132得到5 V/1 V電壓。5 V電壓主要為ARM、數字轉換器、FPGA進行供電;1 V電壓主要為交換機進行供電。電源轉換芯片SGM6132是一個電流模式降壓轉換器,提供0.8~22 V的可調輸出電壓和12 V,5 V,1 V的固定電壓輸出,具有良好的輸出線性、負載可調、逐周期限流和浪涌電流限制、防止輸出電壓過沖、熱關斷等保護功能。IN是電源輸入端,在此引腳上需加一個0.1 μF與10 μF的電容接地改善電壓質量和降低線路損耗,該引腳為SGM6132轉換器開關供電。EN用來控制轉換器的通斷,當EN拉高時打開轉換器,當EN拉至最低時關閉,此時輸出電壓放電。SW為輸出端,在此引腳上需要接電感器,向輸出負載提供恒定電流,同時需要加輸出電容提高穩定性和進行濾波處理,電感值計算式為:
(4)
BS為高側柵極升壓輸入,此引腳與輸出引腳間通過電阻與電容串聯,以降低輸出端的尖鋒電壓。SS為軟啟動控制輸入,此引腳與地之間串連電容與電阻用來設置軟啟動。COMP控制補償回路,此引腳接入電容至GND,用來防止直流信號通過。FB為反饋輸入,與電阻分壓器相連,通過改變FB腳對地的電位來更改R1、R2兩個電阻的值,從而用來設置輸出電壓,FB腳電位計算公式為:
(5)
輸出電壓調節公式為:
(6)
供電電路設計如圖7所示。

圖7 供電電路設計圖
2.5.2 REF+4.096 V供電電路設計
將輸出的5 V電壓,接入基準電壓源A/DR440RZ后得到REF+4.096 V電壓,主要用來對FPGA進行供電。ADR440RZ是一種壓差低、超低噪聲的基準電壓源,具有高精度和低溫度漂移特能,并且所需的電源電壓裕量較小,適合精密數據采集和高分辨率數據轉換器供電。VIN為輸入端,此引腳需要接一個0.1 μF電容保持穩定和一個10 μF保持線路電壓瞬態。NC2為輸出端,需要接一個0.1 μF電容,得到穩定的參考基準電壓4.096 V。REF+4.096 V供電電路如圖8所示。

圖8 REF+4.096 V供電電路圖
采用LCDM016,作為顯示與人機交互的接口,LCDM016尺寸為10.1(800×1 280)寸,顯示輸出分辨率為1 920×1 080,每秒可刷新60幀,體積小,重量輕,支持DC調光不易出現閃屏。LCDM016直接通過HDMI口與ARM相連即可。
軟件設計主要包括FPGA軟件設計和ARM軟件設計,FPGA軟件設計包括主程序與ARM的通信以及對軸角轉換的實現。主要用來對讀取RD26解碼后的數據,并將數據發送至ARM處理。ARM軟件設計主要包括驅動程序、進程間的協調與通信以及應用程序,主要用來實現數據讀取、并將數據發送至顯示界面,在顯示界面上實時地繪制各種信號曲線、實時顯示角度信息,并將這些信息存儲在檢測設備中。軟件設計如圖9所示。

圖9 軟件設計圖
3.1.1 主程序
由于FPGA既需要對RD26傳輸的數據進行處理,又要將處理好的數據傳輸給ARM,所以FPGA部分首先要完成各模塊初始化(包括RD26、與ARM通信的網口、并口),初始化時,使用JTAG進行調試配置,初始化后,正常工作狀態采用主動配置方式AS進行配置。然后由主中斷程序中的定時器判斷屬于哪種中斷后進行中斷處理。主中斷程序由檢測設備的各個功能模塊(RD26中斷以及網口中斷)組合而成。主程序流程如圖10所示。

圖10 主程序流程圖
3.1.2 與ARM通信
FPGA將解算后的數據處理完畢后,需要將這些數據結果發送至ARM,以供ARM進一步處理與人機互動。這時,ARM會向FPGA發送傳輸數據信號,FPGA收到信號后打開或關閉中斷,通過網口向ARM接收或發送數據。與ARM通信流程如圖11所示。

圖11 與ARM通信流程圖
FPGA與ARM之間通過網口進行通信,網絡通信協議采用IGMP,ICMP,ARP,數據段部分采用TCP/IP,通過讀取網線上的電平狀態進行數據傳輸,為了保證FPGA發送的數據是正確的,需要對解碼后發送的數據和模數轉換后發送的數據進行再加工處理,將此時的數據(解碼后發送的數據和模數轉換后發送的數據)分成前部校驗、數據結果和尾部校驗3個部分,若前部校驗和尾部校驗部分與預計值不同,則說明解碼后發送的數據和模數轉換后發送的數據有錯,將會重新發送,發送完成后恢復網口中斷。
3.1.3 軸角轉換的處理
RD26一次采樣到數據后,發送傳輸數據請求信號(中斷請求信號),ARM接到RD26發送的信號后打開中斷,完成數據傳輸,重新打開中斷等待下次數據傳輸信號。解算數字轉換器處理流程如圖12所示。

圖12 RD26處理流程圖
FPGA采用管腳相連的方式對RD26的數據進行分析與處理,通過控制時序讀取軸角轉換器數據。數據讀取時序如圖13所示。FPGA采用低電平來讀取軸角轉換器數據。首先,將INH_A/INH_B置為低電平,然后通過使能EM_A/EM_B來讀取數據,EM_A、EM_B空閑時為高電平,在INH_A/INH_B置為低電平后大約200 ns后,讀取數據有效。在任意時刻不能將A通道使能信號EM_A、EL_A和B通道使能信號EM_B、EL_B同時置為低電平,否則轉換器A、B通道輸出數據會沖突,讀取數據期間使能EM_A、EM_B同時出現高電平時,持續時間不能大于100 ns,否則呈現高阻態而不讀取數據。

圖13 數據讀取時序圖
從圖13中可以看出,讀寫信號接口為INH_A/INH_B 、EM_A、EM_B,由于隨著時間的變化而不同,可將此狀態機分為S0、S1、S2、S3、S4五種狀態。INH處于高電平時,處于不讀取數據狀態;INH處于低電平時,讀取通道A數據或讀取通道B數據。在S0狀態,當檢測到EM_A處于低電平、EM_B處于高電平時,持續200 ns,讀取A通道數據有效,進入S1狀態;在S1狀態,當檢測到EM_A處于高電平持續100 ns,進入S2狀態;在S2狀態,開始檢測EM_B是否處于低電平持續200 ns時,讀取B通道數據有效;在S3狀態,開始檢測EM_B是否處于高電平持續100 ns 處于高阻態,進入S4狀態;跳轉到S0狀態。其狀態轉換圖,如圖14所示。

圖14 狀態轉換圖
ARM部分采用C++進行編程,使用QT creator作為軟件開發環境。QT creator是一種采用C++進行編程的可視化開發平臺,提供豐富而美觀的圖形用戶界面設計,具有大量的應用接口函數,編寫的程序可以實現跨平臺移植,極大的提高了程序開發的速度。
3.2.1 驅動程序
驅動程序主要用來為檢測程序提供訪問的接口,并對LCD進行初始化和管理。主要包括對設備進行初始化、I/O操作和中斷3個過程。初始化設置主要用來實現設備號以及內核中字符設備結構體的申請與注銷。輸入/輸出操作主要通過時序來實現檢測程序具體的操作,包括讀取解算數據和讀取電壓原始數據波形顯示,通過FILE_OPERATIONS結構體中的成員函數打開(OPEN)、關閉(CLOSE)、讀(READ)、寫(WRITE)實現。中斷主要通過詢問(REQUEST_IRQ)和空閑(FREE_RQ)兩個函數來實現。驅動程序設計流程如圖15所示。

圖15 驅動程序設計流程圖
3.2.2 進程間的協調與通信
FPGA將解算數字轉換器的數據讀取完畢后,需要將這些數據結果發送至ARM,以供ARM進一步處理與人機互動。這時,ARM會向FPGA發送傳輸數據信號,FPGA收到信號后打開或關閉中斷,通過網口向ARM接收或發送數據,如圖16所示。

圖16 通信流程圖
3.2.3 應用程序設計
應用程序應該能夠:1)采集輸出位置信號,實時讀取轉換后的角度值;2)能進行良好的人機互動;3)能將數據進行保存與導出。主要包括數據處理和顯示界面設計兩個方面的內容。數據處理主要包括讀取解算數據和讀取波形數據。顯示界面主要包括角度顯示、波形界面、位置記錄、系統設置、調試幫助、用戶退出幾個方面的設計,用這些圖形界面來對用戶的操作作出動態響應。應用程序總工作流程如圖17所示。

圖17 應用程序總工作流程圖
將此解碼設備設計完畢后,利用某發射車,進行實驗。
將炮位調轉至某一固定值,觀察位置解碼設備顯示屏上角度數據顯示角度值是否為對應的值,重復操作步驟進行絕對位置檢測。實驗結果如圖18所示。

圖18 絕對位置誤差曲線圖
實驗結果表明:檢測某一炮位的絕對位置時,誤差平均值為0.058 3弧度,幾乎為零。
轉換精度檢測主要通過實驗所得實際測量值與理論值之間的差值來檢測。實驗結果如圖19所示。

圖19 精度檢測
結果表明:使用解碼設備的精度在(-2,2)角分之間波動,而車內測角系統的精度在(-4.5,4.5)角分之間波動。上述實驗結果表明:使用解碼設備所測角度精度比車內測角系統所測角度誤差及精度都提高了一倍多,可見檢測精度相當高。
根據高低、水平最大調轉速度要求,進行等速位置跟蹤,實驗結果如圖20所示。

圖20 等速跟蹤位置
結果表明:以某一恒定的速度對前后炮高低、方向進行跟蹤時,其速度曲線沒有出現抖動的現象,表明此設備在速度恒定的情況下,能準確得到位置角度。
文章提出了一種基于RD26的雙通道旋轉變壓器位置解碼技術,基于此技術設計了一種便攜式位置解碼設備。此設備以FPGA+ARM為控制器、RD26為位置信號的同步采集與解碼芯片、SGM6132為電源芯片、LCDM016為顯示屏,具有體積小,方便攜帶的優點。
利用此解碼設備,從絕對位置、精度檢測、等速跟蹤位置3個角度進行實驗,實驗結果表明:該解碼設計能夠準確解碼出雙通道旋轉變壓器的位置角度,解碼精度可達到±2角分和1 LSB。