三大电机控制方案之MCU篇:英飞凌 XMC1000
XMC1000的随机数生成单元PRNG
本文引用地址:https://www.eepw.com.cn/article/201605/291245.htm1 背景
PRNG(Preeudo Random Number Generator)是随机码生成模块,可以产生8/16位随机码。
2 工作原理
1)框图

2)工作原理
这个模块通过向随机数序列生成器写入Key,来产生8/16位的随机数,其中随机数序列的产生和Key是唯一对应的。随机Key写入完毕后,可以读出随机序列,随机Key写入和随机序列读出的位置都是PRNG_WORD,不过他们在不同的步骤中操作,所以不会产生冲突。
3)使用
a.首先设定KLD=1,进入Key写入模式,写入随机key,key可以是任意位数,推荐80位,分为5个16bit写入PRNG_WORD中。注意,只有当PRNG_CHK.RDV=1时,才能向PRNG_WORD中写入Key
b.Key写完后,把KLD置为0。然后,当PRNG_CHK.RDV=1,可以从PRNG_WORD中读出随机序列。随机序列可以为8、16位数据,这个通过PRNG_CHK.RDBS来控制。
c.若在随机码产生过程中把KLD置为1,则可继续写入Key,新写入的Key会和之前的Key共同作用于随机序列
d.通过RDBS置为00,可以重启该模块
e.若在重启前,记录随机序列至少80位,重新作为key写入,则随机序列会接着上次的输出继续产生。
XMC1300的MATH协处理器
1 XMC1300芯片带有一个MATH协处理器,它包含以下两个子模块
除法器和Cordic协处理器
2 除法器
特性:可做32位/32位,32位/16位,16位/16位除法
操作:除法器启动,启动方式有两种,通过设定DIVCON.STMODE来选取,

a. 当DIVCON.STMODE=0,写入DVS即启动除法
b. 当DIVCON.STMODE=1,写入DIVCON.ST位即启动除法
除法器忙,当除法器工作时,DIVST.BSY = 1,这时不要再试图启动其他的除法,除法器需要35个周期结束,结束时可选择产生中断,并会出现结果置位,这个结果置位需要手动清除。
3 Cordic协处理器
Cordic协处理器可进行三角函数、双曲线函数和一次线性函数,其中函数模式通过CON.MODE来选择。
计算模式包括向量模式和旋转模式,通过CON.ROTVEC来选择,特性:24位精度,Circula模式

旋转模式
输入X,Y,Z 输出X= K*[X*cos(Z)-Y*sin(Z)]/MPS,Y= K*[Y*cos(Z)+X*sin(Z)]/MPS,Z=0,其中K=1.646760258121
向量模式
输入X,Y,Z,输出X= K*sqrt(X^2+Y^2)/MPS,Y= 0,Z=Z+atan(Y/X)
主要应用:计算sin(z),cos(z),tan(z),ctg(z)等
双曲线模式
- 旋转模式
输入X,Y,Z,输出X=k[Xcosh(Z)+Ysinh(Z)]/MPS,Y= k[Ycosh(Z)+Xsinh(Z)]/MPS,Z=0
-向量模式
输入X,Y,Z,输出X=k*sqrt(X^2-Y^2)/MPS,Y= 0,Z=Z+atanh(Y/X),其中k = 0.828159360960
主要应用,计算sinh(Z),cosh(Z),tanh(Z),ctgh(Z)等,同时可以计算ln(w),sqrt(W),acosh(w),asinh(W)等
一次线性模式
输入X,Y,Z,输出X=X/MPS,Y=[Y+X*Z]/MPS,Z=0
-向量模式
输入X,Y,Z
输出X=X/MPS,Y= 0,Z=Z+Y/X
4 除法器和Cordic的互联
除法器的输入可以由除法器的结果或Cordic的结果直接输入,这样构成了除法器和Cordic的级联。
比如计算tan(z),可以直接把Cordic的输出sin(z)连接到DVD,cos(z)连接到DVS,这样就可以得到tan(z)。
XMC1000的中断控制器
1 概述
XMC1000系列的中断处理器包括32个中断处理节点,每个节点支持4级中断优先级,支持尾链(tail-chaining ),支持软中断。
2 中断对应表格,可查相应数据手册活产品手册
3 中断功能

评论