0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RX系列三角函數(shù)單元(TFU)的使用介紹

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2023-12-04 12:25 ? 次閱讀

硬件加速器三角函數(shù)單元(Trigonometric Function Unit)能夠高速處理三角函數(shù)sin、cos、arctan和sqrt(x2+y2)函數(shù)的運算,可顯著減少CPU負荷,在電機的矢量控制運算中非常有用。

本文介紹如何使用帶有CC-RX編譯器的三角函數(shù)單元。TFU現(xiàn)有兩個版本TFUv1和TFUv2,配備TFU的芯片型號如下表所示。

三角函數(shù)單元TFU版本

配備TFU的芯片

TFUv1

RX72T/RX72M/RX72N

TFUv2

RX26T

1. TFUv1的使用說明

在工程中選擇[Project][C/C++ Project Settings][Tool Settings][Compiler] [Optimization][Advanced],如果器件有TFU,則會有選項"Execution method of library function that can use trigonometric function unit",如需使用TFU,選擇"Use trigonometric function unit ",如圖1所示。

93de1758-925a-11ee-939d-92fbcf53809c.png

圖1 TFU選擇設(shè)置

如上設(shè)置后,標準數(shù)學庫函數(shù)sinf()、cosf()、atan2f()和hypotf()的計算將由TFU執(zhí)行,如圖2中代碼所示。由于TFU可以同時計算sin和cos、arctan和sqrt(x2+y2),所以CC-RX編譯器對相同輸入值的sin和cos、arctan和sqrt(x2+y2)可使用同時計算功能,以進一步提高運算速度??梢允褂煤瘮?shù)__sincosf()和__atan2hypotf()來同時計算,如圖3中代碼所示。

9404d686-925a-11ee-939d-92fbcf53809c.png

圖2 使用TFU的代碼示例

9412f1a8-925a-11ee-939d-92fbcf53809c.png

圖3 TFU同時計算代碼示例

2. TFUv2的使用說明

三角函數(shù)單元TFUv1已經(jīng)通過進一步的改進升級到TFUv2。TFUv2與TFUv1相比有以下改進:

1單精度浮點數(shù)計算速度的進一步提升,如圖4所示

94302d22-925a-11ee-939d-92fbcf53809c.png

圖4 計算速度對比

2支持定點類型的計算

在TFUv2中,單精度浮點數(shù)的操作與TFUv1中相同;對于定點數(shù)據(jù)類型,使用內(nèi)部函數(shù):

__sinfx((int32_t)(x)) / __cosfx((int32_t)(x))

__atan2fx((int32_t)(x), (int32_t)(y)) / __hypotfx((int32_t)(x), (int32_t)(y))

或者同時計算的函數(shù):

__sincosfx((int32_t)(x), (int32_t *)(y), (int32_t *)(z))

__atan2hypotfx((int32_t)(w), (int32_t)(x), (int32_t *)(y), (int32_t *)(z))

對于定點數(shù)據(jù),可以更改輸入/輸出的單位和格式。如果使用Smart Configurator,選擇scfg文件,在[Components][r_bsp]中選擇"Enable initilize function for TFU (fixed-point numbers)"為"Enabled",下面有三個選項可以修改,如圖5所示。如果沒有使用Smart Configurator,可以在硬件初始化的時候加入TFU的FXSCIOC和FXATIOC寄存器的設(shè)定來修改輸入/輸出的單位和格式。

944741d8-925a-11ee-939d-92fbcf53809c.png

圖5 定點數(shù)據(jù)的單位和格式修改

3支持重入

TFUv2支持重入(TFUv1不支持),會在每個中斷函數(shù)的入口和出口生成保存和恢復代碼,但是會減慢處理速度。因此,如果不需要重入,可以禁止保存和恢復代碼的生成。如果只是一個特定的中斷禁止重入,可以在中斷函數(shù)的申明中寫"no_tfu"

#pragma interrupt func(no_tfu)

也可以使用選項禁止所有中斷功能的保存和恢復,選擇[Project][C/C++ Project Settings][Common][CPU],取消選中[Saves and restores the output by trigonometric function unit in interrupt functions],如圖6所示。

9458ed7a-925a-11ee-939d-92fbcf53809c.png

圖6 TFU取消重入設(shè)置

在圖6設(shè)置下,如果僅對某個特定中斷允許重入,可以在中斷函數(shù)的申明中寫"tfu"

#pragma interrupt func(tfu)

結(jié)合以上內(nèi)容,對于內(nèi)部配備硬件加速單元TFU的芯片,建議在電機矢量控制的運算中使用TFU,從而提高芯片在電機控制方面的性能。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機控制
    +關(guān)注

    關(guān)注

    3538

    文章

    1889

    瀏覽量

    269039
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    804

    瀏覽量

    37978
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1640

    瀏覽量

    49200
  • 三角函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    6754

原文標題:RX系列三角函數(shù)單元(TFU)的使用介紹

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MATLAB三角函數(shù)命令

    MATLAB三角函數(shù)命令Sin 正弦 Sinh 雙曲正弦 Asin 反正弦 Asinh 反雙曲正弦 Cos 余弦 Cosh 雙曲余弦 Acos 反余弦 Acosh 反雙曲余弦 Tan 正切&
    發(fā)表于 09-22 16:04

    ARM7如何實現(xiàn)三角函數(shù)

    ARM7中如何編程實現(xiàn)三角函數(shù)sin,cos,軟件用的是TKStudio,求大神
    發(fā)表于 11-12 16:31

    labview的三角函數(shù)pi在哪

    labview的三角函數(shù)pi在哪
    發(fā)表于 03-23 09:29

    請問一下,28035的cla支持三角函數(shù)運算嗎

    請問一下,28035的cla支持三角函數(shù)運算嗎,為什么使用sin函數(shù)時,編譯有錯,那該怎么使用三角函數(shù)
    發(fā)表于 05-14 00:58

    電磁波為什么要用三角函數(shù)表示?

    怎樣形象的理解傅里葉變換?電磁波為什么要用三角函數(shù)表示?什么是三角函數(shù)中的相位?
    發(fā)表于 10-25 08:57

    labview中的三角函數(shù)問題

    我想使用三角函數(shù)中的余弦函數(shù)(輸入是角度的那種)我試了一下,發(fā)現(xiàn)cos90°算出來不是0,為什么呀,算別的角度是對的,就是算值等于0的度數(shù)會有問題。用了弧度角度換算、公式節(jié)點、直接輸入π/2,這種方法出來都不是0
    發(fā)表于 04-09 14:18

    MounRiver Studio環(huán)境下math頭文件如何進行三角函數(shù)計算?

    需要用到atan2和asin函數(shù),include了math.h后報錯函數(shù)不存在;和keil下的math文件內(nèi)容對比了一下發(fā)現(xiàn)確實少了三角函數(shù)的申明,為什么會存在這種差異?該如何進行三角函數(shù)
    發(fā)表于 06-01 06:18

    基于DSP的三角函數(shù)快速計算

    基于DSP的三角函數(shù)快速計算
    發(fā)表于 04-07 14:33 ?53次下載
    基于DSP的<b class='flag-5'>三角函數(shù)</b>快速計算

    三角函數(shù)arcranx運算電路

    三角函數(shù)arcranx運算電路
    發(fā)表于 04-09 10:16 ?2798次閱讀
    反<b class='flag-5'>三角函數(shù)</b>arcranx運算電路

    基于三角函數(shù)搜索因子的混合蛙跳算法

    針對傳統(tǒng)混合蛙跳算法存在收斂速度慢、容易陷入局部最優(yōu)和搜索精度不高的缺陷,提出了基于三角函數(shù)搜索因子的混合蛙跳算法。該算法將基于三角函數(shù)搜索因子的局部進化策略和產(chǎn)生新個體策略引入到混合蛙跳算法中
    發(fā)表于 11-24 15:56 ?0次下載

    歐拉公式與三角函數(shù)_歐拉公式推導三角函數(shù)

    歐拉公式是指以歐拉命名的諸多公式。其中最著名的有,復變函數(shù)中的歐拉幅公式,即將復數(shù)、指數(shù)函數(shù)三角函數(shù)聯(lián)系起來。拓撲學中的歐拉多面體公式。初等數(shù)論中的歐拉
    發(fā)表于 11-28 20:44 ?21.5w次閱讀

    如何使用Cordic算法C語言實現(xiàn)三角函數(shù)的計算

    三角函數(shù)的計算是個復雜的主題,有計算機之前,人們通常通過查找三角函數(shù)表來計算任意角度的三角函數(shù)的值。這種表格在人們剛剛產(chǎn)生三角函數(shù)的概念的時候就已經(jīng)有了,它們通常是通過從已知值(比如s
    發(fā)表于 04-25 18:27 ?9次下載
    如何使用Cordic算法C語言實現(xiàn)<b class='flag-5'>三角函數(shù)</b>的計算

    如何使用DSP匯編語言實現(xiàn)高精度的三角函數(shù)

    在現(xiàn)今DSP 軟件工程設(shè)計中,廣泛采用高級語言(如C 語言)直接調(diào)用三角函數(shù)進行計算。然而,匯編語言的穩(wěn)定性、可讀性和執(zhí)行效率均優(yōu)于高級語言,因缺少可供直接調(diào)用的三角函數(shù)庫,其開發(fā)周期長,且計算精度難以保證,在工程中推廣較少。本文就基于DSP 匯編語言,提出一種高精度
    發(fā)表于 08-28 09:36 ?7次下載
    如何使用DSP匯編語言實現(xiàn)高精度的<b class='flag-5'>三角函數(shù)</b>

    AD639:通用三角函數(shù)轉(zhuǎn)換器廢棄數(shù)據(jù)表

    AD639:通用三角函數(shù)轉(zhuǎn)換器廢棄數(shù)據(jù)表
    發(fā)表于 05-17 17:29 ?8次下載
    AD639:通用<b class='flag-5'>三角函數(shù)</b>轉(zhuǎn)換器廢棄數(shù)據(jù)表

    TI Arm內(nèi)核三角函數(shù)的優(yōu)化

    電子發(fā)燒友網(wǎng)站提供《TI Arm內(nèi)核三角函數(shù)的優(yōu)化.pdf》資料免費下載
    發(fā)表于 09-11 09:19 ?0次下載
    TI Arm內(nèi)核<b class='flag-5'>三角函數(shù)</b>的優(yōu)化