国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UART波特率發(fā)生電路設(shè)計(jì)

2010-09-05 06:26:46趙琳娜李紅征
電子與封裝 2010年9期
關(guān)鍵詞:波特率迭代法低電平

趙琳娜,趙 煌,李紅征

(1.江南大學(xué)信息工程學(xué)院,江蘇 無(wú)錫 214036;2.中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)

UART波特率發(fā)生電路設(shè)計(jì)

趙琳娜1,趙 煌1,李紅征2

(1.江南大學(xué)信息工程學(xué)院,江蘇 無(wú)錫 214036;2.中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)

設(shè)計(jì)了一種基于“ATD+迭代法”的UART波特率發(fā)生電路。波特率發(fā)生電路中的ATD電路用于監(jiān)測(cè)串行數(shù)據(jù)的變化,并在串行數(shù)據(jù)的邊沿(上升沿或下降沿)輸出低電平信號(hào)。波特率探測(cè)電路對(duì)ATD電路的輸出信號(hào)的低電平和高電平分別進(jìn)行計(jì)數(shù),該計(jì)數(shù)值和保持寄存器中存儲(chǔ)的最小值比較,若前者小于后者,則保存寄存器中的最小值被該計(jì)數(shù)值取代,若前者大于后者,則保存寄存器中的最小值不變。經(jīng)過(guò)一段時(shí)間比較迭代,最終得到設(shè)計(jì)需要的最小值,從而通過(guò)波特率發(fā)生器正確地輸出串行數(shù)據(jù)的波特率。

通用異步收發(fā)器;波特率發(fā)生電路;ATD電路

1 UART設(shè)計(jì)概述

UART(Universal Asynchronous Receiver/Transmitter)通用異步收發(fā)器是用于控制微機(jī)系統(tǒng)(并行設(shè)備)與串行設(shè)備通信的芯片。

UART提供以下主要功能:發(fā)送功能(將由微機(jī)系統(tǒng)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)流輸出,并在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位和啟停標(biāo)記),接收功能(將微機(jī)系統(tǒng)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié)供微機(jī)系統(tǒng)內(nèi)部并行數(shù)據(jù)的器件使用,并對(duì)接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)、刪除啟停標(biāo)記)。

UART的異步收發(fā)是指在UART協(xié)議中,接收、發(fā)送數(shù)據(jù)不使用統(tǒng)一參考時(shí)鐘,收發(fā)雙方取得同步的方法是采用固定的串行數(shù)據(jù)格式,即通過(guò)在串行數(shù)據(jù)流中加入啟停標(biāo)記位來(lái)實(shí)現(xiàn)同步。串行數(shù)據(jù)格式如圖1所示。

起始位:發(fā)出一個(gè)邏輯“0”的信號(hào),表示傳輸字符的開(kāi)始;數(shù)據(jù)位:緊接著起始位,其位數(shù)可以是5~8位;奇偶校驗(yàn)位:數(shù)據(jù)位后加上這一位,使得“1”的位數(shù)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)數(shù)據(jù)傳送的正確性;停止位:是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志,可以是1位、1.5位、2位的高電平;空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒(méi)有數(shù)據(jù)傳送。

2 “ATD+迭代法”的基本思想

UART鏈接典型的串口波特率有9600bit/s、19.2kbit/s、38.4kbit/s、57.6kbit/s和115.2kbit/s等。傳統(tǒng)的UART在傳輸數(shù)據(jù)前,發(fā)送端與接收端需要事先協(xié)議好傳輸?shù)牟ㄌ芈?,而自適應(yīng)UART可以通過(guò)“迭代法”正確地探測(cè)出串行數(shù)據(jù)的波特率[1]。

“迭代法”基本原理如圖2所示。d表示串行數(shù)據(jù)中的一個(gè)下降沿,u表示緊接著下降沿d的一個(gè)上升沿,t表示相鄰邊沿d和u之間的時(shí)間間隔,等于一個(gè)或多個(gè)比特位的周期。采樣計(jì)數(shù)器在下降沿d處開(kāi)始從初始值0計(jì)數(shù),每遇到系統(tǒng)時(shí)鐘的上升沿遞增一次,并在上升沿u處停止計(jì)數(shù),得到的計(jì)數(shù)值和在保持寄存器中存放的所謂“最小值”比較,如果該計(jì)數(shù)值小于“最小值”,那么寄存器中“最小值”將被該計(jì)數(shù)值取代,通過(guò)不斷地迭代,最終得到一個(gè)最小值。通過(guò)串行線路波特率的計(jì)算公式:波特率(bit/s)=系統(tǒng)時(shí)鐘頻率/min值,從而得到準(zhǔn)確的串行數(shù)據(jù)波特率。

這種“迭代法”采用了簡(jiǎn)單固定的方法來(lái)計(jì)算波特率,即通過(guò)迭代計(jì)算出相鄰下降沿和上升沿之間的“最小值”。不難發(fā)現(xiàn),這種方法忽略了相鄰上升沿和下降沿之間存在的“最小值”,加大了計(jì)算波特率的時(shí)間。我們提出一種快速有效地計(jì)算波特率的方法——“ATD+迭代法”,這種方法兼顧了相鄰邊沿(相鄰下降沿和上升沿以及相鄰上升沿和下降沿)之間存在的“最小值”。從理論上講,“ATD+迭代法”的檢測(cè)速度是“迭代法”的2倍。

“ATD+迭代法”的基本想法是:第一步,通過(guò)ATD電路監(jiān)測(cè)串行數(shù)據(jù)的變化;第二步,通過(guò)波特率檢測(cè)電路對(duì)ATD電路的輸出信號(hào)進(jìn)行迭代,最終得到最小值。

圖3為ATD電路的輸入信號(hào)RXD和輸出信號(hào)ATDD的波形圖,串行數(shù)據(jù)RXD經(jīng)過(guò)ATD電路處理,在RXD每一次的0、1變化(上升沿或下降沿)都會(huì)產(chǎn)生一個(gè)低電平,ATD電路的輸出波形見(jiàn)圖3中的ATDD信號(hào);在波特率檢測(cè)電路中,兩個(gè)采樣計(jì)數(shù)器分別記錄下ATDD信號(hào)低電平的最小系統(tǒng)時(shí)鐘周期數(shù)min1和高電平的最小系統(tǒng)時(shí)鐘周期數(shù)min2,min1、min2的和就是RXD中一位數(shù)據(jù)所占用的系統(tǒng)時(shí)鐘周期數(shù)(也就是所謂的最小值),通過(guò)不斷迭代,最終得到我們需要的最小值。通過(guò)公式:波特率=系統(tǒng)時(shí)鐘頻率/最小值,就可以確定串行數(shù)據(jù)的波特率。

3 UART波特率發(fā)生模塊的設(shè)計(jì)

基于“ATD+迭代法”的基本想法,UART波特率發(fā)生模塊分為三個(gè)部分,即ATD電路、波特率檢測(cè)電路以及波特率產(chǎn)生電路。

3.1 ATD電路

UART波特率發(fā)生模塊中的ATD電路如圖4所示,圖中端口RXD為串行數(shù)據(jù)的輸入端口,雙向輸入輸出端口ATDD輸出對(duì)串行數(shù)據(jù)的檢測(cè)信號(hào)。使用Hspice軟件對(duì)ATD電路進(jìn)行仿真,仿真結(jié)果如圖5所示??梢?jiàn),串行數(shù)據(jù)的每次翻轉(zhuǎn)(0→1或1→0)都會(huì)引起ATD電路輸出信號(hào)下降到低電平并持續(xù)一段時(shí)間。

3.2 波特率檢測(cè)電路

UART波特率發(fā)生模塊中的波特率檢測(cè)電路的設(shè)計(jì)采用的HDL(hardware description language)語(yǔ)言為Verilog,根據(jù)自頂向下的設(shè)計(jì)原則進(jìn)行設(shè)計(jì)。

波特率檢測(cè)電路設(shè)計(jì)流程圖如圖6所示。迭代的具體過(guò)程是:首先給最小值賦初值,高、低電平最小值g_min、l_min都設(shè)為40(對(duì)應(yīng)于實(shí)際波特率,g_min應(yīng)為40000000)。ATDD信號(hào)傳輸進(jìn)來(lái)后,每遇到系統(tǒng)時(shí)鐘的上升沿,采樣計(jì)數(shù)器分別對(duì)高、低電平進(jìn)行計(jì)數(shù),計(jì)數(shù)結(jié)果分別與保持寄存器中存放的g_min和l_min進(jìn)行比較,如果該計(jì)數(shù)值比g_min或l_min小那么就把計(jì)數(shù)結(jié)果賦值給g_min或l_min,否則,將保持寄存器中存放的g_min或l_min。如此迭代下去,最終得到最小值g_min和l_min,兩個(gè)數(shù)之和就是我們所需的最小值,也就是傳輸一位數(shù)據(jù)所占用的系統(tǒng)時(shí)鐘周期數(shù)。把該最小值傳輸給波特率發(fā)生器,就能產(chǎn)生相應(yīng)的波特率。

波特率檢測(cè)電路的verilog程序關(guān)鍵代碼如下:

根據(jù)上述verilog程序,綜合得到UART波特率檢測(cè)電路的電路圖,如圖7(a)所示;其仿真波形如圖7(b)所示,從圖中可以看出,經(jīng)過(guò)一段時(shí)間的迭代,最終得到一個(gè)最小值,從而準(zhǔn)確地探測(cè)出RXD信號(hào)的波特率。

3.3 波特率發(fā)生器模塊

波特率發(fā)生器實(shí)際上就是一個(gè)分頻器。實(shí)現(xiàn)波特率時(shí)鐘的基本思路就是設(shè)計(jì)一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器工作在頻率很高的系統(tǒng)時(shí)鐘下,當(dāng)計(jì)數(shù)到波特率檢測(cè)電路輸出的最小值一半時(shí)將輸出置為高電平,再計(jì)數(shù)到該數(shù)值后將輸出置為低電平,如此反復(fù)就能得到所需的波特率時(shí)鐘[2]。

4 結(jié)束語(yǔ)

利用Quartus軟件完成電路的物理設(shè)計(jì)、仿真及綜合,結(jié)果表明采用“ATD+迭代法”設(shè)計(jì)的UART波特率發(fā)生電路能正確地輸出串行數(shù)據(jù)波特率。

[1]周建華,萬(wàn)書(shū)芹,薛忠杰. 一種新穎的UART自適應(yīng)波特率發(fā)生器的設(shè)計(jì)[J] . Semiconductor Technology,2007(12) ∶1052-1055.

[2]李秋菊,楊銀堂,高海霞. 基于Verilog HDL的UART IP的設(shè)計(jì)[J] . Semiconductor Technology,2007 (6) ∶ 520-523.

A Design of Baud-rate Generator for UART

ZHAO Lin-na1, ZHAO Huang1, LI Hong-zheng2
(1.School of IT Engineering,Southern Yangtze University,Wuxi214036,China;2.China Electronic Technology Group Corporation No.58Research Institute,Wuxi214035,China)

In our paper we design a UART baud-rate Generator based on ATD (Address-Translate-Detector)circuit. The ATD circuit is used to monitor the changes of serial data, and experts the low level signals along the rising edges or falling edges of serial data. Two counters are used for counting the numbers of low and high level periods of ATD signal respectively. The value stored in counters has been compared with the minimum value stored in register. If the former is less than the latter, then the minimum value will be replaced by the value stored in counters, otherwise, maintaining the latter. Repeating this process, we get the accurate baud-rate.

UART; baud-rate generator; address-translate-detector (ATD) circuit

TN791

A

1681-1070(2010)09-0019-05

2010-06-13

趙琳娜(1979-),女,天津人,助教,研究方向?yàn)镃MOS數(shù)字集成電路設(shè)計(jì)。

猜你喜歡
波特率迭代法低電平
數(shù)字電路中“邏輯非”的用法辨析
迭代法求解一類(lèi)函數(shù)方程的再研究
鐵道車(chē)輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
智能制造(2020年5期)2020-07-03 06:24:00
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車(chē)型低電平參考電壓總線電路圖
基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
迭代法求解約束矩陣方程AXB+CYD=E
預(yù)條件SOR迭代法的收斂性及其應(yīng)用
求解PageRank問(wèn)題的多步冪法修正的內(nèi)外迭代法
集成電路靜態(tài)參數(shù)測(cè)試
蚌埠市| 土默特右旗| 巫溪县| 莱阳市| 南和县| 辰溪县| 二手房| 沈丘县| 睢宁县| 昭觉县| 南皮县| 东平县| 罗山县| 桑植县| 永福县| 蓝田县| 阿拉善盟| 梅河口市| 铜梁县| 丹巴县| 利川市| 神农架林区| 资中县| 剑川县| 堆龙德庆县| 同心县| 西华县| 高雄市| 仪陇县| 宿松县| 阿合奇县| 泾川县| 正阳县| 杭州市| 巴中市| 张家川| 滁州市| 青岛市| 临武县| 昌宁县| 贵阳市|