基于STM32H743的仿真轉(zhuǎn)臺(tái)控制器設(shè)計(jì)
作者簡(jiǎn)介:蘇長(zhǎng)青(1985-),男,碩士,高級(jí)工程師,主要研究方向?yàn)閼T性測(cè)試技術(shù)研究以及嵌入式軟硬件開(kāi)發(fā)。E-mail:13755290593@163.com。
本文引用地址:http://2s4d.com/article/202201/431118.htm仿真轉(zhuǎn)臺(tái)能夠模擬飛行器的實(shí)際飛行環(huán)境,復(fù)現(xiàn)其運(yùn)動(dòng)時(shí)的各種動(dòng)力學(xué)特性,從而獲得充分的試驗(yàn)數(shù)據(jù),為飛行器設(shè)計(jì)和改造提供各種參考依據(jù)[1]。在現(xiàn)代武器的研制過(guò)程中經(jīng)常要求飛行器做大機(jī)動(dòng)飛行,這就要求仿真轉(zhuǎn)臺(tái)具有足夠高的頻帶,能夠跟蹤高頻信號(hào)。仿真轉(zhuǎn)臺(tái)的頻帶主要取決于轉(zhuǎn)臺(tái)驅(qū)動(dòng)機(jī)構(gòu)的最大力矩與最小時(shí)間常數(shù),控制器的響應(yīng)速度以及控制算法等因素對(duì)控制器硬件平臺(tái)的處理能力提出了更高的要求[2]。
本文針對(duì)仿真轉(zhuǎn)臺(tái)上述發(fā)展方向,搭建一個(gè)能滿足仿真轉(zhuǎn)臺(tái)復(fù)雜控制算法的硬件平臺(tái),以高性能嵌入式處理器為核心,提供高達(dá)六軸獨(dú)立運(yùn)動(dòng)控制以及豐富的通信接口,為基于實(shí)時(shí)網(wǎng)絡(luò)的運(yùn)動(dòng)控制提供支持。
1 技術(shù)要求
仿真轉(zhuǎn)臺(tái)通常由機(jī)械臺(tái)體、電機(jī)驅(qū)動(dòng)器、控制器、工控機(jī)等組成,控制器作為仿真轉(zhuǎn)臺(tái)的核心部分,主要用來(lái)實(shí)現(xiàn)閉環(huán)控制算法,對(duì)轉(zhuǎn)臺(tái)的位置信號(hào)進(jìn)行采集和處理,并使用先進(jìn)控制策略完成系統(tǒng)的閉環(huán)控制,保證轉(zhuǎn)臺(tái)控制系統(tǒng)的精度,同時(shí)與上位機(jī)顯控程序通信,把實(shí)時(shí)采集的轉(zhuǎn)臺(tái)角度、速率、狀態(tài)等信息發(fā)送給上位機(jī)進(jìn)行顯示。通常控制器應(yīng)該包含測(cè)角接口、數(shù)字I/O接口、模擬量接口、通信接口等,具體指標(biāo)如表1 所示。
表1 控制器技術(shù)指標(biāo)
2 硬件設(shè)計(jì)
2.1 控制器總體架構(gòu)
根據(jù)控制器技術(shù)要求,首先進(jìn)行總體架構(gòu)設(shè)計(jì),如圖1 所示??刂破鞑捎谩疤幚砥?FPGA”的雙核心架構(gòu),處理器具有強(qiáng)數(shù)據(jù)處理能力,提供仿真轉(zhuǎn)臺(tái)系統(tǒng)的運(yùn)行軌跡規(guī)劃、電機(jī)閉環(huán)控制、外部通信交互等功能。FPGA 是處理器與外圍元器件之間的橋梁,提供相關(guān)的接口邏輯處理、高精度中斷信號(hào)產(chǎn)生、數(shù)字輸入輸出的擴(kuò)展等功能。
圖1 控制器原理框圖
2.2 處理器選型
目前,運(yùn)動(dòng)控制領(lǐng)域可供使用的嵌入式處理器方案有DSP 與MCU,下面分別就性價(jià)比、開(kāi)發(fā)難易程度等進(jìn)行對(duì)比,以選擇合適的開(kāi)發(fā)平臺(tái)。
1)基于DSP 的平臺(tái)
DSP 在運(yùn)動(dòng)控制領(lǐng)域一直都處于領(lǐng)先地位,比較有代表性的產(chǎn)品是ADI 公司的ADSP 系列以及TI 公司的C6000 系列,TI 公司的DSP 在國(guó)內(nèi)應(yīng)用更為廣泛,本文以此為代表進(jìn)行介紹對(duì)比。
TMS320C6748 定點(diǎn)和浮點(diǎn)DSP 是一款低功耗應(yīng)用處理器,基于C674x DSP 內(nèi)核。與其他TMS320C6000?平臺(tái)DSP 相比,該DSP 功耗小很多。該器件的DSP 內(nèi)核采用基于2 級(jí)緩存的架構(gòu)。第1 級(jí)程序緩存(L1P)是一個(gè)32 kB 的直接映射緩存,第1 級(jí)數(shù)據(jù)緩存(L1D)是一個(gè)32 kB 的2 路組相連緩存。第2 級(jí)程序緩存(L2P)包含256 kB 的存儲(chǔ)空間,由程序空間和數(shù)據(jù)空間共享。L2 存儲(chǔ)器可配置為映射存儲(chǔ)器、緩存或二者的組合。盡管系統(tǒng)內(nèi)的其他主機(jī)可訪問(wèn)DSPL2,但還是額外提供了一個(gè)128 kB的RAM共享存儲(chǔ)器給其他主機(jī)使用,從而避免對(duì)DSP 性能產(chǎn)生影響[3]。
2)基于MCU 的平臺(tái)
STM32H7 系列MCU 采用ST 最新40 nm工藝DynamicEfficiency 架構(gòu),與上代STM32F7 系列比較,其性能提升一倍,動(dòng)態(tài)功耗降低了一半。STM32H7 系列采用3 電源域設(shè)計(jì),分別為D1、D2 和D3。D1 為高性能域,CPU 可以從TCM 和L1 中提取緊急的或優(yōu)先級(jí)較高的用戶程序,在400 MHz 的主頻下執(zhí)行,確保實(shí)現(xiàn)最快速響應(yīng)。此域采用AXI 總線矩陣來(lái)連接高帶寬外設(shè)和DMA 等。D2 為通信接口域,主要進(jìn)行數(shù)據(jù)通信工作,減輕CPU 的負(fù)擔(dān)。此域工作頻率為D1 中的一半,其中采用AHB 主線連接全部通信接口,且與D1 中的AXI 相連。D3 為數(shù)據(jù)批處理域,與D2 同樣采用AHB 總線,工作頻率也與D2 相同。此部分中的ADC 可以在整個(gè)系統(tǒng)深度休眠時(shí)仍然進(jìn)行數(shù)據(jù)處理。在電池驅(qū)動(dòng)的情況下,D3 可以保證在低功耗條件下仍然進(jìn)行必要的數(shù)據(jù)處理工作。除了3 個(gè)電源域設(shè)計(jì)之外,超大內(nèi)存和超多外設(shè)也是STM32H7 系列能有如此高性能的原因,在STM32H7 系列上,ST 采用了2∶1的內(nèi)存設(shè)計(jì)——2 MB 閃存和 1 MB RAM。這種存儲(chǔ)單元的設(shè)計(jì)也超越了STM32 之前的全部產(chǎn)品。在接口方面,STM32H7 系列中還加入了2 個(gè)CAN、最高6個(gè)UART 以及1 個(gè)以太網(wǎng)控制器[4]。
根據(jù)以上介紹,將不同計(jì)算平臺(tái)的性能指標(biāo)總結(jié)如表2 所示,選擇開(kāi)發(fā)難度稍大,但是在性能、集成度、靈活性等方面都非常好的ARM 控制器STM32H743 作為主處理器。
表2 不同硬件平臺(tái)對(duì)比表
2.3 外圍電路選型設(shè)計(jì)
1)FPGA 選型
目前,國(guó)內(nèi)FPGA 芯片主要是Xilinx 及Intel 兩家公司的產(chǎn)品。Intel 公司的主流FPGA 分為兩大類,一種側(cè)重低成本應(yīng)用,容量中等,性能可以滿足一般的邏輯設(shè)計(jì)要求,如Cyclone 系列;還有一種側(cè)重于高性能應(yīng)用,容量大,性能滿足各類高端應(yīng)用,如Startix 系列。Xilinx 公司的產(chǎn)品與此類似,也包含高性價(jià)比的Spartan系列以及高性能的Virtex 系列。本文選擇Cyclone 系列第3 代產(chǎn)品EP3C10E144,該FPGA 有10 320 個(gè)邏輯單元、414 kbit 內(nèi)存單元、最大94 個(gè)用戶I/O,能夠滿足控制器外部邏輯接口處理的要求。
2)以太網(wǎng)通信接口
實(shí)現(xiàn)以太網(wǎng)通信的方式很多,可以用STM32H743內(nèi)部集成的以太網(wǎng)控制器,也可以用專門的以太網(wǎng)控制芯片W5100S,甚至采用集成度更高的串口轉(zhuǎn)以太網(wǎng)模塊XP1001000。越簡(jiǎn)單的使用方式往往意味著付出的成本更多,不同方案對(duì)比如表3 所示。
表3 以太網(wǎng)方案對(duì)比
基于大數(shù)據(jù)實(shí)時(shí)傳輸?shù)囊笠约靶詢r(jià)比方面的考慮,本項(xiàng)目選擇基于W5100S 控制器的以太網(wǎng)通信方案。W5100S 芯片是WIZnet 最新推出的一款集成全硬件TCP/IP協(xié)議棧的性價(jià)比更高的嵌入式以太網(wǎng)控制器,為單片機(jī)提供了更加簡(jiǎn)單、快速、穩(wěn)定、安全的以太網(wǎng)接入方案。全硬件TCP/IP 協(xié)議棧簡(jiǎn)化了傳統(tǒng)的軟件TCP/IP 協(xié)議棧,卸載了MCU 用于處理TCP/IP 部分的線程,節(jié)約MCU 內(nèi)部ROM 等硬件資源。只需進(jìn)行簡(jiǎn)單的Socket 編程和少量的寄存器操作即可方便地進(jìn)行嵌入式以太網(wǎng)上層應(yīng)用開(kāi)發(fā),縮短產(chǎn)品開(kāi)發(fā)周期,降低開(kāi)發(fā)成本。W5100S 支持間接并行總線和高速SPI 接口2 種方式與主機(jī)進(jìn)行通信。其內(nèi)部還集成了以太網(wǎng)數(shù)據(jù)鏈路層(MAC)和10Base-T/100Base-T 以太網(wǎng)物理層(PHY),支持自動(dòng)協(xié)商(10/100-Based 全雙工/ 半雙工)。與傳統(tǒng)軟件協(xié)議棧不同,W5100S 內(nèi)嵌的4 個(gè)獨(dú)立硬件Socket 可以進(jìn)行4 路獨(dú)立通信,4 路Socket 的通信效率互不影響,可以通過(guò)W5100S 芯片上的16 kB 收/ 發(fā)緩存靈活定義各個(gè)Socket 的大小。
3)模擬輸出接口
D/A 輸出芯片種類繁多,有單路輸出芯片,也有多路輸出芯片,與MCU 之間的接口分為并行接口和串行接口。本控制器選擇基于SPI 接口的串行D/A 芯片AD5674R。AD5764R 是一款4 通道、16 位串行輸入、雙極性輸出DAC,工作電壓范圍為±11.4 ~ ±16.5 V,標(biāo)稱滿量程輸出范圍為±10 V。該器件內(nèi)置輸出放大器、基準(zhǔn)電壓緩沖器以及專有上電/ 斷電控制電路,還有1個(gè)數(shù)字I/O 端口,可通過(guò)串行接口進(jìn)行編程,以及1 個(gè)模擬溫度傳感器。每個(gè)通道均配有數(shù)字失調(diào)與增益調(diào)整寄存器。通過(guò)AD5764R 的SPI 接口直接與MCU 的SPI控制器連線簡(jiǎn)單,使用方便,可以在最高30 MHz 的時(shí)鐘頻率下工作,支持雙緩沖技術(shù),所有DAC 可實(shí)現(xiàn)同時(shí)更新,是閉環(huán)伺服控制和開(kāi)環(huán)控制應(yīng)用的理想之選。
4)測(cè)角接口
控制器中測(cè)角要求支持6 路光柵/ 編碼器接口,光柵/ 編碼器接口電氣規(guī)范均為RS-485 差分信號(hào),本控制器中測(cè)角電路采用MAX3485 芯片實(shí)現(xiàn)測(cè)角信號(hào)的電平轉(zhuǎn)換,轉(zhuǎn)換后測(cè)角信號(hào)接入FPGA,進(jìn)行Endata/BISS/ 正交編碼等測(cè)角協(xié)議的解碼工作。
5)數(shù)字I/O接口
數(shù)字輸入接口采用光耦隔離,用ACPL-244 光耦芯片實(shí)現(xiàn);數(shù)字輸出接口采用ISO7760 高性能6 通道數(shù)字隔離器,隔離后采用達(dá)林頓管驅(qū)動(dòng)輸出,每路輸出能提供最大500 mA 的電流驅(qū)動(dòng)能力。
6)溫濕度傳感器
溫濕度傳感器用于控制器運(yùn)行時(shí)環(huán)境溫濕度的測(cè)量,本文選擇瑞士Sensirion 公司的數(shù)字式溫濕度傳感器SHT20。SHT20 配有全新設(shè)計(jì)的CMOSens? 芯片、經(jīng)過(guò)改進(jìn)的電容式濕度傳感元件和標(biāo)準(zhǔn)的能隙溫度傳感元件,其性能已大大提升。甚至超出了前一代傳感器(SHT1x 和SHT7x)的可靠性水平。通過(guò)將敏感元件、標(biāo)定存儲(chǔ)器和數(shù)字接口集成在3 mm×3 mm 的襯底上,SHT20 成為尺寸最小的濕度傳感器,可滿足多種條件應(yīng)用。SHT20 溫濕度傳感器采用標(biāo)準(zhǔn)I2C 格式與外部接口可以輸出經(jīng)過(guò)標(biāo)定的溫度、濕度信號(hào),使用簡(jiǎn)單方便。
3 軟件設(shè)計(jì)
本控制器的核心功能是實(shí)現(xiàn)轉(zhuǎn)臺(tái)的運(yùn)動(dòng)控制,為了達(dá)到更好的伺服控制精度和動(dòng)態(tài)控制性能,采用基于位置環(huán)PID 的方式進(jìn)行運(yùn)動(dòng)控制[5],控制原理如圖2 所示。
當(dāng)接收到位置指令后,MCU 首先根據(jù)目標(biāo)位置、目標(biāo)速度和加速度進(jìn)行位置規(guī)劃,經(jīng)過(guò)位置規(guī)劃后得出當(dāng)前時(shí)刻的給定位置,把給定位置與當(dāng)前光柵/ 編碼器反饋的角位置作差,得到誤差信號(hào),經(jīng)過(guò)PID 控制算法得到當(dāng)前時(shí)刻控制輸出的DA 值;MCU 通過(guò)SPI 總線把D/A 值寫入D/A 轉(zhuǎn)換芯片A,DA 轉(zhuǎn)換芯片根據(jù)設(shè)定值產(chǎn)生相應(yīng)的模擬電壓信號(hào),模擬電壓信號(hào)經(jīng)電機(jī)驅(qū)動(dòng)器控制電機(jī)轉(zhuǎn)動(dòng)。電機(jī)轉(zhuǎn)動(dòng)后,MCU 以100 μs 為控制周期采集當(dāng)前時(shí)刻的角度值,再繼續(xù)與給定位置比較,經(jīng)PID 得出DA 值。經(jīng)過(guò)不停迭代后,電機(jī)在MCU 的控制下運(yùn)動(dòng)到目標(biāo)位置。在整個(gè)控制過(guò)程中,MCU 通過(guò)以太網(wǎng)向上位機(jī)發(fā)送角度量和運(yùn)動(dòng)過(guò)程中的狀態(tài)量,發(fā)送周期1 ms,并接收上位機(jī)下達(dá)的運(yùn)動(dòng)控制命令。MCU 控制電機(jī)運(yùn)動(dòng)的程序流程如圖3 所示。
4 控制性能測(cè)試
4.1 測(cè)試條件
為了測(cè)試控制器的性能,專門搭建了基于該控制器的轉(zhuǎn)臺(tái)控制電箱來(lái)控制3 軸仿真轉(zhuǎn)臺(tái)。通過(guò)與原有控制電箱對(duì)比,評(píng)價(jià)本文基于STM32H743 控制器性能的好壞??刂破餍阅軠y(cè)試如圖4 所示??刂破餍阅軐?duì)仿真轉(zhuǎn)臺(tái)的影響主要表現(xiàn)在動(dòng)態(tài)指標(biāo)方面,測(cè)試項(xiàng)目主要針對(duì)速率運(yùn)動(dòng)時(shí)的速率精度、速度平穩(wěn)度測(cè)試,以及正弦運(yùn)動(dòng)時(shí)跟隨誤差測(cè)試,控制器性能對(duì)位置精度影響不大,不進(jìn)行該項(xiàng)目的對(duì)比測(cè)試。
(a)基于控制器的轉(zhuǎn)臺(tái)控制箱
(b)測(cè)試用3軸仿真轉(zhuǎn)臺(tái)
圖4 控制器性能測(cè)試
參加對(duì)比測(cè)試的轉(zhuǎn)臺(tái)控制器采用TI 公司的C2000系列數(shù)字信號(hào)處理器TMS320F28335,它與本文的控制器的主要差異在于只支持單精度浮點(diǎn)數(shù)運(yùn)算且主頻較低,控制周期為1 ms,詳細(xì)對(duì)比如表4 所示。
表4 控制器性能對(duì)比測(cè)試
4.2 速率測(cè)試
速率運(yùn)動(dòng)時(shí)測(cè)試速率包括1° / s、10° / s和100° / s,共3 項(xiàng)測(cè)試。速率測(cè)試評(píng)價(jià)方法參考《GJB 1801-93 慣性技術(shù)測(cè)試設(shè)置主要性能試驗(yàn)方法》,采用定時(shí)測(cè)角方法,測(cè)量在規(guī)定采樣時(shí)間間隔的角度值;采樣時(shí)間間隔根據(jù)速率高低分檔,速率大于等于10° / s,間隔 360°,速率大于等于 1° / s 且小于10° / s,間隔為10°。
測(cè)試結(jié)果如表5 所示,可以看出,在 100° / s 大速率的情況下,基于STM32H743 的控制器由于其較短的控制周期,速率精度與速率平穩(wěn)度有較明顯的改善;在 1° / s 小速率的情況下,1 ms 的伺服控制周期已經(jīng)足夠,因此兩種控制器速率精度與速率平穩(wěn)度差別不明顯;隨著測(cè)試速率從 1° / s 增大到 100° / s,兩種控制器在速率精度與速率平穩(wěn)度上均有下降。
表5 速率運(yùn)動(dòng)測(cè)試
4.3 正弦測(cè)試
正弦測(cè)試時(shí),設(shè)定正弦曲線的幅度1° ,頻率分別1 Hz、5 Hz 和10 Hz,共3 項(xiàng)測(cè)試。測(cè)試時(shí)在1 個(gè)正弦周期內(nèi)等間隔采集10個(gè)角位置反饋數(shù)據(jù),每個(gè)采樣點(diǎn)相位間隔36° ,與控制器軌跡規(guī)劃計(jì)算出的目標(biāo)角位置數(shù)據(jù)做差,得到該采樣點(diǎn)的跟隨誤差,然后計(jì)算跟隨誤差的均方根進(jìn)行評(píng)價(jià)。
測(cè)試結(jié)果如表6 所示,可以看到,在頻率為1 Hz 的正弦運(yùn)動(dòng)時(shí),2 種控制器跟隨誤差差別不大,但是在5 Hz、10 Hz頻率下, 基于STM32H743控制器的控制性能明顯優(yōu)于基于TMS320F28335 的控制器,表明在高動(dòng)態(tài)情形下,性能強(qiáng)大的處理器對(duì)控制器的性能提升有很大作用。
表6 正弦運(yùn)動(dòng)測(cè)試
5 結(jié)論
通過(guò)對(duì)比測(cè)試可以看出,本文研制的基于STM32H743的仿真轉(zhuǎn)臺(tái)控制器運(yùn)行頻率可達(dá)480 MHz,且支持雙精度浮點(diǎn)數(shù)運(yùn)算,得益于其強(qiáng)大的處理能力,可以將控制周期縮短至100 μs,在大速率運(yùn)動(dòng)、大幅度正弦運(yùn)動(dòng)等高動(dòng)態(tài)工作條件下,控制性能相對(duì)于原有控制器有明顯提升,在仿真轉(zhuǎn)臺(tái)控制領(lǐng)域有一定的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]劉慧博,吳浩.飛行仿真轉(zhuǎn)臺(tái)控制器性能評(píng)價(jià)研究[J].計(jì)算機(jī)仿真,2016,33(2):69-72,110.
[2]陳曉梅,劉長(zhǎng)江,杜保林.大型高精度轉(zhuǎn)臺(tái)控制系統(tǒng)研究[J].電光與控制,2019,26(5):90-94.
[3]TMS320C6748數(shù)據(jù)手冊(cè)[Z].德州儀器,2017.
[4]STM32H743數(shù)據(jù)手冊(cè)[Z].意法半導(dǎo)體,2021.
[5]徐非駿,王賀.直驅(qū)兩軸伺服轉(zhuǎn)臺(tái)實(shí)現(xiàn)[J].雷達(dá)與對(duì)抗,2020,40(2):50-55.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2022年1月期)
評(píng)論