三大電機控制方案之MCU篇:英飛凌 XMC1000
XMC1000的隨機數生成單元PRNG
本文引用地址:http://www.104case.com/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 中斷功能

評論