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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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ù)的運(yùn)算,可顯著減少CPU負(fù)荷,在電機(jī)的矢量控制運(yùn)算中非常有用。

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

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

配備TFU的芯片

TFUv1

RX72T/RX72M/RX72N

TFUv2

RX26T

1. TFUv1的使用說明

在工程中選擇[Project][C/C++ Project Settings][Tool Settings][Compiler] [Optimization][Advanced],如果器件有TFU,則會(huì)有選項(xiàng)"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è)置后,標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)函數(shù)sinf()、cosf()、atan2f()和hypotf()的計(jì)算將由TFU執(zhí)行,如圖2中代碼所示。由于TFU可以同時(shí)計(jì)算sin和cos、arctan和sqrt(x2+y2),所以CC-RX編譯器對(duì)相同輸入值的sin和cos、arctan和sqrt(x2+y2)可使用同時(shí)計(jì)算功能,以進(jìn)一步提高運(yùn)算速度??梢允褂煤瘮?shù)__sincosf()和__atan2hypotf()來同時(shí)計(jì)算,如圖3中代碼所示。

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

圖2 使用TFU的代碼示例

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

圖3 TFU同時(shí)計(jì)算代碼示例

2. TFUv2的使用說明

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

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

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

圖4 計(jì)算速度對(duì)比

2支持定點(diǎn)類型的計(jì)算

在TFUv2中,單精度浮點(diǎn)數(shù)的操作與TFUv1中相同;對(duì)于定點(diǎn)數(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í)計(jì)算的函數(shù):

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

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

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

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

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

3支持重入

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

#pragma interrupt func(no_tfu)

也可以使用選項(xiàng)禁止所有中斷功能的保存和恢復(fù),選擇[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è)置下,如果僅對(duì)某個(gè)特定中斷允許重入,可以在中斷函數(shù)的申明中寫"tfu"

#pragma interrupt func(tfu)

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

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

    關(guān)注

    3512

    文章

    1811

    瀏覽量

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

    關(guān)注

    2

    文章

    785

    瀏覽量

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

    關(guān)注

    1

    文章

    1602

    瀏覽量

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

    關(guān)注

    0

    文章

    13

    瀏覽量

    6681

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MATLAB三角函數(shù)命令

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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