當(dāng)前位置:首頁(yè) > 電源 > 功率器件
[導(dǎo)讀]引言不同設(shè)備接口在傳輸數(shù)據(jù)時(shí)所要求的頻率往往不同,而在一些僅使用一個(gè)晶振的系統(tǒng)上,如果一個(gè)接口的頻率完全匹配,那么其他接口所使用的頻率往往就不完全符合要求。例如

引言

不同設(shè)備接口在傳輸數(shù)據(jù)時(shí)所要求的頻率往往不同,而在一些僅使用一個(gè)晶振的系統(tǒng)上,如果一個(gè)接口的頻率完全匹配,那么其他接口所使用的頻率往往就不完全符合要求。例如,為了實(shí)現(xiàn)USB總線的48 MHz的傳輸頻率,一般可以用12 MHz的晶振來(lái)倍頻得到,而12 MHz的晶振在進(jìn)行串口通信時(shí)由于與標(biāo)準(zhǔn)波特率不成倍數(shù)關(guān)系,因而期望波特率和實(shí)際波特率往往不同。

在波特率較低時(shí),這種誤差影響不大。例如,期望波特率為57 600 bps時(shí),實(shí)際波特率為57 692 bps,傳輸正常;而當(dāng)期望波特率高達(dá)115 200 bps時(shí),則實(shí)際波特率為125 000 bps,誤差較大。實(shí)驗(yàn)結(jié)果表明,此時(shí)如不對(duì)其進(jìn)行修正,則無(wú)法進(jìn)行正確傳輸。

筆者通過(guò)實(shí)驗(yàn)研究證明,通過(guò)使用小數(shù)波特率發(fā)生器,完全可以像低波特率時(shí)一樣正確地傳輸,實(shí)現(xiàn)了多位小數(shù)的分?jǐn)?shù)逼近法的算法,避免了人工計(jì)算過(guò)程,徹底實(shí)現(xiàn)了波特率計(jì)算和修正的自動(dòng)化。

1 小數(shù)波特率發(fā)生器工作原理

當(dāng)外部晶振或者VPB時(shí)鐘值不是標(biāo)準(zhǔn)波特率的整數(shù)倍時(shí),波特率的設(shè)定往往會(huì)出現(xiàn)偏差。通過(guò)小數(shù)波特率發(fā)生器則可減小或者消除這種偏差。

下面以LPC214x處理器的串口UART1為例闡述小數(shù)波特率發(fā)生器的工作原理。要使用小數(shù)波特率發(fā)生器,需要設(shè)置小數(shù)分頻寄存器(U1FDR),該寄存器控制產(chǎn)生波特率的時(shí)鐘分頻器。

預(yù)分頻器接收VPB時(shí)鐘,并經(jīng)過(guò)指定的小數(shù)要求產(chǎn)生一個(gè)輸出時(shí)鐘,小數(shù)由該寄存器的值決定。

在不使用小數(shù)波特率發(fā)生器時(shí),UART1波特率由下式計(jì)算:

UART1baudrate = PCLK/(16×(256×U1DLM+U1DLL))

當(dāng)使用小數(shù)波特率發(fā)生器時(shí),則由下式計(jì)算:

UART1baudrate = [PCLK/(16 ×(256 × U1DLM + U1DLL))] ×(MulVal / (MulVal + DivAddVal)

其中PCLK為VPB總線時(shí)鐘,U1DLM和U1DLL為標(biāo)準(zhǔn)的UART1波特率除數(shù)寄存器??梢钥闯觯琈ulVal / (MulVal + DivAddVal)就是用來(lái)修正波特率的小數(shù)值,被稱作校準(zhǔn)系數(shù)。它由兩個(gè)參數(shù)構(gòu)成:DivAddVal(波特率生成欲分頻除數(shù)值)和MulVal(波特率預(yù)分頻乘數(shù)值)。DivAddVal和MulVal都必須為整數(shù),且滿足:

1 ≤ MulVal≤ 15,0 ≤ DivAddVal ≤ 15。

根據(jù)以上公式很容易計(jì)算串口波特率,但是實(shí)際應(yīng)用中,更多的是在使用非標(biāo)準(zhǔn)晶振時(shí)確定波特率校準(zhǔn)系數(shù),即設(shè)定U1FDR寄存器DivAddVal和MulVal的值。確定波特率校準(zhǔn)系數(shù)可以分如下3步進(jìn)行:

① 確定除數(shù)鎖存器的值: 根據(jù)需要的波特率bps,按照沒(méi)有校準(zhǔn)系數(shù)的波特率計(jì)算公式確定除數(shù)鎖存器的值(DLM,DLL)。由于采用非標(biāo)準(zhǔn)晶振,得到的結(jié)果通常為小數(shù)。無(wú)論小數(shù)值大小,均舍棄小數(shù)部分的值,對(duì)結(jié)果進(jìn)行取整操作(不是四舍五入),得到除數(shù)鎖存器的值。
② 確定校準(zhǔn)前的波特率: 將①得到的除數(shù)值(DLM,DLL)代入不帶校準(zhǔn)系數(shù)的串口波特率計(jì)算公式,得到未經(jīng)過(guò)校準(zhǔn)的波特率BPS。
③ 確定校準(zhǔn)系數(shù)p: p=bps/BPS=MulVal/(MulVal+DivAddVal)
根據(jù)限制條件1≤MulVal≤15和0≤DivAddVal≤15,尋找合適的值,使得到誤差盡可能小的校準(zhǔn)系數(shù)。

2 多位小數(shù)的分?jǐn)?shù)逼近算法

(1) 傳統(tǒng)獲取MulVal和DivAddVal整數(shù)值的方法

假設(shè)系統(tǒng)晶振為12 MHz,擬設(shè)定波特率bps為115 200 bps,根據(jù)前面所述校準(zhǔn)系數(shù)的確定過(guò)程,12 000 000/(16×115 200)=6.51,取6為除數(shù)值,那么BPS=12 000 000/[16×(256×0+6)]=125 000 bps,所以p=bps/BPS=0.921 6。

傳統(tǒng)獲取MulVal和DivAddVal整數(shù)值的方法大多依靠經(jīng)驗(yàn)技巧或者反復(fù)試驗(yàn)。如參考文獻(xiàn)2《深入淺出ARM7LPC214x下》中,第77頁(yè)描述的那樣:

根據(jù)1 ≤ MulVal ≤ 15和0 ≤ DivAddVal ≤ 15的限制,由于系數(shù)接近1,因而DivAddVal取盡可能小的整數(shù)。多次試驗(yàn)取值得到12 / (1 + 12) = 0.9231與期望的系數(shù)0.9216最接近,能夠使波特率誤差最小,因而最后確定MulVal = 12, DivAddVal = 1。
顯然,按照這種方法是無(wú)法完成程序自動(dòng)化的,必須在每次編程之前根據(jù)波特率來(lái)人工推算出MulVal和DivAddVal的值,并且還需要大量的誤差對(duì)比和反復(fù)試驗(yàn),導(dǎo)致工作效率的降低。

(2) 獲取MulVal和DivAddVal整數(shù)值的新方法

我們的問(wèn)題在于尋找一個(gè)分?jǐn)?shù),它能夠盡可能地接近校準(zhǔn)系數(shù)。那么可以使用這樣一種多位小數(shù)的分?jǐn)?shù)逼近法,該算法認(rèn)為:任何一個(gè)多位小數(shù),無(wú)論是無(wú)理數(shù)還是有理數(shù),均可以用一個(gè)分?jǐn)?shù)來(lái)近似表示它,并可用一定的程序使其誤差越來(lái)越小,直至達(dá)到所需的精確度。

根據(jù)該算法,可以通過(guò)程序來(lái)實(shí)現(xiàn)獲取這兩個(gè)參數(shù)的自動(dòng)計(jì)算,該程序流程如圖1所示。


圖1 程序流程

初始化時(shí)要求找到A和B的值,使其滿足B

利用1 ≤ MulVal ≤ 15和0 ≤ DivAddVal ≤ 15的限制作為迭代退出條件,當(dāng)A的分母超過(guò)16時(shí),B就是最優(yōu)解,B1即為MulVal,而DivAddVal則等于B2-B1;同理,當(dāng)B的分母超過(guò)16時(shí),MulVal=A1,DivAddVal=A2-A1。

本例中程序計(jì)算出來(lái)MulVal=12,DivAddVal=1,與人工計(jì)算結(jié)果完全相同,所以使用這種算法,可以利用程序自動(dòng)高效計(jì)算得出MulVal和DivAddVal整數(shù)值,不僅節(jié)省人力,而且更加科學(xué)可靠。

結(jié)語(yǔ)

計(jì)算機(jī)系統(tǒng)中的各種設(shè)備接口所要求的頻率往往不同,當(dāng)只配備一個(gè)晶振時(shí),有一些設(shè)備頻率完全匹配而另外一些設(shè)備則可能無(wú)法完全匹配。作者通過(guò)對(duì)使用12 MHz晶振的LPC214xCPU進(jìn)行串口通信時(shí)產(chǎn)生的誤差研究發(fā)現(xiàn),當(dāng)期望波特率在57 600 bps以下時(shí),實(shí)際波特率與其誤差較小,可以正常通信;而當(dāng)期望波特率為115 200 bps時(shí),實(shí)際波特率為125 000 bps,在這樣大的誤差下如果不修正實(shí)際波特率根本無(wú)法進(jìn)行正確的通信;而當(dāng)通過(guò)設(shè)置使用小數(shù)波特率發(fā)生器校準(zhǔn)非標(biāo)準(zhǔn)頻率晶振所引起的波特率誤差時(shí),可以讓期望波特率高達(dá)115 200 bps的實(shí)際波特率為115 384 bps,誤差僅為184,通信完全正常。另外,在計(jì)算小數(shù)分頻寄存器中的設(shè)置值時(shí)首次引入了科學(xué)的數(shù)學(xué)算法,摒棄了傳統(tǒng)工程師使用經(jīng)驗(yàn)技巧和反復(fù)試驗(yàn)獲取MulVal和DivAddVal值的人工方法,實(shí)現(xiàn)了由程序自動(dòng)、正確、快速地獲取設(shè)置寄存器參數(shù)值的目的,不僅提高了工作效率,更重要的是完全實(shí)現(xiàn)了自動(dòng)化,無(wú)需再人工干預(yù)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉