計(jì)算機(jī)多設(shè)備接口波特率不匹配的研究
根據(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的值,使其滿(mǎn)足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ù)。 參考文獻(xiàn) [1] 周立功,等.ARM控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2005. [2] 周立功,等.深入淺出ARM7――LPC214x[M].北京:北京航空航天大學(xué)出版社,2005. [3] 周立功,等.深入淺出ARM7――LPC213x[M].北京:北京航空航天大學(xué)出版社,2005. [4] 周立功,等.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程(一)[M].北京:北京航空航天大學(xué)出版社,2004. [5] 阿里.8051微控制器和嵌入式系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2007. [6] 陳其翔.多位小數(shù)的分?jǐn)?shù)逼近法[J].北京聯(lián)合大學(xué)學(xué)報(bào),1997,29(3).
評(píng)論