關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 計算機多設備接口波特率不匹配的研究

        計算機多設備接口波特率不匹配的研究

        作者: 時間:2010-07-06 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/202529.htm

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

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

          我們的問題在于尋找一個分數,它能夠盡可能地接近校準系數。那么可以使用這樣一種多位小數的分數逼近法,該算法認為:任何一個多位小數,無論是無理數還是有理數,均可以用一個分數來近似表示它,并可用一定的程序使其誤差越來越小,直至達到所需的精確度。

          根據該算法,可以通過程序來實現獲取這兩個參數的自動計算,該程序流程如圖1所示。

        按此在新窗口瀏覽圖片
        圖1 程序流程

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

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

          本例中程序計算出來MulVal=12,DivAddVal=1,與人工計算結果完全相同,所以使用這種算法,可以利用程序自動高效計算得出MulVal和DivAddVal整數值,不僅節省人力,而且更加科學可靠。

        結語

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

        參考文獻

        [1] 周立功,等.ARM控制器基礎與實戰[M].北京:北京航空航天大學出版社,2005.

        [2] 周立功,等.深入淺出ARM7――LPC214x[M].北京:北京航空航天大學出版社,2005.

        [3] 周立功,等.深入淺出ARM7――LPC213x[M].北京:北京航空航天大學出版社,2005.

        [4] 周立功,等.ARM嵌入式系統實驗教程(一)[M].北京:北京航空航天大學出版社,2004.

        [5] 阿里.8051微控制器和嵌入式系統[M].北京:機械工業出版社,2007.

        [6] 陳其翔.多位小數的分數逼近法[J].北京聯合大學學報,1997,29(3).


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 克什克腾旗| 永丰县| 子长县| 芮城县| 遵义市| 禹城市| 荣昌县| 灵台县| 诸暨市| 六枝特区| 长治县| 清徐县| 光泽县| 广汉市| 仙桃市| 青州市| 柘荣县| 濉溪县| 昌乐县| 鄱阳县| 漠河县| 加查县| 惠州市| 白城市| 麦盖提县| 新化县| 山阴县| 蕲春县| 静乐县| 惠安县| 凯里市| 乐都县| 佛冈县| 同德县| 衡水市| 淳安县| 南阳市| 巫山县| 廉江市| 天柱县| 西平县|